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.