diff options
| author | Lars Ingebrigtsen | 2017-01-25 21:21:40 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2017-01-25 21:21:40 +0100 |
| commit | 27accec97022a49b362feeb36293fdce2947eb43 (patch) | |
| tree | 63eb43b64cfe7c3d30d062cb29561d1c37391b77 | |
| parent | e0e95199b93a232e5d4da67823364676ca9cb67c (diff) | |
| download | emacs-27accec97022a49b362feeb36293fdce2947eb43.tar.gz emacs-27accec97022a49b362feeb36293fdce2947eb43.zip | |
Make address parsing more robust
* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't
bug out on addresses like
(ietf-drums-parse-address "\"Foo \"bar\" <larsi@gnus.org>")
(bug#18572).
| -rw-r--r-- | lisp/mail/ietf-drums.el | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/mail/ietf-drums.el b/lisp/mail/ietf-drums.el index a3e53cfe793..fd793a28309 100644 --- a/lisp/mail/ietf-drums.el +++ b/lisp/mail/ietf-drums.el | |||
| @@ -192,6 +192,17 @@ the Content-Transfer-Encoding header of a mail." | |||
| 192 | (ietf-drums-init string) | 192 | (ietf-drums-init string) |
| 193 | (while (not (eobp)) | 193 | (while (not (eobp)) |
| 194 | (setq c (char-after)) | 194 | (setq c (char-after)) |
| 195 | ;; If we have an uneven number of quote characters, | ||
| 196 | ;; `forward-sexp' will fail. In these cases, just delete the | ||
| 197 | ;; final of these quote characters. | ||
| 198 | (when (and (eq c ?\") | ||
| 199 | (not | ||
| 200 | (save-excursion | ||
| 201 | (ignore-errors | ||
| 202 | (forward-sexp 1) | ||
| 203 | t)))) | ||
| 204 | (delete-char 1) | ||
| 205 | (setq c (char-after))) | ||
| 195 | (cond | 206 | (cond |
| 196 | ((or (eq c ? ) | 207 | ((or (eq c ? ) |
| 197 | (eq c ?\t)) | 208 | (eq c ?\t)) |