changeset 20400:fd74979309d3

(mail-extr-voodoo): Allow & between names. Reenable &-substitution when & comes last.
author Richard M. Stallman <rms@gnu.org>
date Thu, 04 Dec 1997 04:36:46 +0000
parents 04ce86b23ffa
children 1ed464f56e6e
files lisp/mail/mail-extr.el
diffstat 1 files changed, 22 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/mail-extr.el	Thu Dec 04 04:32:03 1997 +0000
+++ b/lisp/mail/mail-extr.el	Thu Dec 04 04:36:46 1997 +0000
@@ -1533,7 +1533,6 @@
 		    (while (re-search-forward mail-extr-bad-dot-pattern nil t)
 		      (replace-match "\\1 \\2" t))))))
 
-
       ;; Loop over the words (and other junk) in the name.
       (goto-char (point-min))
       (while (not name-done-flag)
@@ -1647,23 +1646,6 @@
 	    (if initial
 		(insert initial ". ")))))
 	 
-	 ;; Handle & substitution
-	 ;; This is turned off because an & from the passwd file
-	 ;; should not really get into a mail address without
-	 ;; being substituted, and people use it for other things.
-;;;	 ((and (or (bobp)
-;;;		   (eq ?\  (preceding-char)))
-;;;	       (looking-at "&\\( \\|\\'\\)"))
-;;;	  (mail-extr-delete-char 1)
-;;;	  (capitalize-region
-;;;	   (point)
-;;;	   (progn
-;;;	     (insert-buffer-substring canonicalization-buffer
-;;;				      mbox-beg mbox-end)
-;;;	     (point)))
-;;;	  (setq disable-initial-guessing-flag t)
-;;;	  (setq word-found-flag t))
-	 
 	 ;; Handle *Stupid* VMS date stamps
 	 ((looking-at mail-extr-stupid-vms-date-stamp-pattern)
 	  (replace-match "" t))
@@ -1726,6 +1708,28 @@
 	  (setq word-found-flag t)
 	  (setq name-done-flag t))
 	 
+	 ;; Handle & substitution, when & is last and is not first.
+	 ((and (> word-count 0)
+	       (eq ?\  (preceding-char))
+	       (eq (following-char) ?&)
+	       (eq (1+ (point)) (point-max)))
+	  (mail-extr-delete-char 1)
+	  (capitalize-region
+	   (point)
+	   (progn
+	     (insert-buffer-substring canonicalization-buffer
+				      mbox-beg mbox-end)
+	     (point)))
+	  (setq disable-initial-guessing-flag t)
+	  (setq word-found-flag t))
+
+	 ;; Handle & between names, as in "Bob & Susie".
+	 ((and (> word-count 0) (eq (following-char) ?\&))
+	  (setq name-beg (point))
+	  (setq name-end (1+ name-beg))
+	  (setq word-found-flag t)
+	  (goto-char name-end))
+
 	 ;; Regular name words
 	 ((looking-at mail-extr-name-pattern)
 	  (setq name-beg (point))