From: Glenn Morris Date: Thu, 19 Feb 2009 03:29:58 +0000 (+0000) Subject: (rmail-get-new-mail-filter-spam): Move here from rmail.el. X-Git-Url: http://git.hcoop.net/bpt/emacs.git/commitdiff_plain/92ef96ee8ece5cfd8fcd728fcf35cbac373d4041 (rmail-get-new-mail-filter-spam): Move here from rmail.el. --- diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el index f6c2c81990..bd2dfaa12f 100644 --- a/lisp/mail/rmail-spam-filter.el +++ b/lisp/mail/rmail-spam-filter.el @@ -351,6 +351,30 @@ it from rmail file. Called for each new message retrieved by (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: