;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Mon May 29 17:01:26 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/mail-extr.el ;;; emacs version 19.28.92.2. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/gd/gnu/emacs/19.0/lisp/mail-extr.el' was compiled for Emacs 19")) #@188 *Whether to try to guess middle initial from mail address. If true, then when we see an address like "John Smith " we will assume that "John Q. Smith" is the fellow's name. (defvar mail-extr-guess-middle-initial nil (#$ . -493)) #@190 *Whether to ignore a name that is just a single word. If true, then when we see an address like "Idiot " we will act as though we couldn't find a full name in the address. (defvar mail-extr-ignore-single-names t (#$ . -743)) #@176 *Matches prefixes to the full name that identify a person's position. These are stripped from the full name because they do not contribute to uniquely identifying the person. (defvar mail-extr-full-name-prefixes (purecopy "\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \n]") (#$ . -992)) #@62 *Whether the local mail transport agent looks at ! before @. (defvar mail-extr-@-binds-tighter-than-! nil (#$ . -1301)) #@121 *Whether to throw away information in UUCP addresses by translating things like "foo!bar!baz@host" into "baz@bar.UUCP". (defvar mail-extr-mangle-uucp nil (#$ . -1428)) (byte-code "! B\nP! B! B! B\"!\f B  $! B #! B! B! B! B! B  $! B\"! B! B! B\n $!\" B\"!' B!) B!+ B!- B!/ B!1 B1\"!3 B1\"!5 B1\"!7 B 9 B : B ; B < B = B@\"" [purecopy "][A-Za-z{|}'~0-9`-" mail-extr-all-letters-but-separators current-load-list "---" mail-extr-all-letters "A-Za-z-" mail-extr-first-letters "A-Za-z-`'." mail-extr-last-letters format "[^%s]+" mail-extr-leading-garbage "\\([%s][%s]\\)\\.+\\([%s]\\)" mail-extr-bad-dot-pattern "\\(,? ?\\([JjSs][Rr]\\.?\\|V?I+V?\\)\\)\\([^%s]\\([^%s]\\|\\'\\)\\|\\'\\)" mail-extr-full-name-suffix-pattern "V?I+V?\\b" mail-extr-roman-numeral-pattern "\\([A-Z]+[-_/]\\|[A-Z][A-Z][A-Z]?\\b\\)" mail-extr-weird-acronym-pattern "\\(aka *\\)?[a-zA-Z.]+[!@][a-zA-Z.]" mail-extr-alternative-address-pattern " [-{]\\|--\\|[+@#>\n!DBEEE?(\"BDBBBBEEF" [no-replace (t nil) error "no-replace must be t or nil, evalable at macroexpand-time." let temp list-symbol (ch) while (setq ch (car temp)) cond or > ch end-symbol < beg-symbol append ((mail-extr-nuke-char-at ch)) ((setcar temp nil)) ((setq temp (cdr temp))) setq delq nil] 11])) (defalias 'mail-extr-demarkerize #[(marker) " ! ! ĉ ) " [markerp marker marker-position temp nil] 3]) (defalias 'mail-extr-markerize #[(pos) " !\n \f !" [markerp pos copy-marker] 2]) (defalias 'mail-extr-last '(macro . #[(list) " DCBB" [let list ((while (not (null (cdr list))) (setq list (cdr list))) (car list))] 3])) (defalias 'mail-extr-safe-move-sexp '(macro . #[(arg) "EDBBBBB" [condition-case error progn goto-char scan-sexps (point) arg (t) ((error (if (string-equal (nth 1 error) "Unbalanced parentheses") nil (while t (signal (car error) (cdr error))))))] 7])) (byte-code " B B B" [disable-initial-guessing-flag current-load-list cbeg cend] 2) #@618 Given an RFC-822 ADDRESS, extract full name and canonical address. Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no name can be extracted, FULL-NAME will be nil. ADDRESS may be a string or a buffer. If it is a buffer, the visible (narrowed) portion of the buffer will be interpreted as the address. (This feature exists so that the clever caller might be able to avoid consing a string.) If ADDRESS contains more than one RFC-822 address, only the first is returned. Some day this function may be extended to extract multiple addresses, or perhaps return the position at which parsing stopped. (defalias 'mail-extract-address-components #[(address) "!!É \n \f  !\"#$%&'()*)q )!/!~ 1c3;3c3!3!3\"eb#\"ebwmU`f((=`(=7?!@uw`f)A=`BC\"@u/!;;`;(D=|\\@uw`f)D=\\`EFl@u;;`;(G=H!IJ@u/!;(K='`TfL=&'MAMAMM@)&@W`d|(;(NA`JBL@u;(O=@u;(P>6`b``@\\|c)@u;@v(=(K=Om`'Av'@b``@\\|c)'A'W&A&A@b``@\\|c)&AAv%G@V$G@= 'eb``@\\|`C'Qc'&db`C&Rc&'&@b``@\\|c)&&@&'@'%S;@S&V-S'W2àAT%\"%*\"Sr@S&VdS'WiàAPT\"\"\"*!S@S&VS'WàAT!\"!*$2$@$A$'&'V&W%GUW%@V%A@Wb``@\\|c)'+''W  @ A 'o&o'Vo&Wob``@\\|c)2|V222b``@\\|c)b``@\\|c)\"S@SVSWàAT\"\"\"*%S-@SVSW$àA T%\"%*!Sd@SVVSW[àABT!\"!*#S@SVSWàAyT#\"#*TVTVV#S@S@VS@WSb``@\\|c)àAT#\"#*'O'bx`ebw`WL`O\"!V&!&V!&bWX!%@b%A%``@\\|Y !B!Zc&Sb)%@#%@|)%A{`C{%&b``[\\|b``@\\|c)\\!\\&!&]\\!\"!%@%*q *!/!1~ )!'9'Tbw`&}PLL}Pdd}%!!S@S%VxSeWSb``@\\|c)àAeT!\"!*!\"\"S@S!@VSeWSb``@\\|c)àAT\"\"\"*%I\"I!I\"S?@S%V SeW6Sb``@\\|c)àA T\"\"\"*!m%m!@b``@\\|`%^c!A!_ \" %`%b`!B!%``@\\|Zcd`d!!MAMAMM@)]a!\"\n!a%!%%%a%!%de }\"@ \" db% \"A `%Wb!- `!B!Wc!d@!p\"A@F \"A@TG e\"@#``@\\|efxh)O= Wxh)O= g hi\"\"A\" )\n j]\\\n\"!\"!\\%!% Td}! % !@b``@\\|`%^c!A!!!k!@ % dd\"!\n!lme!\n!@\n%\nd)qh\n=h\nXh\nTS}ed}ebno#d\n``[\\|mD\n@uD\n*E\fv\n}E\f\nTS}ed}ebno#\n``[\\|m\n@u\n*ebE\fdb``}*#ebp#eb_\nqrst #wm1\f`f(D=p `uv @u`UZd@!``@\\|b``@\\|)}ebno#] ``[\\|m= @u= *`f=j wc\n(O= `Tfx> @u``@\\|c\n e`}\n``@\\|wc\n(zy> ``@\\|wc\n`@v`b}z{!\f]|}~E\"x`d|#-\f\"\feb#*\f\"\fdb)\n_E\fqrht #!*#ebeb\f\f\fZ=\febz!\ff f *q1 f\"\f Sf\"\fTf\f*\f\f\fz=\fb\fdeZV7 Z=7 db*#' W' e\\fe\\\\f= T\fe\\d|7 ``}+ebN #N ``}edU?Y *qedU?h .(D" [get-buffer-create " *canonical address*" " *extract address components*" nil disable-initial-guessing-flag insert-point \.-pos domain-pos saved-@-pos saved-!-pos saved-%-pos li mi fi temp \.-ends-name mbox-end mbox-beg atom-end atom-beg quote-end quote-beg cend cbeg phrase-end phrase-beg last-real-pos first-real-pos record-pos-symbol route-addr-:-pos group-\;-pos group-:-pos \;-pos %-pos !-pos \,-pos :-pos @-pos >-pos <-pos char extraction-buffer canonicalization-buffer fundamental-mode kill-all-local-variables buffer-disable-undo set-syntax-table mail-extr-address-syntax-table erase-buffer case-fold-search 32 address bufferp insert-buffer-substring error "Illegal address: %s" re-search-forward "\\([^\\]\\(\\\\\\\\\\)*\\)\n[ ]" t replace-match "\\1 " " \n " 40 mail-extr-address-comment-syntax-table 1 41 (byte-code "`\"b‡" [scan-sexps 1 t] 3) ((error (byte-code "A@?@A\" " [error "Unbalanced parentheses" signal] 3))) 34 (byte-code "`\"b‡" [scan-sexps 1 t] 3) ((error (byte-code "A@?@A\" " [error "Unbalanced parentheses" signal] 3))) 91 mail-extr-address-domain-literal-syntax-table (byte-code "`\"b‡" [scan-sexps 1 t] 3) ((error (byte-code "A@?@A\" " [error "Unbalanced parentheses" signal] 3))) 44 64 list ((60 . <-pos) (62 . >-pos) (64 . @-pos) (58 . :-pos) (44 . \,-pos) (33 . !-pos) (37 . %-pos) (59 . \;-pos)) 46 (41 93 92) 60 62 ch delq 2 copy-marker insert-before-markers 88 point-marker "%" -1 mail-extr-demarkerize mapcar "@" mail-extr-mangle-uucp mail-extr-@-binds-tighter-than-! mail-extr-markerize "@ " "% " backward-char (byte-code "`\"b" [scan-sexps -1] 3) ((error (byte-code "A@@A\"Ç" [error "Unbalanced parentheses" signal t] 3))) "" "." "uucp" append downcase-region truncated (byte-code "iA@ bxƏ`xh= ) b`{ \"\f;\fN)be`}@b``\\|`á \"c\"AÇ" [temp @-pos " \n " nil error (byte-code "`\"b" [scan-sexps -1] 3) ((error (byte-code "A@@A\"Ç" [error "Unbalanced parentheses" signal t] 3))) domain-pos 46 \.-pos intern-soft mail-extr-all-top-level-domains s domain-name 1 delq %-pos "@" throw truncated t] 4) search-forward "\\" "[_0-9]" modify-syntax-entry 33 "w" syntax-table (byte-code "`\"b‡" [scan-sexps 1 t] 3) ((error (byte-code "A@?@A\" " [error "Unbalanced parentheses" signal] 3))) " " (95 61) (46 92) looking-at mail-extr-x400-encoded-address-pattern #[(field-pattern) " #)pŔŕ#c" [re-search-forward field-pattern nil t insert-buffer-substring 1 " "] 4] mail-extr-x400-encoded-address-given-name-pattern mail-extr-x400-encoded-address-surname-pattern mail-extr-x400-encoded-address-full-name-pattern mail-extr-bad-dot-pattern "\\1 \\2" "\\([^_=]+\\)[_=]" mail-extr-address-text-syntax-table mail-extr-voodoo mail-extr-guess-middle-initial 3 mail-extr-two-name-pattern 0 char-equal 119 ". " names-match-flag i buffer-length mail-extr-ignore-single-names "[- ]" buffer-string] 40 (#$ . 6944)]) (defalias 'mail-extr-voodoo #[(mbox-beg mbox-end canonicalization-buffer) " \n \f !#teb#Xeb#t\"H#teb#t\"ceb\nb \n\nw=`d}` =!b`d}UY'!!'x` g=ucg=cwg>!g=uc!U!;b`d}\nUg=Z=Zu\fg=UcUg>`+,!g>g=|}$``\\|򏄔db!`3=!3+ZY+T3S}ebU3+ZU3+ZU+\\f=!+Tf  +3| U Uoh=2!2``\\|`;<=#`\">U?!C؁@\"UA!TbU=mB!mb`d}UYC!D!E!F!G!UH!|UI!gg=ug=ucg=cU=J!}UK!S`Y**ށL!' Sf=* ځM #J\fbځN #GJ bUwTw uށO!ud be `} ebށP!Q )\febԁR!`S dbh=cpe # bSw`d}ebځT#m@\"." [0 nil name-done-flag name-end name-beg last-word-beg this-word-beg word-found-flag drop-last-word-if-trailing-flag drop-this-word-if-trailing-flag begin-again-flag initial last-name-comma-flag suffix-flag lower-case-flag mixed-case-flag case-fold-search word-count set-syntax-table mail-extr-address-text-syntax-table search-forward " " t "_" replace-match "." re-search-forward mail-extr-bad-dot-pattern "\\1 \\2" " \n " looking-at mail-extr-full-name-prefixes 2 mail-extr-full-name-suffix-pattern 44 1 32 (106 74 115 83) capitalize-word 46 upcase-word "MKA \\(.+\\)" (40 123 91 34 39 96) cbeg mail-extr-address-text-comment-syntax-table (39 96) "'" 39 error (byte-code "`\"b‡" [scan-sexps 1 t] 3) ((error (byte-code "A@?@A\" " [error "Unbalanced parentheses" signal] 3))) cend " *\\'" 3 4 ". " "&\\( \\|\\'\\)" capitalize-region insert-buffer-substring canonicalization-buffer mbox-beg mbox-end disable-initial-guessing-flag mail-extr-stupid-vms-date-stamp-pattern "" mail-extr-hz-embedded-gb-encoded-chinese-pattern mail-extr-leading-garbage mail-extr-weird-acronym-pattern mail-extr-roman-numeral-pattern mail-extr-alternative-address-pattern mail-extr-trailing-comment-start-pattern mail-extr-telephone-extension-pattern mail-extr-ham-call-sign-pattern mail-extr-initial-pattern mail-extr-listserv-list-name-pattern mail-extr-name-pattern "[a-z][a-z][a-z][a-z]+[ ]*\\'" "[a-z]" "[A-Z]" "\\(\\.+\\|[?!;:.][?!;:.]+\\|[?!;:][?!;:.]*\\)\\'" "[-A-Za-z_]+[. ]\\(PARC\\|ADOC\\)\\'" erase-buffer "," " ," "[ \n]+"] 16]) (byte-code "\"\" )B" [make-vector 509 0 ob mapcar #[(x) "\n@ \"\n8\n8\nA@\"\nA@#" [put intern x ob domain-name 2 format] 6] (("ae" "United Arab Emirates") ("ag" "Antigua and Barbuda") ("al" "Albania") ("ao" "Angola") ("aq" "Antarctica") ("ar" "Argentina" "Argentine Republic") ("at" "Austria" "The Republic of %s") ("au" "Australia") ("az" "Azerbaijan") ("bb" "Barbados") ("bd" "Bangladesh") ("be" "Belgium" "The Kingdom of %s") ("bf" "Burkina Faso") ("bg" "Bulgaria") ("bh" "Bahrain") ("bm" "Bermuda") ("bo" "Bolivia" "Republic of %s") ("br" "Brazil" "The Federative Republic of %s") ("bs" "Bahamas") ("bw" "Botswana") ("by" "Belarus") ("bz" "Belize") ("ca" "Canada") ("cg" "Congo") ("ch" "Switzerland" "The Swiss Confederation") ("ci" "Ivory Coast") ("cl" "Chile" "The Republic of %s") ("cm" "Cameroon") ("cn" "China" "The People's Republic of %s") ("co" "Colombia") ("cr" "Costa Rica" "The Republic of %s") ("cs" "Czechoslovakia") ("cu" "Cuba") ("cy" "Cyprus") ("cz" "Czech Republic") ("de" "Germany") ("dk" "Denmark") ("dm" "Dominica") ("do" "Dominican Republic" "The %s") ("dz" "Algeria") ("ec" "Ecuador" "The Republic of %s") ("ee" "Estonia") ("eg" "Egypt" "The Arab Republic of %s") ("er" "Eritrea") ("es" "Spain" "The Kingdom of %s") ("fi" "Finland" "The Republic of %s") ("fj" "Fiji") ("fo" "Faroe Islands") ("fr" "France") ("gb" "Great Britain") ("gd" "Grenada") ("ge" "Georgia") ("gf" "Guyana (Fr.)") ("gp" "Guadeloupe (Fr.)") ("gr" "Greece" "The Hellenic Republic (%s)") ("gt" "Guatemala") ("gu" "Guam (U.S.)") ("hk" "Hong Kong") ("hn" "Honduras") ("hr" "Croatia") ("ht" "Haiti") ("hu" "Hungary" "The Hungarian Republic") ("id" "Indonesia") ("ie" "Ireland") ("il" "Israel" "The State of %s") ("in" "India" "The Republic of %s") ("ir" "Iran") ("is" "Iceland" "The Republic of %s") ("it" "Italy" "The Italian Republic") ("jm" "Jamaica") ("jp" "Japan") ("ke" "Kenya") ("kn" "St. Kitts, Nevis, and Anguilla") ("kp" "Korea (North)") ("kr" "Korea (South)") ("kw" "Kuwait") ("kz" "Kazachstan") ("lb" "Lebanon") ("lc" "St. Lucia") ("li" "Liechtenstein") ("lk" "Sri Lanka" "The Democratic Socialist Republic of %s") ("ls" "Lesotho") ("lt" "Lithuania") ("lu" "Luxembourg") ("lv" "Latvia") ("ma" "Morocco") ("md" "Moldova") ("mg" "Madagascar") ("mk" "Macedonia") ("ml" "Mali") ("mo" "Macau") ("mt" "Malta") ("mu" "Mauritius") ("mw" "Malawi") ("mx" "Mexico" "The United Mexican States") ("my" "Malaysia" "%s (changed to Myanmar?)") ("mz" "Mozambique") ("na" "Namibia") ("nc" "New Caledonia (Fr.)") ("ne" "Niger") ("ni" "Nicaragua" "The Republic of %s") ("nl" "Netherlands" "The Kingdom of the %s") ("no" "Norway" "The Kingdom of %s") ("np" "Nepal") ("nz" "New Zealand") ("pa" "Panama") ("pe" "Peru") ("pf" "Polynesia (Fr.)") ("pg" "Papua New Guinea") ("ph" "Philippines" "The Republic of the %s") ("pk" "Pakistan") ("pl" "Poland") ("pr" "Puerto Rico (U.S.)") ("pt" "Portugal" "The Portugese Republic") ("py" "Paraguay") ("re" "Reunion (Fr.)") ("ro" "Romania") ("ru" "Russian Federation") ("sa" "Saudi Arabia") ("sc" "Seychelles") ("sd" "Sudan") ("se" "Sweden" "The Kingdom of %s") ("sg" "Singapore" "The Republic of %s") ("si" "Slovenia") ("sj" "Svalbard and Jan Mayen Is.") ("sk" "Slovakia" "The Slovak Republic") ("sn" "Senegal") ("sr" "Suriname") ("su" "Soviet Union") ("sz" "Swaziland") ("tg" "Togo") ("th" "Thailand" "The Kingdom of %s") ("tm" "Turkmenistan") ("tn" "Tunisia") ("tr" "Turkey" "The Republic of %s") ("tt" "Trinidad and Tobago") ("tw" "Taiwan") ("ua" "Ukraine") ("uk" "United Kingdom" "The %s of Great Britain and Northern Ireland") ("us" "United States" "The %s of America") ("uy" "Uruguay" "The Eastern Republic of %s") ("vc" "St. Vincent and the Grenadines") ("ve" "Venezuela" "The Republic of %s") ("vi" "Virgin Islands (U.S.)") ("vn" "Vietnam") ("vu" "Vanuatu") ("yu" "Yugoslavia" "The Socialist Federal Republic of %s") ("za" "South Africa" "The Republic of %s (or Zambia? Zaire?)") ("zw" "Zimbabwe" "Republic of %s") ("arpa" t "Advanced Research Projects Agency (U.S. DoD)") ("bitnet" t "Because It's Time NET") ("com" t "Commercial") ("edu" t "Educational") ("gov" t "Government (U.S.)") ("int" t "International (NATO)") ("mil" t "Military (U.S.)") ("nato" t "North Atlantic Treaty Organization") ("net" t "Network") ("org" t "Non-profit Organization") ("uucp" t "Unix to Unix CoPy")) mail-extr-all-top-level-domains current-load-list] 3) #@62 Convert mail domain DOMAIN to the country it corresponds to. (defalias 'what-domain #[(domain) " \n\"! ! N#" [intern-soft domain mail-extr-all-top-level-domains error "no such domain" message "%s: %s" symbol-name domain-name] 5 (#$ . 21250) (byte-code "\f$)C" [t completion-ignore-case completing-read "Domain: " mail-extr-all-top-level-domains nil] 5)]) (provide (quote mail-extr))