# HG changeset patch # User Miles Bader # Date 1102456602 0 # Node ID 9bdd979604312e3e60db80a85c69296529b070e1 # Parent 88cf8c060c08497aebf8d669c4cb775cca34c6b6 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 * 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 * lisp/gnus/message.el (message-forward-make-body-plain): Always remove headers according to message-forward-ignored-headers. 2004-11-26 Katsumi Yamaoka * 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 * 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 * lisp/gnus/message.el (message-forbidden-properties): Fixed typo in doc string. 2004-11-25 Lars Magne Ingebrigtsen * lisp/gnus/message.el (message-strip-forbidden-properties): Bind buffer-read-only (etc) to nil. 2004-11-25 Reiner Steib * 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 * lisp/gnus/rfc2047.el (rfc2047-header-encoding-alist): Add In-Reply-To to address-mime. Suggested by ARISAWA Akihiro . 2004-11-22 Marek Martin (tiny change) * lisp/gnus/nnfolder.el (nnfolder-request-create-group): Save current buffer. 2004-11-22 Reiner Steib * 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 * man/gnus.texi (Filtering Spam Using The Spam ELisp Package): diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/ChangeLog --- 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 + + * 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 + + * message.el (message-forward-make-body-plain): Always remove + headers according to message-forward-ignored-headers. + +2004-11-26 Katsumi Yamaoka + + * 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 + + * 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 + + * message.el (message-forbidden-properties): Fixed typo in doc + string. + +2004-11-25 Lars Magne Ingebrigtsen + + * message.el (message-strip-forbidden-properties): Bind + buffer-read-only (etc) to nil. + +2004-11-25 Reiner Steib + + * 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 + + * rfc2047.el (rfc2047-header-encoding-alist): Add In-Reply-To to + address-mime. Suggested by ARISAWA Akihiro . + +2004-11-22 Marek Martin (tiny change) + + * nnfolder.el (nnfolder-request-create-group): Save current buffer. + 2004-11-22 Stefan Monnier * gnus-sum.el (gnus-summary-exit): Remove redundant and harmful diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/canlock.el --- 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 diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/deuglify.el --- 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 @@ -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 "`" diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-art.el --- 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))) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-registry.el --- 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 @@ -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))) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-score.el --- 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." diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-start.el --- 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 diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-sum.el --- 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." diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/gnus-util.el --- 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))) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/message.el --- 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) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/nnfolder.el --- 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 (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) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/nnmail.el --- 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 diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/nnrss.el --- 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) diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/pop3.el --- 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") diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/rfc2047.el --- 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. diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/spam-report.el --- 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 diff -r 88cf8c060c08 -r 9bdd97960431 lisp/gnus/spam.el --- 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))))) diff -r 88cf8c060c08 -r 9bdd97960431 man/ChangeLog --- 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 + + * 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 + + * gnus.texi (Filtering Spam Using The Spam ELisp Package): + 2004-11-02 Katsumi Yamaoka * emacs-mime.texi (Encoding Customization): Fix diff -r 88cf8c060c08 -r 9bdd97960431 man/gnus.texi --- 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 diff -r 88cf8c060c08 -r 9bdd97960431 man/message.texi --- 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