Previous: Anonymous Attributions, Up: Selecting an Attribution

7.3 Author Names

Supercite employs a number of heuristics to decipher the author's name based on value of the ‘From:’ mail field of the original message. Supercite can recognize almost all of the common ‘From:’ field formats in use. If you encounter a ‘From:’ field that Supercite cannot parse, please report this bug using M-x report-emacs-bug.

There are a number of Supercite variables that control how author names are extracted from the ‘From:’ header. Some headers may contain a descriptive title as in:

     From: computer!speedy!doe (John Xavier-Doe -- Decent Hacker)

Supercite knows which part of the ‘From:’ header is email address and which part is author name, but in this case the string "Decent Hacker" is not part of the author's name. You can tell Supercite to ignore the title, while still recognizing hyphenated names through the use of a regular expression in the variable sc-titlecue-regexp. This variable has the default value of "\\\\s +-+\\\\s +". Any text after this regexp is encountered is ignored as noise.

Some ‘From:’ headers may contain extra titles in the name fields not separated by a title cue, but which are nonetheless not part of the author's name proper. Examples include the titles “Dr.”, “Mr.”, “Ms.”, “Jr.”, “Sr.”, and “III” (e.g., Thurston Howe, the Third). Also, some companies prepend or append the name of the division, organization, or project on the author's name. All of these titles are noise which should be ignored. The variable sc-name-filter-alist is used for this purpose. As implied by its name, this variable is an association list, where each element is a cons cell of the form:

     (regexp . position)

where regexp is a regular expression that is matched (using string-match) against each element of the ‘From:’ field's author name. position is a position indicator, starting at zero. Thus to strip out all titles of “Dr.”, “Mr.”, etc. from the name, sc-name-filter-alist would have an entry such as:

     ("^\\(Mr\\|Mrs\\|Ms\\|Dr\\)[.]?$" . 0)

which only removes them if they appear as the first word in the name. The position indicator is an integer, or one of the two special symbols last or any. last always matches against the last word in the name field, while any matches against every word in the name field.