Synch with Oort Gnus.
authoryamaoka <yamaoka>
Wed, 17 Apr 2002 08:44:45 +0000 (08:44 +0000)
committeryamaoka <yamaoka>
Wed, 17 Apr 2002 08:44:45 +0000 (08:44 +0000)
lisp/ChangeLog
lisp/gnus-sum.el
lisp/spam.el

index 33bed24..731a201 100644 (file)
@@ -1,3 +1,16 @@
+2002-04-17  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+       From Ted Zlatanov <teodor.zlatanov@divine.com>.
+
+       * spam.el (spam-whitelist, spam-blacklist, spam-enter-whitelist):
+       Improve docstring.
+       (spam-enter-blacklist): New command.
+
+       * gnus-sum.el (gnus-spam-mark): New mark.
+       (gnus-auto-expirable-marks): Add gnus-spam-mark.
+       (gnus-summary-make-tool-bar): Correct conditional.
+       (gnus-summary-limit-to-unread): Add gnus-spam-mark.
+       (gnus-summary-mark-as-spam): New command.
+
 2002-04-13  Josh Huber  <huber@alum.wpi.edu>
 
        * mml-sec.el (mml-secure-message): changed to support arbritrary
index 5895bd2..024e8f4 100644 (file)
@@ -447,6 +447,11 @@ this variable specifies group names."
   :group 'gnus-summary-marks
   :type 'character)
 
+(defcustom gnus-spam-mark ?H
+  "*Mark used for spam articles."
+  :group 'gnus-summary-marks
+  :type 'character)
+
 (defcustom gnus-souped-mark ?F
   "*Mark used for souped articles."
   :group 'gnus-summary-marks
@@ -563,7 +568,7 @@ this variable specifies group names."
   :type 'boolean)
 
 (defcustom gnus-auto-expirable-marks
-  (list gnus-killed-mark gnus-del-mark gnus-catchup-mark
+  (list gnus-spam-mark gnus-killed-mark gnus-del-mark gnus-catchup-mark
        gnus-low-score-mark gnus-ancient-mark gnus-read-mark
        gnus-souped-mark gnus-duplicate-mark)
   "*The list of marks converted into expiration if a group is auto-expirable."
@@ -2328,15 +2333,10 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs))))
 (defvar gnus-summary-tool-bar-map nil)
 
 ;; Emacs 21 tool bar.  Should be no-op otherwise.
-;; NB: A new function tool-bar-local-item-from-menu is added in Emacs
-;; 21.2.50+.  Considering many users use Emacs 21, use
-;; tool-bar-add-item-from-menu here.
 (defun gnus-summary-make-tool-bar ()
-  (if (and
-       (condition-case nil (require 'tool-bar) (error nil))
-       (fboundp 'tool-bar-add-item-from-menu)
-       (default-value 'tool-bar-mode)
-       (not gnus-summary-tool-bar-map))
+  (if (and (fboundp 'tool-bar-add-item-from-menu)
+          (default-value 'tool-bar-mode)
+          (not gnus-summary-tool-bar-map))
       (setq gnus-summary-tool-bar-map
            (let ((tool-bar-map (make-sparse-keymap))
                  (load-path (mm-image-load-path)))
@@ -7284,7 +7284,7 @@ If ALL is non-nil, limit strictly to unread articles."
      ;; Concat all the marks that say that an article is read and have
      ;; those removed.
      (list gnus-del-mark gnus-read-mark gnus-ancient-mark
-          gnus-killed-mark gnus-kill-file-mark
+          gnus-killed-mark gnus-spam-mark gnus-kill-file-mark
           gnus-low-score-mark gnus-expirable-mark
           gnus-canceled-mark gnus-catchup-mark gnus-sparse-mark
           gnus-duplicate-mark gnus-souped-mark)
@@ -9246,6 +9246,13 @@ the actual number of articles marked is returned."
   (interactive "p")
   (gnus-summary-mark-forward n gnus-expirable-mark))
 
+(defun gnus-summary-mark-as-spam (n)
+  "Mark N articles forward as spam.
+If N is negative, mark backward instead.  The difference between N and
+the actual number of articles marked is returned."
+  (interactive "p")
+  (gnus-summary-mark-forward n gnus-spam-mark))
+
 (defun gnus-summary-mark-article-as-replied (article)
   "Mark ARTICLE as replied to and update the summary line.
 ARTICLE can also be a list of articles."
index e2e4d93..98a4151 100644 (file)
   "When spam files are kept.")
 
 (defvar spam-whitelist (expand-file-name "whitelist" spam-directory)
-  "The location of the whitelist.")
+  "The location of the whitelist.
+The file format is one regular expression per line.
+The regular expression is matched against the address.")
                                         
 (defvar spam-blacklist (expand-file-name "blacklist" spam-directory)
-  "The location of the whitelist.")
+  "The location of the blacklist.
+The file format is one regular expression per line.
+The regular expression is matched against the address.")
 
 (defvar spam-whitelist-cache nil)
 (defvar spam-blacklist-cache nil)
 
 (defun spam-enter-whitelist (address &optional blacklist)
-  "Enter ADDRESS into the whitelist."
+  "Enter ADDRESS into the whitelist.
+Optional arg BLACKLIST, if non-nil, means to enter in the blacklist instead."
   (interactive "sAddress: ")
   (let ((file (if blacklist spam-blacklist spam-whitelist)))
     (unless (file-exists-p (file-name-directory file))
       (insert address "\n")
       (save-buffer))))
 
+(defun spam-enter-blacklist (address)
+  "Enter ADDRESS into the blacklist."
+  (interactive "sAddress: ")
+  (spam-enter-whitelist address t))
+
 (defun spam-parse-whitelist (&optional blacklist)
   (let ((file (if blacklist spam-blacklist spam-whitelist))
        contents address)