changeset 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 88cf8c060c08
children 89cc919b0ccd f2ebccfa87d4
files lisp/gnus/ChangeLog lisp/gnus/canlock.el lisp/gnus/deuglify.el lisp/gnus/gnus-art.el lisp/gnus/gnus-registry.el lisp/gnus/gnus-score.el lisp/gnus/gnus-start.el lisp/gnus/gnus-sum.el lisp/gnus/gnus-util.el lisp/gnus/message.el lisp/gnus/nnfolder.el lisp/gnus/nnmail.el lisp/gnus/nnrss.el lisp/gnus/pop3.el lisp/gnus/rfc2047.el lisp/gnus/spam-report.el lisp/gnus/spam.el man/ChangeLog man/gnus.texi man/message.texi
diffstat 20 files changed, 291 insertions(+), 181 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/ChangeLog	Tue Dec 07 21:56:42 2004 +0000
@@ -1,3 +1,89 @@
+2004-12-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* 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>
+
+	* message.el (message-forward-make-body-plain): Always remove
+	headers according to message-forward-ignored-headers.
+
+2004-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Remove bbdb-create-internal, bbdb-records,
+	spam-BBDB-register-routine and spam-enter-ham-BBDB.
+
+	* nnrss.el (nnrss-string-as-multibyte): Redefine it as a macro in
+	order to silence the byte compiler.
+
+	* pop3.el (pop3-md5): Define it before being used.
+
+	* 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>
+
+	* canlock.el (canlock-password): Remove `:size 0' or `:size 1'
+	which may confuse users.
+	(canlock-password-for-verify): Ditto.
+
+	* deuglify.el (gnus-outlook-deuglify-unwrap-stop-chars): Ditto.
+
+	* gnus-art.el (gnus-emphasis-alist): Ditto.
+
+	* gnus-registry.el (gnus-registry-max-entries): Ditto.
+
+	* gnus-score.el (gnus-adaptive-word-length-limit): Ditto.
+
+	* gnus-start.el (gnus-save-killed-list): Ditto.
+
+	* 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.
+
+	* message.el (message-courtesy-message): Ditto.
+	(message-archive-note): Ditto.
+	(message-subscribed-address-file): Ditto.
+	(message-user-fqdn): Ditto.
+
+	* spam-report.el (spam-report-gmane-regex): Ditto.
+
+	* spam.el (spam-blackhole-good-server-regex): Ditto.
+
+2004-11-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-forbidden-properties): Fixed typo in doc
+	string.
+
+2004-11-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-strip-forbidden-properties): Bind
+	buffer-read-only (etc) to nil.
+
+2004-11-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-util.el (gnus-replace-in-string): Added doc string.
+
+	* 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>
+
+	* 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)
+
+	* nnfolder.el (nnfolder-request-create-group): Save current buffer.
+
 2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* gnus-sum.el (gnus-summary-exit): Remove redundant and harmful
--- a/lisp/gnus/canlock.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/canlock.el	Tue Dec 07 21:56:42 2004 +0000
@@ -55,13 +55,13 @@
 (defcustom canlock-password nil
   "Password to use when signing a Cancel-Lock or a Cancel-Key header."
   :type '(radio (const :format "Not specified " nil)
-		(string :tag "Password" :size 0))
+		(string :tag "Password"))
   :group 'canlock)
 
 (defcustom canlock-password-for-verify canlock-password
   "Password to use when verifying a Cancel-Lock or a Cancel-Key header."
   :type '(radio (const :format "Not specified " nil)
-		(string :tag "Password" :size 0))
+		(string :tag "Password"))
   :group 'canlock)
 
 (defcustom canlock-force-insert-header nil
--- a/lisp/gnus/deuglify.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/deuglify.el	Tue Dec 07 21:56:42 2004 +0000
@@ -1,6 +1,6 @@
 ;;; deuglify.el --- deuglify broken Outlook (Express) articles
 
-;; Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 ;; Copyright (C) 2001, 2002 Raymond Scholz
 
 ;; Author: Raymond Scholz <rscholz@zonix.de>
@@ -257,7 +257,7 @@
   "Characters that inhibit unwrapping if they are the last one on the cited line above the possible wrapped line."
   :version "21.4"
   :type '(radio (const :format "None  " nil)
-		(string :size 0 :value ".?!"))
+		(string :value ".?!"))
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-deuglify-no-wrap-chars "`"
--- a/lisp/gnus/gnus-art.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-art.el	Tue Dec 07 21:56:42 2004 +0000
@@ -399,15 +399,15 @@
 		     :value
 		     (gnus-emphasis-custom-value-to-external value))))
 	      (widget-group-value-create widget))
-	    (regexp :format "%t: %v\n" :size 1)
-	    (integer :format "Match group: %v\n" :size 0)
-	    (integer  :format "Emphasize group: %v\n" :size 0)
+	    regexp
+	    (integer :format "Match group: %v")
+	    (integer  :format "Emphasize group: %v")
 	    face)
      (group :tag "Simple"
 	    :value (("_" . "_") nil default)
 	    (cons :format "%v"
-		  (regexp :format "Start regexp: %v\n" :size 0)
-		  (regexp :format "End regexp: %v\n" :size 0))
+		  (regexp :format "Start regexp: %v")
+		  (regexp :format "End regexp: %v"))
 	    (boolean :format "Show start and end patterns: %[%v%]\n"
 		     :on " On " :off " Off ")
 	    face)))
--- a/lisp/gnus/gnus-registry.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-registry.el	Tue Dec 07 21:56:42 2004 +0000
@@ -1,5 +1,5 @@
 ;;; gnus-registry.el --- article registry for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <tzz@lifelogs.com>
@@ -128,7 +128,7 @@
   "Maximum number of entries in the registry, nil for unlimited."
   :group 'gnus-registry
   :type '(radio (const :format "Unlimited " nil)
-		(integer :format "Maximum number: %v\n" :size 0)))
+		(integer :format "Maximum number: %v")))
 
 ;; Function(s) missing in Emacs 20
 (when (memq nil (mapcar 'fboundp '(puthash)))
--- a/lisp/gnus/gnus-score.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-score.el	Tue Dec 07 21:56:42 2004 +0000
@@ -240,7 +240,7 @@
   :version "21.4"
   :group 'gnus-score-adapt
   :type '(radio (const :format "Unlimited " nil)
-		(integer :format "Maximum length: %v\n" :size 0)))
+		(integer :format "Maximum length: %v")))
 
 (defcustom gnus-ignored-adaptive-words nil
   "List of words to be ignored when doing adaptive word scoring."
--- a/lisp/gnus/gnus-start.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-start.el	Tue Dec 07 21:56:42 2004 +0000
@@ -258,7 +258,7 @@
 			       (and value (not (stringp value))))
 		      :value t)
 		(const nil)
-		(regexp :format "%t: %v\n" :size 0)))
+		regexp))
 
 (defcustom gnus-ignored-newsgroups
   (mapconcat 'identity
--- a/lisp/gnus/gnus-sum.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-sum.el	Tue Dec 07 21:56:42 2004 +0000
@@ -264,7 +264,7 @@
 			       (not (or (consp value) (functionp value))))
 		      :value t)
 		(const nil)
-		(sexp :tag "Predicate specifier" :size 0)))
+		(sexp :tag "Predicate specifier")))
 
 (defcustom gnus-thread-hide-killed t
   "*If non-nil, hide killed threads automatically."
@@ -4639,19 +4639,19 @@
   "With %B spec, used for the root of a thread.
 If nil, use subject instead."
   :version "21.4"
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-false-root "> "
   "With %B spec, used for a false root of a thread.
 If nil, use subject instead."
   :version "21.4"
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-single-indent ""
   "With %B spec, used for a thread with just one message.
 If nil, use subject instead."
   :version "21.4"
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-vertical "| "
   "With %B spec, used for drawing a vertical line."
--- a/lisp/gnus/gnus-util.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/gnus-util.el	Tue Dec 07 21:56:42 2004 +0000
@@ -60,10 +60,20 @@
    ((fboundp 'replace-in-string)
     (defalias 'gnus-replace-in-string 'replace-in-string))
    ((fboundp 'replace-regexp-in-string)
-    (defun gnus-replace-in-string  (string regexp newtext &optional literal)
+    (defun gnus-replace-in-string (string regexp newtext &optional literal)
+      "Replace all matches for REGEXP with NEWTEXT in STRING.
+If LITERAL is non-nil, insert NEWTEXT literally.  Return a new
+string containing the replacements.
+
+This is a compatibility function for different Emacsen."
       (replace-regexp-in-string regexp newtext string nil literal)))
    (t
     (defun gnus-replace-in-string (string regexp newtext &optional literal)
+      "Replace all matches for REGEXP with NEWTEXT in STRING.
+If LITERAL is non-nil, insert NEWTEXT literally.  Return a new
+string containing the replacements.
+
+This is a compatibility function for different Emacsen."
       (let ((start 0) tail)
 	(while (string-match regexp string start)
 	  (setq tail (- (length string) (match-end 0)))
--- a/lisp/gnus/message.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/message.el	Tue Dec 07 21:56:42 2004 +0000
@@ -146,7 +146,7 @@
 the article has been posted to will be inserted there.
 If this variable is nil, no such courtesy message will be added."
   :group 'message-sending
-  :type '(radio (string :format "%t: %v\n" :size 0) (const nil)))
+  :type '(radio string (const nil)))
 
 (defcustom message-ignored-bounced-headers
   "^\\(Received\\|Return-Path\\|Delivered-To\\):"
@@ -373,8 +373,7 @@
   "Note to insert why you wouldn't want this posting archived.
 If nil, don't insert any text in the body."
   :version "21.4"
-  :type '(radio (string :format "%t: %v\n" :size 0)
-		(const nil))
+  :type '(radio string (const nil))
   :link '(custom-manual "(message)Header Commands")
   :group 'message-various)
 
@@ -698,8 +697,7 @@
   :version "21.4"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
-  :type '(radio (file :format "%t: %v\n" :size 0)
-		(const nil)))
+  :type '(radio file (const nil)))
 
 (defcustom message-subscribed-addresses nil
   "*Specifies a list of addresses the user is subscribed to.
@@ -1442,7 +1440,7 @@
   :group 'message-headers
   :link '(custom-manual "(message)News Headers")
   :type '(radio (const :format "%v  " nil)
-		(string :format "FQDN: %v\n" :size 0)))
+		(string :format "FQDN: %v")))
 
 (defcustom message-use-idna (and (condition-case nil (require 'idna)
 				   (file-error))
@@ -2403,7 +2401,7 @@
   ;; fontified: is used by font-lock.
   ;; syntax-table, local-map: I dunno.
   ;; We need to add XEmacs names to the list.
-  "Property list of with properties.forbidden in message buffers.
+  "Property list of with properties forbidden in message buffers.
 The values of the properties are ignored, only the property names are used.")
 
 (defun message-tamago-not-in-use-p (pos)
@@ -2426,11 +2424,13 @@
 See also `message-forbidden-properties'."
   (when (and message-strip-special-text-properties
 	     (message-tamago-not-in-use-p begin))
-    (while (not (= begin end))
-      (when (not (get-text-property begin 'message-hidden))
-	(remove-text-properties begin (1+ begin)
-				message-forbidden-properties))
-      (incf begin))))
+    (let ((buffer-read-only nil)
+	  (inhibit-read-only t))
+      (while (not (= begin end))
+	(when (not (get-text-property begin 'message-hidden))
+	  (remove-text-properties begin (1+ begin)
+				  message-forbidden-properties))
+	(incf begin)))))
 
 ;;;###autoload
 (define-derived-mode message-mode text-mode "Message"
@@ -6193,8 +6193,7 @@
     (setq e (point))
     (insert
      "\n-------------------- End of forwarded message --------------------\n")
-    (when (and (not current-prefix-arg)
-	       message-forward-ignored-headers)
+    (when message-forward-ignored-headers
       (save-restriction
 	(narrow-to-region b e)
 	(goto-char b)
@@ -6240,7 +6239,7 @@
 	(goto-char (point-max))))
     (setq e (point))
     (insert "<#/mml>\n")
-    (when (and (not current-prefix-arg)
+    (when (and (not message-forward-decoded-p)
 	       message-forward-ignored-headers)
       (save-restriction
 	(narrow-to-region b e)
--- a/lisp/gnus/nnfolder.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/nnfolder.el	Tue Dec 07 21:56:42 2004 +0000
@@ -1,5 +1,5 @@
 ;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
@@ -370,10 +370,11 @@
 (deffoo nnfolder-request-create-group (group &optional server args)
   (nnfolder-possibly-change-group nil server)
   (nnmail-activate 'nnfolder)
-  (when group
-    (unless (assoc group nnfolder-group-alist)
-      (push (list group (cons 1 0)) nnfolder-group-alist)
-      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+  (when (and group
+	     (not (assoc group nnfolder-group-alist)))
+    (push (list group (cons 1 0)) nnfolder-group-alist)
+    (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+    (save-current-buffer
       (nnfolder-read-folder group)))
   t)
 
--- a/lisp/gnus/nnmail.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/nnmail.el	Tue Dec 07 21:56:42 2004 +0000
@@ -554,7 +554,7 @@
   :group 'nnmail
   :type '(repeat symbol))
 
-(defcustom nnmail-split-header-length-limit 512
+(defcustom nnmail-split-header-length-limit 2048
   "Header lines longer than this limit are excluded from the split function."
   :version "21.1"
   :group 'nnmail
--- a/lisp/gnus/nnrss.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/nnrss.el	Tue Dec 07 21:56:42 2004 +0000
@@ -82,6 +82,12 @@
 
 ;;; Interface functions
 
+(eval-when-compile
+  (defmacro nnrss-string-as-multibyte (string)
+    (if (featurep 'xemacs)
+	string
+      `(string-as-multibyte ,string))))
+
 (deffoo nnrss-retrieve-headers (articles &optional group server fetch-old)
   (nnrss-possibly-change-group group server)
   (let (e)
@@ -410,10 +416,6 @@
 
 (defalias 'nnrss-insert 'nnrss-insert-w3)
 
-(if (featurep 'xemacs)
-    (defalias 'nnrss-string-as-multibyte 'identity)
-  (defalias 'nnrss-string-as-multibyte 'string-as-multibyte))
-
 ;;; Snarf functions
 
 (defun nnrss-check-group (group server)
--- a/lisp/gnus/pop3.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/pop3.el	Tue Dec 07 21:56:42 2004 +0000
@@ -348,6 +348,22 @@
 
 ;; AUTHORIZATION STATE
 
+(eval-and-compile
+  (if (fboundp 'md5)
+      (defalias 'pop3-md5 'md5)
+    (defvar pop3-md5-program "md5"
+      "*Program to encode its input in MD5.")
+
+    (defun pop3-md5 (string)
+      (with-temp-buffer
+	(insert string)
+	(call-process-region (point-min) (point-max)
+			     pop3-md5-program
+			     t (current-buffer) nil)
+	;; The meaningful output is the first 32 characters.
+	;; Don't return the newline that follows them!
+	(buffer-substring (point-min) (+ 32 (point-min)))))))
+
 (defun pop3-user (process user)
   "Send USER information to POP3 server."
   (pop3-send-command process (format "USER %s" user))
@@ -378,22 +394,6 @@
 
 ;; TRANSACTION STATE
 
-(eval-and-compile
-  (if (fboundp 'md5)
-      (defalias 'pop3-md5 'md5)
-    (defvar pop3-md5-program "md5"
-      "*Program to encode its input in MD5.")
-
-    (defun pop3-md5 (string)
-      (with-temp-buffer
-	(insert string)
-	(call-process-region (point-min) (point-max)
-			     pop3-md5-program
-			     t (current-buffer) nil)
-	;; The meaningful output is the first 32 characters.
-	;; Don't return the newline that follows them!
-	(buffer-substring (point-min) (+ 32 (point-min)))))))
-
 (defun pop3-stat (process)
   "Return the number of messages in the maildrop and the maildrop's size."
   (pop3-send-command process "STAT")
--- a/lisp/gnus/rfc2047.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/rfc2047.el	Tue Dec 07 21:56:42 2004 +0000
@@ -71,7 +71,7 @@
   '(("Newsgroups" . nil)
     ("Followup-To" . nil)
     ("Message-ID" . nil)
-    ("\\(Resent-\\)?\\(From\\|Cc\\|To\\|Bcc\\|Reply-To\\|Sender\
+    ("\\(Resent-\\)?\\(From\\|Cc\\|To\\|Bcc\\|\\(In-\\)?Reply-To\\|Sender\
 \\|Mail-Followup-To\\|Mail-Copies-To\\|Approved\\)" . address-mime)
     (t . mime))
   "*Header/encoding method alist.
--- a/lisp/gnus/spam-report.el	Tue Dec 07 21:44:21 2004 +0000
+++ b/lisp/gnus/spam-report.el	Tue Dec 07 21:56:42 2004 +0000
@@ -43,7 +43,7 @@
 or the gnus-group-spam-exit-processor-report-gmane group/topic parameter
 instead."
   :type '(radio (const nil)
-		(regexp :format "%t: %v\n" :size 0 :value "^nntp\+.*:gmane\."))
+		(regexp :value "^nntp\+.*:gmane\."))
   :group 'spam-report)
 
 (defcustom spam-report-gmane-spam-header
--- 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)))))
 
 
 
--- a/man/ChangeLog	Tue Dec 07 21:44:21 2004 +0000
+++ b/man/ChangeLog	Tue Dec 07 21:56:42 2004 +0000
@@ -102,6 +102,17 @@
 	to Alex Ott, Karl Fogel, Stefan Monnier, and David Kastrup for
 	suggestions.
 
+2004-11-22  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.texi (Various Message Variables): Mention that all mail
+	file variables are derived from `message-directory'.
+
+	* gnus.texi (Splitting Mail): Clarify bogus group.
+
+2004-11-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Filtering Spam Using The Spam ELisp Package): 
+
 2004-11-02  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* emacs-mime.texi (Encoding Customization): Fix
--- a/man/gnus.texi	Tue Dec 07 21:44:21 2004 +0000
+++ b/man/gnus.texi	Tue Dec 07 21:56:42 2004 +0000
@@ -13244,14 +13244,16 @@
 argument.  It should return a non-@code{nil} value if it thinks that the
 mail belongs in that group.
 
+@cindex @samp{bogus} group
 The last of these groups should always be a general one, and the regular
-expression should @emph{always} be @samp{*} so that it matches any mails
+expression should @emph{always} be @samp{""} so that it matches any mails
 that haven't been matched by any of the other regexps.  (These rules are
-processed from the beginning of the alist toward the end.  The first
-rule to make a match will ``win'', unless you have crossposting enabled.
-In that case, all matching rules will ``win''.)  When new groups are
-created by splitting mail, you may want to run
-@code{gnus-group-find-new-groups} to see the new groups.
+processed from the beginning of the alist toward the end.  The first rule
+to make a match will ``win'', unless you have crossposting enabled.  In
+that case, all matching rules will ``win''.)  If no rule matched, the mail
+will end up in the @samp{bogus} group.  When new groups are created by
+splitting mail, you may want to run @code{gnus-group-find-new-groups} to
+see the new groups.  This also applies to the @samp{bogus} group.
 
 If you like to tinker with this yourself, you can set this variable to a
 function of your choice.  This function will be called without any
@@ -13268,7 +13270,7 @@
 The mail back ends all support cross-posting.  If several regexps match,
 the mail will be ``cross-posted'' to all those groups.
 @code{nnmail-crosspost} says whether to use this mechanism or not.  Note
-that no articles are crossposted to the general (@samp{*}) group.
+that no articles are crossposted to the general (@samp{""}) group.
 
 @vindex nnmail-crosspost-link-function
 @cindex crosspost
--- a/man/message.texi	Tue Dec 07 21:44:21 2004 +0000
+++ b/man/message.texi	Tue Dec 07 21:56:42 2004 +0000
@@ -1867,6 +1867,7 @@
 @item message-directory
 @vindex message-directory
 Directory used by many mailey things.  The default is @file{~/Mail/}.
+All other mail file variables are derived from @code{message-directory}.
 
 @item message-auto-save-directory
 @vindex message-auto-save-directory