# HG changeset patch # User Katsumi Yamaoka # Date 1268777197 0 # Node ID f5130b7f55819ed22f2e3a719195346cc6ee9723 # Parent 04a43f5d33368999d541693a0c3293d1a13ec7c1# Parent 6c48d0b283da0eb66a0076add59e0e184785ab26 Merge from mainline. diff -r 04a43f5d3336 -r f5130b7f5581 lisp/ChangeLog --- a/lisp/ChangeLog Tue Mar 16 00:21:21 2010 +0000 +++ b/lisp/ChangeLog Tue Mar 16 22:06:37 2010 +0000 @@ -1,3 +1,8 @@ +2010-03-16 Michael Albinus + + * net/secrets.el (secrets-enabled): New variable. Use it instead + of a subfeature. + 2010-03-15 Michael Albinus * net/secrets.el (top): Register the D-Bus signals only when the diff -r 04a43f5d3336 -r f5130b7f5581 lisp/net/secrets.el --- a/lisp/net/secrets.el Tue Mar 16 00:21:21 2010 +0000 +++ b/lisp/net/secrets.el Tue Mar 16 22:06:37 2010 +0000 @@ -34,11 +34,9 @@ ;; into your .emacs: ;; ;; (require 'secrets) - -;; It can be checked afterwards, whether there is a daemon providing -;; this interface: ;; -;; (featurep 'secrets 'enabled) +;; Afterwards, the variable `secrets-enabled' is non-nil when there is +;; a daemon providing this interface. ;; The atomic objects to be managed by the Secret Service API are ;; secret items, which are something an application wishes to store @@ -150,6 +148,9 @@ (require 'dbus) +(defvar secrets-enabled nil + "Whether there is a daemon offering the Secret Service API." + (defvar secrets-debug t "Write debug messages") @@ -664,38 +665,37 @@ :session secrets-service item-path secrets-interface-item "Delete"))))) -(if (dbus-ping :session secrets-service 100) +(when (dbus-ping :session secrets-service 100) - (progn - ;; We must reset all variables, when there is a new instance of - ;; the "org.freedesktop.secrets" service. - (dbus-register-signal - :session dbus-service-dbus dbus-path-dbus - dbus-interface-dbus "NameOwnerChanged" - (lambda (&rest args) - (when secrets-debug (message "Secret Service has changed: %S" args)) - (setq secrets-session-path secrets-empty-path - secrets-prompt-signal nil - secrets-collection-paths nil)) - secrets-service) + ;; We must reset all variables, when there is a new instance of the + ;; "org.freedesktop.secrets" service. + (dbus-register-signal + :session dbus-service-dbus dbus-path-dbus + dbus-interface-dbus "NameOwnerChanged" + (lambda (&rest args) + (when secrets-debug (message "Secret Service has changed: %S" args)) + (setq secrets-session-path secrets-empty-path + secrets-prompt-signal nil + secrets-collection-paths nil)) + secrets-service) - ;; We want to refresh our cache, when there is a change in - ;; collections. - (dbus-register-signal - :session secrets-service secrets-path - secrets-interface-service "CollectionCreated" - 'secrets-collection-handler) + ;; We want to refresh our cache, when there is a change in + ;; collections. + (dbus-register-signal + :session secrets-service secrets-path + secrets-interface-service "CollectionCreated" + 'secrets-collection-handler) - (dbus-register-signal - :session secrets-service secrets-path - secrets-interface-service "CollectionDeleted" - 'secrets-collection-handler) + (dbus-register-signal + :session secrets-service secrets-path + secrets-interface-service "CollectionDeleted" + 'secrets-collection-handler) - ;; We shall inform, whether the secret service is enabled on - ;; this machine. - (provide 'secrets '(enabled))) + ;; We shall inform, whether the secret service is enabled on this + ;; machine. + (setq secrets-enabled t))) - (provide 'secrets)) +(provide 'secrets) ;;; TODO: