From 656b4fa1b9a32b5fbeb37cb8c2329aea102751f7 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sun, 1 Jun 2008 02:34:55 +0000 Subject: [PATCH] Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1192 --- lisp/gnus/ChangeLog | 17 +++++++++++++++++ lisp/gnus/message.el | 53 ++++++++++++++++++++++++++++++++++----------------- lisp/gnus/nnmairix.el | 5 +++++ lisp/gnus/rfc2231.el | 6 +++--- 4 files changed, 61 insertions(+), 20 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 391ff5b6b34..67da3846540 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,20 @@ +2008-05-30 Katsumi Yamaoka + + * 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 + + * message.el (message-bogus-recipient-p): Fix type in doc string. + Reported by Stephen Eglen . + (message-bogus-addresses): Rename from message-bogus-address-regexp. + Improve custom options. + (message-bogus-recipient-p): Adjust accordingly. + +2008-05-26 Katsumi Yamaoka + + * nnmairix.el: Require edmacro when compiling with XEmacs. + 2008-05-24 Reiner Steib * gnus-sum.el (gnus-summary-initial-limit): Use unless instead of if. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 82dd24c56b6..b790ac433c9 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -4060,19 +4060,32 @@ not have PROP." (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 @@ not have PROP." 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 @@ qualified, see `message-valid-fqdn-regexp', or if it matches (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)) diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el index 6ed58682e26..33d16426744 100644 --- a/lisp/gnus/nnmairix.el +++ b/lisp/gnus/nnmairix.el @@ -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." diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el index 1dd2e43b0a3..523f6640dc4 100644 --- a/lisp/gnus/rfc2231.el +++ b/lisp/gnus/rfc2231.el @@ -214,11 +214,11 @@ These look like: (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) -- 2.11.4.GIT