Synch to No Gnus 200412031558.
authoryamaoka <yamaoka>
Sat, 4 Dec 2004 03:43:40 +0000 (03:43 +0000)
committeryamaoka <yamaoka>
Sat, 4 Dec 2004 03:43:40 +0000 (03:43 +0000)
lisp/ChangeLog
lisp/gnus-sum.el

index af162aa..6a9b2cb 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus-sum.el (gnus-summary-limit-to-recipient): Implement
+       not-matching option.
+
 2004-12-02  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-sum.el (gnus-summary-limit-to-recipient): New function.
index 0fa4cfc..74f59dc 100644 (file)
@@ -7700,6 +7700,8 @@ If NOT-MATCHING, excluding articles that have authors that match a regexp."
 (defun gnus-summary-limit-to-recipient (recipient &optional not-matching)
   "Limit the summary buffer to articles with the given RECIPIENT.
 
+If NOT-MATCHING, exclude 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.
@@ -7708,7 +7710,7 @@ To and Cc headers are checked.  You need to include them in
                              (if current-prefix-arg "Exclude" "Limit to")))
         current-prefix-arg))
   (when (not (equal "" recipient))
-    (prog1 (let* ((articles1
+    (prog1 (let* ((to
                   (if (memq 'To nnmail-extra-headers)
                       (gnus-summary-find-matching
                        (cons 'extra 'To) recipient 'all nil nil
@@ -7717,7 +7719,7 @@ To and Cc headers are checked.  You need to include them in
                      1 "`To' isn't present in `nnmail-extra-headers'")
                     (sit-for 1)
                     nil))
-                 (articles2
+                 (cc
                   (if (memq 'Cc nnmail-extra-headers)
                       (gnus-summary-find-matching
                        (cons 'extra 'Cc) recipient 'all nil nil
@@ -7726,7 +7728,13 @@ To and Cc headers are checked.  You need to include them in
                      1 "`Cc' isn't present in `nnmail-extra-headers'")
                     (sit-for 1)
                     nil))
-                 (articles (nconc articles1 articles2)))
+                 (articles
+                  (if not-matching
+                      ;; We need the numbers that are in both lists:
+                      (mapcar (lambda (a)
+                                (and (memq a to) a))
+                              cc)
+                    (nconc to cc))))
             (unless articles
               (error "Found no matches for \"%s\"" recipient))
             (gnus-summary-limit articles))