Function: mh-alias-suggest-alias
mh-alias-suggest-alias is a byte-compiled function defined in
mh-alias.el.gz.
Signature
(mh-alias-suggest-alias STRING &optional NO-COMMA-SWAP)
Documentation
Suggest an alias for STRING.
Don't reverse the order of strings separated by a comma if NO-COMMA-SWAP is non-nil.
Source Code
;; Defined in /usr/src/emacs/lisp/mh-e/mh-alias.el.gz
;;; Alias File Updating
(defun mh-alias-suggest-alias (string &optional no-comma-swap)
"Suggest an alias for STRING.
Don't reverse the order of strings separated by a comma if
NO-COMMA-SWAP is non-nil."
(cond
((string-match "^<\\(.*\\)>$" string)
;; <somename@foo.bar> -> recurse, stripping brackets.
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match "^\\sw+$" string)
;; One word -> downcase it.
(downcase string))
((string-match "^\\(\\sw+\\)\\s-+\\(\\sw+\\)$" string)
;; Two words -> first.last
(downcase
(format "%s.%s" (match-string 1 string) (match-string 2 string))))
((string-match "^\\([-a-zA-Z0-9._]+\\)@[-a-zA-Z0-9_]+\\.+[a-zA-Z0-9]+$"
string)
;; email only -> downcase username
(downcase (match-string 1 string)))
((string-match "^\"\\(.*\\)\".*" string)
;; "Some name" <somename@foo.bar> -> recurse -> "Some name"
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match "^\\(.*\\) +<.*>$" string)
;; Some name <somename@foo.bar> -> recurse -> Some name
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match (concat goto-address-mail-regexp " +(\\(.*\\))$") string)
;; somename@foo.bar (Some name) -> recurse -> Some name
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match "^\\(Dr\\|Prof\\)\\.? +\\(.*\\)" string)
;; Strip out title
(mh-alias-suggest-alias (match-string 2 string) no-comma-swap))
((string-match "^\\(.*\\), +\\(Jr\\.?\\|II+\\)$" string)
;; Strip out tails with comma
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match "^\\(.*\\) +\\(Jr\\.?\\|II+\\)$" string)
;; Strip out tails
(mh-alias-suggest-alias (match-string 1 string) no-comma-swap))
((string-match "^\\(\\sw+\\) +[A-Z]\\.? +\\(.*\\)$" string)
;; Strip out initials
(mh-alias-suggest-alias
(format "%s %s" (match-string 1 string) (match-string 2 string))
no-comma-swap))
((and (not no-comma-swap)
(string-match "^\\([^,]+\\), +\\(.*\\)$" string))
;; Reverse order of comma-separated fields to handle:
;; From: "Galbraith, Peter" <psg@debian.org>
;; but don't this for a name string extracted from the passwd file
;; with mh-alias-passwd-gecos-comma-separator-flag set to nil.
(mh-alias-suggest-alias
(format "%s %s" (match-string 2 string) (match-string 1 string))
no-comma-swap))
(t
;; Output string, with spaces replaced by dots.
(mh-alias-canonicalize-suggestion string))))