changeset 107397:6c48d0b283da

* net/secrets.el (secrets-enabled): New variable. Use it instead of a subfeature.
author Michael Albinus <albinus@detlef>
date Tue, 16 Mar 2010 17:45:07 +0100
parents d5de7ba3f80f
children f5130b7f5581 ef684a3be0f9
files lisp/ChangeLog lisp/net/secrets.el
diffstat 2 files changed, 36 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Mar 16 00:27:31 2010 +0100
+++ b/lisp/ChangeLog	Tue Mar 16 17:45:07 2010 +0100
@@ -1,3 +1,8 @@
+2010-03-16  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/secrets.el (secrets-enabled): New variable.  Use it instead
+	of a subfeature.
+
 2010-03-15  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/secrets.el (top): Register the D-Bus signals only when the
--- a/lisp/net/secrets.el	Tue Mar 16 00:27:31 2010 +0100
+++ b/lisp/net/secrets.el	Tue Mar 16 17:45:07 2010 +0100
@@ -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: