summaryrefslogtreecommitdiff
path: root/lisp/mail/rfc822.el
diff options
context:
space:
mode:
authorroot <root>1990-11-26 22:52:07 +0000
committerroot <root>1990-11-26 22:52:07 +0000
commit278fc732828c2d36d6025b84270b91d7ab3dd428 (patch)
treece32c6203a9b1bf8b8cb02e4ef0c1b9d502e939e /lisp/mail/rfc822.el
parent67ea382e54cb3a981e547446ede3c313aabb6255 (diff)
downloademacs-278fc732828c2d36d6025b84270b91d7ab3dd428.tar.gz
emacs-278fc732828c2d36d6025b84270b91d7ab3dd428.tar.bz2
emacs-278fc732828c2d36d6025b84270b91d7ab3dd428.zip
*** empty log message ***
Diffstat (limited to 'lisp/mail/rfc822.el')
-rw-r--r--lisp/mail/rfc822.el19
1 files changed, 11 insertions, 8 deletions
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el
index 0209b939a5f..ec487be42b9 100644
--- a/lisp/mail/rfc822.el
+++ b/lisp/mail/rfc822.el
@@ -239,19 +239,22 @@
;; an addr-spec, since many broken mailers output
;; "Hern K. Herklemeyer III
;; <yank@megadeath.dod.gods-own-country>"
- (cond ((= n 0))
- ((> n 1)
- (rfc822-bad-address "Missing route-spec"))
- ((= (preceding-char) ?\ ))
- (t (insert ?\ )))
- (rfc822-snarf-words)
- (setq n (1+ n)))
+ (let ((again t))
+ (while again
+ (or (= n 0) (bobp) (= (preceding-char) ?\ )
+ (insert ?\ ))
+ (rfc822-snarf-word)
+ (setq n (1+ n))
+ (setq again (or (rfc822-looking-at ?.)
+ (looking-at "[^][\000-\037\177-\377 ()<>@,;:\\.]"))))))
((= n 0)
(throw 'address nil))
((= n 1) ; allow "foo" (losing unix seems to do this)
(throw 'address
(buffer-substring address-start (point))))
- ((or (eobp) (looking-at ","))
+ ((> n 1)
+ (rfc822-bad-address "Missing comma between addresses or badly-formatted address"))
+ ((or (eobp) (= (following-char) ?,))
(rfc822-bad-address "Missing comma or route-spec"))
(t
(rfc822-bad-address "Strange character or missing comma")))))))