From: Michael Albinus Date: Sun, 16 Dec 2007 22:42:47 +0000 (+0000) Subject: * net/dbus.el (dbus-name-owner-changed-handler): Use X-Git-Tag: emacs-pretest-23.0.90~8905 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3cc546adf4aeed5891c63b31b42cc515cad16801;p=emacs.git * net/dbus.el (dbus-name-owner-changed-handler): Use `dbus-unregister-signal' for removing old rules. Obey new structure of `dbus-registered-functions-table'. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e172b30ec31..fe01023428f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2007-12-16 Michael Albinus + + * net/dbus.el (dbus-name-owner-changed-handler): Use + `dbus-unregister-signal' for removing old rules. Obey new + structure of `dbus-registered-functions-table'. + 2007-12-12 Thien-Thi Nguyen * progmodes/cc-vars.el (defcustom-c-stylevar): Rewrite. diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index 83d0f7fa3ec..75bcb8ed138 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el @@ -79,21 +79,17 @@ owner of SERVICE, or the empty string if SERVICE looses any name owner." '(lambda (key value) (dolist (elt value) ;; key has the structure (BUS INTERFACE SIGNAL). - ;; elt has the structure (SERVICE UNAME PATH HANDLER). - (when (string-equal old-owner (cadr elt)) + ;; elt has the structure (UNAME SERVICE PATH HANDLER). + (when (string-equal old-owner (car elt)) ;; Remove old key, and add new entry with changed name. - (when dbus-debug (message "Remove rule for %s %s" key elt)) - ;(dbus-unregister-signal key) - (setcar (cdr elt) new-owner) - (when dbus-debug (message "Add rule for %s %s" key elt)) + (dbus-unregister-signal (list key (cdr elt))) ;; Maybe we could arrange the lists a little bit better ;; that we don't need to extract every single element? - (when (not (zerop (length new-owner))) - (dbus-register-signal - ;; BUS SERVICE PATH - (nth 0 key) (nth 0 elt) (nth 2 elt) - ;; INTERFACE SIGNAL HANDLER - (nth 1 key) (nth 2 key) (nth 3 elt)))))) + (dbus-register-signal + ;; BUS SERVICE PATH + (nth 0 key) (nth 1 elt) (nth 2 elt) + ;; INTERFACE SIGNAL HANDLER + (nth 1 key) (nth 2 key) (nth 3 elt))))) (copy-hash-table dbus-registered-functions-table))))) ;; Register the handler.