changeset 102110:4df6195e1d5e

(rmail-get-new-mail-filter-spam): Move here from rmail.el.
author Glenn Morris <rgm@gnu.org>
date Thu, 19 Feb 2009 03:29:58 +0000
parents 66d7dedd5eaf
children 206623e4bc00
files lisp/mail/rmail-spam-filter.el
diffstat 1 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmail-spam-filter.el	Thu Feb 19 03:25:46 2009 +0000
+++ b/lisp/mail/rmail-spam-filter.el	Thu Feb 19 03:29:58 2009 +0000
@@ -351,6 +351,30 @@
         (setq return-value t)))
     return-value))
 
+(defun rmail-get-new-mail-filter-spam (nnew)
+  "Check the most NNEW recent messages for spam."
+  (let* ((nold (- rmail-total-messages nnew))
+	 (nspam 0)
+	 (nscan (1+ nold)))
+    (while (<= nscan rmail-total-messages)
+      (or (rmail-spam-filter nscan)
+	  (setq nspam (1+ nspam)))
+      (setq nscan (1+ nscan)))
+    (when (> nspam 0)
+      ;; Otherwise the expunge prompt leaves the raw mbox buffer showing.
+      (rmail-show-message (rmail-first-unseen-message) 1)
+      (if (rmail-expunge-confirmed) (rmail-only-expunge t))
+      ;; Swap back, else get-new-mail-1 gets confused.
+      (rmail-swap-buffers-maybe)
+      (widen))
+    ;; Return a message based on the number of spam messages found.
+    (cond
+     ((zerop nspam) "")
+     ((= 1 nnew) ", and it appears to be spam")
+     ((= nspam nnew) ", and all appear to be spam")
+     (t (format ", and %d appear%s to be spam" nspam
+		(if (= 1 nspam) "s" ""))))))
+
 ;; define functions for interactively adding sender/subject of a
 ;; specific message to the spam definitions while reading it, using
 ;; the menubar: