comparison lisp/net/dbus.el @ 101525:5951f5343bb5

* net/dbus.el (dbus-event-error-hooks): New variable. (dbus-handle-event): Use it.
author Michael Albinus <michael.albinus@gmx.de>
date Mon, 26 Jan 2009 20:26:10 +0000
parents 4502d2277f2c
children df3f6041e002
comparison
equal deleted inserted replaced
101524:58326376a152 101525:5951f5343bb5
94 (dbus-error (when dbus-debug (signal (car err) (cdr err)))))) 94 (dbus-error (when dbus-debug (signal (car err) (cdr err))))))
95 95
96 (put 'dbus-ignore-errors 'lisp-indent-function 0) 96 (put 'dbus-ignore-errors 'lisp-indent-function 0)
97 (put 'dbus-ignore-errors 'edebug-form-spec '(form body)) 97 (put 'dbus-ignore-errors 'edebug-form-spec '(form body))
98 (font-lock-add-keywords 'emacs-lisp-mode '("\\<dbus-ignore-errors\\>")) 98 (font-lock-add-keywords 'emacs-lisp-mode '("\\<dbus-ignore-errors\\>"))
99
100 (defvar dbus-event-error-hooks nil
101 "Functions to be called when a D-Bus error happens in the event handler.
102 Every function must accept one argument, the error variable
103 catched in `condition-case' by `dbus-error'.")
99 104
100 105
101 ;;; Hash table of registered functions. 106 ;;; Hash table of registered functions.
102 107
103 ;; We create it here. So we have a simple test in dbusbind.c, whether 108 ;; We create it here. So we have a simple test in dbusbind.c, whether
372 (when (= dbus-message-type-method-call (nth 2 event)) 377 (when (= dbus-message-type-method-call (nth 2 event))
373 (dbus-ignore-errors 378 (dbus-ignore-errors
374 (dbus-method-error-internal 379 (dbus-method-error-internal
375 (nth 1 event) (nth 3 event) (nth 4 event) (cadr err)))) 380 (nth 1 event) (nth 3 event) (nth 4 event) (cadr err))))
376 ;; Propagate D-Bus error messages. 381 ;; Propagate D-Bus error messages.
382 (run-hook-with-args 'dbus-event-error-hooks err)
377 (when (or dbus-debug (= dbus-message-type-error (nth 2 event))) 383 (when (or dbus-debug (= dbus-message-type-error (nth 2 event)))
378 (signal (car err) (cdr err)))))) 384 (signal (car err) (cdr err))))))
379 385
380 (defun dbus-event-bus-name (event) 386 (defun dbus-event-bus-name (event)
381 "Return the bus name the event is coming from. 387 "Return the bus name the event is coming from.