diff lisp/gnus/spam.el @ 58835:9bdd97960431

Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-716 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-74 Update from CVS 2004-12-02 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/message.el (message-forward-make-body-mml): Remove headers according to message-forward-ignored-headers if a message is decoded. 2004-12-02 Romain Francoise <romain@orebokech.com> * lisp/gnus/message.el (message-forward-make-body-plain): Always remove headers according to message-forward-ignored-headers. 2004-11-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/lpath.el: Remove bbdb-create-internal, bbdb-records, spam-BBDB-register-routine and spam-enter-ham-BBDB. * lisp/gnus/nnrss.el (nnrss-string-as-multibyte): Redefine it as a macro in order to silence the byte compiler. * lisp/gnus/pop3.el (pop3-md5): Define it before being used. * lisp/gnus/spam.el: Fix the way to silence the byte compiler, which complained about bbdb-buffer, bbdb-create-internal, bbdb-search-simple, mail-check-payment, spam-BBDB-register-routine, spam-enter-ham-BBDB, spam-stat-buffer-change-to-non-spam, spam-stat-buffer-change-to-spam, spam-stat-buffer-is-non-spam, spam-stat-buffer-is-spam, spam-stat-load, spam-stat-register-ham-routine, spam-stat-register-spam-routine, spam-stat-save and spam-stat-split-fancy. 2004-11-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/canlock.el (canlock-password): Remove `:size 0' or `:size 1' which may confuse users. (canlock-password-for-verify): Ditto. * lisp/gnus/deuglify.el (gnus-outlook-deuglify-unwrap-stop-chars): Ditto. * lisp/gnus/gnus-art.el (gnus-emphasis-alist): Ditto. * lisp/gnus/gnus-registry.el (gnus-registry-max-entries): Ditto. * lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit): Ditto. * lisp/gnus/gnus-start.el (gnus-save-killed-list): Ditto. * lisp/gnus/gnus-sum.el (gnus-thread-hide-subtree): Ditto. (gnus-sum-thread-tree-root): Ditto. (gnus-sum-thread-tree-false-root): Ditto. (gnus-sum-thread-tree-single-indent): Ditto. * lisp/gnus/message.el (message-courtesy-message): Ditto. (message-archive-note): Ditto. (message-subscribed-address-file): Ditto. (message-user-fqdn): Ditto. * lisp/gnus/spam-report.el (spam-report-gmane-regex): Ditto. * lisp/gnus/spam.el (spam-blackhole-good-server-regex): Ditto. 2004-11-25 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/message.el (message-forbidden-properties): Fixed typo in doc string. 2004-11-25 Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/message.el (message-strip-forbidden-properties): Bind buffer-read-only (etc) to nil. 2004-11-25 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-util.el (gnus-replace-in-string): Added doc string. * lisp/gnus/nnmail.el (nnmail-split-header-length-limit): Increase to 2048 to avoid problems when splitting mails with many recipients. 2004-11-23 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/rfc2047.el (rfc2047-header-encoding-alist): Add In-Reply-To to address-mime. Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>. 2004-11-22 Marek Martin <marek.martin@mum.pri.ee> (tiny change) * lisp/gnus/nnfolder.el (nnfolder-request-create-group): Save current buffer. 2004-11-22 Reiner Steib <Reiner.Steib@gmx.de> * man/message.texi (Various Message Variables): Mention that all mail file variables are derived from `message-directory'. * man/gnus.texi (Splitting Mail): Clarify bogus group. 2004-11-16 Reiner Steib <Reiner.Steib@gmx.de> * man/gnus.texi (Filtering Spam Using The Spam ELisp Package):
author Miles Bader <miles@gnu.org>
date Tue, 07 Dec 2004 21:56:42 +0000
parents a40ae7cf2194
children cf93431040c9
line wrap: on
line diff
--- a/lisp/gnus/spam.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/spam.el	Tue Dec 07 21:56:42 2004 +0000
@@ -295,8 +295,7 @@
 
 (defcustom spam-blackhole-good-server-regex nil
   "String matching IP addresses that should not be checked in the blackholes."
-  :type '(radio (const nil)
-		(regexp :format "%t: %v\n" :size 0))
+  :type '(radio (const nil) regexp)
   :group 'spam)
 
 (defcustom spam-face 'gnus-splash-face
@@ -1257,6 +1256,9 @@
 
 ;;;; Hashcash.
 
+(eval-when-compile
+  (autoload 'mail-check-payment "hashcash"))
+
 (condition-case nil
     (progn
       (require 'hashcash)
@@ -1265,9 +1267,7 @@
 	"Check the headers for hashcash payments."
 	(mail-check-payment)))	 ;mail-check-payment returns a boolean
 
-  (file-error (progn
-		(defalias 'mail-check-payment 'ignore)
-		(defalias 'spam-check-hashcash 'ignore))))
+  (file-error))
 
 ;;;; BBDB
 
@@ -1276,66 +1276,67 @@
 
 ;; all this is done inside a condition-case to trap errors
 
-(condition-case nil
-    (progn
-      (require 'bbdb)
-      (require 'bbdb-com)
+(eval-when-compile
+  (autoload 'bbdb-buffer "bbdb")
+  (autoload 'bbdb-create-internal "bbdb")
+  (autoload 'bbdb-search-simple "bbdb"))
 
-      (defun spam-enter-ham-BBDB (addresses &optional remove)
-	"Enter an address into the BBDB; implies ham (non-spam) sender"
-	(dolist (from addresses)
-	  (when (stringp from)
-	    (let* ((parsed-address (gnus-extract-address-components from))
-		   (name (or (nth 0 parsed-address) "Ham Sender"))
-		   (remove-function (if remove
-					'bbdb-delete-record-internal
-				      'ignore))
-		   (net-address (nth 1 parsed-address))
-		   (record (and net-address
-				(bbdb-search-simple nil net-address))))
-	      (when net-address
-		(gnus-message 5 "%s address %s %s BBDB"
-			      (if remove "Deleting" "Adding")
-			      from
-			      (if remove "from" "to"))
-		(if record
-		    (funcall remove-function record)
-		  (bbdb-create-internal name nil net-address nil nil
-					"ham sender added by spam.el")))))))
+(eval-and-compile
+  (when (condition-case nil
+	    (progn
+	      (require 'bbdb)
+	      (require 'bbdb-com))
+	  (file-error
+	   (defalias 'spam-BBDB-register-routine 'ignore)
+	   (defalias 'spam-enter-ham-BBDB 'ignore)
+	   nil))
 
-      (defun spam-BBDB-register-routine (articles &optional unregister)
-	(let (addresses)
-	  (dolist (article articles)
-	    (when (stringp (spam-fetch-field-from-fast article))
-	      (push (spam-fetch-field-from-fast article) addresses)))
-	  ;; now do the register/unregister action
-	  (spam-enter-ham-BBDB addresses unregister)))
-
-      (defun spam-BBDB-unregister-routine (articles)
-	(spam-BBDB-register-routine articles t))
+    (defun spam-enter-ham-BBDB (addresses &optional remove)
+      "Enter an address into the BBDB; implies ham (non-spam) sender"
+      (dolist (from addresses)
+	(when (stringp from)
+	  (let* ((parsed-address (gnus-extract-address-components from))
+		 (name (or (nth 0 parsed-address) "Ham Sender"))
+		 (remove-function (if remove
+				      'bbdb-delete-record-internal
+				    'ignore))
+		 (net-address (nth 1 parsed-address))
+		 (record (and net-address
+			      (bbdb-search-simple nil net-address))))
+	    (when net-address
+	      (gnus-message 5 "%s address %s %s BBDB"
+			    (if remove "Deleting" "Adding")
+			    from
+			    (if remove "from" "to"))
+	      (if record
+		  (funcall remove-function record)
+		(bbdb-create-internal name nil net-address nil nil
+				      "ham sender added by spam.el")))))))
 
-      (defun spam-check-BBDB ()
-	"Mail from people in the BBDB is classified as ham or non-spam"
-	(let ((who (nnmail-fetch-field "from"))
-	      (spam-split-group (if spam-split-symbolic-return
-				    'spam
-				  spam-split-group)))
-	  (when who
-	    (setq who (nth 1 (gnus-extract-address-components who)))
-	    (if (bbdb-search-simple nil who)
-		t
-	      (if spam-use-BBDB-exclusive
-		  spam-split-group
-		nil))))))
+    (defun spam-BBDB-register-routine (articles &optional unregister)
+      (let (addresses)
+	(dolist (article articles)
+	  (when (stringp (spam-fetch-field-from-fast article))
+	    (push (spam-fetch-field-from-fast article) addresses)))
+	;; now do the register/unregister action
+	(spam-enter-ham-BBDB addresses unregister)))
+
+    (defun spam-BBDB-unregister-routine (articles)
+      (spam-BBDB-register-routine articles t))
 
-  (file-error (progn
-		(defalias 'bbdb-search-simple 'ignore)
-		(defalias 'spam-check-BBDB 'ignore)
-		(defalias 'spam-BBDB-register-routine 'ignore)
-		(defalias 'spam-enter-ham-BBDB 'ignore)
-		(defalias 'bbdb-create-internal 'ignore)
-		(defalias 'bbdb-delete-record-internal 'ignore)
-		(defalias 'bbdb-records 'ignore))))
+    (defun spam-check-BBDB ()
+      "Mail from people in the BBDB is classified as ham or non-spam"
+      (let ((who (nnmail-fetch-field "from"))
+	    (spam-split-group (if spam-split-symbolic-return
+				  'spam
+				spam-split-group)))
+	(when who
+	  (setq who (nth 1 (gnus-extract-address-components who)))
+	  (if (bbdb-search-simple nil who)
+	      t
+	    (if spam-use-BBDB-exclusive
+		spam-split-group
+	      nil)))))))
 
 
 ;;;; ifile
@@ -1411,66 +1412,63 @@
 
 ;;;; spam-stat
 
-(condition-case nil
-    (progn
-      (let ((spam-stat-install-hooks nil))
-	(require 'spam-stat))
+(eval-when-compile
+  (autoload 'spam-stat-buffer-change-to-non-spam "spam-stat")
+  (autoload 'spam-stat-buffer-change-to-spam "spam-stat")
+  (autoload 'spam-stat-buffer-is-non-spam "spam-stat")
+  (autoload 'spam-stat-buffer-is-spam "spam-stat")
+  (autoload 'spam-stat-load "spam-stat")
+  (autoload 'spam-stat-save "spam-stat")
+  (autoload 'spam-stat-split-fancy "spam-stat"))
+
+(eval-and-compile
+  (when (condition-case nil
+	    (let ((spam-stat-install-hooks nil))
+	      (require 'spam-stat))
+	  (file-error
+	   (defalias 'spam-stat-register-ham-routine 'ignore)
+	   (defalias 'spam-stat-register-spam-routine 'ignore)
+	   nil))
 
-      (defun spam-check-stat ()
-	"Check the spam-stat backend for the classification of this message"
-	(let ((spam-split-group (if spam-split-symbolic-return
-				    'spam
-				  spam-split-group))
-	      (spam-stat-split-fancy-spam-group spam-split-group) ; override
-	      (spam-stat-buffer (buffer-name)) ; stat the current buffer
-	      category return)
-	  (spam-stat-split-fancy)))
+    (defun spam-check-stat ()
+      "Check the spam-stat backend for the classification of this message"
+      (let ((spam-split-group (if spam-split-symbolic-return
+				  'spam
+				spam-split-group))
+	    (spam-stat-split-fancy-spam-group spam-split-group) ; override
+	    (spam-stat-buffer (buffer-name)) ; stat the current buffer
+	    category return)
+	(spam-stat-split-fancy)))
 
-      (defun spam-stat-register-spam-routine (articles &optional unregister)
-	(dolist (article articles)
-	  (let ((article-string (spam-get-article-as-string article)))
-	    (with-temp-buffer
-	      (insert article-string)
-	      (if unregister
-		  (spam-stat-buffer-change-to-non-spam)
+    (defun spam-stat-register-spam-routine (articles &optional unregister)
+      (dolist (article articles)
+	(let ((article-string (spam-get-article-as-string article)))
+	  (with-temp-buffer
+	    (insert article-string)
+	    (if unregister
+		(spam-stat-buffer-change-to-non-spam)
 	      (spam-stat-buffer-is-spam))))))
 
-      (defun spam-stat-unregister-spam-routine (articles)
-	(spam-stat-register-spam-routine articles t))
+    (defun spam-stat-unregister-spam-routine (articles)
+      (spam-stat-register-spam-routine articles t))
 
-      (defun spam-stat-register-ham-routine (articles &optional unregister)
-	(dolist (article articles)
-	  (let ((article-string (spam-get-article-as-string article)))
-	    (with-temp-buffer
-	      (insert article-string)
-	      (if unregister
-		  (spam-stat-buffer-change-to-spam)
+    (defun spam-stat-register-ham-routine (articles &optional unregister)
+      (dolist (article articles)
+	(let ((article-string (spam-get-article-as-string article)))
+	  (with-temp-buffer
+	    (insert article-string)
+	    (if unregister
+		(spam-stat-buffer-change-to-spam)
 	      (spam-stat-buffer-is-non-spam))))))
 
-      (defun spam-stat-unregister-ham-routine (articles)
-	(spam-stat-register-ham-routine articles t))
-
-      (defun spam-maybe-spam-stat-load ()
-	(when spam-use-stat (spam-stat-load)))
-
-      (defun spam-maybe-spam-stat-save ()
-	(when spam-use-stat (spam-stat-save))))
+    (defun spam-stat-unregister-ham-routine (articles)
+      (spam-stat-register-ham-routine articles t))
 
-  (file-error (progn
-		(defalias 'spam-stat-load 'ignore)
-		(defalias 'spam-stat-save 'ignore)
-		(defalias 'spam-maybe-spam-stat-load 'ignore)
-		(defalias 'spam-maybe-spam-stat-save 'ignore)
-		(defalias 'spam-stat-register-ham-routine 'ignore)
-		(defalias 'spam-stat-unregister-ham-routine 'ignore)
-		(defalias 'spam-stat-register-spam-routine 'ignore)
-		(defalias 'spam-stat-unregister-spam-routine 'ignore)
-		(defalias 'spam-stat-buffer-is-spam 'ignore)
-		(defalias 'spam-stat-buffer-change-to-spam 'ignore)
-		(defalias 'spam-stat-buffer-is-non-spam 'ignore)
-		(defalias 'spam-stat-buffer-change-to-non-spam 'ignore)
-		(defalias 'spam-stat-split-fancy 'ignore)
-		(defalias 'spam-check-stat 'ignore))))
+    (defun spam-maybe-spam-stat-load ()
+      (when spam-use-stat (spam-stat-load)))
+
+    (defun spam-maybe-spam-stat-save ()
+      (when spam-use-stat (spam-stat-save)))))