summaryrefslogtreecommitdiff
path: root/lisp/net/dbus.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2013-12-05 16:29:59 +0100
committerMichael Albinus <michael.albinus@gmx.de>2013-12-05 16:29:59 +0100
commitb85eff45cf7f92b836a32d0d70ecd2e5cfd4ea0c (patch)
treed861648a1f6e3e5fd09be3278221319cd2b6729a /lisp/net/dbus.el
parent8bea269da3f05149177d8dd6f43991f1cd61bcaf (diff)
downloademacs-b85eff45cf7f92b836a32d0d70ecd2e5cfd4ea0c.tar.gz
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.
Diffstat (limited to 'lisp/net/dbus.el')
-rw-r--r--lisp/net/dbus.el28
1 files changed, 15 insertions, 13 deletions
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