Mercurial > emacs
changeset 68276:873a6f48b596
(spam-group-ham-mark-p, spam-group-spam-mark-p)
(spam-group-spam-marks, spam-list-articles, spam-group-ham-marks):
Revert 2006-01-08 change because the functions will be used in No
Gnus.
author | Reiner Steib <Reiner.Steib@gmx.de> |
---|---|
date | Thu, 19 Jan 2006 21:42:22 +0000 |
parents | a34c3ba8e4aa |
children | a4e264f94259 |
files | lisp/gnus/ChangeLog lisp/gnus/spam.el |
diffstat | 2 files changed, 43 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog Thu Jan 19 21:12:22 2006 +0000 +++ b/lisp/gnus/ChangeLog Thu Jan 19 21:42:22 2006 +0000 @@ -1,3 +1,10 @@ +2006-01-19 Reiner Steib <Reiner.Steib@gmx.de> + + * spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p) + (spam-group-spam-marks, spam-list-articles, spam-group-ham-marks): + Revert 2006-01-08 change because the functions will be used in No + Gnus. + 2006-01-16 Katsumi Yamaoka <yamaoka@jpl.org> * nnrss.el: Update copyright.
--- a/lisp/gnus/spam.el Thu Jan 19 21:12:22 2006 +0000 +++ b/lisp/gnus/spam.el Thu Jan 19 21:42:22 2006 +0000 @@ -467,14 +467,28 @@ "Logical exclusive `or'." (and (or a b) (not (and a b)))) +(defun spam-group-ham-mark-p (group mark &optional spam) + (when (stringp group) + (let* ((marks (spam-group-ham-marks group spam)) + (marks (if (symbolp mark) + marks + (mapcar 'symbol-value marks)))) + (memq mark marks)))) + +(defun spam-group-spam-mark-p (group mark) + (spam-group-ham-mark-p group mark t)) + (defun spam-group-ham-marks (group &optional spam) (when (stringp group) - (let ((marks (car (if spam - (gnus-parameter-spam-marks group) - (gnus-parameter-ham-marks group))))) - (if (listp (car marks)) - (car marks) - marks)))) + (let* ((marks (if spam + (gnus-parameter-spam-marks group) + (gnus-parameter-ham-marks group))) + (marks (car marks)) + (marks (if (listp (car marks)) (car marks) marks))) + marks))) + +(defun spam-group-spam-marks (group) + (spam-group-ham-marks group t)) (defun spam-group-spam-contents-p (group) (if (stringp group) @@ -1036,12 +1050,23 @@ (nth 2 flist)))) (defun spam-list-articles (articles classification) - (let ((marks (mapcar 'eval (spam-group-ham-marks gnus-newsgroup-name - (eq classification 'spam)))) - list) + (let ((mark-check (if (eq classification 'spam) + 'spam-group-spam-mark-p + 'spam-group-ham-mark-p)) + list mark-cache-yes mark-cache-no) (dolist (article articles) - (if (memq (gnus-summary-article-mark article) marks) - (push article list))) + (let ((mark (gnus-summary-article-mark article))) + (unless (memq mark mark-cache-no) + (if (memq mark mark-cache-yes) + (push article list) + ;; else, we have to actually check the mark + (if (funcall mark-check + gnus-newsgroup-name + mark) + (progn + (push article list) + (push mark mark-cache-yes)) + (push mark mark-cache-no)))))) list)) (defun spam-register-routine (classification