Mercurial > emacs
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. |