From b85eff45cf7f92b836a32d0d70ecd2e5cfd4ea0c Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 5 Dec 2013 16:29:59 +0100 Subject: [PATCH] Minor changes, detected by test suite. * net/dbus.el (dbus-unregister-service) (dbus-escape-as-identifier, dbus-unescape-from-identifier): Fix docstring. (dbus-unregister-service): Skip :serial entries in `dbus-registered-objects-table'. (dbus-byte-array-to-string): New optional arg MULTIBYTE. --- lisp/ChangeLog | 9 +++++++++ lisp/net/dbus.el | 28 +++++++++++++++------------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ec02942f2f7..30bbe57f352 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2013-12-05 Michael Albinus + + * net/dbus.el (dbus-unregister-service) + (dbus-escape-as-identifier, dbus-unescape-from-identifier): + Fix docstring. + (dbus-unregister-service): Skip :serial entries in + `dbus-registered-objects-table'. + (dbus-byte-array-to-string): New optional arg MULTIBYTE. + 2013-12-04 Teodor Zlatanov * emacs-lisp/lisp-mnt.el (lm-keywords-list): Trim whitespace diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index db444ae199f..a3f19b626f2 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el @@ -521,7 +521,7 @@ denoting the bus address. SERVICE must be a known service name. The function returns a keyword, indicating the result of the operation. One of the following keywords is returned: -`:released': Service has become the primary owner of the name. +`:released': We successfully released the service. `:non-existent': Service name does not exist on this bus. @@ -530,12 +530,13 @@ queue of this service." (maphash (lambda (key value) - (dolist (elt value) - (ignore-errors - (when (and (equal bus (cadr key)) (string-equal service (cadr elt))) - (unless - (puthash key (delete elt value) dbus-registered-objects-table) - (remhash key dbus-registered-objects-table)))))) + (unless (equal :serial (car key)) + (dolist (elt value) + (ignore-errors + (when (and (equal bus (cadr key)) (string-equal service (cadr elt))) + (unless + (puthash key (delete elt value) dbus-registered-objects-table) + (remhash key dbus-registered-objects-table))))))) dbus-registered-objects-table) (let ((reply (dbus-call-method bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus @@ -827,12 +828,13 @@ STRING shall be UTF8 coded." (dolist (elt (string-to-list string) (append '(:array) result)) (setq result (append result (list :byte elt))))))) -(defun dbus-byte-array-to-string (byte-array) +(defun dbus-byte-array-to-string (byte-array &optional multibyte) "Transforms BYTE-ARRAY into UTF8 coded string. BYTE-ARRAY must be a list of structure (c1 c2 ...), or a byte -array as produced by `dbus-string-to-byte-array'." +array as produced by `dbus-string-to-byte-array'. The resulting +string is unibyte encoded, unless MULTIBYTE is non-nil." (apply - 'string + (if multibyte 'string 'unibyte-string) (if (equal byte-array '(:array :signature "y")) nil (let (result) @@ -855,7 +857,7 @@ and a smaller allowed set. As a special case, \"\" is escaped to \"_\". Returns the escaped string. Algorithm taken from -telepathy-glib's `tp-escape-as-identifier'." +telepathy-glib's `tp_escape_as_identifier'." (if (zerop (length string)) "_" (replace-regexp-in-string @@ -864,8 +866,8 @@ telepathy-glib's `tp-escape-as-identifier'." string))) (defun dbus-unescape-from-identifier (string) - "Retrieve the original string from the encoded STRING. -STRING must have been coded with `dbus-escape-as-identifier'" + "Retrieve the original string from the encoded STRING as unibyte string. +STRING must have been encoded with `dbus-escape-as-identifier'." (if (string-equal string "_") "" (replace-regexp-in-string -- 2.39.2