Mercurial > emacs
annotate lisp/mail/mail-extr.el @ 110951:85fe6b298326
* make-dist: Remove the unnecessary $shortversion.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 12 Oct 2010 01:01:11 -0700 |
parents | 280c8ae2476d |
children | e0d9a22430d9 |
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 | 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 | 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 | 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 | 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 | 10 |
11 ;; This file is part of GNU Emacs. | |
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 | 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 | 17 |
18 ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 ;; GNU General Public License for more details. | |
22 | |
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 | 25 |
26 ;;; Commentary: | |
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 | 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 | 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 | 53 ;; mangle non-human names/comments.) |
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 | 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 | 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 | 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 | 73 ;; * knows where full names can be found in an address. |
74 ;; * avoids using empty comments and quoted text. | |
75 ;; * extracts full names from mailbox names. | |
76 ;; * recognizes common formats for comments after a full name. | |
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 | 80 ;; * understands what characters can occur in names (not just letters). |
81 ;; * figures out middle initial from mailbox name. | |
82 ;; * removes funny nicknames. | |
83 ;; * keeps suffixes such as Jr., Sr., III, etc. | |
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 | 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 | 88 ;; * parses rfc822 quoted text, comments, and domain literals. |
89 ;; * parses rfc822 multi-line headers. | |
90 ;; * does something reasonable with rfc822 GROUP addresses. | |
91 ;; * handles many rfc822 noncompliant and garbage addresses. | |
92 ;; * canonicalizes addresses (after stripping comments/phrases outside <>). | |
93 ;; * converts ! addresses into .UUCP and %-style addresses. | |
94 ;; * converts rfc822 ROUTE addresses to %-style addresses. | |
95 ;; * truncates %-style addresses at leftmost fully qualified domain name. | |
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 | 98 ;; It does almost no string creation. It primarily uses the built-in |
99 ;; parsing routines with the appropriate syntax tables. This should | |
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 | 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 | 104 ;; * handle all test cases. (This will take forever.) |
105 ;; * software to pick the correct header to use (eg., "Senders-Name:"). | |
106 ;; * multiple addresses in the "From:" header (almost all of the necessary | |
107 ;; code is there). | |
108 ;; * flag to not treat `,' as an address separator. (This is useful when | |
109 ;; there is a "From:" header but no "Sender:" header, because then there | |
110 ;; is only allowed to be one address.) | |
111 ;; * mailbox name does not necessarily contain full name. | |
112 ;; * fixing capitalization when it's all upper or lowercase. (Hard!) | |
113 ;; * some of the domain literal handling is missing. (But I've never even | |
114 ;; seen one of these in a mail address, so maybe no big deal.) | |
115 ;; * arrange to have syntax tables byte-compiled. | |
116 ;; * speed hacks. | |
117 ;; * delete unused variables. | |
118 ;; * arrange for testing with different relative precedences of ! vs. @ | |
119 ;; and %. | |
120 ;; * insert documentation strings! | |
121 ;; * handle X.400-gatewayed addresses according to RFC 1148. | |
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 | 188 ;; handling multiple addresses correctly. (Whitby just changed |
189 ;; a > to a <.) | |
47939
5f47d61ffbdc
Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
47615
diff
changeset
|
190 ;; |
809 | 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 | 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 | 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 | 197 ;; * Cleaned up full name extraction extensively. |
47939
5f47d61ffbdc
Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
47615
diff
changeset
|
198 ;; |
809 | 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 | 201 ;; * Total rewrite. Integrated mail-canonicalize-address into |
202 ;; mail-extract-address-components. Now handles GROUP addresses more | |
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 | 205 ;; Fri Jun 14 19:39:50 1991 |
206 ;; * Created. | |
207 | |
208 ;;; Code: | |
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 | 211 (defgroup mail-extr nil |
212 "Extract full name and address from RFC 822 mail header." | |
213 :prefix "mail-extr-" | |
214 :group 'mail) | |
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 | 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 | 224 we will assume that \"John Q. Smith\" is the fellow's name." |
225 :type 'boolean | |
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 | 231 we will act as though we couldn't find a full name in the address." |
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 | 234 :group 'mail-extr) |
809 | 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 | 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 | 250 uniquely identifying the person." |
251 :type 'regexp | |
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 | 254 (defcustom mail-extr-@-binds-tighter-than-! nil |
255 "*Whether the local mail transport agent looks at ! before @." | |
256 :type 'boolean | |
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 | 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 | 261 by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." |
262 :type 'boolean | |
263 :group 'mail-extr) | |
809 | 264 |
265 ;;---------------------------------------------------------------------- | |
266 ;; what orderings are meaningful????? | |
267 ;;(defvar mail-operator-precedence-list '(?! ?% ?@)) | |
268 ;; Right operand of a % or a @ must be a domain name, period. No other | |
269 ;; operators allowed. Left operand of a @ is an address relative to that | |
270 ;; site. | |
271 | |
272 ;; Left operand of a ! must be a domain name. Right operand is an | |
273 ;; arbitrary address. | |
274 ;;---------------------------------------------------------------------- | |
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 | 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 | 282 |
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 | 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 | 300 |
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 | 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 | 319 |
320 ;; Matches periods used instead of spaces. Must not match the period | |
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 | 328 |
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 | 334 |
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 | 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 | 347 |
348 ;; Matches a trailing uppercase (with other characters possible) acronym. | |
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 | 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 | 362 |
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 | 368 |
369 ;; Matches a variety of trailing comments not including comma-delimited | |
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 | 373 |
374 ;; Matches a name (not an initial). | |
375 ;; This doesn't force a word boundary at the end because sometimes a | |
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 | 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 | 385 |
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 | 389 |
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 | 394 |
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 | 413 |
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 | 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 | 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 | 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 | 519 (?\t " ") |
520 (?\r " ") | |
521 (?\n " ") | |
522 (?\( ".") | |
523 (?\) ".") | |
524 (?< ".") | |
525 (?> ".") | |
526 (?@ ".") | |
527 (?, ".") | |
528 (?\; ".") | |
529 (?: ".") | |
530 (?\\ "\\") | |
531 (?\" "\"") | |
532 (?. ".") | |
533 (?\[ ".") | |
534 (?\] ".") | |
535 ;; % and ! aren't RFC822 characters, but it is convenient to pretend | |
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 | 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 | 546 (?\( "\(\)") |
547 (?\) "\)\(") | |
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 | 556 (?\[ "\(\]") ;?????? |
557 (?\] "\)\[") ;?????? | |
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 | 566 (?\( "\(\)") |
567 (?\) "\)\(") | |
568 (?\[ "\(\]") | |
569 (?\] "\)\[") | |
570 (?\{ "\(\}") | |
571 (?\} "\)\{") | |
572 (?\\ "\\") | |
573 (?\" "\"") | |
574 ;; (?\' "\)\`") | |
575 ;; (?\` "\(\'") | |
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 | 584 (?A ?Z "w") |
585 (?a ?z "w") | |
586 (?- "w") | |
587 (?\} "w") | |
588 (?\{ "w") | |
589 (?| "w") | |
590 (?\' "w") | |
591 (?~ "w") | |
592 (?0 ?9 "w")) | |
593 )) | |
594 | |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 724 (widen) |
725 (erase-buffer) | |
726 (setq case-fold-search nil) | |
47939
5f47d61ffbdc
Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents:
47615
diff
changeset
|
727 |
809 | 728 ;; Insert extra space at beginning to allow later replacement with < |
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 | 748 ;; Unfold multiple lines. |
749 (goto-char (point-min)) | |
750 (while (re-search-forward "\\([^\\]\\(\\\\\\\\\\)*\\)\n[ \t]" nil t) | |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 1846 ;; Keep in mind that the country abbreviations follow ISO-3166. There is |
1847 ;; a U.S. FIPS that specifies a different set of two-letter country | |
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 | 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 | 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 | 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 | 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 | 2161 |
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 | 2173 |
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 | 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 | 2178 ;;; mail-extr.el ends here |