changeset 95451:15ffd5c2dc17

Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1192
author Miles Bader <miles@gnu.org>
date Sun, 01 Jun 2008 02:34:55 +0000
parents 7db4e2f7d4cc
children a4904e4111c5
files lisp/gnus/ChangeLog lisp/gnus/message.el lisp/gnus/nnmairix.el lisp/gnus/rfc2231.el
diffstat 4 files changed, 61 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Sun Jun 01 01:50:42 2008 +0000
+++ b/lisp/gnus/ChangeLog	Sun Jun 01 02:34:55 2008 +0000
@@ -1,3 +1,20 @@
+2008-05-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2231.el (rfc2231-decode-encoded-string): Don't decode things that
+	are not 2-digit hexadecimal characters that follow `%'s.
+
+2008-05-29  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-bogus-recipient-p): Fix type in doc string.
+	Reported by Stephen Eglen <S.J.Eglen@damtp.cam.ac.uk>.
+	(message-bogus-addresses): Rename from message-bogus-address-regexp.
+	Improve custom options.
+	(message-bogus-recipient-p): Adjust accordingly.
+
+2008-05-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnmairix.el: Require edmacro when compiling with XEmacs.
+
 2008-05-24  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* gnus-sum.el (gnus-summary-initial-limit): Use unless instead of if.
--- a/lisp/gnus/message.el	Sun Jun 01 01:50:42 2008 +0000
+++ b/lisp/gnus/message.el	Sun Jun 01 02:34:55 2008 +0000
@@ -4060,19 +4060,32 @@
 	(setq start next)))
     (nreverse regions)))
 
-(defcustom message-bogus-address-regexp nil ;; "noreply\\|nospam\\|invalid"
-  "Regexp of potentially bogus mail addresses."
+(defcustom message-bogus-addresses
+  ;; '("noreply" "nospam" "invalid")
+  '("noreply" "nospam" "invalid" "@@" "[^[:ascii:]].*@" "[ \t]")
+  "List of regexps of potentially bogus mail addresses.
+See `message-check-recipients' how to setup checking.
+
+This list should make it possible to catch typos or warn about
+spam-trap addresses.  It doesn't aim to verify strict RFC
+conformance."
   :version "23.1" ;; No Gnus
   :group 'message-headers
-  :type '(choice (const :tag "None" nil)
-		 (repeat :value-to-internal (lambda (widget value)
-					      (custom-split-regexp-maybe value))
-			 :match (lambda (widget value)
-				  (or (stringp value)
-				      (widget-editable-list-match widget value)))
-			 regexp)
-		 (const "noreply\\|nospam\\|invalid")
-		 regexp))
+  :type '(choice
+	  (const :tag "None" nil)
+	  (list
+	   (set :inline t
+		(const "noreply")
+		(const "nospam")
+		(const "invalid")
+		(const :tag "duplicate @" "@@")
+		(const :tag "non-ascii local part" "[^[:ascii:]].*@")
+		;; Already caught by `message-valid-fqdn-regexp'
+		;; (const :tag "`_' in domain part" "@.*_")
+		(const :tag "whitespace" "[ \t]"))
+	   (repeat :inline t
+		   :tag "Other"
+		   (regexp)))))
 
 (defun message-fix-before-sending ()
   "Do various things to make the message nice before sending it."
@@ -4167,9 +4180,9 @@
 RECIPIENTS is a mail header.  Return a list of potentially bogus
 addresses.  If none is found, return nil.
 
-An addresses might be bogus if the domain part is not fully
-qualified, see `message-valid-fqdn-regexp', or if it matches
-`message-bogus-address-regexp'."
+An address might be bogus if the domain part is not fully
+qualified, see `message-valid-fqdn-regexp', or if there's a
+matching entry in `message-bogus-addresses'."
   ;; FIXME: How about "foo@subdomain", when the MTA adds ".domain.tld"?
   (let (found)
     (mapc (lambda (address)
@@ -4181,9 +4194,15 @@
 		      (string-match
 		       (concat ".@.*\\("
 			       message-valid-fqdn-regexp "\\)\\'") address)))
-		    (and (stringp message-bogus-address-regexp)
-			 (string-match message-bogus-address-regexp address)))
-	      (push address found)))
+		    (and message-bogus-addresses
+			 (let ((re
+				(if (listp message-bogus-addresses)
+				    (mapconcat 'identity
+					       message-bogus-addresses
+					       "\\|")
+				  message-bogus-addresses)))
+			   (string-match re address))))
+			 (push address found)))
 	  ;;
 	  (mail-extract-address-components recipients t))
     found))
--- a/lisp/gnus/nnmairix.el	Sun Jun 01 01:50:42 2008 +0000
+++ b/lisp/gnus/nnmairix.el	Sun Jun 01 02:34:55 2008 +0000
@@ -162,6 +162,11 @@
 
 ;;; === Keymaps
 
+(eval-when-compile
+  (when (featurep 'xemacs)
+    ;; The `kbd' macro requires that the `read-kbd-macro' macro is available.
+    (require 'edmacro)))
+
 ;; Group mode
 (defun nnmairix-group-mode-hook ()
   "Nnmairix group mode keymap."
--- a/lisp/gnus/rfc2231.el	Sun Jun 01 01:50:42 2008 +0000
+++ b/lisp/gnus/rfc2231.el	Sun Jun 01 02:34:55 2008 +0000
@@ -214,11 +214,11 @@
     (mm-with-unibyte-buffer
       (insert value)
       (goto-char (point-min))
-      (while (search-forward "%" nil t)
+      (while (re-search-forward "%\\([0-9A-Fa-f][0-9A-Fa-f]\\)" nil t)
 	(insert
 	 (prog1
-	     (string-to-number (buffer-substring (point) (+ (point) 2)) 16)
-	   (delete-region (1- (point)) (+ (point) 2)))))
+	     (string-to-number (match-string 1) 16)
+	   (delete-region (match-beginning 0) (match-end 0)))))
       ;; Decode using the charset, if any.
       (if (memq coding-system '(nil ascii))
 	  (buffer-string)