Introduce gnus-registry-enabled and use it consistently.
authorTed Zlatanov <tzz@lifelogs.com>
Mon, 17 Oct 2011 17:24:16 +0000 (13:24 -0400)
committerTed Zlatanov <tzz@lifelogs.com>
Mon, 17 Oct 2011 17:24:16 +0000 (13:24 -0400)
* gnus-registry.el (gnus-registry-enabled): Add new variable.
(gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask
only while we need to find out if it should be t or nil.
(gnus-registry-initialize): Don't set `gnus-registry-install' to t.
(gnus-registry-install-hooks): Set `gnus-registry-enabled' to t when
the registry is installed.  Set it to nil when it's unloaded.
(gnus-registry-install-p): Provide user guidance for the initial value
of `gnus-registry-install' when it's 'ask, otherwise return its value.
* nnregistry.el (nnregistry-open-server, nnregistry-server-opened): Use
`gnus-registry-enabled' instead of `gnus-registry-install'.
* nnmairix.el (nnmairix-determine-original-group-from-registry): Use
`gnus-registry-enabled' instead of `gnus-registry-install'.
* nnir.el (nnir-mode): Use `gnus-registry-enabled' instead of
`gnus-registry-install'.
From Dave Abrahams <dave@boostpro.com>.

lisp/ChangeLog
lisp/gnus-registry.el
lisp/nnir.el
lisp/nnmairix.el
lisp/nnregistry.el

index f70fd1c..8dfe8f3 100644 (file)
@@ -1,3 +1,21 @@
+2011-10-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * gnus-registry.el (gnus-registry-enabled): Add new variable.
+       (gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask
+       only while we need to find out if it should be t or nil.
+       (gnus-registry-initialize): Don't set `gnus-registry-install' to t.
+       (gnus-registry-install-hooks): Set `gnus-registry-enabled' to t when
+       the registry is installed.  Set it to nil when it's unloaded.
+       (gnus-registry-install-p): Provide user guidance for the initial value
+       of `gnus-registry-install' when it's 'ask, otherwise return its value.
+       * nnregistry.el (nnregistry-open-server, nnregistry-server-opened): Use
+       `gnus-registry-enabled' instead of `gnus-registry-install'.
+       * nnmairix.el (nnmairix-determine-original-group-from-registry): Use
+       `gnus-registry-enabled' instead of `gnus-registry-install'.
+       * nnir.el (nnir-mode): Use `gnus-registry-enabled' instead of
+       `gnus-registry-install'.
+       From Dave Abrahams <dave@boostpro.com>.
+
 2011-10-17  Daiki Ueno  <ueno@unixuser.org>
 
        * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the
index f8ff52f..652e816 100644 (file)
@@ -164,6 +164,8 @@ nnmairix groups are specifically excluded because they are ephemeral."
                  (const :tag "Always Install" t)
                  (const :tag "Ask Me" ask)))
 
+(defvar gnus-registry-enabled)
+
 (defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning.
 
 (defvar gnus-registry-misc-menus nil)   ; ugly way to keep the menus
@@ -873,8 +875,9 @@ Uses `gnus-registry-marks' to find what shortcuts to install."
 
                  ;; if this is called and the user doesn't want the
                  ;; registry enabled, we'll ask anyhow
-                 (when (eq gnus-registry-install nil)
-                   (setq gnus-registry-install 'ask))
+                 (unless gnus-registry-install
+                   (let ((gnus-registry-install 'ask))
+                     (gnus-registry-install-p)))
 
                  ;; now the user is asked if gnus-registry-install is 'ask
                  (when (gnus-registry-install-p)
@@ -1151,7 +1154,6 @@ only the last one's marks are returned."
 "Initialize the Gnus registry."
   (interactive)
   (gnus-message 5 "Initializing the registry")
-  (setq gnus-registry-install t)        ; in case it was 'ask or nil
   (gnus-registry-install-hooks)
   (gnus-registry-install-shortcuts)
   (gnus-registry-read))
@@ -1160,6 +1162,7 @@ only the last one's marks are returned."
 (defun gnus-registry-install-hooks ()
   "Install the registry hooks."
   (interactive)
+  (setq gnus-registry-enabled t)
   (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action)
   (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action)
   (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action)
@@ -1181,23 +1184,25 @@ only the last one's marks are returned."
   (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save)
   (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read)
 
-  (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids))
+  (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)
+  (setq gnus-registry-enabled nil))
 
 (add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook)
 
 (defun gnus-registry-install-p ()
+  "If the registry is not already enabled, and `gnus-registry-install' is t,
+the registry is enabled.  If `gnus-registry-install' is `ask',
+the user is asked first.  Returns non-nil iff the registry is enabled."
   (interactive)
-  (when (eq gnus-registry-install 'ask)
-    (setq gnus-registry-install
-          (gnus-y-or-n-p
-           (concat "Enable the Gnus registry?  "
-                   "See the variable `gnus-registry-install' "
-                   "to get rid of this query permanently. ")))
-    (when gnus-registry-install
-      ;; we just set gnus-registry-install to t, so initialize the registry!
+  (unless gnus-registry-enabled
+    (when (if (eq gnus-registry-install 'ask)
+              (gnus-y-or-n-p
+               (concat "Enable the Gnus registry?  "
+                       "See the variable `gnus-registry-install' "
+                       "to get rid of this query permanently. "))
+            gnus-registry-install)
       (gnus-registry-initialize)))
-;;; we could call it here: (customize-variable 'gnus-registry-install)
-  gnus-registry-install)
+  gnus-registry-enabled)
 
 ;; TODO: a few things
 
index 0be6a17..cbd3f74 100644 (file)
@@ -290,8 +290,7 @@ is `(valuefunc member)'."
   (autoload 'nnimap-command "nnimap")
   (autoload 'nnimap-possibly-change-group "nnimap")
   (autoload 'nnimap-make-thread-query "nnimap")
-  (autoload 'gnus-registry-action "gnus-registry")
-  (defvar gnus-registry-install))
+  (autoload 'gnus-registry-action "gnus-registry"))
 
 
 (nnoo-declare nnir)
@@ -1741,8 +1740,7 @@ environment unless `not-global' is non-nil."
   (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir)
     (setq gnus-summary-line-format
          (or nnir-summary-line-format gnus-summary-line-format))
-    (when (and (boundp 'gnus-registry-install)
-                      (eq gnus-registry-install t))
+    (when (bound-and-true-p gnus-registry-enabled)
       (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t)
       (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t)
       (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t)
index 3d1ac02..f81aa03 100644 (file)
@@ -603,7 +603,6 @@ Other back ends might or might not work.")
     nil))
 
 ;; Silence byte-compiler.
-(defvar gnus-registry-install)
 (autoload 'gnus-registry-get-id-key "gnus-registry")
 
 (deffoo nnmairix-request-set-mark (group actions &optional server)
@@ -1636,8 +1635,7 @@ search in raw mode."
 
 (defun nnmairix-determine-original-group-from-registry (mid)
   "Try to determinale original group for message-id MID from the registry."
-  (when (and (boundp 'gnus-registry-install)
-            gnus-registry-install)
+  (when (bound-and-true-p gnus-registry-enabled)
     (unless (string-match "^<" mid)
       (set mid (concat "<" mid)))
     (unless (string-match ">$" mid)
index 359050c..75a640a 100644 (file)
 
 (nnoo-declare nnregistry)
 
+;; Suppress byte-compiler warning `reference to free variable'
+(defvar gnus-registry-enabled)
+
 (deffoo nnregistry-server-opened (server)
-  (eq gnus-registry-install t))
+  gnus-registry-enabled)
 
 (deffoo nnregistry-close-server (server)
   t)
@@ -46,7 +49,7 @@
   nil)
 
 (deffoo nnregistry-open-server (server &optional defs)
-  (eq gnus-registry-install t))
+  gnus-registry-enabled)
 
 (defvar nnregistry-within-nnregistry nil)