From: Ted Zlatanov Date: Mon, 17 Oct 2011 17:24:16 +0000 (-0400) Subject: Introduce gnus-registry-enabled and use it consistently. X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=2960194fb4cc6ad0af5b9a64c350110cd2509c54 Introduce gnus-registry-enabled and use it consistently. * 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 . --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f70fd1c6d..8dfe8f3e5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,21 @@ +2011-10-17 Teodor Zlatanov + + * 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 . + 2011-10-17 Daiki Ueno * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el index f8ff52f12..652e816e5 100644 --- a/lisp/gnus-registry.el +++ b/lisp/gnus-registry.el @@ -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 diff --git a/lisp/nnir.el b/lisp/nnir.el index 0be6a17d5..cbd3f743b 100644 --- a/lisp/nnir.el +++ b/lisp/nnir.el @@ -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) diff --git a/lisp/nnmairix.el b/lisp/nnmairix.el index 3d1ac02b6..f81aa03c2 100644 --- a/lisp/nnmairix.el +++ b/lisp/nnmairix.el @@ -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) diff --git a/lisp/nnregistry.el b/lisp/nnregistry.el index 359050c35..75a640a42 100644 --- a/lisp/nnregistry.el +++ b/lisp/nnregistry.el @@ -36,8 +36,11 @@ (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)