annotate lisp/mail/mail-extr.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 280c8ae2476d
children e0d9a22430d9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
51081
a4bb96832880 Use explicit coding tag.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47939
diff changeset
1 ;;; mail-extr.el --- extract full name and address from RFC 822 mail header -*- coding: utf-8 -*-
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2
64754
fafd692d1e40 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64085
diff changeset
3 ;; Copyright (C) 1991, 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 809
diff changeset
5
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
6 ;; Author: Joe Wells <jbw@cs.bu.edu>
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
7 ;; Maintainer: FSF
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
8 ;; Keywords: mail
110015
280c8ae2476d Add "Package:" file headers to denote built-in packages.
Chong Yidong <cyd@stupidchicken.com>
parents: 106815
diff changeset
9 ;; Package: mail-utils
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
10
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
11 ;; This file is part of GNU Emacs.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
12
94674
ef65fa4dca3b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; GNU Emacs is free software: you can redistribute it and/or modify
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
94674
ef65fa4dca3b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; the Free Software Foundation, either version 3 of the License, or
ef65fa4dca3b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
16 ;; (at your option) any later version.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
17
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
18 ;; GNU Emacs is distributed in the hope that it will be useful,
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
21 ;; GNU General Public License for more details.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
22
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
94674
ef65fa4dca3b Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
25
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26 ;;; Commentary:
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
27
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
28 ;; The entry point of this code is
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
29 ;;
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
30 ;; mail-extract-address-components: (address &optional all)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
31 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
32 ;; Given an RFC-822 ADDRESS, extract full name and canonical address.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
33 ;; Returns a list of the form (FULL-NAME CANONICAL-ADDRESS).
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
34 ;; If no name can be extracted, FULL-NAME will be nil.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
35 ;; ADDRESS may be a string or a buffer. If it is a buffer, the visible
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
36 ;; (narrowed) portion of the buffer will be interpreted as the address.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
37 ;; (This feature exists so that the clever caller might be able to avoid
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
38 ;; consing a string.)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
39 ;; If ADDRESS contains more than one RFC-822 address, only the first is
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
40 ;; returned.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
41 ;;
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
42 ;; If ALL is non-nil, that means return info about all the addresses
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
43 ;; that are found in ADDRESS. The value is a list of elements of
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
44 ;; the form (FULL-NAME CANONICAL-ADDRESS), one per address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
45 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
46 ;; This code is more correct (and more heuristic) parser than the code in
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
47 ;; rfc822.el. And despite its size, it's fairly fast.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
48 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
49 ;; There are two main benefits:
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
50 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
51 ;; 1. Higher probability of getting the correct full name for a human than
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
52 ;; any other package we know of. (On the other hand, it will cheerfully
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
53 ;; mangle non-human names/comments.)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
54 ;; 2. Address part is put in a canonical form.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
55 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
56 ;; The interface is not yet carved in stone; please give us suggestions.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
57 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
58 ;; We have an extensive test-case collection of funny addresses if you want to
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
59 ;; work with the code. Developing this code requires frequent testing to
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
60 ;; make sure you're not breaking functionality. The test cases aren't included
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
61 ;; because they are over 100K.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
62 ;;
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
63 ;; If you find an address that mail-extr fails on, please send it to the
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
64 ;; maintainer along with what you think the correct results should be. We do
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
65 ;; not consider it a bug if mail-extr mangles a comment that does not
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
66 ;; correspond to a real human full name, although we would prefer that
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
67 ;; mail-extr would return the comment as-is.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
68 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
69 ;; Features:
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
70 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
71 ;; * Full name handling:
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
72 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
73 ;; * knows where full names can be found in an address.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
74 ;; * avoids using empty comments and quoted text.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
75 ;; * extracts full names from mailbox names.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
76 ;; * recognizes common formats for comments after a full name.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
77 ;; * puts a period and a space after each initial.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
78 ;; * understands & referring to the mailbox name, capitalized.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
79 ;; * strips name prefixes like "Prof.", etc.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
80 ;; * understands what characters can occur in names (not just letters).
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
81 ;; * figures out middle initial from mailbox name.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
82 ;; * removes funny nicknames.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
83 ;; * keeps suffixes such as Jr., Sr., III, etc.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
84 ;; * reorders "Last, First" type names.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
85 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
86 ;; * Address handling:
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
87 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
88 ;; * parses rfc822 quoted text, comments, and domain literals.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
89 ;; * parses rfc822 multi-line headers.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
90 ;; * does something reasonable with rfc822 GROUP addresses.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
91 ;; * handles many rfc822 noncompliant and garbage addresses.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
92 ;; * canonicalizes addresses (after stripping comments/phrases outside <>).
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
93 ;; * converts ! addresses into .UUCP and %-style addresses.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
94 ;; * converts rfc822 ROUTE addresses to %-style addresses.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
95 ;; * truncates %-style addresses at leftmost fully qualified domain name.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
96 ;; * handles local relative precedence of ! vs. % and @ (untested).
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
97 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
98 ;; It does almost no string creation. It primarily uses the built-in
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
99 ;; parsing routines with the appropriate syntax tables. This should
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
100 ;; result in greater speed.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
101 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
102 ;; TODO:
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
103 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
104 ;; * handle all test cases. (This will take forever.)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
105 ;; * software to pick the correct header to use (eg., "Senders-Name:").
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
106 ;; * multiple addresses in the "From:" header (almost all of the necessary
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
107 ;; code is there).
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
108 ;; * flag to not treat `,' as an address separator. (This is useful when
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
109 ;; there is a "From:" header but no "Sender:" header, because then there
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
110 ;; is only allowed to be one address.)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
111 ;; * mailbox name does not necessarily contain full name.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
112 ;; * fixing capitalization when it's all upper or lowercase. (Hard!)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
113 ;; * some of the domain literal handling is missing. (But I've never even
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
114 ;; seen one of these in a mail address, so maybe no big deal.)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
115 ;; * arrange to have syntax tables byte-compiled.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
116 ;; * speed hacks.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
117 ;; * delete unused variables.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
118 ;; * arrange for testing with different relative precedences of ! vs. @
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
119 ;; and %.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
120 ;; * insert documentation strings!
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
121 ;; * handle X.400-gatewayed addresses according to RFC 1148.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
122
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
123 ;;; Change Log:
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
124 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
125 ;; Thu Feb 17 17:57:33 1994 Jamie Zawinski (jwz@lucid.com)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
126 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
127 ;; * merged with jbw's latest version
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
128 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
129 ;; Wed Feb 9 21:56:27 1994 Jamie Zawinski (jwz@lucid.com)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
130 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
131 ;; * high-bit chars in comments weren't treated as word syntax
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
132 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
133 ;; Sat Feb 5 03:13:40 1994 Jamie Zawinski (jwz@lucid.com)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
134 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
135 ;; * call replace-match with fixed-case arg
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
136 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
137 ;; Thu Dec 16 21:56:45 1993 Jamie Zawinski (jwz@lucid.com)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
138 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
139 ;; * some more cleanup, doc, added provide
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
140 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
141 ;; Tue Mar 23 21:23:18 1993 Joe Wells (jbw at csd.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
142 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
143 ;; * Made mail-full-name-prefixes a user-customizable variable.
46255
503a8e2a9054 Fix typo in comments, not worthy of a changelog entry.
Simon Josefsson <jas@extundo.com>
parents: 41300
diff changeset
144 ;; Allow passing the address as a buffer as well as a string.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
145 ;; Allow [ and ] as name characters (Finnish character set).
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
146 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
147 ;; Mon Mar 22 21:20:56 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
148 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
149 ;; * Handle "null" addresses. Handle = used for spacing in mailbox
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
150 ;; name. Fix bug in handling of ROUTE-ADDR-type addresses that are
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
151 ;; missing their brackets. Handle uppercase "JR". Extract full
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
152 ;; names from X.400 addresses encoded in RFC-822. Fix bug in
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
153 ;; handling of multiple addresses where first has trailing comment.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
154 ;; Handle more kinds of telephone extension lead-ins.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
155 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
156 ;; Mon Mar 22 20:16:57 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
157 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
158 ;; * Handle HZ encoding for embedding GB encoded chinese characters.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
159 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
160 ;; Mon Mar 22 00:46:12 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
161 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
162 ;; * Fixed too broad matching of ham radio call signs. Fixed bug in
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
163 ;; handling an unmatched ' in a name string. Enhanced recognition
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
164 ;; of when . in the mailbox name terminates the name portion.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
165 ;; Narrowed conversion of . to space to only the necessary
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
166 ;; situation. Deal with VMS's stupid date stamps. Handle a unique
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
167 ;; way of introducing an alternate address. Fixed spacing bug I
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
168 ;; introduced in switching last name order. Fixed bug in handling
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
169 ;; address with ! and % but no @. Narrowed the cases in which
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
170 ;; certain trailing words are discarded.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
171 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
172 ;; Sun Mar 21 21:41:06 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
173 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
174 ;; * Fixed bugs in handling GROUP addresses. Certain words in the
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
175 ;; middle of a name no longer terminate it. Handle LISTSERV list
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
176 ;; names. Ignore comment field containing mailbox name.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
177 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
178 ;; Sun Mar 21 14:39:38 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
179 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
180 ;; * Moved variant-method code back into main function. Handle
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
181 ;; underscores as spaces in comments. Handle leading nickname. Add
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
182 ;; flag to ignore single-word names. Other changes.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
183 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
184 ;; Mon Feb 1 22:23:31 1993 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
185 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
186 ;; * Added in changes by Rod Whitby and Jamie Zawinski. This
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
187 ;; includes the flag mail-extr-guess-middle-initial and the fix for
7133
9367067ee736 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 7060
diff changeset
188 ;; handling multiple addresses correctly. (Whitby just changed
9367067ee736 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 7060
diff changeset
189 ;; a > to a <.)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
190 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
191 ;; Mon Apr 6 23:59:09 1992 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
192 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
193 ;; * Cleaned up some more. Release version 1.0 to world.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
194 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
195 ;; Sun Apr 5 19:39:08 1992 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
196 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
197 ;; * Cleaned up full name extraction extensively.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
198 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
199 ;; Sun Feb 2 14:45:24 1992 Joe Wells (jbw at bigbird.bu.edu)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
200 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
201 ;; * Total rewrite. Integrated mail-canonicalize-address into
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
202 ;; mail-extract-address-components. Now handles GROUP addresses more
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
203 ;; or less correctly. Better handling of lots of different cases.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
204 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
205 ;; Fri Jun 14 19:39:50 1991
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
206 ;; * Created.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
207
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
208 ;;; Code:
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
209
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
210
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
211 (defgroup mail-extr nil
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
212 "Extract full name and address from RFC 822 mail header."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
213 :prefix "mail-extr-"
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
214 :group 'mail)
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
215
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
216 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
217 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
218 ;; User configuration variable definitions.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
219 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
220
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
221 (defcustom mail-extr-guess-middle-initial nil
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
222 "*Whether to try to guess middle initial from mail address.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
223 If true, then when we see an address like \"John Smith <jqs@host.com>\"
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
224 we will assume that \"John Q. Smith\" is the fellow's name."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
225 :type 'boolean
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
226 :group 'mail-extr)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
227
47615
a298684644ca (mail-extr-ignore-single-names): Change default.
Simon Josefsson <jas@extundo.com>
parents: 46273
diff changeset
228 (defcustom mail-extr-ignore-single-names nil
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
229 "*Whether to ignore a name that is just a single word.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
230 If true, then when we see an address like \"Idiot <dumb@stupid.com>\"
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
231 we will act as though we couldn't find a full name in the address."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
232 :type 'boolean
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57391
diff changeset
233 :version "22.1"
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
234 :group 'mail-extr)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
235
57391
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
236 (defcustom mail-extr-ignore-realname-equals-mailbox-name t
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
237 "*Whether to ignore a name that is equal to the mailbox name.
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
238 If true, then when the address is like \"Single <single@address.com>\"
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
239 we will act as though we couldn't find a full name in the address."
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
240 :type 'boolean
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
241 :group 'mail-extr)
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
242
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
243 ;; Matches a leading title that is not part of the name (does not
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
244 ;; contribute to uniquely identifying the person).
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
245 (defcustom mail-extr-full-name-prefixes
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
246 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
247 "\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \t\n]")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
248 "*Matches prefixes to the full name that identify a person's position.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
249 These are stripped from the full name because they do not contribute to
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
250 uniquely identifying the person."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
251 :type 'regexp
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
252 :group 'mail-extr)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
253
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
254 (defcustom mail-extr-@-binds-tighter-than-! nil
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
255 "*Whether the local mail transport agent looks at ! before @."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
256 :type 'boolean
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
257 :group 'mail-extr)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
258
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
259 (defcustom mail-extr-mangle-uucp nil
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
260 "*Whether to throw away information in UUCP addresses
20962
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
261 by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
262 :type 'boolean
54413501e4a9 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 20828
diff changeset
263 :group 'mail-extr)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
264
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
265 ;;----------------------------------------------------------------------
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
266 ;; what orderings are meaningful?????
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
267 ;;(defvar mail-operator-precedence-list '(?! ?% ?@))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
268 ;; Right operand of a % or a @ must be a domain name, period. No other
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
269 ;; operators allowed. Left operand of a @ is an address relative to that
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
270 ;; site.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
271
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
272 ;; Left operand of a ! must be a domain name. Right operand is an
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
273 ;; arbitrary address.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
274 ;;----------------------------------------------------------------------
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
275
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
276
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
277
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
278 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
279 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
280 ;; Constant definitions.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
281 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
282
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
283 ;; Any character that can occur in a name, not counting characters that
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
284 ;; separate parts of a multipart name (hyphen and period).
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
285 ;; Yes, there are weird people with digits in their names.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
286 ;; You will also notice the consideration for the
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
287 ;; Swedish/Finnish/Norwegian character set.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
288 (defconst mail-extr-all-letters-but-separators
25439
f597d85734d7 (mail-extr-all-letters-but-separators)
Richard M. Stallman <rms@gnu.org>
parents: 21477
diff changeset
289 (purecopy "][[:alnum:]{|}'~`"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
290
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
291 ;; Any character that can occur in a name in an RFC822 address including
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
292 ;; the separator (hyphen and possibly period) for multipart names.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
293 ;; #### should . be in here?
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
294 (defconst mail-extr-all-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
295 (purecopy (concat mail-extr-all-letters-but-separators "---")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
296
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
297 ;; Any character that can start a name.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
298 ;; Keep this set as minimal as possible.
25439
f597d85734d7 (mail-extr-all-letters-but-separators)
Richard M. Stallman <rms@gnu.org>
parents: 21477
diff changeset
299 (defconst mail-extr-first-letters (purecopy "[:alpha:]"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
300
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
301 ;; Any character that can end a name.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
302 ;; Keep this set as minimal as possible.
25439
f597d85734d7 (mail-extr-all-letters-but-separators)
Richard M. Stallman <rms@gnu.org>
parents: 21477
diff changeset
303 (defconst mail-extr-last-letters (purecopy "[:alpha:]`'."))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
304
41159
5f754d04a4d0 (mail-extr-voodoo): Treat a number as a word
Richard M. Stallman <rms@gnu.org>
parents: 38412
diff changeset
305 (defconst mail-extr-leading-garbage "\\W+")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
306
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
307 ;; (defconst mail-extr-non-name-chars
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
308 ;; (purecopy (concat "^" mail-extr-all-letters ".")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
309 ;; (defconst mail-extr-non-begin-name-chars
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
310 ;; (purecopy (concat "^" mail-extr-first-letters)))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
311 ;; (defconst mail-extr-non-end-name-chars
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
312 ;; (purecopy (concat "^" mail-extr-last-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
313
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
314 ;; Matches an initial not followed by both a period and a space.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
315 ;; (defconst mail-extr-bad-initials-pattern
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
316 ;; (purecopy
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
317 ;; (format "\\(\\([^%s]\\|\\`\\)[%s]\\)\\(\\.\\([^ ]\\)\\| \\|\\([^%s .]\\)\\|\\'\\)"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
318 ;; mail-extr-all-letters mail-extr-first-letters mail-extr-all-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
319
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
320 ;; Matches periods used instead of spaces. Must not match the period
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
321 ;; following an initial.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
322 (defconst mail-extr-bad-dot-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
323 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
324 (format "\\([%s][%s]\\)\\.+\\([%s]\\)"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
325 mail-extr-all-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
326 mail-extr-last-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
327 mail-extr-first-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
328
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
329 ;; Matches an embedded or leading nickname that should be removed.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
330 ;; (defconst mail-extr-nickname-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
331 ;; (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
332 ;; (format "\\([ .]\\|\\`\\)[\"'`\[\(]\\([ .%s]+\\)[\]\"'\)] "
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
333 ;; mail-extr-all-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
334
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
335 ;; Matches the occurrence of a generational name suffix, and the last
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
336 ;; character of the preceding name. This is important because we want to
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
337 ;; keep such suffixes: they help to uniquely identify the person.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
338 ;; *** Perhaps this should be a user-customizable variable. However, the
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
339 ;; *** regular expression is fairly tricky to alter, so maybe not.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
340 (defconst mail-extr-full-name-suffix-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
341 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
342 (format
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
343 "\\(,? ?\\([JjSs][Rr]\\.?\\|V?I+V?\\)\\)\\([^%s]\\([^%s]\\|\\'\\)\\|\\'\\)"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
344 mail-extr-all-letters mail-extr-all-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
345
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
346 (defconst mail-extr-roman-numeral-pattern (purecopy "V?I+V?\\b"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
347
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
348 ;; Matches a trailing uppercase (with other characters possible) acronym.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
349 ;; Must not match a trailing uppercase last name or trailing initial
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
350 (defconst mail-extr-weird-acronym-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
351 (purecopy "\\([A-Z]+[-_/]\\|[A-Z][A-Z][A-Z]?\\b\\)"))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
352
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
353 ;; Matches a mixed-case or lowercase name (not an initial).
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
354 ;; #### Match Latin1 lower case letters here too?
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
355 ;; (defconst mail-extr-mixed-case-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
356 ;; (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
357 ;; (format
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
358 ;; "\\b\\([a-z][%s]*[%s]\\|[%s][%s]*[a-z][%s]*[%s]\\|[%s][%s]*[a-z]\\)"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
359 ;; mail-extr-all-letters mail-extr-last-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
360 ;; mail-extr-first-letters mail-extr-all-letters mail-extr-all-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
361 ;; mail-extr-last-letters mail-extr-first-letters mail-extr-all-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
362
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
363 ;; Matches a trailing alternative address.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
364 ;; #### Match Latin1 letters here too?
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
365 ;; #### Match _ before @ here too?
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
366 (defconst mail-extr-alternative-address-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
367 (purecopy "\\(aka *\\)?[a-zA-Z.]+[!@][a-zA-Z.]"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
368
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
369 ;; Matches a variety of trailing comments not including comma-delimited
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
370 ;; comments.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
371 (defconst mail-extr-trailing-comment-start-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
372 (purecopy " [-{]\\|--\\|[+@#></\;]"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
373
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
374 ;; Matches a name (not an initial).
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
375 ;; This doesn't force a word boundary at the end because sometimes a
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
376 ;; comment is separated by a `-' with no preceding space.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
377 (defconst mail-extr-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
378 (purecopy (format "\\b[%s][%s]*[%s]"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
379 mail-extr-first-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
380 mail-extr-all-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
381 mail-extr-last-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
382
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
383 (defconst mail-extr-initial-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
384 (purecopy (format "\\b[%s]\\([. ]\\|\\b\\)" mail-extr-first-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
385
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
386 ;; Matches a single name before a comma.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
387 ;; (defconst mail-extr-last-name-first-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
388 ;; (purecopy (concat "\\`" mail-extr-name-pattern ",")))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
389
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
390 ;; Matches telephone extensions.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
391 (defconst mail-extr-telephone-extension-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
392 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
393 "\\(\\([Ee]xt\\|\\|[Tt]ph\\|[Tt]el\\|[Xx]\\).?\\)? *\\+?[0-9][- 0-9]+"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
394
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
395 ;; Matches ham radio call signs.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
396 ;; Help from: Mat Maessen N2NJZ <maessm@rpi.edu>, Mark Feit
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
397 ;; <mark@era.com>, Michael Covington <mcovingt@ai.uga.edu>.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
398 ;; Examples: DX504 DX515 K5MRU K8DHK KA9WGN KA9WGN KD3FU KD6EUI KD6HBW
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
399 ;; KE9TV KF0NV N1API N3FU N3GZE N3IGS N4KCC N7IKQ N9HHU W4YHF W6ANK WA2SUH
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
400 ;; WB7VZI N2NJZ NR3G KJ4KK AB4UM AL7NI KH6OH WN3KBT N4TMI W1A N0NZO
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
401 (defconst mail-extr-ham-call-sign-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
402 (purecopy "\\b\\(DX[0-9]+\\|[AKNW][A-Z]?[0-9][A-Z][A-Z]?[A-Z]?\\)"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
403
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
404 ;; Possible trailing suffixes: "\\(/\\(KT\\|A[AEG]\\|[R0-9]\\)\\)?"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
405 ;; /KT == Temporary Technician (has CSC but not "real" license)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
406 ;; /AA == Temporary Advanced
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
407 ;; /AE == Temporary Extra
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
408 ;; /AG == Temporary General
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
409 ;; /R == repeater
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
410 ;; /# == stations operating out of home district
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
411 ;; I don't include these in the regexp above because I can't imagine
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
412 ;; anyone putting them with their name in an e-mail address.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
413
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
414 ;; Matches normal single-part name
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
415 (defconst mail-extr-normal-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
416 (purecopy (format "\\b[%s][%s]+[%s]"
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
417 mail-extr-first-letters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
418 mail-extr-all-letters-but-separators
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
419 mail-extr-last-letters)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
420
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
421 ;; Matches a single word name.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
422 ;; (defconst mail-extr-one-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
423 ;; (purecopy (concat "\\`" mail-extr-normal-name-pattern "\\'")))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
424
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
425 ;; Matches normal two names with missing middle initial
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
426 ;; The first name is not allowed to have a hyphen because this can cause
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
427 ;; false matches where the "middle initial" is actually the first letter
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
428 ;; of the second part of the first name.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
429 (defconst mail-extr-two-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
430 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
431 (concat "\\`\\(" mail-extr-normal-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
432 "\\|" mail-extr-initial-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
433 "\\) +\\(" mail-extr-name-pattern "\\)\\(,\\|\\'\\)")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
434
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
435 (defconst mail-extr-listserv-list-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
436 (purecopy "Multiple recipients of list \\([-A-Z]+\\)"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
437
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
438 (defconst mail-extr-stupid-vms-date-stamp-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
439 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
440 "[0-9][0-9]-[JFMASOND][aepuco][nbrylgptvc]-[0-9][0-9][0-9][0-9] [0-9]+ *"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
441
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
442 ;;; HZ -- GB (PRC Chinese character encoding) in ASCII embedding protocol
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
443 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
444 ;; In ASCII mode, a byte is interpreted as an ASCII character, unless a '~' is
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
445 ;; encountered. The character '~' is an escape character. By convention, it
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
446 ;; must be immediately followed ONLY by '~', '{' or '\n' (<LF>), with the
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
447 ;; following special meaning.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
448 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
449 ;; o The escape sequence '~~' is interpreted as a '~'.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
450 ;; o The escape-to-GB sequence '~{' switches the mode from ASCII to GB.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
451 ;; o The escape sequence '~\n' is a line-continuation marker to be consumed
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
452 ;; with no output produced.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
453 ;;
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
454 ;; In GB mode, characters are interpreted two bytes at a time as (pure) GB
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
455 ;; codes until the escape-from-GB code '~}' is read. This code switches the
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
456 ;; mode from GB back to ASCII. (Note that the escape-from-GB code '~}'
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
457 ;; ($7E7D) is outside the defined GB range.)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
458 (defconst mail-extr-hz-embedded-gb-encoded-chinese-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
459 (purecopy "~{\\([^~].\\|~[^\}]\\)+~}"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
460
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
461 ;; The leading optional lowercase letters are for a bastardized version of
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
462 ;; the encoding, as is the optional nature of the final slash.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
463 (defconst mail-extr-x400-encoded-address-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
464 (purecopy "[a-z]?[a-z]?\\(/[A-Za-z]+\\(\\.[A-Za-z]+\\)?=[^/]+\\)+/?\\'"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
465
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
466 (defconst mail-extr-x400-encoded-address-field-pattern-format
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
467 (purecopy "/%s=\\([^/]+\\)\\(/\\|\\'\\)"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
468
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
469 (defconst mail-extr-x400-encoded-address-surname-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
470 ;; S stands for Surname (family name).
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
471 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
472 (format mail-extr-x400-encoded-address-field-pattern-format "[Ss]")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
473
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
474 (defconst mail-extr-x400-encoded-address-given-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
475 ;; G stands for Given name.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
476 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
477 (format mail-extr-x400-encoded-address-field-pattern-format "[Gg]")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
478
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
479 (defconst mail-extr-x400-encoded-address-full-name-pattern
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
480 ;; PN stands for Personal Name. When used it represents the combination
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
481 ;; of the G and S fields.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
482 ;; "The one system I used having this field asked it with the prompt
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
483 ;; `Personal Name'. But they mapped it into G and S on outgoing real
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
484 ;; X.400 addresses. As they mapped G and S into PN on incoming..."
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
485 (purecopy
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
486 (format mail-extr-x400-encoded-address-field-pattern-format "[Pp][Nn]")))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
487
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
488
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
489
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
490 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
491 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
492 ;; Syntax tables used for quick parsing.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
493 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
494
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
495 (defconst mail-extr-address-syntax-table (make-syntax-table))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
496 (defconst mail-extr-address-comment-syntax-table (make-syntax-table))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
497 (defconst mail-extr-address-domain-literal-syntax-table (make-syntax-table))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
498 (defconst mail-extr-address-text-comment-syntax-table (make-syntax-table))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
499 (defconst mail-extr-address-text-syntax-table (make-syntax-table))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
500 (mapc
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
501 (lambda (pair)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
502 (let ((syntax-table (symbol-value (car pair))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
503 (dolist (item (cdr pair))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
504 (if (eq 2 (length item))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
505 ;; modifying syntax of a single character
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
506 (modify-syntax-entry (car item) (car (cdr item)) syntax-table)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
507 ;; modifying syntax of a range of characters
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
508 (let ((char (nth 0 item))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
509 (bound (nth 1 item))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
510 (syntax (nth 2 item)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
511 (while (<= char bound)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
512 (modify-syntax-entry char syntax syntax-table)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
513 (setq char (1+ char))))))))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
514 '((mail-extr-address-syntax-table
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
515 (?\000 ?\037 "w") ;control characters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
516 (?\040 " ") ;SPC
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
517 (?! ?~ "w") ;printable characters
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
518 (?\177 "w") ;DEL
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
519 (?\t " ")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
520 (?\r " ")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
521 (?\n " ")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
522 (?\( ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
523 (?\) ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
524 (?< ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
525 (?> ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
526 (?@ ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
527 (?, ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
528 (?\; ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
529 (?: ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
530 (?\\ "\\")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
531 (?\" "\"")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
532 (?. ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
533 (?\[ ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
534 (?\] ".")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
535 ;; % and ! aren't RFC822 characters, but it is convenient to pretend
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
536 (?% ".")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
537 (?! ".") ;; this needs to be word-constituent when not in .UUCP mode
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
538 )
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
539 (mail-extr-address-comment-syntax-table
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
540 (?\000 ?\377 "w")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
541 (?\040 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
542 (?\240 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
543 (?\t " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
544 (?\r " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
545 (?\n " ")
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
546 (?\( "\(\)")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
547 (?\) "\)\(")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
548 (?\\ "\\"))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
549 (mail-extr-address-domain-literal-syntax-table
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
550 (?\000 ?\377 "w")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
551 (?\040 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
552 (?\240 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
553 (?\t " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
554 (?\r " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
555 (?\n " ")
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
556 (?\[ "\(\]") ;??????
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
557 (?\] "\)\[") ;??????
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
558 (?\\ "\\"))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
559 (mail-extr-address-text-comment-syntax-table
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
560 (?\000 ?\377 "w")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
561 (?\040 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
562 (?\240 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
563 (?\t " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
564 (?\r " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
565 (?\n " ")
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
566 (?\( "\(\)")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
567 (?\) "\)\(")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
568 (?\[ "\(\]")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
569 (?\] "\)\[")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
570 (?\{ "\(\}")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
571 (?\} "\)\{")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
572 (?\\ "\\")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
573 (?\" "\"")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
574 ;; (?\' "\)\`")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
575 ;; (?\` "\(\'")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
576 )
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
577 (mail-extr-address-text-syntax-table
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
578 (?\000 ?\177 ".")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
579 (?\200 ?\377 "w")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
580 (?\040 " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
581 (?\t " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
582 (?\r " ")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
583 (?\n " ")
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
584 (?A ?Z "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
585 (?a ?z "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
586 (?- "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
587 (?\} "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
588 (?\{ "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
589 (?| "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
590 (?\' "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
591 (?~ "w")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
592 (?0 ?9 "w"))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
593 ))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
594
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
595
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
596 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
597 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
598 ;; Utility functions and macros.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
599 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
600
52916
7302d194fccb (mail-extr-ignore-single-names): Add :version.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
601 ;; Fixme: There are Latin-1 nbsp below. If such characters should be
7302d194fccb (mail-extr-ignore-single-names): Add :version.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
602 ;; included, this is the wrong thing to do -- it should use syntax (or
7302d194fccb (mail-extr-ignore-single-names): Add :version.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
603 ;; regexp char classes).
7302d194fccb (mail-extr-ignore-single-names): Add :version.
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
604
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
605 (defsubst mail-extr-skip-whitespace-forward ()
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
606 ;; v19 fn skip-syntax-forward is more tasteful, but not byte-coded.
51081
a4bb96832880 Use explicit coding tag.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47939
diff changeset
607 (skip-chars-forward " \t\n\r "))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
608
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
609 (defsubst mail-extr-skip-whitespace-backward ()
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
610 ;; v19 fn skip-syntax-backward is more tasteful, but not byte-coded.
51081
a4bb96832880 Use explicit coding tag.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 47939
diff changeset
611 (skip-chars-backward " \t\n\r "))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
612
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
613
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
614 (defsubst mail-extr-undo-backslash-quoting (beg end)
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
615 (save-excursion
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
616 (save-restriction
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
617 (narrow-to-region beg end)
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
618 (goto-char (point-min))
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
619 ;; undo \ quoting
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
620 (while (search-forward "\\" nil t)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
621 (delete-char -1)
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
622 (or (eobp)
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
623 (forward-char 1))))))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
624
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
625 (defsubst mail-extr-nuke-char-at (pos)
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
626 (save-excursion
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
627 (goto-char pos)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
628 (delete-char 1)
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
629 (insert ?\ )))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
630
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
631 (put 'mail-extr-nuke-outside-range
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
632 'edebug-form-spec '(symbolp &optional form form atom))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
633
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
634 (defmacro mail-extr-nuke-outside-range (list-symbol
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
635 beg-symbol end-symbol
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
636 &optional no-replace)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
637 "Delete all elements outside BEG..END in LIST.
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
638 LIST-SYMBOL names a variable holding a list of buffer positions
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
639 BEG-SYMBOL and END-SYMBOL name variables delimiting a range
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
640 Each element of LIST-SYMBOL which lies outside of the range is
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
641 deleted from the list.
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
642 Unless NO-REPLACE is true, at each of the positions in LIST-SYMBOL
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
643 which lie outside of the range, one character at that position is
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
644 replaced with a SPC."
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
645 (or (memq no-replace '(t nil))
14029
8812f5ef65db (mail-extr-nuke-outside-range): Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 13959
diff changeset
646 (error "no-replace must be t or nil, evaluable at macroexpand-time"))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
647 `(let ((temp ,list-symbol)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
648 ch)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
649 (while temp
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
650 (setq ch (car temp))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
651 (when (or (> ch ,end-symbol)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
652 (< ch ,beg-symbol))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
653 ,@(if no-replace
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
654 nil
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
655 `((mail-extr-nuke-char-at ch)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
656 (setcar temp nil))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
657 (setq temp (cdr temp)))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
658 (setq ,list-symbol (delq nil ,list-symbol))))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
659
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
660 (defun mail-extr-demarkerize (marker)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
661 ;; if arg is a marker, destroys the marker, then returns the old value.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
662 ;; otherwise returns the arg.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
663 (if (markerp marker)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
664 (let ((temp (marker-position marker)))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
665 (set-marker marker nil)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
666 temp)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
667 marker))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
668
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
669 (defun mail-extr-markerize (pos)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
670 ;; coerces pos to a marker if non-nil.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
671 (if (or (markerp pos) (null pos))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
672 pos
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
673 (copy-marker pos)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
674
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
675 (defsubst mail-extr-safe-move-sexp (arg)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
676 ;; Safely skip over one balanced sexp, if there is one. Return t if success.
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
677 (condition-case error
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
678 (progn
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
679 (goto-char (or (scan-sexps (point) arg) (point)))
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
680 t)
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
681 (error
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
682 ;; #### kludge kludge kludge kludge kludge kludge kludge !!!
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
683 (if (string-equal (nth 1 error) "Unbalanced parentheses")
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
684 nil
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
685 (while t
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
686 (signal (car error) (cdr error)))))))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
687
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
688 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
689 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
690 ;; The main function to grind addresses
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
691 ;;
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
692
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
693 (defvar disable-initial-guessing-flag) ; dynamic assignment
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
694 (defvar cbeg) ; dynamic assignment
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
695 (defvar cend) ; dynamic assignment
56764
57c8c9029251 (mail-extr-all-top-level-domains): Add forward defvar.
Richard M. Stallman <rms@gnu.org>
parents: 56600
diff changeset
696 (defvar mail-extr-all-top-level-domains) ; Defined below.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
697
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
698 ;;;###autoload
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
699 (defun mail-extract-address-components (address &optional all)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
700 "Given an RFC-822 address ADDRESS, extract full name and canonical address.
67435
f245bb6e08da * files.el (save-buffer):
Reiner Steib <Reiner.Steib@gmx.de>
parents: 64754
diff changeset
701 Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no
f245bb6e08da * files.el (save-buffer):
Reiner Steib <Reiner.Steib@gmx.de>
parents: 64754
diff changeset
702 name can be extracted, FULL-NAME will be nil. Also see
f245bb6e08da * files.el (save-buffer):
Reiner Steib <Reiner.Steib@gmx.de>
parents: 64754
diff changeset
703 `mail-extr-ignore-single-names' and
f245bb6e08da * files.el (save-buffer):
Reiner Steib <Reiner.Steib@gmx.de>
parents: 64754
diff changeset
704 `mail-extr-ignore-realname-equals-mailbox-name'.
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
705
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
706 If the optional argument ALL is non-nil, then ADDRESS can contain zero
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
707 or more recipients, separated by commas, and we return a list of
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
708 the form ((FULL-NAME CANONICAL-ADDRESS) ...) with one element for
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
709 each recipient. If ALL is nil, then if ADDRESS contains more than
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
710 one recipients, all but the first is ignored.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
711
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
712 ADDRESS may be a string or a buffer. If it is a buffer, the visible
47615
a298684644ca (mail-extr-ignore-single-names): Change default.
Simon Josefsson <jas@extundo.com>
parents: 46273
diff changeset
713 \(narrowed) portion of the buffer will be interpreted as the address.
a298684644ca (mail-extr-ignore-single-names): Change default.
Simon Josefsson <jas@extundo.com>
parents: 46273
diff changeset
714 \(This feature exists so that the clever caller might be able to avoid
a298684644ca (mail-extr-ignore-single-names): Change default.
Simon Josefsson <jas@extundo.com>
parents: 46273
diff changeset
715 consing a string.)"
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
716 (let ((canonicalization-buffer (get-buffer-create " *canonical address*"))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
717 (extraction-buffer (get-buffer-create " *extract address components*"))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
718 value-list)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
719
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
720 (with-current-buffer (get-buffer-create extraction-buffer)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
721 (fundamental-mode)
923
9f3cc03dae67 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
722 (buffer-disable-undo extraction-buffer)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
723 (set-syntax-table mail-extr-address-syntax-table)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
724 (widen)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
725 (erase-buffer)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
726 (setq case-fold-search nil)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
727
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
728 ;; Insert extra space at beginning to allow later replacement with <
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
729 ;; without having to move markers.
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
730 (insert ?\ )
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
731
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
732 ;; Insert the address itself.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
733 (cond ((stringp address)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
734 (insert address))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
735 ((bufferp address)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
736 (insert-buffer-substring address))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
737 (t
14029
8812f5ef65db (mail-extr-nuke-outside-range): Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 13959
diff changeset
738 (error "Invalid address: %s" address)))
16727
45d9891b03b2 (mail-extract-address-components): Clear text props
Richard M. Stallman <rms@gnu.org>
parents: 16699
diff changeset
739
45d9891b03b2 (mail-extract-address-components): Clear text props
Richard M. Stallman <rms@gnu.org>
parents: 16699
diff changeset
740 (set-text-properties (point-min) (point-max) nil)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
741
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
742 (with-current-buffer (get-buffer-create canonicalization-buffer)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
743 (fundamental-mode)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
744 (buffer-disable-undo canonicalization-buffer)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
745 (setq case-fold-search nil))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
746
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
747
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
748 ;; Unfold multiple lines.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
749 (goto-char (point-min))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
750 (while (re-search-forward "\\([^\\]\\(\\\\\\\\\\)*\\)\n[ \t]" nil t)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
751 (replace-match "\\1 " t))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
752
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
753 ;; Loop over addresses until we have as many as we want.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
754 (while (and (or all (null value-list))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
755 (progn (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
756 (skip-chars-forward " \t")
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
757 (not (eobp))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
758 (let (char
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
759 end-of-address
21477
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
760 <-pos >-pos @-pos colon-pos comma-pos !-pos %-pos \;-pos
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
761 group-:-pos group-\;-pos route-addr-:-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
762 record-pos-symbol
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
763 first-real-pos last-real-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
764 phrase-beg phrase-end
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
765 cbeg cend ; dynamically set from -voodoo
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
766 quote-beg quote-end
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
767 atom-beg atom-end
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
768 mbox-beg mbox-end
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
769 \.-ends-name
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
770 temp
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
771 ;; name-suffix
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
772 fi mi li ; first, middle, last initial
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
773 saved-%-pos saved-!-pos saved-@-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
774 domain-pos \.-pos insert-point
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
775 ;; mailbox-name-processed-flag
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
776 disable-initial-guessing-flag) ; dynamically set from -voodoo
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
777
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
778 (set-syntax-table mail-extr-address-syntax-table)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
779 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
780
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
781 ;; Insert extra space at beginning to allow later replacement with <
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
782 ;; without having to move markers.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
783 (or (eq (following-char) ?\ )
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
784 (insert ?\ ))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
785
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
786 ;; First pass grabs useful information about address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
787 (while (progn
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
788 (mail-extr-skip-whitespace-forward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
789 (not (eobp)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
790 (setq char (char-after (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
791 (or first-real-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
792 (if (not (eq char ?\())
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
793 (setq first-real-pos (point))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
794 (cond
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
795 ;; comment
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
796 ((eq char ?\()
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
797 (set-syntax-table mail-extr-address-comment-syntax-table)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
798 ;; only record the first non-empty comment's position
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
799 (if (and (not cbeg)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
800 (save-excursion
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
801 (forward-char 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
802 (mail-extr-skip-whitespace-forward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
803 (not (eq ?\) (char-after (point))))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
804 (setq cbeg (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
805 ;; TODO: don't record if unbalanced
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
806 (or (mail-extr-safe-move-sexp 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
807 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
808 (set-syntax-table mail-extr-address-syntax-table)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
809 (if (and cbeg
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
810 (not cend))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
811 (setq cend (point))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
812 ;; quoted text
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
813 ((eq char ?\")
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
814 ;; only record the first non-empty quote's position
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
815 (if (and (not quote-beg)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
816 (save-excursion
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
817 (forward-char 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
818 (mail-extr-skip-whitespace-forward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
819 (not (eq ?\" (char-after (point))))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
820 (setq quote-beg (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
821 ;; TODO: don't record if unbalanced
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
822 (or (mail-extr-safe-move-sexp 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
823 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
824 (if (and quote-beg
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
825 (not quote-end))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
826 (setq quote-end (point))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
827 ;; domain literals
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
828 ((eq char ?\[)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
829 (set-syntax-table mail-extr-address-domain-literal-syntax-table)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
830 (or (mail-extr-safe-move-sexp 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
831 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
832 (set-syntax-table mail-extr-address-syntax-table))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
833 ;; commas delimit addresses when outside < > pairs.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
834 ((and (eq char ?,)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
835 (or (and (null <-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
836 ;; Handle ROUTE-ADDR address that is missing its <.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
837 (not (eq ?@ (char-after (1+ (point))))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
838 (and >-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
839 ;; handle weird munged addresses
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
840 ;; BUG FIX: This test was reversed. Thanks to the
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
841 ;; brilliant Rod Whitby <rwhitby@research.canon.oz.au>
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
842 ;; for discovering this!
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
843 (< (car (last <-pos)) (car >-pos)))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
844 ;; The argument contains more than one address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
845 ;; Temporarily hide everything after this one.
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
846 (setq end-of-address (copy-marker (1+ (point)) t))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
847 (narrow-to-region (point-min) (1+ (point)))
37148
aca2b7839d21 (mail-extr-delete-char, mail-extr-safe-move-sexp)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25439
diff changeset
848 (delete-char 1)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
849 (setq char ?\() ; HAVE I NO SHAME??
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
850 )
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
851 ;; record the position of various interesting chars, determine
80051
86418444e2d1 *** empty log message ***
Juanma Barranquero <lekktu@gmail.com>
parents: 79712
diff changeset
852 ;; validity later.
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
853 ((setq record-pos-symbol
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
854 (cdr (assq char
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
855 '((?< . <-pos) (?> . >-pos) (?@ . @-pos)
21477
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
856 (?: . colon-pos) (?, . comma-pos) (?! . !-pos)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
857 (?% . %-pos) (?\; . \;-pos)))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
858 (set record-pos-symbol
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
859 (cons (point) (symbol-value record-pos-symbol)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
860 (forward-char 1))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
861 ((eq char ?.)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
862 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
863 ((memq char '(
80051
86418444e2d1 *** empty log message ***
Juanma Barranquero <lekktu@gmail.com>
parents: 79712
diff changeset
864 ;; comment terminator invalid
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
865 ?\)
80051
86418444e2d1 *** empty log message ***
Juanma Barranquero <lekktu@gmail.com>
parents: 79712
diff changeset
866 ;; domain literal terminator invalid
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
867 ?\]
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
868 ;; \ allowed only within quoted strings,
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
869 ;; domain literals, and comments
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
870 ?\\
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
871 ))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
872 (mail-extr-nuke-char-at (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
873 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
874 (t
77894
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
875 ;; Do `(forward-word 1)', recognizing non-ASCII characters
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
876 ;; except Latin-1 nbsp as words.
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
877 (while (progn
81020
6e1a357362af (mail-extract-address-components): Recognize
Kenichi Handa <handa@m17n.org>
parents: 75347
diff changeset
878 (skip-chars-forward "^\000-\177 ")
77894
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
879 (and (not (eobp))
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
880 (eq ?w (char-syntax (char-after)))
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
881 (progn
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
882 (forward-word 1)
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
883 (and (not (eobp))
d3e947ea638f (mail-extract-address-components): Recognize non-ASCII characters
Chong Yidong <cyd@stupidchicken.com>
parents: 75347
diff changeset
884 (> (char-after) ?\177)
81020
6e1a357362af (mail-extract-address-components): Recognize
Kenichi Handa <handa@m17n.org>
parents: 75347
diff changeset
885 (not (eq (char-after) ? )))))))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
886 (or (eq char ?\()
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
887 ;; At the end of first address of a multiple address header.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
888 (and (eq char ?,)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
889 (eobp))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
890 (setq last-real-pos (point))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
891
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
892 ;; Use only the leftmost <, if any. Replace all others with spaces.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
893 (while (cdr <-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
894 (mail-extr-nuke-char-at (car <-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
895 (setq <-pos (cdr <-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
896
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
897 ;; Use only the rightmost >, if any. Replace all others with spaces.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
898 (while (cdr >-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
899 (mail-extr-nuke-char-at (nth 1 >-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
900 (setcdr >-pos (nthcdr 2 >-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
901
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
902 ;; If multiple @s and a :, but no < and >, insert around buffer.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
903 ;; Example: @foo.bar.dom,@xxx.yyy.zzz:mailbox@aaa.bbb.ccc
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
904 ;; This commonly happens on the UUCP "From " line. Ugh.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
905 (when (and (> (length @-pos) 1)
21477
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
906 (eq 1 (length colon-pos)) ;TODO: check if between last two @s
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
907 (not \;-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
908 (not <-pos))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
909 (goto-char (point-min))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
910 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
911 (setq <-pos (list (point)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
912 (insert ?<))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
913
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
914 ;; If < but no >, insert > in rightmost possible position
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
915 (when (and <-pos (null >-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
916 (goto-char (point-max))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
917 (setq >-pos (list (point)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
918 (insert ?>))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
919
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
920 ;; If > but no <, replace > with space.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
921 (when (and >-pos (null <-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
922 (mail-extr-nuke-char-at (car >-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
923 (setq >-pos nil))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
924
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
925 ;; Turn >-pos and <-pos into non-lists
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
926 (setq >-pos (car >-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
927 <-pos (car <-pos))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
928
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
929 ;; Trim other punctuation lists of items outside < > pair to handle
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
930 ;; stupid MTAs.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
931 (when <-pos ; don't need to check >-pos also
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
932 ;; handle bozo software that violates RFC 822 by sticking
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
933 ;; punctuation marks outside of a < > pair
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
934 (mail-extr-nuke-outside-range @-pos <-pos >-pos t)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
935 ;; RFC 822 says nothing about these two outside < >, but
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
936 ;; remove those positions from the lists to make things
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
937 ;; easier.
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
938 (mail-extr-nuke-outside-range !-pos <-pos >-pos t)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
939 (mail-extr-nuke-outside-range %-pos <-pos >-pos t))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
940
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
941 ;; Check for : that indicates GROUP list and for : part of
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
942 ;; ROUTE-ADDR spec.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
943 ;; Can't possibly be more than two :. Nuke any extra.
21477
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
944 (while colon-pos
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
945 (setq temp (car colon-pos)
a61dfbd23534 (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20962
diff changeset
946 colon-pos (cdr colon-pos))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
947 (cond ((and <-pos >-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
948 (> temp <-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
949 (< temp >-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
950 (if (or route-addr-:-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
951 (< (length @-pos) 2)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
952 (> temp (car @-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
953 (< temp (nth 1 @-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
954 (mail-extr-nuke-char-at temp)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
955 (setq route-addr-:-pos temp)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
956 ((or (not <-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
957 (and <-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
958 (< temp <-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
959 (setq group-:-pos temp))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
960
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
961 ;; Nuke any ; that is in or to the left of a < > pair or to the left
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
962 ;; of a GROUP starting :. Also, there may only be one ;.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
963 (while \;-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
964 (setq temp (car \;-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
965 \;-pos (cdr \;-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
966 (cond ((and <-pos >-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
967 (> temp <-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
968 (< temp >-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
969 (mail-extr-nuke-char-at temp))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
970 ((and (or (not group-:-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
971 (> temp group-:-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
972 (not group-\;-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
973 (setq group-\;-pos temp))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
974
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
975 ;; Nuke unmatched GROUP syntax characters.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
976 (when (and group-:-pos (not group-\;-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
977 ;; *** Do I really need to erase it?
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
978 (mail-extr-nuke-char-at group-:-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
979 (setq group-:-pos nil))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
980 (when (and group-\;-pos (not group-:-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
981 ;; *** Do I really need to erase it?
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
982 (mail-extr-nuke-char-at group-\;-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
983 (setq group-\;-pos nil))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
984
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
985 ;; Handle junk like ";@host.company.dom" that sendmail adds.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
986 ;; **** should I remember comment positions?
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
987 (when group-\;-pos
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
988 ;; this is fine for now
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
989 (mail-extr-nuke-outside-range !-pos group-:-pos group-\;-pos t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
990 (mail-extr-nuke-outside-range @-pos group-:-pos group-\;-pos t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
991 (mail-extr-nuke-outside-range %-pos group-:-pos group-\;-pos t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
992 (mail-extr-nuke-outside-range comma-pos group-:-pos group-\;-pos t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
993 (and last-real-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
994 (> last-real-pos (1+ group-\;-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
995 (setq last-real-pos (1+ group-\;-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
996 ;; *** This may be wrong:
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
997 (and cend
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
998 (> cend group-\;-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
999 (setq cend nil
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1000 cbeg nil))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1001 (and quote-end
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1002 (> quote-end group-\;-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1003 (setq quote-end nil
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1004 quote-beg nil))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1005 ;; This was both wrong and unnecessary:
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1006 ;;(narrow-to-region (point-min) group-\;-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1007
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1008 ;; *** The entire handling of GROUP addresses seems rather lame.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1009 ;; *** It deserves a complete rethink, except that these addresses
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1010 ;; *** are hardly ever seen.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1011 )
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1012
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1013 ;; Any commas must be between < and : of ROUTE-ADDR. Nuke any
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1014 ;; others.
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1015 ;; Hell, go ahead and nuke all of the commas.
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1016 ;; **** This will cause problems when we start handling commas in
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1017 ;; the PHRASE part .... no it won't ... yes it will ... ?????
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1018 (mail-extr-nuke-outside-range comma-pos 1 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1019
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1020 ;; can only have multiple @s inside < >. The fact that some MTAs
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1021 ;; put de-bracketed ROUTE-ADDRs in the UUCP-style "From " line is
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1022 ;; handled above.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1023
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1024 ;; Locate PHRASE part of ROUTE-ADDR.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1025 (when <-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1026 (goto-char <-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1027 (mail-extr-skip-whitespace-backward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1028 (setq phrase-end (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1029 (goto-char (or ;;group-:-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1030 (point-min)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1031 (mail-extr-skip-whitespace-forward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1032 (if (< (point) phrase-end)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1033 (setq phrase-beg (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1034 (setq phrase-end nil)))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1035
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1036 ;; handle ROUTE-ADDRS with real ROUTEs.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1037 ;; If there are multiple @s, then we assume ROUTE-ADDR syntax, and
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1038 ;; any % or ! must be semantically meaningless.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1039 ;; TODO: do this processing into canonicalization buffer
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1040 (when route-addr-:-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1041 (setq !-pos nil
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1042 %-pos nil
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1043 >-pos (copy-marker >-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1044 route-addr-:-pos (copy-marker route-addr-:-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1045 (goto-char >-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1046 (insert-before-markers ?X)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1047 (goto-char (car @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1048 (while (setq @-pos (cdr @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1049 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1050 (setq %-pos (cons (point-marker) %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1051 (insert "%")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1052 (goto-char (1- >-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1053 (save-excursion
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1054 (insert-buffer-substring extraction-buffer
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1055 (car @-pos) route-addr-:-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1056 (delete-region (car @-pos) route-addr-:-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1057 (or (cdr @-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1058 (setq saved-@-pos (list (point)))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1059 (setq @-pos saved-@-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1060 (goto-char >-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1061 (delete-char -1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1062 (mail-extr-nuke-char-at route-addr-:-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1063 (mail-extr-demarkerize route-addr-:-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1064 (setq route-addr-:-pos nil
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1065 >-pos (mail-extr-demarkerize >-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1066 %-pos (mapcar 'mail-extr-demarkerize %-pos)))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1067
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1068 ;; de-listify @-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1069 (setq @-pos (car @-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1070
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1071 ;; TODO: remove comments in the middle of an address
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1072
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1073 (with-current-buffer canonicalization-buffer
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1074 (widen)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1075 (erase-buffer)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1076 (insert-buffer-substring extraction-buffer)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1077
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1078 (if <-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1079 (narrow-to-region (progn
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1080 (goto-char (1+ <-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1081 (mail-extr-skip-whitespace-forward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1082 (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1083 >-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1084 (if (and first-real-pos last-real-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1085 (narrow-to-region first-real-pos last-real-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1086 ;; ****** Oh no! What if the address is completely empty!
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1087 ;; *** Is this correct?
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1088 (narrow-to-region (point-max) (point-max))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1089
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1090 (and @-pos %-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1091 (mail-extr-nuke-outside-range %-pos (point-min) @-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1092 (and %-pos !-pos
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1093 (mail-extr-nuke-outside-range !-pos (point-min) (car %-pos)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1094 (and @-pos !-pos (not %-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1095 (mail-extr-nuke-outside-range !-pos (point-min) @-pos))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1096
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1097 ;; Error condition:?? (and %-pos (not @-pos))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1098
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1099 ;; WARNING: THIS CODE IS DUPLICATED BELOW.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1100 (when (and %-pos (not @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1101 (goto-char (car %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1102 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1103 (setq @-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1104 (insert "@")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1105 (setq %-pos (cdr %-pos)))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1106
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1107 (when (and mail-extr-mangle-uucp !-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1108 ;; **** I don't understand this save-restriction and the
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1109 ;; narrow-to-region inside it. Why did I do that?
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1110 (save-restriction
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1111 (cond ((and @-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1112 mail-extr-@-binds-tighter-than-!)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1113 (goto-char @-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1114 (setq %-pos (cons (point) %-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1115 @-pos nil)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1116 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1117 (insert "%")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1118 (setq insert-point (point-max)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1119 (mail-extr-@-binds-tighter-than-!
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1120 (setq insert-point (point-max)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1121 (%-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1122 (setq insert-point (car (last %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1123 saved-%-pos (mapcar 'mail-extr-markerize %-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1124 %-pos nil
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1125 @-pos (mail-extr-markerize @-pos)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1126 (@-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1127 (setq insert-point @-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1128 (setq @-pos (mail-extr-markerize @-pos)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1129 (t
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1130 (setq insert-point (point-max))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1131 (narrow-to-region (point-min) insert-point)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1132 (setq saved-!-pos (car !-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1133 (while !-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1134 (goto-char (point-max))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1135 (cond ((and (not @-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1136 (not (cdr !-pos)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1137 (setq @-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1138 (insert-before-markers "@ "))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1139 (t
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1140 (setq %-pos (cons (point) %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1141 (insert-before-markers "% ")))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1142 (backward-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1143 (insert-buffer-substring
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1144 (current-buffer)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1145 (if (nth 1 !-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1146 (1+ (nth 1 !-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1147 (point-min))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1148 (car !-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1149 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1150 (or (save-excursion
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1151 (mail-extr-safe-move-sexp -1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1152 (mail-extr-skip-whitespace-backward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1153 (eq ?. (preceding-char)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1154 (insert-before-markers
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1155 (if (save-excursion
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1156 (mail-extr-skip-whitespace-backward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1157 (eq ?. (preceding-char)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1158 ""
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1159 ".")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1160 "uucp"))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1161 (setq !-pos (cdr !-pos))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1162 (and saved-%-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1163 (setq %-pos (append (mapcar 'mail-extr-demarkerize
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1164 saved-%-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1165 %-pos)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1166 (setq @-pos (mail-extr-demarkerize @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1167 (narrow-to-region (1+ saved-!-pos) (point-max)))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1168
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1169 ;; WARNING: THIS CODE IS DUPLICATED ABOVE.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1170 (when (and %-pos (not @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1171 (goto-char (car %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1172 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1173 (setq @-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1174 (insert "@")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1175 (setq %-pos (cdr %-pos)))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1176
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1177 (when (setq %-pos (nreverse %-pos)) ; implies @-pos valid
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1178 (setq temp %-pos)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1179 (catch 'truncated
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1180 (while temp
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1181 (goto-char (or (nth 1 temp)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1182 @-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1183 (mail-extr-skip-whitespace-backward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1184 (save-excursion
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1185 (mail-extr-safe-move-sexp -1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1186 (setq domain-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1187 (mail-extr-skip-whitespace-backward)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1188 (setq \.-pos (eq ?. (preceding-char))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1189 (when (and \.-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1190 ;; #### string consing
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1191 (let ((s (intern-soft
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1192 (buffer-substring domain-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1193 mail-extr-all-top-level-domains)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1194 (and s (get s 'domain-name))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1195 (narrow-to-region (point-min) (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1196 (goto-char (car temp))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1197 (delete-char 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1198 (setq @-pos (point))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1199 (setcdr temp nil)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1200 (setq %-pos (delq @-pos %-pos))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1201 (insert "@")
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1202 (throw 'truncated t))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1203 (setq temp (cdr temp)))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1204 (setq mbox-beg (point-min)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1205 mbox-end (if %-pos (car %-pos)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1206 (or @-pos
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1207 (point-max))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1208
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1209 (when @-pos
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1210 ;; Make the domain-name part lowercase since it's case
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1211 ;; insensitive anyway.
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1212 (downcase-region (1+ @-pos) (point-max))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1213
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1214 ;; Done canonicalizing address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1215 ;; We are now back in extraction-buffer.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1216
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1217 ;; Decide what part of the address to search to find the full name.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1218 (cond (
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1219 ;; Example: "First M. Last" <fml@foo.bar.dom>
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1220 (and phrase-beg
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1221 (eq quote-beg phrase-beg)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1222 (<= quote-end phrase-end))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1223 (narrow-to-region (1+ quote-beg) (1- quote-end))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1224 (mail-extr-undo-backslash-quoting (point-min) (point-max)))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1225
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1226 ;; Example: First Last <fml@foo.bar.dom>
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1227 (phrase-beg
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1228 (narrow-to-region phrase-beg phrase-end))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1229
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1230 ;; Example: fml@foo.bar.dom (First M. Last)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1231 (cbeg
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1232 (narrow-to-region (1+ cbeg) (1- cend))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1233 (mail-extr-undo-backslash-quoting (point-min) (point-max))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1234
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1235 ;; Deal with spacing problems
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1236 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1237 ;;; (cond ((not (search-forward " " nil t))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1238 ;;; (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1239 ;;; (cond ((search-forward "_" nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1240 ;;; ;; Handle the *idiotic* use of underlines as spaces.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1241 ;;; ;; Example: fml@foo.bar.dom (First_M._Last)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1242 ;;; (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1243 ;;; (while (search-forward "_" nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1244 ;;; (replace-match " " t)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1245 ;;; ((search-forward "." nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1246 ;;; ;; Fix . used as space
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1247 ;;; ;; Example: danj1@cb.att.com (daniel.jacobson)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1248 ;;; (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1249 ;;; (while (re-search-forward mail-extr-bad-dot-pattern nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1250 ;;; (replace-match "\\1 \\2" t))))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1251 )
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1252
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1253 ;; Otherwise we try to get the name from the mailbox portion
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1254 ;; of the address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1255 ;; Example: First_M_Last@foo.bar.dom
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1256 (t
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1257 ;; *** Work in canon buffer instead? No, can't. Hmm.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1258 (goto-char (point-max))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1259 (narrow-to-region (point) (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1260 (insert-buffer-substring canonicalization-buffer
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1261 mbox-beg mbox-end)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1262 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1263
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1264 ;; Example: First_Last.XXX@foo.bar.dom
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1265 (setq \.-ends-name (re-search-forward "[_0-9]" nil t))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1266
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1267 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1268
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1269 (if (not mail-extr-mangle-uucp)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1270 (modify-syntax-entry ?! "w" (syntax-table)))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1271
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1272 (while (progn
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1273 (mail-extr-skip-whitespace-forward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1274 (not (eobp)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1275 (setq char (char-after (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1276 (cond
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1277 ((eq char ?\")
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1278 (setq quote-beg (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1279 (or (mail-extr-safe-move-sexp 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1280 ;; TODO: handle this error condition!!!!!
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1281 (forward-char 1))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1282 ;; take into account deletions
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1283 (setq quote-end (- (point) 2))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1284 (save-excursion
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1285 (backward-char 1)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1286 (delete-char 1)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1287 (goto-char quote-beg)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1288 (or (eobp)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1289 (delete-char 1)))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1290 (mail-extr-undo-backslash-quoting quote-beg quote-end)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1291 (or (eq ?\ (char-after (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1292 (insert " "))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1293 ;; (setq mailbox-name-processed-flag t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1294 (setq \.-ends-name t))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1295 ((eq char ?.)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1296 (if (memq (char-after (1+ (point))) '(?_ ?=))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1297 (progn
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1298 (forward-char 1)
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1299 (delete-char 1)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1300 (insert ?\ ))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1301 (if \.-ends-name
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1302 (narrow-to-region (point-min) (point))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1303 (delete-char 1)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1304 (insert " ")))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1305 ;; (setq mailbox-name-processed-flag t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1306 )
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1307 ((memq (char-syntax char) '(?. ?\\))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1308 (delete-char 1)
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1309 (insert " ")
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1310 ;; (setq mailbox-name-processed-flag t)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1311 )
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1312 (t
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1313 (setq atom-beg (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1314 (forward-word 1)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1315 (setq atom-end (point))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1316 (goto-char atom-beg)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1317 (save-restriction
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1318 (narrow-to-region atom-beg atom-end)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1319 (cond
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1320
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1321 ;; Handle X.400 addresses encoded in RFC-822.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1322 ;; *** Shit! This has to handle the case where it is
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1323 ;; *** embedded in a quote too!
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1324 ;; *** Shit! The input is being broken up into atoms
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1325 ;; *** by periods!
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1326 ((looking-at mail-extr-x400-encoded-address-pattern)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1327
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1328 ;; Copy the contents of the individual fields that
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1329 ;; might hold name data to the beginning.
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1330 (mapc
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1331 (lambda (field-pattern)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1332 (when
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1333 (save-excursion
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1334 (re-search-forward field-pattern nil t))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1335 (insert-buffer-substring (current-buffer)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1336 (match-beginning 1)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1337 (match-end 1))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1338 (insert " ")))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1339 (list mail-extr-x400-encoded-address-given-name-pattern
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1340 mail-extr-x400-encoded-address-surname-pattern
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1341 mail-extr-x400-encoded-address-full-name-pattern))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1342
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1343 ;; Discard the rest, since it contains stuff like
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1344 ;; routing information, not part of a name.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1345 (mail-extr-skip-whitespace-backward)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1346 (delete-region (point) (point-max))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1347
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1348 ;; Handle periods used for spacing.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1349 (while (re-search-forward mail-extr-bad-dot-pattern nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1350 (replace-match "\\1 \\2" t))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1351
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1352 ;; (setq mailbox-name-processed-flag t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1353 )
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1354
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1355 ;; Handle normal addresses.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1356 (t
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1357 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1358 ;; Handle _ and = used for spacing.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1359 (while (re-search-forward "\\([^_=]+\\)[_=]" nil t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1360 (replace-match "\\1 " t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1361 ;; (setq mailbox-name-processed-flag t)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1362 )
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1363 (goto-char (point-max))))))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1364
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1365 ;; undo the dirty deed
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1366 (if (not mail-extr-mangle-uucp)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1367 (modify-syntax-entry ?! "." (syntax-table)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1368 ;;
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1369 ;; If we derived the name from the mailbox part of the address,
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1370 ;; and we only got one word out of it, don't treat that as a
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1371 ;; name. "foo@bar" --> (nil "foo@bar"), not ("foo" "foo@bar")
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1372 ;; (if (not mailbox-name-processed-flag)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1373 ;; (delete-region (point-min) (point-max)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1374 ))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1375
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1376 (set-syntax-table mail-extr-address-text-syntax-table)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1377
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1378 (mail-extr-voodoo mbox-beg mbox-end canonicalization-buffer)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1379 (goto-char (point-min))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1380
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1381 ;; If name is "First Last" and userid is "F?L", then assume
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1382 ;; the middle initial is the second letter in the userid.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1383 ;; Initial code by Jamie Zawinski <jwz@lucid.com>
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1384 ;; *** Make it work when there's a suffix as well.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1385 (goto-char (point-min))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1386 (when (and mail-extr-guess-middle-initial
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1387 (not disable-initial-guessing-flag)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1388 (eq 3 (- mbox-end mbox-beg))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1389 (progn
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1390 (goto-char (point-min))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1391 (looking-at mail-extr-two-name-pattern)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1392 (setq fi (char-after (match-beginning 0))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1393 li (char-after (match-beginning 3)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1394 (with-current-buffer canonicalization-buffer
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1395 ;; char-equal is ignoring case here, so no need to upcase
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1396 ;; or downcase.
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1397 (let ((case-fold-search t))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1398 (and (char-equal fi (char-after mbox-beg))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1399 (char-equal li (char-after (1- mbox-end)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1400 (setq mi (char-after (1+ mbox-beg))))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1401 (when (and mi
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1402 ;; TODO: use better table than syntax table
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1403 (eq ?w (char-syntax mi)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1404 (goto-char (match-beginning 3))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1405 (insert (upcase mi) ". ")))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1406
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1407 ;; Nuke name if it is the same as mailbox name.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1408 (let ((buffer-length (- (point-max) (point-min)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1409 (i 0)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1410 (names-match-flag t))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1411 (when (and (> buffer-length 0)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1412 (eq buffer-length (- mbox-end mbox-beg)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1413 (goto-char (point-max))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1414 (insert-buffer-substring canonicalization-buffer
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1415 mbox-beg mbox-end)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1416 (while (and names-match-flag
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1417 (< i buffer-length))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1418 (or (eq (downcase (char-after (+ i (point-min))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1419 (downcase
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1420 (char-after (+ i buffer-length (point-min)))))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1421 (setq names-match-flag nil))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1422 (setq i (1+ i)))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1423 (delete-region (+ (point-min) buffer-length) (point-max))
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57391
diff changeset
1424 (and names-match-flag
57391
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
1425 mail-extr-ignore-realname-equals-mailbox-name
dd2896f4c2b7 (mail-extr-ignore-realname-equals-mailbox-name): New defcustom.
Eli Zaretskii <eliz@gnu.org>
parents: 56764
diff changeset
1426 (narrow-to-region (point) (point)))))
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1427
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1428 ;; Nuke name if it's just one word.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1429 (goto-char (point-min))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1430 (and mail-extr-ignore-single-names
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1431 (not (re-search-forward "[- ]" nil t))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1432 (narrow-to-region (point) (point)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1433
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1434 ;; Record the result
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1435 (setq value-list
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1436 (cons (list (if (not (= (point-min) (point-max)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1437 (buffer-string))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1438 (with-current-buffer canonicalization-buffer
20285
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1439 (if (not (= (point-min) (point-max)))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1440 (buffer-string))))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1441 value-list))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1442
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1443 ;; Unless one address is all we wanted,
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1444 ;; delete this one from extraction-buffer
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1445 ;; and get ready to extract the next address.
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1446 (when all
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1447 (if end-of-address
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1448 (narrow-to-region 1 end-of-address)
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1449 (widen))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1450 (delete-region (point-min) (point-max))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1451 (widen))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1452 )))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1453 (if all (nreverse value-list) (car value-list))
3b0ad3d46bde (mail-extract-address-components):
Karl Heuer <kwzh@gnu.org>
parents: 20242
diff changeset
1454 ))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1455
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1456 (defcustom mail-extr-disable-voodoo "\\cj"
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1457 "*If it is a regexp, names matching it will never be modified.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1458 If it is neither nil nor a string, modifying of names will never take
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1459 place. It affects how `mail-extract-address-components' works."
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1460 :type '(choice (regexp :size 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1461 (const :tag "Always enabled" nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1462 (const :tag "Always disabled" t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1463 :group 'mail-extr)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1464
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1465 (defun mail-extr-voodoo (mbox-beg mbox-end canonicalization-buffer)
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1466 (unless (and mail-extr-disable-voodoo
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1467 (or (not (stringp mail-extr-disable-voodoo))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1468 (progn
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1469 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1470 (re-search-forward mail-extr-disable-voodoo nil t))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1471 (let ((word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1472 (case-fold-search nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1473 mixed-case-flag lower-case-flag ;;upper-case-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1474 suffix-flag last-name-comma-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1475 ;;cbeg cend
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1476 initial
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1477 begin-again-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1478 drop-this-word-if-trailing-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1479 drop-last-word-if-trailing-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1480 word-found-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1481 this-word-beg last-word-beg
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1482 name-beg name-end
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1483 name-done-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1484 )
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1485 (save-excursion
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1486 (set-syntax-table mail-extr-address-text-syntax-table)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1487
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1488 ;; Get rid of comments.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1489 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1490 (while (not (eobp))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1491 ;; Initialize for this iteration of the loop.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1492 (skip-chars-forward "^({[\"'`")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1493 (let ((cbeg (point)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1494 (set-syntax-table mail-extr-address-text-comment-syntax-table)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1495 (if (memq (following-char) '(?\' ?\`))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1496 (search-forward "'" nil 'move
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1497 (if (eq ?\' (following-char)) 2 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1498 (or (mail-extr-safe-move-sexp 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1499 (goto-char (point-max))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1500 (set-syntax-table mail-extr-address-text-syntax-table)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1501 (when (eq (char-after cbeg) ?\()
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1502 ;; Delete the comment itself.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1503 (delete-region cbeg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1504 ;; Canonicalize whitespace where the comment was.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1505 (skip-chars-backward " \t")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1506 (if (looking-at "\\([ \t]+$\\|[ \t]+,\\)")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1507 (replace-match "")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1508 (setq cbeg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1509 (skip-chars-forward " \t")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1510 (if (bobp)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1511 (delete-region (point) cbeg)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1512 (just-one-space))))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1513
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1514 ;; This was moved above.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1515 ;; Fix . used as space
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1516 ;; But it belongs here because it occurs not only as
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1517 ;; rypens@reks.uia.ac.be (Piet.Rypens)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1518 ;; but also as
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1519 ;; "Piet.Rypens" <rypens@reks.uia.ac.be>
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1520 ;;(goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1521 ;;(while (re-search-forward mail-extr-bad-dot-pattern nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1522 ;; (replace-match "\\1 \\2" t))
18816
92913b38a478 (mail-extr-voodoo): Get rid of comments at an early stage.
Richard M. Stallman <rms@gnu.org>
parents: 16727
diff changeset
1523
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1524 (unless (search-forward " " nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1525 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1526 (cond ((search-forward "_" nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1527 ;; Handle the *idiotic* use of underlines as spaces.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1528 ;; Example: fml@foo.bar.dom (First_M._Last)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1529 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1530 (while (search-forward "_" nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1531 (replace-match " " t)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1532 ((search-forward "." nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1533 ;; Fix . used as space
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1534 ;; Example: danj1@cb.att.com (daniel.jacobson)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1535 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1536 (while (re-search-forward mail-extr-bad-dot-pattern nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1537 (replace-match "\\1 \\2" t)))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1538
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1539 ;; Loop over the words (and other junk) in the name.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1540 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1541 (while (not name-done-flag)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1542
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1543 (when word-found-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1544 ;; Last time through this loop we skipped over a word.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1545 (setq last-word-beg this-word-beg)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1546 (setq drop-last-word-if-trailing-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1547 drop-this-word-if-trailing-flag)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1548 (setq word-found-flag nil))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1549
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1550 (when begin-again-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1551 ;; Last time through the loop we found something that
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1552 ;; indicates we should pretend we are beginning again from
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1553 ;; the start.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1554 (setq word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1555 (setq last-word-beg nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1556 (setq drop-last-word-if-trailing-flag nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1557 (setq mixed-case-flag nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1558 (setq lower-case-flag nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1559 ;; (setq upper-case-flag nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1560 (setq begin-again-flag nil))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1561
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1562 ;; Initialize for this iteration of the loop.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1563 (mail-extr-skip-whitespace-forward)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1564 (if (eq word-count 0) (narrow-to-region (point) (point-max)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1565 (setq this-word-beg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1566 (setq drop-this-word-if-trailing-flag nil)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1567
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1568 ;; Decide what to do based on what we are looking at.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1569 (cond
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1570
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1571 ;; Delete title
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1572 ((and (eq word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1573 (looking-at mail-extr-full-name-prefixes))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1574 (goto-char (match-end 0))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1575 (narrow-to-region (point) (point-max)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1576
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1577 ;; Stop after name suffix
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1578 ((and (>= word-count 2)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1579 (looking-at mail-extr-full-name-suffix-pattern))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1580 (mail-extr-skip-whitespace-backward)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1581 (setq suffix-flag (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1582 (if (eq ?, (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1583 (forward-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1584 (insert ?,))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1585 ;; Enforce at least one space after comma
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1586 (or (eq ?\ (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1587 (insert ?\ ))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1588 (mail-extr-skip-whitespace-forward)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1589 (cond ((memq (following-char) '(?j ?J ?s ?S))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1590 (capitalize-word 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1591 (if (eq (following-char) ?.)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1592 (forward-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1593 (insert ?.)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1594 (t
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1595 (upcase-word 1)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1596 (setq word-found-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1597 (setq name-done-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1598
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1599 ;; Handle SCA names
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1600 ((looking-at "MKA \\(.+\\)") ; "Mundanely Known As"
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1601 (goto-char (match-beginning 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1602 (narrow-to-region (point) (point-max))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1603 (setq begin-again-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1604
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1605 ;; Check for initial last name followed by comma
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1606 ((and (eq ?, (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1607 (eq word-count 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1608 (forward-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1609 (setq last-name-comma-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1610 (or (eq ?\ (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1611 (insert ?\ )))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1612
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1613 ;; Stop before trailing comma-separated comment
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1614 ;; THIS CASE MUST BE AFTER THE PRECEDING CASES.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1615 ;; *** This case is redundant???
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1616 ;;((eq ?, (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1617 ;; (setq name-done-flag t))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1618
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1619 ;; Delete parenthesized/quoted comment/nickname
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1620 ((memq (following-char) '(?\( ?\{ ?\[ ?\" ?\' ?\`))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1621 (setq cbeg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1622 (set-syntax-table mail-extr-address-text-comment-syntax-table)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1623 (cond ((memq (following-char) '(?\' ?\`))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1624 (or (search-forward "'" nil t
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1625 (if (eq ?\' (following-char)) 2 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1626 (delete-char 1)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1627 (t
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1628 (or (mail-extr-safe-move-sexp 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1629 (goto-char (point-max)))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1630 (set-syntax-table mail-extr-address-text-syntax-table)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1631 (setq cend (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1632 (cond
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1633 ;; Handle case of entire name being quoted
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1634 ((and (eq word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1635 (looking-at " *\\'")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1636 (>= (- cend cbeg) 2))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1637 (narrow-to-region (1+ cbeg) (1- cend))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1638 (goto-char (point-min)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1639 (t
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1640 ;; Handle case of quoted initial
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1641 (if (and (or (= 3 (- cend cbeg))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1642 (and (= 4 (- cend cbeg))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1643 (eq ?. (char-after (+ 2 cbeg)))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1644 (not (looking-at " *\\'")))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1645 (setq initial (char-after (1+ cbeg)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1646 (setq initial nil))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1647 (delete-region cbeg cend)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1648 (if initial
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1649 (insert initial ". ")))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1650
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1651 ;; Handle *Stupid* VMS date stamps
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1652 ((looking-at mail-extr-stupid-vms-date-stamp-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1653 (replace-match "" t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1654
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1655 ;; Handle Chinese characters.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1656 ((looking-at mail-extr-hz-embedded-gb-encoded-chinese-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1657 (goto-char (match-end 0))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1658 (setq word-found-flag t))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1659
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1660 ;; Skip initial garbage characters.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1661 ;; THIS CASE MUST BE AFTER THE PRECEDING CASES.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1662 ((and (eq word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1663 (looking-at mail-extr-leading-garbage))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1664 (goto-char (match-end 0))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1665 ;; *** Skip backward over these???
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1666 ;; (skip-chars-backward "& \"")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1667 (narrow-to-region (point) (point-max)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1668
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1669 ;; Various stopping points
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1670 ((or
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1671
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1672 ;; Stop before ALL CAPS acronyms, if preceded by mixed-case
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1673 ;; words. Example: XT-DEM.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1674 (and (>= word-count 2)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1675 mixed-case-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1676 (looking-at mail-extr-weird-acronym-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1677 (not (looking-at mail-extr-roman-numeral-pattern)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1678
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1679 ;; Stop before trailing alternative address
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1680 (looking-at mail-extr-alternative-address-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1681
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1682 ;; Stop before trailing comment not introduced by comma
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1683 ;; THIS CASE MUST BE AFTER AN EARLIER CASE.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1684 (looking-at mail-extr-trailing-comment-start-pattern)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1685
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1686 ;; Stop before telephone numbers
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1687 (and (>= word-count 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1688 (looking-at mail-extr-telephone-extension-pattern)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1689 (setq name-done-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1690
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1691 ;; Delete ham radio call signs
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1692 ((looking-at mail-extr-ham-call-sign-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1693 (delete-region (match-beginning 0) (match-end 0)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1694
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1695 ;; Fixup initials
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1696 ((looking-at mail-extr-initial-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1697 (or (eq (following-char) (upcase (following-char)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1698 (setq lower-case-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1699 (forward-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1700 (if (eq ?. (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1701 (forward-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1702 (insert ?.))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1703 (or (eq ?\ (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1704 (insert ?\ ))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1705 (setq word-found-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1706
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1707 ;; Handle BITNET LISTSERV list names.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1708 ((and (eq word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1709 (looking-at mail-extr-listserv-list-name-pattern))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1710 (narrow-to-region (match-beginning 1) (match-end 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1711 (setq word-found-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1712 (setq name-done-flag t))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1713
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1714 ;; Handle & substitution, when & is last and is not first.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1715 ((and (> word-count 0)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1716 (eq ?\ (preceding-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1717 (eq (following-char) ?&)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1718 (eq (1+ (point)) (point-max)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1719 (delete-char 1)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1720 (capitalize-region
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1721 (point)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1722 (progn
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1723 (insert-buffer-substring canonicalization-buffer
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1724 mbox-beg mbox-end)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1725 (point)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1726 (setq disable-initial-guessing-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1727 (setq word-found-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1728
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1729 ;; Handle & between names, as in "Bob & Susie".
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1730 ((and (> word-count 0) (eq (following-char) ?\&))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1731 (setq name-beg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1732 (setq name-end (1+ name-beg))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1733 (setq word-found-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1734 (goto-char name-end))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1735
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1736 ;; Regular name words
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1737 ((looking-at mail-extr-name-pattern)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1738 (setq name-beg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1739 (setq name-end (match-end 0))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1740
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1741 ;; Certain words will be dropped if they are at the end.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1742 (and (>= word-count 2)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1743 (not lower-case-flag)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1744 (or
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1745 ;; Trailing 4-or-more letter lowercase words preceded by
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1746 ;; mixed case or uppercase words will be dropped.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1747 (looking-at "[[:lower:]]\\{4,\\}[ \t]*\\'")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1748 ;; Drop a trailing word which is terminated with a period.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1749 (eq ?. (char-after (1- name-end))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1750 (setq drop-this-word-if-trailing-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1751
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1752 ;; Set the flags that indicate whether we have seen a lowercase
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1753 ;; word, a mixed case word, and an uppercase word.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1754 (if (re-search-forward "[[:lower:]]" name-end t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1755 (if (progn
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1756 (goto-char name-beg)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1757 (re-search-forward "[[:upper:]]" name-end t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1758 (setq mixed-case-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1759 (setq lower-case-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1760 ;; (setq upper-case-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1761 )
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1762
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1763 (goto-char name-end)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1764 (setq word-found-flag t))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1765
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1766 ;; Allow a number as a word, if it doesn't mean anything else.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1767 ((looking-at "[0-9]+\\>")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1768 (setq name-beg (point))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1769 (setq name-end (match-end 0))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1770 (goto-char name-end)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1771 (setq word-found-flag t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1772
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1773 (t
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1774 (setq name-done-flag t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1775 ))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1776
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1777 ;; Count any word that we skipped over.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1778 (if word-found-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1779 (setq word-count (1+ word-count))))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1780
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1781 ;; If the last thing in the name is 2 or more periods, or one or more
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1782 ;; other sentence terminators (but not a single period) then keep them
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1783 ;; and the preceding word. This is for the benefit of whole sentences
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1784 ;; in the name field: it's better behavior than dropping the last word
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1785 ;; of the sentence...
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1786 (if (and (not suffix-flag)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1787 (looking-at "\\(\\.+\\|[?!;:.][?!;:.]+\\|[?!;:][?!;:.]*\\)\\'"))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1788 (goto-char (setq suffix-flag (point-max))))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1789
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1790 ;; Drop everything after point and certain trailing words.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1791 (narrow-to-region (point-min)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1792 (or (and drop-last-word-if-trailing-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1793 last-word-beg)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1794 (point)))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1795
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1796 ;; Xerox's mailers SUCK!!!!!!
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1797 ;; We simply refuse to believe that any last name is PARC or ADOC.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1798 ;; If it looks like that is the last name, that there is no meaningful
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1799 ;; here at all. Actually I guess it would be best to map patterns
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1800 ;; like foo.hoser@xerox.com into foo@hoser.xerox.com, but I don't
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1801 ;; actually know that that is what's going on.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1802 (unless suffix-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1803 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1804 (let ((case-fold-search t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1805 (if (looking-at "[-A-Za-z_]+[. ]\\(PARC\\|ADOC\\)\\'")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1806 (erase-buffer))))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1807
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1808 ;; If last name first put it at end (but before suffix)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1809 (when last-name-comma-flag
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1810 (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1811 (search-forward ",")
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1812 (setq name-end (1- (point)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1813 (goto-char (or suffix-flag (point-max)))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1814 (or (eq ?\ (preceding-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1815 (insert ?\ ))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1816 (insert-buffer-substring (current-buffer) (point-min) name-end)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1817 (goto-char name-end)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1818 (skip-chars-forward "\t ,")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1819 (narrow-to-region (point) (point-max)))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1820
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1821 ;; Delete leading and trailing junk characters.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1822 ;; *** This is probably completely unneeded now.
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1823 ;;(goto-char (point-max))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1824 ;;(skip-chars-backward mail-extr-non-end-name-chars)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1825 ;;(if (eq ?. (following-char))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1826 ;; (forward-char 1))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1827 ;;(narrow-to-region (point)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1828 ;; (progn
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1829 ;; (goto-char (point-min))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1830 ;; (skip-chars-forward mail-extr-non-begin-name-chars)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1831 ;; (point)))
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
1832
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1833 ;; Compress whitespace
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1834 (goto-char (point-min))
56600
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1835 (while (re-search-forward "[ \t\n]+" nil t)
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1836 (replace-match (if (eobp) "" " ") t))
3e6748f33315 (mail-extr-disable-voodoo): New variable.
Kenichi Handa <handa@m17n.org>
parents: 52916
diff changeset
1837 ))))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1838
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1839
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1840
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1841 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1842 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1843 ;; Table of top-level domain names.
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1844 ;;
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1845 ;; This is used during address canonicalization; be careful of format changes.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1846 ;; Keep in mind that the country abbreviations follow ISO-3166. There is
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1847 ;; a U.S. FIPS that specifies a different set of two-letter country
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1848 ;; abbreviations.
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1849 ;;
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1850 ;; Updated by the RIPE Network Coordination Centre.
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1851 ;;
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1852 ;; Source: ISO 3166 Maintenance Agency
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1853 ;; http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1-semic.txt
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1854 ;; http://www.iana.org/domain-names.htm
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1855 ;; http://www.iana.org/cctld/cctld-whois.htm
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1856 ;; Latest change: 2007/11/15
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1857
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1858 (defconst mail-extr-all-top-level-domains
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1859 (let ((ob (make-vector 739 0)))
41300
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1860 (mapc
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1861 (lambda (x)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1862 (put (intern (downcase (car x)) ob)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1863 'domain-name
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1864 (if (nth 2 x)
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1865 (format (nth 2 x) (nth 1 x))
5f6710a130ca Use backquote/dolist/mapc/when. Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 41159
diff changeset
1866 (nth 1 x))))
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1867 '(
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1868 ;; ISO 3166 codes:
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1869 ("ac" "Ascension Island")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1870 ("ad" "Andorra")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1871 ("ae" "United Arab Emirates")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1872 ("af" "Afghanistan")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1873 ("ag" "Antigua and Barbuda")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1874 ("ai" "Anguilla")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1875 ("al" "Albania")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1876 ("am" "Armenia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1877 ("an" "Netherlands Antilles")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1878 ("ao" "Angola")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1879 ("aq" "Antarctica") ; continent
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1880 ("ar" "Argentina" "Argentine Republic")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1881 ("as" "American Samoa")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1882 ("at" "Austria" "The Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1883 ("au" "Australia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1884 ("aw" "Aruba")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1885 ("ax" "Aland Islands")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1886 ("az" "Azerbaijan")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1887 ("ba" "Bosnia-Herzegovina")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1888 ("bb" "Barbados")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1889 ("bd" "Bangladesh")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1890 ("be" "Belgium" "The Kingdom of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1891 ("bf" "Burkina Faso")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1892 ("bg" "Bulgaria")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1893 ("bh" "Bahrain")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1894 ("bi" "Burundi")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1895 ("bj" "Benin")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1896 ("bl" "Saint Barthelemy")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1897 ("bm" "Bermuda")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1898 ("bn" "Brunei Darussalam")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1899 ("bo" "Bolivia" "Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1900 ("br" "Brazil" "The Federative Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1901 ("bs" "Bahamas")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1902 ("bt" "Bhutan")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1903 ("bv" "Bouvet Island")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1904 ("bw" "Botswana")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1905 ("by" "Belarus")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1906 ("bz" "Belize")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1907 ("ca" "Canada")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1908 ("cc" "Cocos (Keeling) Islands")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1909 ("cd" "Congo" "The Democratic Republic of the %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1910 ("cf" "Central African Republic")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1911 ("cg" "Congo")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1912 ("ch" "Switzerland" "The Swiss Confederation")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1913 ("ci" "Ivory Coast") ; Cote D'ivoire
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1914 ("ck" "Cook Islands")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1915 ("cl" "Chile" "The Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1916 ("cm" "Cameroon") ; In .fr domain
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1917 ("cn" "China" "The People's Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1918 ("co" "Colombia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1919 ("cr" "Costa Rica" "The Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1920 ("cu" "Cuba")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1921 ("cv" "Cape Verde")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1922 ("cx" "Christmas Island")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1923 ("cy" "Cyprus")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1924 ("cz" "Czech Republic")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1925 ("de" "Germany")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1926 ("dj" "Djibouti")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1927 ("dk" "Denmark")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1928 ("dm" "Dominica")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1929 ("do" "Dominican Republic" "The %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1930 ("dz" "Algeria")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1931 ("ec" "Ecuador" "The Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1932 ("ee" "Estonia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1933 ("eg" "Egypt" "The Arab Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1934 ("eh" "Western Sahara")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1935 ("er" "Eritrea")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1936 ("es" "Spain" "The Kingdom of %s")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1937 ("et" "Ethiopia")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1938 ("eu" "European Union")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1939 ("fi" "Finland" "The Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1940 ("fj" "Fiji")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1941 ("fk" "Falkland Islands (Malvinas)")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1942 ("fm" "Micronesia" "Federated States of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1943 ("fo" "Faroe Islands")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1944 ("fr" "France")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1945 ("ga" "Gabon")
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1946 ("gb" "United Kingdom")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1947 ("gd" "Grenada")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1948 ("ge" "Georgia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1949 ("gf" "French Guiana")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1950 ("gg" "Guernsey")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1951 ("gh" "Ghana")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1952 ("gi" "Gibraltar")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1953 ("gl" "Greenland")
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1954 ("gm" "Gambia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1955 ("gn" "Guinea")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1956 ("gp" "Guadeloupe (Fr.)")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1957 ("gq" "Equatorial Guinea")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1958 ("gr" "Greece" "The Hellenic Republic (%s)")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1959 ("gs" "South Georgia and The South Sandwich Islands")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1960 ("gt" "Guatemala")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1961 ("gu" "Guam (U.S.)")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1962 ("gw" "Guinea-Bissau")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1963 ("gy" "Guyana")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1964 ("hk" "Hong Kong")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1965 ("hm" "Heard Island and Mcdonald Islands")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1966 ("hn" "Honduras")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1967 ("hr" "Croatia" "Croatia (Hrvatska)")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1968 ("ht" "Haiti")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1969 ("hu" "Hungary" "The Hungarian Republic")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1970 ("id" "Indonesia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1971 ("ie" "Ireland")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1972 ("il" "Israel" "The State of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1973 ("im" "Isle of Man" "The %s") ; NOT in ISO 3166-1 of 2001-02-26
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1974 ("in" "India" "The Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1975 ("io" "British Indian Ocean Territory")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1976 ("iq" "Iraq")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1977 ("ir" "Iran" "Islamic Republic of %s")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1978 ("is" "Iceland" "The Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1979 ("it" "Italy" "The Italian Republic")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
1980 ("je" "Jersey")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1981 ("jm" "Jamaica")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
1982 ("jo" "Jordan")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1983 ("jp" "Japan")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1984 ("ke" "Kenya")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1985 ("kg" "Kyrgyzstan")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1986 ("kh" "Cambodia")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1987 ("ki" "Kiribati")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1988 ("km" "Comoros")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1989 ("kn" "Saint Kitts and Nevis")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1990 ("kp" "Korea (North)" "Democratic People's Republic of Korea")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1991 ("kr" "Korea (South)" "Republic of Korea")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1992 ("kw" "Kuwait")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1993 ("ky" "Cayman Islands")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
1994 ("kz" "Kazakhstan")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1995 ("la" "Lao People's Democratic Republic")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1996 ("lb" "Lebanon")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
1997 ("lc" "Saint Lucia")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
1998 ("li" "Liechtenstein")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
1999 ("lk" "Sri Lanka" "The Democratic Socialist Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2000 ("lr" "Liberia")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2001 ("ls" "Lesotho")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2002 ("lt" "Lithuania")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2003 ("lu" "Luxembourg")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2004 ("lv" "Latvia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2005 ("ly" "Libyan Arab Jamahiriya")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2006 ("ma" "Morocco")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2007 ("mc" "Monaco")
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2008 ("md" "Moldova" "The Republic of %s")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2009 ("me" "Montenegro")
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2010 ("mf" "Saint Martin (French part)")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2011 ("mg" "Madagascar")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2012 ("mh" "Marshall Islands")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2013 ("mk" "Macedonia" "The Former Yugoslav Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2014 ("ml" "Mali")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2015 ("mm" "Myanmar")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2016 ("mn" "Mongolia")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2017 ("mo" "Macao")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2018 ("mp" "Northern Mariana Islands")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2019 ("mq" "Martinique")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2020 ("mr" "Mauritania")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2021 ("ms" "Montserrat")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2022 ("mt" "Malta")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2023 ("mu" "Mauritius")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2024 ("mv" "Maldives")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2025 ("mw" "Malawi")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2026 ("mx" "Mexico" "The United Mexican States")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2027 ("my" "Malaysia")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2028 ("mz" "Mozambique")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2029 ("na" "Namibia")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2030 ("nc" "New Caledonia (Fr.)")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2031 ("ne" "Niger") ; In .fr domain
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2032 ("nf" "Norfolk Island")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2033 ("ng" "Nigeria")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2034 ("ni" "Nicaragua" "The Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2035 ("nl" "Netherlands" "The Kingdom of the %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2036 ("no" "Norway" "The Kingdom of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2037 ("np" "Nepal") ; Via .in domain
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2038 ("nr" "Nauru")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2039 ("nu" "Niue")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2040 ("nz" "New Zealand")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2041 ("om" "Oman")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2042 ("pa" "Panama")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2043 ("pe" "Peru")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2044 ("pf" "French Polynesia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2045 ("pg" "Papua New Guinea")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2046 ("ph" "Philippines" "The Republic of the %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2047 ("pk" "Pakistan")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2048 ("pl" "Poland")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2049 ("pm" "Saint Pierre and Miquelon")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2050 ("pn" "Pitcairn")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2051 ("pr" "Puerto Rico (U.S.)")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2052 ("ps" "Palestinian Territory, Occupied")
13959
b07ed8bef291 (mail-extr-nuke-outside-range,
Karl Heuer <kwzh@gnu.org>
parents: 11985
diff changeset
2053 ("pt" "Portugal" "The Portuguese Republic")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2054 ("pw" "Palau")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2055 ("py" "Paraguay")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2056 ("qa" "Qatar")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2057 ("re" "Reunion (Fr.)") ; In .fr domain
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2058 ("ro" "Romania")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2059 ("rs" "Serbia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2060 ("ru" "Russia" "Russian Federation")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2061 ("rw" "Rwanda")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2062 ("sa" "Saudi Arabia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2063 ("sb" "Solomon Islands")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2064 ("sc" "Seychelles")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2065 ("sd" "Sudan")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2066 ("se" "Sweden" "The Kingdom of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2067 ("sg" "Singapore" "The Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2068 ("sh" "Saint Helena")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2069 ("si" "Slovenia")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2070 ("sj" "Svalbard and Jan Mayen") ; In .no domain
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2071 ("sk" "Slovakia" "The Slovak Republic")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2072 ("sl" "Sierra Leone")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2073 ("sm" "San Marino")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2074 ("sn" "Senegal")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2075 ("so" "Somalia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2076 ("sr" "Suriname")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2077 ("st" "Sao Tome and Principe")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2078 ("su" "U.S.S.R." "The Union of Soviet Socialist Republics")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2079 ("sv" "El Salvador")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2080 ("sy" "Syrian Arab Republic")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2081 ("sz" "Swaziland")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2082 ("tc" "Turks and Caicos Islands")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2083 ("td" "Chad")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2084 ("tf" "French Southern Territories")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2085 ("tg" "Togo")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2086 ("th" "Thailand" "The Kingdom of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2087 ("tj" "Tajikistan")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2088 ("tk" "Tokelau")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2089 ("tl" "East Timor")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2090 ("tm" "Turkmenistan")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2091 ("tn" "Tunisia")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2092 ("to" "Tonga")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2093 ("tp" "East Timor")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2094 ("tr" "Turkey" "The Republic of %s")
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2095 ("tt" "Trinidad and Tobago")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2096 ("tv" "Tuvalu")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2097 ("tw" "Taiwan" "%s, Province of China")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2098 ("tz" "Tanzania" "United Republic of %s")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2099 ("ua" "Ukraine")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2100 ("ug" "Uganda")
8318
3fc49ff2ea03 (mail-extr-all-top-level-domains): Update a few long names.
Richard M. Stallman <rms@gnu.org>
parents: 7133
diff changeset
2101 ("uk" "United Kingdom" "The %s of Great Britain and Northern Ireland")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2102 ("um" "United States Minor Outlying Islands")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2103 ("us" "United States" "The %s of America")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2104 ("uy" "Uruguay" "The Eastern Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2105 ("uz" "Uzbekistan")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2106 ("va" "Holy See (Vatican City State)")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2107 ("vc" "Saint Vincent and the Grenadines")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2108 ("ve" "Venezuela" "The Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2109 ("vg" "Virgin Islands, British")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2110 ("vi" "Virgin Islands, U.S.")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2111 ("vn" "Vietnam")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2112 ("vu" "Vanuatu")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2113 ("wf" "Wallis and Futuna")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2114 ("ws" "Samoa")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2115 ("ye" "Yemen")
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2116 ("yt" "Mayotte")
20427
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2117 ("yu" "Yugoslavia" "Yugoslavia, AKA Serbia-Montenegro")
1b4f02e638b8 (mail-extr-all-top-level-domains): More domains.
Karl Heuer <kwzh@gnu.org>
parents: 20400
diff changeset
2118 ("za" "South Africa" "The Republic of %s")
38363
413a99578997 (mail-extr-all-top-level-domains): Increase
Gerd Moellmann <gerd@gnu.org>
parents: 37148
diff changeset
2119 ("zm" "Zambia")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2120 ("zw" "Zimbabwe" "Republic of %s")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2121 ;; Generic Domains:
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2122 ("aero" t "Air Transport Industry")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2123 ("asia" t "Pan-Asia and Asia Pacific community")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2124 ("biz" t "Businesses")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2125 ("cat" t "Catalan language and culture")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2126 ("com" t "Commercial")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2127 ("coop" t "Cooperative Associations")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2128 ("info" t "Info")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2129 ("jobs" t "Employment")
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2130 ("mobi" t "Mobile products")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2131 ("museum" t "Museums")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2132 ("name" t "Individuals")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2133 ("net" t "Network")
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2134 ("org" t "Non-profit Organization")
79435
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2135 ("pro" t "Credentialed professionals")
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2136 ("tel" t "Contact data")
31904ab276cd (mail-extr-all-top-level-domains): Update domains.
Glenn Morris <rgm@gnu.org>
parents: 78232
diff changeset
2137 ("travel" t "Travel industry")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2138 ;;("bitnet" t "Because It's Time NET")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2139 ("gov" t "United States Government")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2140 ("edu" t "Educational")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2141 ("mil" t "United States Military")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2142 ("int" t "International Treaties")
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2143 ;;("nato" t "North Atlantic Treaty Organization")
8983
522fbe95e651 (mail-extr-all-top-level-domains): Update domain list.
Richard M. Stallman <rms@gnu.org>
parents: 8356
diff changeset
2144 ("uucp" t "Unix to Unix CoPy")
46273
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2145 ;; Infrastructure Domains:
9854e85b69c8 (mail-extr-all-top-level-domains): Update names.
Simon Josefsson <jas@extundo.com>
parents: 46255
diff changeset
2146 ("arpa" t "Advanced Research Projects Agency (U.S. DoD)")
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2147 ))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2148 ob))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2149
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2150 ;;;###autoload
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2151 (defun what-domain (domain)
8356
bdf40e36b6a9 (what-domain): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 8318
diff changeset
2152 "Convert mail domain DOMAIN to the country it corresponds to."
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2153 (interactive
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2154 (let ((completion-ignore-case t))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2155 (list (completing-read "Domain: "
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2156 mail-extr-all-top-level-domains nil t))))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2157 (or (setq domain (intern-soft (downcase domain)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2158 mail-extr-all-top-level-domains))
14029
8812f5ef65db (mail-extr-nuke-outside-range): Fix error message.
Richard M. Stallman <rms@gnu.org>
parents: 13959
diff changeset
2159 (error "No such domain"))
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2160 (message "%s: %s" (upcase (symbol-name domain)) (get domain 'domain-name)))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2161
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2162
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2163 ;(let ((all nil))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2164 ; (mapatoms #'(lambda (x)
47939
5f47d61ffbdc Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47615
diff changeset
2165 ; (if (and (boundp x)
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2166 ; (string-match "^mail-extr-" (symbol-name x)))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2167 ; (setq all (cons x all)))))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2168 ; (setq all (sort all #'string-lessp))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2169 ; (cons 'setq
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2170 ; (apply 'nconc (mapcar #'(lambda (x)
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2171 ; (list x (symbol-value x)))
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2172 ; all))))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2173
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2174
7060
58d613f69b39 (mail-extr-all-top-level-domains): Renamed from all-top-level-domains.
Richard M. Stallman <rms@gnu.org>
parents: 1186
diff changeset
2175 (provide 'mail-extr)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2176
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 92148
diff changeset
2177 ;; arch-tag: 7785fade-1073-4ed6-b4f6-28db34a7982d
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2178 ;;; mail-extr.el ends here