From: Teodor Zlatanov Date: Fri, 15 Apr 2011 14:29:02 +0000 (+0000) Subject: nus-registry.el (gnus-registry--split-fancy-with-parent-internal): Track by subject... X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~276 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ba3bd5b6c3771010fa37ec48170eee8323b55bf1;p=emacs.git nus-registry.el (gnus-registry--split-fancy-with-parent-internal): Track by subject first, then sender. --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 6522e57198d..be6f3737ae1 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,8 +1,14 @@ +2011-04-15 Teodor Zlatanov + + * gnus-registry.el (gnus-registry--split-fancy-with-parent-internal): + Track by subject first, then sender. + 2011-04-15 Stefan Monnier * message.el (message-bogus-system-names): Replace ^...$ => \`...\'. - * gnus.el (gnus-splash-svg-color-symbols): Don't use insert-file from Lisp. + * gnus.el (gnus-splash-svg-color-symbols): Don't use insert-file from + Lisp. * gnus-draft.el (gnus-draft-setup): New arg `dont-pop'. (gnus-draft-send): Use it to avoid popping diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 9f95ce756ab..77ed5a55aed 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el @@ -425,6 +425,31 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (setq found (gnus-registry-post-process-groups "references" refstr found))) + ;; else: there were no matches, now try the extra tracking by subject + (when (and (null found) + (memq 'subject gnus-registry-track-extra) + subject + (< gnus-registry-minimum-subject-length (length subject))) + (let ((groups (apply + 'append + (mapcar + (lambda (reference) + (gnus-registry-get-id-key reference 'group)) + (registry-lookup-secondary-value db 'subject subject))))) + (setq found + (loop for group in groups + when (gnus-registry-follow-group-p group) + do (gnus-message + ;; warn more if gnus-registry-track-extra + (if gnus-registry-track-extra 7 9) + "%s (extra tracking) traced subject '%s' to %s" + log-agent subject group) + collect group)) + ;; filter the found groups and return them + ;; the found groups are NOT the full groups + (setq found (gnus-registry-post-process-groups + "subject" subject found)))) + ;; else: there were no matches, try the extra tracking by sender (when (and (null found) (memq 'sender gnus-registry-track-extra) @@ -453,30 +478,6 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (setq found (gnus-registry-post-process-groups "sender" sender found))) - ;; else: there were no matches, now try the extra tracking by subject - (when (and (null found) - (memq 'subject gnus-registry-track-extra) - subject - (< gnus-registry-minimum-subject-length (length subject))) - (let ((groups (apply - 'append - (mapcar - (lambda (reference) - (gnus-registry-get-id-key reference 'group)) - (registry-lookup-secondary-value db 'subject subject))))) - (setq found - (loop for group in groups - when (gnus-registry-follow-group-p group) - do (gnus-message - ;; warn more if gnus-registry-track-extra - (if gnus-registry-track-extra 7 9) - "%s (extra tracking) traced subject '%s' to %s" - log-agent subject group) - collect group)) - ;; filter the found groups and return them - ;; the found groups are NOT the full groups - (setq found (gnus-registry-post-process-groups - "subject" subject found)))) ;; after the (cond) we extract the actual value safely (car-safe found)))