diff options
author | root <root> | 1990-11-26 22:52:07 +0000 |
---|---|---|
committer | root <root> | 1990-11-26 22:52:07 +0000 |
commit | 278fc732828c2d36d6025b84270b91d7ab3dd428 (patch) | |
tree | ce32c6203a9b1bf8b8cb02e4ef0c1b9d502e939e /lisp/mail/rfc822.el | |
parent | 67ea382e54cb3a981e547446ede3c313aabb6255 (diff) | |
download | emacs-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.el | 19 |
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"))))))) |