From: Reiner Steib Date: Thu, 2 Dec 2004 22:31:50 +0000 (+0000) Subject: (gnus-summary-limit-to-recipient): New function. X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=9d3029866f622ffba7da9d559b552c0fbcc5aa30 (gnus-summary-limit-to-recipient): New function. Suggested David Mazieres in analogy to rmail-summary-by-recipients. (gnus-summary-limit-map, gnus-summary-make-menu-bar): Add it. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c5f17bf88..a8fb31a15 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2004-12-02 Reiner Steib + + * gnus-sum.el (gnus-summary-limit-to-recipient): New function. + Suggested David Mazieres in analogy to rmail-summary-by-recipients. + (gnus-summary-limit-map, gnus-summary-make-menu-bar): Add it. + 2004-12-02 Katsumi Yamaoka * message.el (message-forward-make-body-mml): Remove headers diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 47da8075d..3ac31801b 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1839,7 +1839,8 @@ increase the score of each group you read." "C" gnus-summary-limit-mark-excluded-as-read "o" gnus-summary-insert-old-articles "N" gnus-summary-insert-new-articles - "r" gnus-summary-limit-to-replied) + "r" gnus-summary-limit-to-replied + "R" gnus-summary-limit-to-recipient) (gnus-define-keys (gnus-summary-goto-map "G" gnus-summary-mode-map) "n" gnus-summary-next-unread-article @@ -2476,6 +2477,7 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs)))) ["Marks..." gnus-summary-limit-to-marks t] ["Subject..." gnus-summary-limit-to-subject t] ["Author..." gnus-summary-limit-to-author t] + ["Recipient..." gnus-summary-limit-to-recipient t] ["Age..." gnus-summary-limit-to-age t] ["Extra..." gnus-summary-limit-to-extra t] ["Score..." gnus-summary-limit-to-score t] @@ -7676,6 +7678,41 @@ If NOT-MATCHING, excluding articles that have authors that match a regexp." current-prefix-arg)) (gnus-summary-limit-to-subject from "from" not-matching)) +(defun gnus-summary-limit-to-recipient (recipient &optional not-matching) + "Limit the summary buffer to articles with the given RECIPIENT. + +To and Cc headers are checked. You need to include them in +`nnmail-extra-headers'." + ;; Unlike `rmail-summary-by-recipients', doesn't include From. + (interactive + (list (read-string (format "%s recipient (regexp): " + (if current-prefix-arg "Exclude" "Limit to"))) + current-prefix-arg)) + (when (not (equal "" recipient)) + (prog1 (let* ((articles1 + (if (memq 'To nnmail-extra-headers) + (gnus-summary-find-matching + (cons 'extra 'To) recipient 'all nil nil + not-matching) + (gnus-message + 1 "`To' isn't present in `nnmail-extra-headers'") + (sit-for 1) + nil)) + (articles2 + (if (memq 'Cc nnmail-extra-headers) + (gnus-summary-find-matching + (cons 'extra 'Cc) recipient 'all nil nil + not-matching) + (gnus-message + 1 "`Cc' isn't present in `nnmail-extra-headers'") + (sit-for 1) + nil)) + (articles (nconc articles1 articles2))) + (unless articles + (error "Found no matches for \"%s\"" recipient)) + (gnus-summary-limit articles)) + (gnus-summary-position-point)))) + (defun gnus-summary-limit-to-age (age &optional younger-p) "Limit the summary buffer to articles that are older than (or equal) AGE days. If YOUNGER-P (the prefix) is non-nil, limit the summary buffer to