Mercurial > emacs
changeset 104081:4c431a52ce37
* net/dbus.el (dbus-call-method-non-blocking): Handle the case the
function returns nil.
(dbus-handle-event): Handle special return value :ignore.
Reported by Jan Moringen <jan.moringen@uni-bielefeld.de>.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Mon, 27 Jul 2009 10:02:38 +0000 |
parents | 917282acffdc |
children | ecfad742f68c |
files | lisp/net/dbus.el |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/dbus.el Mon Jul 27 04:19:57 2009 +0000 +++ b/lisp/net/dbus.el Mon Jul 27 10:02:38 2009 +0000 @@ -184,7 +184,7 @@ 'dbus-call-method-non-blocking-handler args))) ;; Wait until `dbus-call-method-non-blocking-handler' has put the ;; result into `dbus-return-values-table'. - (while (not (gethash key dbus-return-values-table nil)) + (while (eq (gethash key dbus-return-values-table :ignore) :ignore) (read-event nil nil 0.1)) ;; Cleanup `dbus-return-values-table'. Return the result. @@ -368,9 +368,12 @@ ;; Return a message when it is a message call. (when (= dbus-message-type-method-call (nth 2 event)) (dbus-ignore-errors - (apply 'dbus-method-return-internal - (nth 1 event) (nth 3 event) (nth 4 event) - (if (consp result) result (list result)))))) + (if (eq result :ignore) + (dbus-method-return-internal + (nth 1 event) (nth 3 event) (nth 4 event)) + (apply 'dbus-method-return-internal + (nth 1 event) (nth 3 event) (nth 4 event) + (if (consp result) result (list result))))))) ;; Error handling. (dbus-error ;; Return an error message when it is a message call.