emchat
9 years agoUse a nicer, cleaner syntax calling #'make-glyph master
Steve Youngs [Sun, 31 May 2015 08:57:19 +0000 (18:57 +1000)]
Use a nicer, cleaner syntax calling #'make-glyph

* emchat-buddy.el (emchat-buddy-make-avatar): Use nice, better
syntax with #'make-glyph.

* emchat-log.el (emchat-log-show-buffer): Ditto.

* emchat-xwem.el (emchat-xwem-osd-show-message): Ditto.

* emchat.el (emchat-donation): Ditto.

Signed-off-by: Steve Youngs <steve@emchat.org>
9 years agoImprove avatar handling
Steve Youngs [Sat, 30 May 2015 06:29:45 +0000 (16:29 +1000)]
Improve avatar handling

* xface:
  Rework and optimise the XFace/CFace code.

9 years agoRework and optimise the XFace/CFace code.
Steve Youngs [Sat, 30 May 2015 06:28:38 +0000 (16:28 +1000)]
Rework and optimise the XFace/CFace code.

The old way of finding and displaying XFace/CFace avatar images was
to crawl through the entire bbdb each and every time an image was
needed. Pfft!

The NEW way is to do a specific search on the `icqnick' field a
(hopefully) maximum of once per contact, per emacs session.  Once
an avatar is found, it is stored in `emchat-world' for easier and
faster access from then on.

The `*-xface' defuns and vars were renamed to `*-avatar', which seems
to make more sense in this context.

It is also now possible to customise the fore/back colours of XFace
avatars (black on red looks pretty sexy, BTW).  See:
`emchat-buddy-xface-foreground' and `emchat-buddy-xface-background'

* emchat-buddy.el (top level): Autoload #'bbdb-search at compile
time.
(emchat-buddy-show-avatar): New, renamed from
`emchat-buddy-show-xface'.
(emchat-buddy-show-xface): Made obsolete.
(emchat-buddy-xface-foreground): New customisable variable.
(emchat-buddy-xface-background): New customisable variable.
(emchat-buddy-make-avatar): New.  Returns a glyph object from
either an X-Face or cface.
(emchat-buddy-show-avatar): New.  Replaces the now removed
`emchat-buddy-show-xface' function.  Uses #'bbdb-search instead of
walking through the entire bbdb.  Stores the cface/xface in
emchat-world.
(emchat-buddy-show-buffer): Use it.
(emchat-buddy-show-avatar-in-balloon): New.  Replaces
`emchat-buddy-show-xface-in-balloon'.  Gets the face info from
emchat-world instead of crawling through the bbdb.
(balloon-help-display-help): Use it.

* emchat-world.el (emchat-world-update): Ensure that avatars are
not lost.

* emchat-status.el (emchat-status-face): Autoload it.

Signed-off-by: Steve Youngs <steve@emchat.org>
9 years agoMultiple ICQ nicks? No problem
Steve Youngs [Wed, 27 May 2015 04:51:17 +0000 (14:51 +1000)]
Multiple ICQ nicks?  No problem

* eye-candy:
  Support multiple values in the icqnick bbdb field.

9 years agoSupport multiple values in the icqnick bbdb field.
Steve Youngs [Wed, 27 May 2015 04:50:47 +0000 (14:50 +1000)]
Support multiple values in the icqnick bbdb field.

This makes it possible to have a bbdb record that has multiple ICQ nicks
for those folks who like to sport multiple ICQ a/c's.

* emchat-buddy.el (emchat-buddy-show-xface): Support multiple
icqnicks.

Signed-off-by: Steve Youngs <steve@emchat.org>
10 years agoFix relation undefined error.
Steve Youngs [Sun, 20 Jul 2014 06:04:05 +0000 (16:04 +1000)]
Fix relation undefined error.

This error was caused by the scenario of having multiple ICQ clients
(non-EMchat) connected.  If one or more of the other clients cycled its
connection it could cause the HELLO CID to be sent to EMchat, which would
get rather confused seeing as though it wasn't in the middle of logging
in.

To work around this we just force a disconnect.  If the user has saved
their password EMchat will then attempt an auto-reconnect.  After the new
connection is established all is good again.

* emchat-v8.el (emchat-v8-fetch-flap): Disconnect when a bogus
FLAP header comes in.

Signed-off-by: Steve Youngs <steve@emchat.org>
10 years agoLog annoying FLAP errors instead of interupting with #'error
Steve Youngs [Wed, 16 Jul 2014 01:57:56 +0000 (11:57 +1000)]
Log annoying FLAP errors instead of interupting with #'error

* emchat-v8.el (emchat-v8-fetch-flap): Log unexpected FLAPs
instead of #'error.

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoNote to self: test BEFORE committing
Steve Youngs [Thu, 22 Aug 2013 14:40:04 +0000 (00:40 +1000)]
Note to self: test BEFORE committing

* auto-timeout:
  Fix the auto-away timeouts properly this time.

11 years agoFix the auto-away timeouts properly this time.
Steve Youngs [Thu, 22 Aug 2013 14:38:26 +0000 (00:38 +1000)]
Fix the auto-away timeouts properly this time.

* emchat.el (emchat-auto-away-timeout-set): The args aren't
optional.  Actually set `emchat-auto-away-timeout'.

* emchat.el (emchat-change-idle-timeout): Call
#'emchat-auto-away-timeout-set correctly with 2 args.

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoTypo fix
Steve Youngs [Thu, 22 Aug 2013 12:51:09 +0000 (22:51 +1000)]
Typo fix

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoImprove auto-away/na timeouts
Steve Youngs [Thu, 22 Aug 2013 11:29:15 +0000 (21:29 +1000)]
Improve auto-away/na timeouts

* auto-timeout:
  Allow disabling auto-away/auto-na timeouts.

11 years agoAllow disabling auto-away/auto-na timeouts.
Steve Youngs [Thu, 22 Aug 2013 11:28:03 +0000 (21:28 +1000)]
Allow disabling auto-away/auto-na timeouts.

* emchat.el (emchat-auto-away-timeout-set): Only set itimers if
value is not zero

* emchat.el (emchat-auto-away-timeout): Amend docstring.

* emchat.el (emchat-change-idle-timeout): Let setting to zero mean
disable the timeout.

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoQuickfix wrong type arg error
Steve Youngs [Sun, 18 Aug 2013 03:47:57 +0000 (13:47 +1000)]
Quickfix wrong type arg error

* quickfix:
  Fix a Wrong type argument error.

11 years agoFix a Wrong type argument error.
Steve Youngs [Sun, 18 Aug 2013 03:47:09 +0000 (13:47 +1000)]
Fix a Wrong type argument error.

* emchat-buddy.el (balloon-help-display-help): Fix advice, use
#'point-at-eol instead of #'eolp as the latter does not return a
value.

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoNicer notifications
Steve Youngs [Mon, 25 Feb 2013 10:39:45 +0000 (20:39 +1000)]
Nicer notifications

* notify-fixes:
  Better notification handling.

11 years agoBetter notification handling.
Steve Youngs [Mon, 25 Feb 2013 10:38:57 +0000 (20:38 +1000)]
Better notification handling.

With this changeset you can now control which messages get notifications.
See `emchat-notify-events-type'.  Notifications still only happen if the
emchat-frame is not the current selected frame. No point in getting
notifications when it's right there in front of you.

* emchat-log.el (emchat-notify): Rewrite using finer grained
tuning of which events to send notifications for.

* emchat-log.el (emchat-notify-events-type): New.

* emchat-log.el (emchat-log): Maybe send notification after log
has been written.  Test off of emchat-notify-flag.

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agos/TAG/TAGS/ in .gitignore
Steve Youngs [Sat, 23 Feb 2013 01:34:27 +0000 (11:34 +1000)]
s/TAG/TAGS/ in .gitignore

Signed-off-by: Steve Youngs <steve@emchat.org>
11 years agoNotifications fix
Steve Youngs [Sat, 23 Feb 2013 01:26:18 +0000 (11:26 +1000)]
Notifications fix

* kde-notify:
  Make notifications work in KDE

11 years agoMake notifications work in KDE
Steve Youngs [Sat, 23 Feb 2013 01:25:28 +0000 (11:25 +1000)]
Make notifications work in KDE

Under KDE, #'frame-visible-p and #'frame-totally-visible-p will only
return nil if the frame you are querying is iconified.  If it is merely on
another virtual desktop they will return t.

I'm not sure yet if this is a bug in KDE or if SXEmacs needs to be made
more "KDE-aware", but this changeset will let EMchat notifications work in
KDE.

* emchat-log.el (emchat-log): Test if the EMchat frame is focused
with #'selected-frame.

* .gitignore: Add TAG

Signed-off-by: Steve Youngs <steve@emchat.org>
12 years agoMerge branch 'notify'
Steve Youngs [Sat, 4 Feb 2012 03:10:51 +0000 (13:10 +1000)]
Merge branch 'notify'

* notify:
  Send notifications for incoming messages.

12 years agoSend notifications for incoming messages.
Steve Youngs [Sat, 4 Feb 2012 03:02:53 +0000 (13:02 +1000)]
Send notifications for incoming messages.

With this changeset EMchat will send notifications via libnotify's
`notify-send' for incoming messages.  It will only send the notification
if either the log buffer isn't the current buffer, or `emchat-frame' does
not have the window system focus.

* emchat-log.el (emchat-notify-flag): New.  Send notifications
when non-nil.

* emchat-log.el (emchat-notify-command): Shell command used to
send notifications.

* emchat-log.el (emchat-notify): New.  Send notifications via
notify-send from libnotify for incoming messages.

* emchat-log.el (emchat-log): Send a notification if either the
log buffer isn't the current buffer or the EMchat frame doesn't
have focus.

Signed-off-by: Steve Youngs <steve@emchat.org>
12 years agoMerge branch 'pkt-ignore'
Steve Youngs [Fri, 13 Jan 2012 07:26:37 +0000 (17:26 +1000)]
Merge branch 'pkt-ignore'

* pkt-ignore:
  Ignore an unimplemented packet (4/b)

12 years agoIgnore an unimplemented packet (4/b)
Steve Youngs [Fri, 13 Jan 2012 07:25:51 +0000 (17:25 +1000)]
Ignore an unimplemented packet (4/b)

Signed-off-by: Steve Youngs <steve@emchat.org>
12 years agoIgnore an unimplemented pkt
Steve Youngs [Sun, 11 Dec 2011 00:16:11 +0000 (10:16 +1000)]
Ignore an unimplemented pkt

* quickfix:
  Prevent contact list management errors

12 years agoPrevent contact list management errors
Steve Youngs [Sun, 11 Dec 2011 00:15:34 +0000 (10:15 +1000)]
Prevent contact list management errors

EMchat can't really do much in the way of contact list management yet, so
to prevent errors caused by other clients auto-adding new contacts while
you still logged in with EMchat we'll just ignore those functions for now.

* emchat-v8.el (emchat-v8-snac-cli-ssi-add): Ignore it

Signed-off-by: Steve Youngs <steve@emchat.org>
12 years agoFix long-standing unknown snac error
Steve Youngs [Sat, 10 Dec 2011 15:27:07 +0000 (01:27 +1000)]
Fix long-standing unknown snac error

* newpkts:
  Some new packets, fixing "Unknown SNAC" errors.

12 years agoSome new packets, fixing "Unknown SNAC" errors.
Steve Youngs [Sat, 10 Dec 2011 15:26:02 +0000 (01:26 +1000)]
Some new packets, fixing "Unknown SNAC" errors.

* emchat-v8.el (emchat-v8-snac-srv-cont-refused): New.  Handles
SNAC 0x03, 0x0A.  When a contact is in too many other people's
contact lists you can't get status updates for them.  Have I
mentioned that OSCAR blows?

* emchat-v8.el (emchat-v8-snac-list): SRV_REPLYINFO is really 1,15
not 1,f.
Add 1,f which is SRV_ONLINExINFO

* emchat-v8.el (emchat-v8-snac-srv-onlinexinfo): New.  Handles
SNAC 0x01, 0x0F.  But we just ignore what the server sends.

Signed-off-by: Steve Youngs <steve@emchat.org>
13 years agoRegexp fix.
Steve Youngs [Sun, 15 May 2011 08:03:24 +0000 (18:03 +1000)]
Regexp fix.

This is one of those "fix the fix" fixes.  The last commit buggered up a
couple of regular expressions.

* .gitignore: Ignore *.orig files

* emchat-world.el (emchat-world-ssi-id-regexp): Fix regexp that
was messed up by the last commit.
(emchat-world-rc-regexp): Ditto.

Signed-off-by: Steve Youngs <steve@emchat.org>
13 years agoMerge branch 'logbuffix'
Steve Youngs [Sun, 15 May 2011 06:02:20 +0000 (16:02 +1000)]
Merge branch 'logbuffix'

13 years agoFix movement commands in emchat-log-mode.
Steve Youngs [Sun, 15 May 2011 06:01:48 +0000 (16:01 +1000)]
Fix movement commands in emchat-log-mode.

There was a problem with a regexp which was preventing
#'emchat-log-previous and #'emchat-log-next finding anything other than
the beginning or end of the log file.  This patch fixes that.

Then I got carried away and updated all the copyright notices and cleaned
up all the spurious whitepace .

* emchat-log.el (emchat-log-entry-re): Drop the bol char from it
and replace emchat-log-outline-regexp with this.

* emchat-log.el (emchat-log-mode): Use `emchat-log-entry-re'
instead of `emchat-log-outline-regexp'.

* emchat-log.el (emchat-log): Allow for the change in
`emchat-log-entry-re'.

* emchat-log.el (emchat-log-mark): Use `emchat-log-entry-re'
instead of `emchat-log-outline-regexp'.

* *.el: Update copyright notices and clean up whitespace.

* Makefile: Ditto.

Signed-off-by: Steve Youngs <steve@emchat.org>
13 years agoUpdate copyright notices in all files.
Steve Youngs [Mon, 1 Nov 2010 23:46:37 +0000 (09:46 +1000)]
Update copyright notices in all files.

Or, to put it another way... find something trivial to change so I can
test the tweaks to my git hooks. :-P

13 years agoTiny update to NEWS pretty much just to test my git hooks
Steve Youngs [Mon, 1 Nov 2010 22:12:23 +0000 (08:12 +1000)]
Tiny update to NEWS pretty much just to test my git hooks

13 years agoIgnore some tla-isms
Steve Youngs [Sun, 31 Oct 2010 11:32:40 +0000 (21:32 +1000)]
Ignore some tla-isms

Added `,,*', `++*', `=build' to the .gitignore.  Hey, old habits
are hard to break!

13 years agoAdd auto-autoloads, custom-load, custom-defines to .gitignore
Steve Youngs [Sun, 31 Oct 2010 08:21:35 +0000 (18:21 +1000)]
Add auto-autoloads, custom-load, custom-defines to .gitignore

Set `message-send-mail-function' during compile in emchat-report.el

13 years agoUpdate Makefile auto-versioning for git
Steve Youngs [Sun, 31 Oct 2010 07:01:17 +0000 (17:01 +1000)]
Update Makefile auto-versioning for git
Add objects to .gitignore

13 years agoInitial git import v0.9.6
Steve Youngs [Sun, 31 Oct 2010 06:35:41 +0000 (16:35 +1000)]
Initial git import