Mercurial > emacs
changeset 87093:6cb7edfb2f4e
* net/dbus.el (dbus-hash-table=): Allow nil as wildcard in the
interface and member fields.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Wed, 05 Dec 2007 21:59:12 +0000 |
parents | 1ddad0de60e5 |
children | 9ddfcd9ca5e3 |
files | lisp/ChangeLog lisp/net/dbus.el |
diffstat | 2 files changed, 19 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Dec 05 21:53:40 2007 +0000 +++ b/lisp/ChangeLog Wed Dec 05 21:59:12 2007 +0000 @@ -1,3 +1,8 @@ +2007-12-05 Michael Albinus <michael.albinus@gmx.de> + + * net/dbus.el (dbus-hash-table=): Allow nil as wildcard in the + interface and member fields. + 2007-12-05 Glenn Morris <rgm@gnu.org> * eshell/em-alias.el (pcomplete-stub): Define for compiler.
--- a/lisp/net/dbus.el Wed Dec 05 21:53:40 2007 +0000 +++ b/lisp/net/dbus.el Wed Dec 05 21:59:12 2007 +0000 @@ -55,15 +55,24 @@ (and (listp x) (listp y) ;; Bus symbol, either :system or :session. - (symbolp (car x)) (symbolp (car y)) (equal (car x) (car y)) + (symbolp (car x)) (symbolp (car y)) (equal (car x) (car y)) ;; Interface. - (stringp (cadr x)) (stringp (cadr y)) (string-equal (cadr x) (cadr y)) + (or + (null (cadr x)) (null (cadr y)) ; wildcard + (and + (stringp (cadr x)) (stringp (cadr y)) (string-equal (cadr x) (cadr y)))) ;; Member. - (stringp (caddr x)) (stringp (caddr y)) (string-equal (caddr x) (caddr y)))) + (or + (null (caddr x)) (null (caddr y)) ; wildcard + (and + (stringp (caddr x)) (stringp (caddr y)) + (string-equal (caddr x) (caddr y)))))) -(define-hash-table-test 'dbus-hash-table-test - 'dbus-hash-table= 'sxhash) +(define-hash-table-test 'dbus-hash-table-test 'dbus-hash-table= 'sxhash) +;; When we assume that interface and and member are always strings in +;; the key, we could use `equal' as test function. But we want to +;; have also `nil' there, being a wildcard. (setq dbus-registered-functions-table (make-hash-table :test 'dbus-hash-table-test))