+2007-12-16 Michael Albinus <michael.albinus@gmx.de>
+
+ * 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 <ttn@gnuvola.org>
* progmodes/cc-vars.el (defcustom-c-stylevar): Rewrite.
'(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.