Mercurial > emacs
changeset 97898:5b7eb18818c1
Merge from gnus--devo--0
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1392
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sun, 31 Aug 2008 10:43:43 +0000 |
parents | 170486ace2df |
children | 92d8f6972f8a |
files | lisp/gnus/ChangeLog lisp/gnus/gnus-registry.el |
diffstat | 2 files changed, 35 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Sun Aug 31 10:12:04 2008 +0000 +++ b/lisp/gnus/ChangeLog Sun Aug 31 10:43:43 2008 +0000 @@ -1,3 +1,18 @@ +2008-08-30 Teodor Zlatanov <tzz@lifelogs.com> + + * gnus-spec.el (gnus-parse-simple-format): Revert last patch. + +2008-08-29 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus-spec.el (gnus-parse-simple-format): Remove trailing whitespace. + +2008-08-21 Teodor Zlatanov <tzz@lifelogs.com> + + * gnus-registry.el (gnus-registry-max-track-groups): New variable to + prevent tracking too many groups. + (gnus-registry-split-fancy-with-parent, gnus-registry-fetch-groups): + Use it. + 2008-08-11 Ralf Angeli <angeli@caeruleus.net> * gnus-art.el (gnus-article-next-page): Respect `scroll-margin' when
--- a/lisp/gnus/gnus-registry.el Sun Aug 31 10:12:04 2008 +0000 +++ b/lisp/gnus/gnus-registry.el Sun Aug 31 10:43:43 2008 +0000 @@ -149,6 +149,12 @@ :group 'gnus-registry :type 'boolean) +(defcustom gnus-registry-max-track-groups 20 + "The maximum number of non-unique group matches to check for a message ID." + :group 'gnus-registry + :type '(radio (const :format "Unlimited " nil) + (integer :format "Maximum non-unique matches: %v"))) + (defcustom gnus-registry-track-extra nil "Whether the registry should track extra data about a message. The Subject and Sender (From:) headers are currently tracked this @@ -506,7 +512,9 @@ 9 "%s is looking for matches for reference %s from [%s]" log-agent reference refstr) - (dolist (group (gnus-registry-fetch-groups reference)) + (dolist (group (gnus-registry-fetch-groups + reference + gnus-registry-max-track-groups)) (when (and group (gnus-registry-follow-group-p group)) (gnus-message 7 @@ -530,7 +538,9 @@ matches) (when (and this-sender (equal sender this-sender)) - (let ((groups (gnus-registry-fetch-groups key))) + (let ((groups (gnus-registry-fetch-groups + key + gnus-registry-max-track-groups))) (dolist (group groups) (push group found-full) (setq found (append (list group) (delete group found))))) @@ -557,7 +567,9 @@ matches) (when (and this-subject (equal subject this-subject)) - (let ((groups (gnus-registry-fetch-groups key))) + (let ((groups (gnus-registry-fetch-groups + key + gnus-registry-max-track-groups))) (dolist (group groups) (push group found-full) (setq found (append (list group) (delete group found))))) @@ -1002,8 +1014,8 @@ crumb (gnus-group-short-name crumb)))))))) -(defun gnus-registry-fetch-groups (id) - "Get the groups of a message, based on the message ID." +(defun gnus-registry-fetch-groups (id &optional max) + "Get the groups (up to MAX, if given) of a message, based on the message ID." (let ((trail (gethash id gnus-registry-hashtb)) groups) (dolist (crumb trail) @@ -1015,7 +1027,9 @@ (if (or (not (stringp crumb)) gnus-registry-use-long-group-names) crumb (gnus-group-short-name crumb)) - groups)))) + groups)) + (when (and max (> (length groups) max)) + (return)))) ;; return the list of groups groups))