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))