summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2008-06-01 02:34:55 +0000
committerMiles Bader <miles@gnu.org>2008-06-01 02:34:55 +0000
commit3b31f676e84eecb99c1e1a65f8375ea315102ac2 (patch)
treeb98b34710d64db15d0225564e09850c730804dab /lisp/gnus
parent5cd414c7dcfe598e89f0566fc19c62b3dc1941e5 (diff)
downloademacs-3b31f676e84eecb99c1e1a65f8375ea315102ac2.tar.gz
Merge from gnus--devo--0
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1192
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/ChangeLog17
-rw-r--r--lisp/gnus/message.el53
-rw-r--r--lisp/gnus/nnmairix.el5
-rw-r--r--lisp/gnus/rfc2231.el6
4 files changed, 61 insertions, 20 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 2bae91d8b05..f4653e7081d 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -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.
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)