Update of /cvsroot/emacs-jabber/emacs-jabber
In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv24386
Modified Files:
jabber.el jabber-core.el jabber-presence.el
Log Message:
Revision: ma...@fr...--2005/emacs-jabber--cvs-head--0--patch-473
Creator: Magnus Henoch <ma...@fr...>
Don't reset presence when new account connects
Connecting a new account used to call jabber-send-default-presence,
which resets any custom presence sent (including autoaway). Now
jabber-send-current-presence is used instead.
Fixes bug #1870437.
Index: jabber-core.el
===================================================================
RCS file: /cvsroot/emacs-jabber/emacs-jabber/jabber-core.el,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- jabber-core.el 5 Mar 2008 12:05:49 -0000 1.86
+++ jabber-core.el 27 Mar 2008 16:09:13 -0000 1.87
@@ -66,7 +66,7 @@
(defgroup jabber-core nil "customize core functionality"
:group 'jabber)
-(defcustom jabber-post-connect-hooks '(jabber-send-default-presence
+(defcustom jabber-post-connect-hooks '(jabber-send-current-presence
jabber-muc-autojoin)
"*Hooks run after successful connection and authentication.
The functions should accept one argument, the connection object."
Index: jabber.el
===================================================================
RCS file: /cvsroot/emacs-jabber/emacs-jabber/jabber.el,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -d -r1.81 -r1.82
--- jabber.el 3 Feb 2008 05:50:32 -0000 1.81
+++ jabber.el 27 Mar 2008 16:09:13 -0000 1.82
@@ -1,6 +1,6 @@
;; jabber.el - a minimal jabber client
-;; Copyright (C) 2003, 2004, 2007 - Magnus Henoch - ma...@fr...
+;; Copyright (C) 2003, 2004, 2007, 2008 - Magnus Henoch - ma...@fr...
;; Copyright (C) 2002, 2003, 2004 - tom berger - ob...@in...
;; SSL - Support, mostly inspired by Gnus
@@ -182,13 +182,13 @@
result as arguments."
nil)
-(defvar *jabber-current-status* ""
+(defvar *jabber-current-status* nil
"the users current presence staus")
-(defvar *jabber-current-show* ""
+(defvar *jabber-current-show* nil
"the users current presence show")
-(defvar *jabber-current-priority* 10
+(defvar *jabber-current-priority* nil
"the user's current priority")
(defvar *jabber-status-history* nil
Index: jabber-presence.el
===================================================================
RCS file: /cvsroot/emacs-jabber/emacs-jabber/jabber-presence.el,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- jabber-presence.el 4 Mar 2008 07:23:27 -0000 1.46
+++ jabber-presence.el 27 Mar 2008 16:09:13 -0000 1.47
@@ -411,6 +411,17 @@
;; jabber-post-connect-hooks.
(jabber-send-presence jabber-default-show jabber-default-status jabber-default-priority))
+(defun jabber-send-current-presence (&optional jc)
+ "(Re-)send current presence.
+That is, if presence has already been sent, use current settings,
+else send defaults (see `jabber-send-default-presence')."
+ (interactive)
+ ;; jc is ignored. It's only there so this function can be in
+ ;; jabber-post-connect-hooks.
+ (if *jabber-current-show*
+ (jabber-send-presence *jabber-current-show* *jabber-current-status* *jabber-current-priority*)
+ (jabber-send-default-presence)))
+
(add-to-list 'jabber-jid-roster-menu
(cons "Send subscription request" 'jabber-send-subscription-request))
(defun jabber-send-subscription-request (jc to &optional request)
|