Mercurial > emacs
changeset 22081:0f4e461dd691
(define-mail-alias): Compensate for not resetting the match data when
string-match fails.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 15 May 1998 21:50:07 +0000 |
parents | f519dedee9bc |
children | 84bcdbc46d71 |
files | lisp/mail/mailalias.el |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/mailalias.el Fri May 15 20:55:45 1998 +0000 +++ b/lisp/mail/mailalias.el Fri May 15 21:50:07 1998 +0000 @@ -334,10 +334,14 @@ ;; double-quotes. Otherwise, addresses are separated by commas. (if from-mailrc-file (if (eq ?\" (aref definition start)) - (progn (string-match "[^\\]\\(\\([\\][\\]\\)*\\)\"[ \t,]*" definition start) - (setq start (1+ start) - end (match-end 1) - convert-backslash t)) + ;; The following test on `found' compensates for a bug + ;; in match-end, which does not return nil when match + ;; failed. + (let ((found (string-match "[^\\]\\(\\([\\][\\]\\)*\\)\"[ \t,]*" + definition start))) + (setq start (1+ start) + end (and found (match-end 1)) + convert-backslash t)) (setq end (string-match "[ \t,]+" definition start))) (setq end (string-match "[ \t\n,]*,[ \t\n,]*" definition start))) (let ((temp (substring definition start end))