+2005-01-04 Richard M. Stallman <rms@gnu.org>
+
+ * mail/mailabbrev.el (sendmail-pre-abbrev-expand-hook):
+ Don't expand if the character is @, period, dash, etc.
+ (define-mail-abbrev): Quote names that contain problem characters.
+
2005-01-04 Thien-Thi Nguyen <ttn@gnu.org>
* progmodes/hideshow.el: No longer require `cl'; `dolist' is standard.
end (string-match "\"[ \t,]*" definition start))
(setq end (string-match "[ \t,]+" definition start)))
(setq end (string-match "[ \t\n,]*,[ \t\n,]*" definition start)))
- (setq result (cons (substring definition start end) result))
- (setq start (and end
- (/= (match-end 0) L)
- (match-end 0))))
+ (let ((tem (substring definition start end)))
+ ;; Advance the loop past this address.
+ (setq start (and end
+ (/= (match-end 0) L)
+ (match-end 0)))
+ ;; If the full name contains a problem character, quote it.
+ (when (string-match "\\(.+?\\)[ \t]*\\(<.*>\\)" tem)
+ (if (string-match "[^- !#$%&'*+/0-9=?A-Za-z^_`{|}~]"
+ (match-string 1 tem))
+ (setq tem (replace-regexp-in-string
+ "\\(.+?\\)[ \t]*\\(<.*>\\)" "\"\\1\" \\2"
+ tem))))
+ (push tem result)))
(setq definition (mapconcat (function identity)
(nreverse result)
mail-alias-separator-string)))
;; the usual syntax table.
(or (and (integerp last-command-char)
- (eq (char-syntax last-command-char) ?_))
+ (or (eq (char-syntax last-command-char) ?_)
+ ;; Don't expand on @.
+ (memq last-command-char '(?@ ?. ?% ?! ?_ ?-))))
(let ((pre-abbrev-expand-hook nil)) ; That's us; don't loop.
;; Use this table so that abbrevs can have hyphens in them.
(set-syntax-table mail-abbrev-syntax-table)
(interactive "P")
(if (looking-at "[ \t]*\n") (expand-abbrev))
(setq this-command 'end-of-buffer)
- (end-of-buffer arg))
+ (with-no-warnings
+ (end-of-buffer arg)))
(eval-after-load "sendmail"
'(progn