diff lisp/gnus/nnmail.el @ 90361:a7364c1a561e

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-40 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 135-143) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 49-55) - Merge from emacs--devo--0 - Update from CVS - Update from CVS: Makefile.in (release-*): New targets.
author Miles Bader <miles@gnu.org>
date Thu, 09 Mar 2006 07:15:37 +0000
parents c5406394f567 10ae0483645d
children 858cb33ae39d
line wrap: on
line diff
--- a/lisp/gnus/nnmail.el	Thu Mar 09 01:23:04 2006 +0000
+++ b/lisp/gnus/nnmail.el	Thu Mar 09 07:15:37 2006 +0000
@@ -1425,11 +1425,12 @@
 
      ;; Not in cache, compute a regexp for the field/value pair.
      (t
-      (let* ((field (nth 0 split))
-	     (value (nth 1 split))
-	     partial-front
-	     partial-rear
-	     regexp)
+      (let ((field (nth 0 split))
+	    (value (nth 1 split))
+	    (split-rest (cddr split))
+	    partial-front
+	    partial-rear
+	    regexp)
 	(if (symbolp value)
 	    (setq value (cdr (assq value nnmail-split-abbrev-alist))))
 	(if (and (>= (length value) 2)
@@ -1441,7 +1442,13 @@
 		 (string= ".*" (substring value -2)))
 	    (setq value (substring value 0 -2)
 		  partial-rear ""))
-	(when nnmail-split-fancy-match-partial-words
+	;; Invert the match-partial-words behavior if the optional
+	;; last element is specified.
+	(while (eq (car split-rest) '-)
+	  (setq split-rest (cddr split-rest)))
+	(when (if (cadr split-rest)
+		  (not nnmail-split-fancy-match-partial-words)
+		nnmail-split-fancy-match-partial-words)
 	  (setq partial-front ""
 		partial-rear ""))
 	(setq regexp (concat "^\\(\\("
@@ -1456,7 +1463,7 @@
 			     (or partial-rear "\\>")))
 	(push (cons split regexp) nnmail-split-cache)
 	;; Now that it's in the cache, just call nnmail-split-it again
-    ;; on the same split, which will find it immediately in the cache.
+	;; on the same split, which will find it immediately in the cache.
 	(nnmail-split-it split))))))
 
 (defun nnmail-expand-newtext (newtext)