%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/mail/ |
Current File : //usr/local/share/emacs/27.2/lisp/mail/mail-extr.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\302\312\313\314\306\301&\210\310\315\302\316\313\314\317\320\306\301& \210\310\321\322\323\313\314\306\301&\210\310\324\325\326\313\327\306\301&\210\310\330\302\331\313\314\306\301&\210\310\332\302\333\313\314\306\301&\207" [custom-declare-group mail-extr nil "Extract full name and address from RFC 822 (or later) mail header." :prefix "mail-extr-" :group mail custom-declare-variable mail-extr-guess-middle-initial "Whether to try to guess middle initial from mail address.\nIf true, then when we see an address like \"John Smith <jqs@host.com>\"\nwe will assume that \"John Q. Smith\" is the fellow's name." :type boolean mail-extr-ignore-single-names "Whether to ignore a name that is just a single word.\nIf true, then when we see an address like \"Idiot <dumb@stupid.com>\"\nwe will act as though we couldn't find a full name in the address." :version "22.1" mail-extr-ignore-realname-equals-mailbox-name t "Whether to ignore a name that is equal to the mailbox name.\nIf true, then when the address is like \"Single <single@address.com>\"\nwe will act as though we couldn't find a full name in the address." mail-extr-full-name-prefixes (purecopy "\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \n]") "Matches prefixes to the full name that identify a person's position.\nThese are stripped from the full name because they do not contribute to\nuniquely identifying the person." regexp mail-extr-@-binds-tighter-than-! "Whether the local mail transport agent looks at ! before @." mail-extr-mangle-uucp "Whether to throw away information in UUCP addresses\nby translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."] 10) (defconst mail-extr-all-letters-but-separators (purecopy "][[:alnum:]{|}'~`")) (defconst mail-extr-all-letters (byte-code "\301\302P!\207" [mail-extr-all-letters-but-separators purecopy "-"] 3)) (defconst mail-extr-first-letters (purecopy "[:alpha:]")) (defconst mail-extr-last-letters (purecopy "[:alpha:]`'.")) (defconst mail-extr-leading-garbage "\\W+") (defconst mail-extr-bad-dot-pattern (byte-code "\303\304\305 \n$!\207" [mail-extr-all-letters mail-extr-last-letters mail-extr-first-letters purecopy format "\\([%s][%s]\\)\\.+\\([%s]\\)"] 6)) (defconst mail-extr-full-name-suffix-pattern (byte-code "\301\302\303\211#!\207" [mail-extr-all-letters purecopy format "\\(,? ?\\([JjSs][Rr]\\.?\\|V?I+V?\\)\\)\\([^%s]\\([^%s]\\|\\'\\)\\|\\'\\)"] 5)) (defconst mail-extr-roman-numeral-pattern (purecopy "V?I+V?\\b")) (defconst mail-extr-weird-acronym-pattern (purecopy "\\([A-Z]+[-_/]\\|[A-Z][A-Z][A-Z]?\\b\\)")) (defconst mail-extr-alternative-address-pattern (purecopy "\\(aka *\\)?[a-zA-Z.]+[!@][a-zA-Z.]")) (defconst mail-extr-trailing-comment-start-pattern (purecopy " [-{]\\|--\\|[+@#></;]")) (defconst mail-extr-name-pattern (byte-code "\303\304\305 \n$!\207" [mail-extr-first-letters mail-extr-all-letters mail-extr-last-letters purecopy format "\\b[%s][%s]*[%s]"] 6)) (defconst mail-extr-initial-pattern (byte-code "\301\302\303\"!\207" [mail-extr-first-letters purecopy format "\\b[%s]\\([. ]\\|\\b\\)"] 4)) (defconst mail-extr-telephone-extension-pattern (purecopy "\\(\\([Ee]xt\\|[Tt]ph\\|[Tt]el\\|[Xx]\\)\\.?\\)? *\\+?[0-9][- 0-9]+")) (defconst mail-extr-ham-call-sign-pattern (purecopy "\\b\\(DX[0-9]+\\|[AKNW][A-Z]?[0-9][A-Z][A-Z]?[A-Z]?\\)")) (defconst mail-extr-normal-name-pattern (byte-code "\303\304\305 \n$!\207" [mail-extr-first-letters mail-extr-all-letters-but-separators mail-extr-last-letters purecopy format "\\b[%s][%s]+[%s]"] 6)) (defconst mail-extr-two-name-pattern (byte-code "\303\304\305 \306\n\307\260!\207" [mail-extr-normal-name-pattern mail-extr-initial-pattern mail-extr-name-pattern purecopy "\\`\\(" "\\|" "\\) +\\(" "\\)\\(,\\|\\'\\)"] 8)) (defconst mail-extr-listserv-list-name-pattern (purecopy "Multiple recipients of list \\([-A-Z]+\\)")) (defconst mail-extr-stupid-vms-date-stamp-pattern (purecopy "[0-9][0-9]-[JFMASOND][aepuco][nbrylgptvc]-[0-9][0-9][0-9][0-9] [0-9]+ *")) (defconst mail-extr-hz-embedded-gb-encoded-chinese-pattern (purecopy "~{\\([^~].\\|~[^}]\\)+~}")) (defconst mail-extr-x400-encoded-address-pattern (purecopy "[a-z]?[a-z]?\\(/[A-Za-z]+\\(\\.[A-Za-z]+\\)?=[^/]+\\)+/?\\'")) (defconst mail-extr-x400-encoded-address-field-pattern-format (purecopy "/%s=\\([^/]+\\)\\(/\\|\\'\\)")) (defconst mail-extr-x400-encoded-address-surname-pattern (byte-code "\301\302\303\"!\207" [mail-extr-x400-encoded-address-field-pattern-format purecopy format "[Ss]"] 4)) (defconst mail-extr-x400-encoded-address-given-name-pattern (byte-code "\301\302\303\"!\207" [mail-extr-x400-encoded-address-field-pattern-format purecopy format "[Gg]"] 4)) (defconst mail-extr-x400-encoded-address-full-name-pattern (byte-code "\301\302\303\"!\207" [mail-extr-x400-encoded-address-field-pattern-format purecopy format "[Pp][Nn]"] 4)) (defconst mail-extr-address-syntax-table (make-syntax-table)) (defconst mail-extr-address-comment-syntax-table (make-syntax-table)) (defconst mail-extr-address-domain-literal-syntax-table (make-syntax-table)) (defconst mail-extr-address-text-comment-syntax-table (make-syntax-table)) (defconst mail-extr-address-text-syntax-table (make-syntax-table)) (mapc #[(pair) "@JA\306\211\205N @\211G\307=\203# \310\n@\nA@ #\210\202F \n@\nA@\307\n8\211 X\203E \310 \f #\210 T\211 \2020 +A\211\204 \306+\207" [pair syntax-table item --dolist-tail-- syntax bound nil 2 modify-syntax-entry char] 5] '((mail-extr-address-syntax-table (0 31 "w") (32 " ") (33 126 "w") (127 "w") (9 " ") (13 " ") (10 " ") (40 ".") (41 ".") (60 ".") (62 ".") (64 ".") (44 ".") (59 ".") (58 ".") (92 "\\") (34 "\"") (46 ".") (91 ".") (93 ".") (37 ".") (33 ".")) (mail-extr-address-comment-syntax-table (0 255 "w") (32 " ") (160 " ") (9 " ") (13 " ") (10 " ") (40 "()") (41 ")(") (92 "\\")) (mail-extr-address-domain-literal-syntax-table (0 255 "w") (32 " ") (160 " ") (9 " ") (13 " ") (10 " ") (91 "(]") (93 ")[") (92 "\\")) (mail-extr-address-text-comment-syntax-table (0 255 "w") (32 " ") (160 " ") (9 " ") (13 " ") (10 " ") (40 "()") (41 ")(") (91 "(]") (93 ")[") (123 "(}") (125 "){") (92 "\\") (34 "\"")) (mail-extr-address-text-syntax-table (0 127 ".") (128 255 "w") (32 " ") (9 " ") (13 " ") (10 " ") (65 90 "w") (97 122 "w") (45 "w") (125 "w") (123 "w") (124 "w") (39 "w") (126 "w") (48 57 "w")))) (defalias 'mail-extr-skip-whitespace-forward #[nil "\300\301w\207" [" \n " nil] 2]) (put 'mail-extr-skip-whitespace-forward 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mail-extr-skip-whitespace-backward #[nil "\300\301x\207" [" \n " nil] 2]) (put 'mail-extr-skip-whitespace-backward 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mail-extr-undo-backslash-quoting #[(beg end) "\212\214 }\210eb\210\302\303\304\305#\205 \306\307!\210m\204 \310u\210\202 *\207" [beg end search-forward "\\" nil t delete-char -1 1] 4]) (put 'mail-extr-undo-backslash-quoting 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mail-extr-nuke-char-at #[(pos) "\212b\210\301\302!\210\303c)\207" [pos delete-char 1 32] 2]) (byte-code "\300\301\302\303#\210\300\304\305\306#\207" [put mail-extr-nuke-char-at byte-optimizer byte-compile-inline-expand mail-extr-nuke-outside-range edebug-form-spec (symbolp &optional form form atom)] 4) #@414 Delete all elements outside BEG..END in LIST. LIST-SYMBOL names a variable holding a list of buffer positions BEG-SYMBOL and END-SYMBOL name variables delimiting a range Each element of LIST-SYMBOL which lies outside of the range is deleted from the list. Unless NO-REPLACE is true, at each of the positions in LIST-SYMBOL which lie outside of the range, one character at that position is replaced with a SPC. (defalias 'mail-extr-nuke-outside-range '(macro . #[(list-symbol beg-symbol end-symbol &optional no-replace) "\304>\204\n \305\306!\210\307\310 D\311B\312\310\313\314\315\316\317\nE\320\317EE\321?\205% \322\323\"BB\324BBBB\325 \326\327 EEF\207" [no-replace list-symbol end-symbol beg-symbol (t nil) error "no-replace must be t or nil, evaluable at macroexpand-time" let temp (ch) while (setq ch (car temp)) when or > ch < append ((mail-extr-nuke-char-at ch)) ((setcar temp nil)) ((setq temp (cdr temp))) setq delq nil] 11 (#$ . 7741)])) (defalias 'mail-extr-demarkerize #[(marker) "\302!\203 \303!\304\211\223\210 )\207\207" [marker temp markerp marker-position nil] 3]) (defalias 'mail-extr-markerize #[(pos) "\301!\204\n \204\f \207\302!\207" [pos markerp copy-marker] 2]) (defalias 'mail-extr-safe-move-sexp #[(arg) "\3021 \303`\"\206\f `b\210\3040\207\211A@\305\230?\205% \306 @ A\"\210\202 )\207" [arg error (error) scan-sexps t "Unbalanced parentheses" signal] 4]) (put 'mail-extr-safe-move-sexp 'byte-optimizer 'byte-compile-inline-expand) #@1119 Extract full name and canonical address from ADDRESS. ADDRESS should be in RFC 822 (or later) format. Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no name can be extracted, FULL-NAME will be nil. Also see `mail-extr-ignore-single-names' and `mail-extr-ignore-realname-equals-mailbox-name'. If the optional argument ALL is non-nil, then ADDRESS can contain zero or more recipients, separated by commas, and we return a list of the form ((FULL-NAME CANONICAL-ADDRESS) ...) with one element for each recipient. If ALL is nil, then if ADDRESS contains more than one recipients, all but the first is ignored. 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.) This function is primarily meant for when you're displaying the result to the user: Many prettifications are applied to the result returned. If you want to decode an address for further non-display use, you should probably use `mail-header-parse-address' instead. (defalias 'mail-extract-address-components #[(address &optional all) "\306\307!\306\310!\311r\306 !q\210\312 \210\313 !\210\314!\210~\210\315 \210\311\316c\210 ;\2030 c\210\202B \317 !\203= \320 !\210\202B \321\322 \"\210\323ed\311#\210r\306\n!q\210\312 \210\313\n!\210\311)eb\210\324\325\311\326#\203k \327\330\326\"\210\202[ @\204t \204Qeb\210\331\311w\210m\204Q\311\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdef\314!\210eb\210g\316=\204\316c\210\332\311w\210m\204\340`ffX\204f\333=\204`Xf\334\267\202*\314g!\210T\204@\212\335u\210\332\311w\210`f)\336=\204@`T\335h\3371W\340`h\"\206P`b\210\3260\202o\211A@\341\230?\205n\342@A\"\210\202b))\204v\335u\210\314!\210T\203\310S\204\310`S\202\310R\204\242\212\335u\210\332\311w\210`f)\343=\204\242`R\335h\3371\271\340`h\"\206\262`b\210\3260\202\321\211A@\341\230?\205\320\342@A\"\210\202\304))\204\330\335u\210R\203\310Q\204\310`Q\202\310\314i!\210\335h\3371\340`h\"\206\375`b\210\3260\202\211A@\341\230?\205\342@A\"\210\202))\204#\335u\210\314!\210\202\310f\344=\203ed\204>`Tf\345=\203Oc\203e\346d!@c@W\203e\347`T\326\"ee`T}\210\350\335!\210\333f\202\310f\351\236A\211Y\203Y`YJBL\210\335u\210\202\310f\352\267\202\242\335u\210\202\310`j\212jb\210\350\335!\210\316c*\210\335u\210\202\310\353\311w\210m\204\310\311fz\354=\203\310\355\335!\210m\204\310\311f\356V\203\310\311f\357=\203\242f\333=\204f\344=\203\332m\204`W\202dA\203d@j\212jb\210\350\335!\210\316c*\210dA\211d\202\342cA\203$cA@j\212jb\210\350\335!\210\316c*\210c\211AA\241\210\202bG\335V\203LaG\335=\203L]\204Ld\204Leb\210\350\335!\210`Cd\360c\210d\203`c\204`db\210`Cc\361c\210c\203d\204c@j\212jb\210\350\335!\210\316c*\210\311cc@cd@\211d\203,b\311k\211K\203\272K@\211kcV\204\254kdW\203\261K\311\240\210KA\211K\204\230\362\311b\"b*_\311k\211K\203\357K@\211kcV\204\341kdW\203\346K\311\240\210KA\211K\204\315\362\311_\"_*^\311k\211K\203$K@\211kcV\204kdW\203K\311\240\210KA\211K\204\362\311^\"^*a\203\251a@KaAad\203\220c\203\220KdV\203\220KcW\203\220Z\204ubG\363W\204uKb@V\204uKbA@W\203\211Kj\212jb\210\350\335!\210\316c*\210\202,KZ\202,d\203\242d\203,KdW\203,K\\\202,]\203\377]@K]A]d\203\346c\203\346KdV\203\346KcW\203\346Kj\212jb\210\350\335!\210\316c*\210\202\251\\\203\363K\\V\203\251[\204\251K[\202\251\\\203[\204\\j\212jb\210\350\335!\210\316c*\210\311\\[\203;\\\204;[j\212jb\210\350\335!\210\316c*\210\311[[\203M_\311k\211K\203mK@\211k[V\204_k\\W\203dK\311\240\210KA\211K\204K\362\311_\"_*b\311k\211K\203\242K@\211k[V\204\224k\\W\203\231K\311\240\210KA\211K\204\200\362\311b\"b*^\311k\211K\203\327K@\211k[V\204\311k\\W\203\316K\311\240\210KA\211K\204\265\362\311^\"^*`\311k\211K\203\fK@\211k[V\204\376k\\W\203K\311\240\210KA\211K\204\352\362\311`\"`*W\203'W[TV\203'[TWS\203:S[V\203:\311\211STQ\203MQ[V\203M\311\211QR`\311k\211K\203\211K@\211k\335V\204jk\335W\203\200kj\212jb\210\350\335!\210\316c*\210K\311\240\210KA\211K\204X\362\311`\"`*d\203\270db\210\332\311x\210`Ueb\210\332\311w\210`UW\203\265`V\202\270\311UZ\203I\311\211_^\347c!c\347Z!Zcb\210\364\365!\210b@b\210bA\211b\203\350\335!\210\366 ^B^\367c\210cSb\210\212\320 b@Z#\210b@Z|\210)bA\204\334`CE\202\334Ebcb\210\350\370!\210Zj\212jb\210\350\335!\210\316c*\210\371Z!\210\311Z\371c!c\372\371^\"^b@br\nq\210~\210\315 \210\320 !\210d\203qdTb\210\332\311w\210`c}\210\202\210X\203\204W\203\204XW}\210\202\210dd}\210b\203\327^\203\327^\311k\211K\203\317K@\211kbV\204\260keW\203\306kj\212jb\210\350\335!\210\316c*\210K\311\240\210KA\211K\204\235\362\311^\"^*^\203'_\203'_\311k\211K\203K@\211k^@V\204 keW\203kj\212jb\210\350\335!\210\316c*\210K\311\240\210KA\211K\204\354\362\311_\"_*b\203{_\203{^\204{_\311k\211K\203sK@\211kbV\204TkeW\203jkj\212jb\210\350\335!\210\316c*\210K\311\240\210KA\211K\204A\362\311_\"_*^\203\231b\204\231^@b\210\350\335!\210`b\373c\210^A^l\203\326 _\203\326 \214b\203\310m\203\310bb\210`^B^\311b\350\335!\210\367c\210dB\202 m\203\323dB\202 ^\203\362\346^!@B\372\374^\"G\311^\374b!b\202 b\203 bB\374b!b\202 dBeB}\210_@F_\203\267 db\210b\204. _A\204. `b\364\375!\210\2028 `^B^\364\376!\210\370u\210\320p_A@\203L _A@T\202M e_@#\210\350\335!\210\212\370h\3371n \340`h\"\206g `b\210\3260\202\206 \211A@\341\230?\205\205 \342@A\"\210\202y ))\210\332\311x\210h)\377=\204\256 \364\212\332\311x\210h)\377=\203\246 \201 \202\251 \201\200 \201\201 \"\210_A\211_\204 )G\203\312 \201\202 \372\371G\"^\"^\371b!bFTd}\210^\203\364 b\204\364 ^@b\210\350\335!\210`b\373c\210^A^^\237\211^\203\256\n^K\201\203 2\255\nK\205\254\nKA@\206\nbb\210\332\311x\210\212\370h\33713\n\340`h\"\206,\n`b\210\3260\202K\n\211A@\341\230?\205J\n\342@A\"\210\202>\n))\210`D\332\311x\210h\377=C)C\203\242\n\201\204 D`{n\"\211o\205u\no\201\205 N)\203\242\ne`}\210K@b\210\350\335!\210`bK\311\241\210\362b^\"^\373c\210\201\206 \201\203 \326\"\210KA\211K\204\f\n\3110\210eN^\203\274\n^@\202\302\nb\206\302\ndMb\203\322\n\201\207 bTd\"\210)V\203 RV=\203 QUX\203 RTQS}\210edpq\212\214qp}\210eb\210\201\210 \201\211 \311\326#\205\350\370!\210m\204\335u\210\202,\210\202 V\203.VU}\210\202 T\203nTTSS}\210edpq\212\214qp}\210eb\210\201\210 \201\211 \311\326#\205f\350\370!\210m\204L\335u\210\202L,\210eb\210\202 db\210``}\210\320\nNM#\210eb\210\324\201\212 \311\326#Leb\210l\204\240\201\213 \201\214 \201\215 \201\216 #\210\332\311w\210m\204\364\f`f\211f\201\217 \267\202w\f`R\335h\3371\316\340`h\"\206\307`b\210\3260\202\346\211A@\341\230?\205\345\342@A\"\210\202\331))\204\355\335u\210`\363ZQ\212\370u\210\350\335!\210Rb\210m\204\f\350\335!\210)RQpq\212\214qp}\210eb\210\201\210 \201\211 \311\326#\2054\f\350\370!\210m\204\f\335u\210\202\f,\210`f\316=\204B\f\201\220 c\210\326L\202\240`Tf\201\221 >\203_\f\335u\210\350\335!\210\316c\210\202\240L\203k\fe`}\210\202\240\350\335!\210\201\220 c\210\202\240fz\201\222 >\203\215\f\350\335!\210\201\220 c\210\202\240`P\355\335!\210`OPb\210\214PO}\210\201\223 r!\203\330\f\201\224 \201\225 stuE\"\210\332\311x\210`d|\210\324v\311\326#\203\360\f\327\201\226 \326\"\210\202\302\f\202\360\feb\210\324\201\227 \311\326#\203\355\f\327\330\326\"\210\202\333\fdb\210)\202\240l\204 \201\213 \201\214 \201\200 \201\216 #\210\314w!\210\201\230 NM\n#\210eb\210eb\210x\203\217 A\204\217 MNZ\201\231 =\203\217 eb\210\201\223 y!\203\217 \201\232 \224fJ\201\231 \224fHr\nq\210\326\201\233 JNf\"\203r \201\233 HMSf\"\203r NTfI*I\203\217 Iz\354=\203\217 \201\231 \224b\210I\226\201\234 \261\210deZ\201\232 \326z{\211|\201\232 V\203\374 |MNZ=\203\374 db\210\320\nNM#\210z\203\347 {|W\203\347 {e\\f\227\201\235 {|e#f\227=\204\337 \311z{T{\202\272 e|\\d|\210z\203\374 }\203\374 ``}\210+eb\210~\203\324\201\236 \311\326#\204``}\210edU?\205\201\237 r\nq\210edU?\205-\201\237 )DB@\203Le\203D\335e}\210\202F~\210ed|\210~\210.&\202k )@\203\\\237\202^@+\207" [value-list extraction-buffer canonicalization-buffer mail-extr-address-syntax-table case-fold-search address get-buffer-create " *canonical address*" " *extract address components*" nil fundamental-mode buffer-disable-undo set-syntax-table erase-buffer 32 bufferp insert-buffer-substring error "Invalid address: %s" set-text-properties re-search-forward "\\([^\\]\\(\\\\\\\\\\)*\\)\n[ ]" t replace-match "\\1 " " " " \n " 40 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (40 291 34 394 91 488)) 1 41 (error) scan-sexps "Unbalanced parentheses" signal 34 44 64 last copy-marker delete-char ((60 . <-pos) (62 . >-pos) (64 . @-pos) (58 . colon-pos) (44 . comma-pos) (33 . !-pos) (37 . %-pos) (59 . \;-pos)) #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (46 646 41 652 93 652 92 652)) "^ - " 119 forward-word-strictly 127 160 60 62 delq 2 insert-before-markers 88 point-marker "%" -1 mail-extr-demarkerize mapcar "@" mail-extr-markerize "@ " "% " 46 all 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 mailextr-cend mailextr-cbeg phrase-end phrase-beg last-real-pos first-real-pos record-pos-symbol route-addr-:-pos group-\;-pos group-:-pos \;-pos %-pos !-pos comma-pos colon-pos @-pos >-pos <-pos end-of-address char mail-extr-address-comment-syntax-table arg mail-extr-address-domain-literal-syntax-table pos ch mail-extr-mangle-uucp mail-extr-@-binds-tighter-than-! mail-extr-all-top-level-domains s end beg mail-extr-x400-encoded-address-pattern 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 mail-extr-address-text-syntax-table mail-extr-guess-middle-initial mail-extr-two-name-pattern names-match-flag i buffer-length mail-extr-ignore-realname-equals-mailbox-name mail-extr-ignore-single-names "" "." "uucp" append truncated intern-soft domain-name throw downcase-region search-forward "\\" "[_0-9]" modify-syntax-entry 33 "w" syntax-table #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 2996 46 3144)) " " (95 61) (46 92) looking-at mapc #[(field-pattern) "\212\301\302\303#)\205 \304p\305\224\305\225#\210\306c\207" [field-pattern re-search-forward nil t insert-buffer-substring 1 " "] 4] "\\1 \\2" "\\([^_=]+\\)[_=]" mail-extr-voodoo 3 0 char-equal ". " + "[- ]" buffer-string] 39 (#$ . 9226)]) #@196 If it is a regexp, names matching it will never be modified. If it is neither nil nor a string, modifying of names will never take place. It affects how `mail-extract-address-components' works. (custom-declare-variable 'mail-extr-disable-voodoo "\\cj" '(#$ . 20579) :type '(choice (regexp :size 0) (const :tag "Always enabled" nil) (const :tag "Always disabled" t)) :group 'mail-extr) (defalias 'mail-extr-voodoo #[(mbox-beg mbox-end canonicalization-buffer) "\205 ;?\206 eb\210\306\307\310#?\205\366\311\307\211\211\211\211\211\211\211\211\211\211\211\211\211\211>?@ABCDEFGH\212\312I!\210eb\210m\204\347 \313\307w\210`J\312K!\210g\314>\203t \315\316\307\317g\320=\203n \321\202o \322$\210\202\252 \322L\3231\213 \324`L\"\206\204 `b\210\3100\202\243 \211MA@\325\230?\205\242 \326M@MA\"\210\202\226 ))\204\252 db\210\312I!\210Jf\327=\203\343 J`|\210\330\307x\210\331\332!\203\315 \333\334!\210\202\343 `J\330\307w\210o\203\340 `J|\210\202\343 \335 \210)\202J \315\336\307\310#\204)eb\210\315\337\307\310#\203 eb\210\315\337\307\310#\203)\333\336\310\"\210\202\375 \315\340\307\310#\203)eb\210\306N\307\310#\203)\333\341\310\"\210\202eb\210 \204u>\203> @?\307>A\203T\311H\307\211?\307\211FE\307A\342\307w\210H\311=\203c`d}\210`\307@H\311=\203\201\331O!\203\201\311\225b\210`d}\210\202hH\321Y\203\332\331P!\203\332\342\307x\210`Dg\343=\203\242\322u\210\202\245\343c\210g\344=\204\256\344c\210\342\307w\210g\345>\203\316\346\322!\210g\347=\203\310\322u\210\202\322\347c\210\202\322\350\322!\210\310\211>\202h\331\351!\203\356\322\224b\210`d}\210\310A\202hg\343=\203 H\322=\203 \322u\210\310Cg\344=\204h\344c\210\202hg\352>\203\342`Q\312K!\210g\353>\203;\315\316\307\310g\320=\203/\321\2020\322$\204q\354\322!\210\202q\322L\3231R\324`L\"\206K`b\210\3100\202j\211MA@\325\230?\205i\326M@MA\"\210\202]))\204qdb\210\312I!\210`RH\311=\203\236\331\355!\203\236RQZ\321Y\203\236QTRS}\210eb\210\202hRQZ\356U\204\274RQZ\357U\203\313\321Q\\f\347=\203\313\331\355!\204\313QTfB\202\316\307BQR|\210B\203hB\360\261\210\202h\331S!\203\361\333\334\310\"\210\202h\331T!\203\311\225b\210\310>\202hH\311=\203\331U!\203\311\225b\210`d}\210\202hH\321Y\2035F\2035\331V!\2035\331W!\203Q\331X!\204Q\331Y!\204QH\322Y\203V\331Z!\203V\310\202h\331[!\203f\311\224\311\225|\210\202h\331\\!\203\230gg\226=\204w\310E\322u\210g\347=\203\206\322u\210\202\211\347c\210g\344=\204\222\344c\210\310>\202hH\311=\203\264\331]!\203\264\322\224\322\225}\210\310\211>\202hH\311V\203\351h\344=\203\351g\361=\203\351`Td=\203\351\354\322!\210\362`\363^_`#\210`\"\210\310\211a>\202hH\311V\203g\361=\203`\211T\310>\nb\210\202h\331b!\203R`\311\225H\321Y\203-E\204-\331\364!\204*\nSf\347=\203-\310@\306\365\n\310#\203Ib\210\306\366\n\310#\203F\310F\202I\310E\nb\210\310>\202h\331\367!\203f`\311\225\211b\210\310>\202h\310>\203,HTH\202,D\204\206\331\370!\203\206d\211Db\210e?\203\220\f\206\221`}\210D\204\250eb\210\310G\331\371!\203\247\372 \210)C\203\331eb\210\315\373!\210`SD\206\275db\210h\344=\204\310\344c\210\363pe\n#\210\nb\210\374\307w\210`d}\210eb\210\306\375\307\310#\205\364\333m\203\355\334\202\356\336\310\"\210\202\334.\207" [mail-extr-disable-voodoo name-done-flag name-end name-beg last-word-beg this-word-beg re-search-forward nil t 0 set-syntax-table "^({[\"'`" (39 96) search-forward "'" move 39 2 1 (error) scan-sexps "Unbalanced parentheses" signal 40 " " looking-at "\\([ ]+$\\|[ ]+,\\)" replace-match "" just-one-space " " "_" "." "\\1 \\2" " \n " 44 32 (106 74 115 83) capitalize-word 46 upcase-word "MKA \\(.+\\)" (40 123 91 34 39 96) (39 96) delete-char " *\\'" 3 4 ". " 38 capitalize-region insert-buffer-substring "[[:lower:]]\\{4,\\}[ ]*\\'" "[[:lower:]]" "[[:upper:]]" "[0-9]+\\>" "\\(\\.+\\|[?!;:.][?!;:.]+\\|[?!;:][?!;:.]*\\)\\'" "[-A-Za-z_]+[. ]\\(PARC\\|ADOC\\)\\'" erase-buffer "," " ," "[ \n]+" 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 mail-extr-address-text-syntax-table cbeg mail-extr-address-text-comment-syntax-table arg error mail-extr-bad-dot-pattern mail-extr-full-name-prefixes mail-extr-full-name-suffix-pattern mailextr-cbeg mailextr-cend 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 canonicalization-buffer mbox-beg mbox-end disable-initial-guessing-flag mail-extr-name-pattern] 17]) (defconst mail-extr-all-top-level-domains (byte-code "\301\302\303\"\304\305\306\"\210)\207" [ob make-vector 739 0 mapc #[(x) "\302\303@\227 \"\304\3058\203 \306\3058A@\"\202 A@#\207" [x ob put intern domain-name 2 format] 6] (("ac" "Ascension Island") ("ad" "Andorra") ("ae" "United Arab Emirates") ("af" "Afghanistan") ("ag" "Antigua and Barbuda") ("ai" "Anguilla") ("al" "Albania") ("am" "Armenia") ("an" "Netherlands Antilles") ("ao" "Angola") ("aq" "Antarctica") ("ar" "Argentina" "Argentine Republic") ("as" "American Samoa") ("at" "Austria" "The Republic of %s") ("au" "Australia") ("aw" "Aruba") ("ax" "Aland Islands") ("az" "Azerbaijan") ("ba" "Bosnia-Herzegovina") ("bb" "Barbados") ("bd" "Bangladesh") ("be" "Belgium" "The Kingdom of %s") ("bf" "Burkina Faso") ("bg" "Bulgaria") ("bh" "Bahrain") ("bi" "Burundi") ("bj" "Benin") ("bl" "Saint Barthelemy") ("bm" "Bermuda") ("bn" "Brunei Darussalam") ("bo" "Bolivia" "Republic of %s") ("br" "Brazil" "The Federative Republic of %s") ("bs" "Bahamas") ("bt" "Bhutan") ("bv" "Bouvet Island") ("bw" "Botswana") ("by" "Belarus") ("bz" "Belize") ("ca" "Canada") ("cc" "Cocos (Keeling) Islands") ("cd" "Congo" "The Democratic Republic of the %s") ("cf" "Central African Republic") ("cg" "Congo") ("ch" "Switzerland" "The Swiss Confederation") ("ci" "Ivory Coast") ("ck" "Cook Islands") ("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") ("cu" "Cuba") ("cv" "Cape Verde") ("cx" "Christmas Island") ("cy" "Cyprus") ("cz" "Czech Republic") ("de" "Germany") ("dj" "Djibouti") ("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") ("eh" "Western Sahara") ("er" "Eritrea") ("es" "Spain" "The Kingdom of %s") ("et" "Ethiopia") ("eu" "European Union") ("fi" "Finland" "The Republic of %s") ("fj" "Fiji") ("fk" "Falkland Islands (Malvinas)") ("fm" "Micronesia" "Federated States of %s") ("fo" "Faroe Islands") ("fr" "France") ("ga" "Gabon") ("gb" "United Kingdom") ("gd" "Grenada") ("ge" "Georgia") ("gf" "French Guiana") ("gg" "Guernsey") ("gh" "Ghana") ("gi" "Gibraltar") ("gl" "Greenland") ("gm" "Gambia") ("gn" "Guinea") ("gp" "Guadeloupe (Fr.)") ("gq" "Equatorial Guinea") ("gr" "Greece" "The Hellenic Republic (%s)") ("gs" "South Georgia and The South Sandwich Islands") ("gt" "Guatemala") ("gu" "Guam (U.S.)") ("gw" "Guinea-Bissau") ("gy" "Guyana") ("hk" "Hong Kong") ("hm" "Heard Island and McDonald Islands") ("hn" "Honduras") ("hr" "Croatia" "Croatia (Hrvatska)") ("ht" "Haiti") ("hu" "Hungary" "The Hungarian Republic") ("id" "Indonesia") ("ie" "Ireland") ("il" "Israel" "The State of %s") ("im" "Isle of Man" "The %s") ("in" "India" "The Republic of %s") ("io" "British Indian Ocean Territory") ("iq" "Iraq") ("ir" "Iran" "Islamic Republic of %s") ("is" "Iceland" "The Republic of %s") ("it" "Italy" "The Italian Republic") ("je" "Jersey") ("jm" "Jamaica") ("jo" "Jordan") ("jp" "Japan") ("ke" "Kenya") ("kg" "Kyrgyzstan") ("kh" "Cambodia") ("ki" "Kiribati") ("km" "Comoros") ("kn" "Saint Kitts and Nevis") ("kp" "Korea (North)" "Democratic People's Republic of Korea") ("kr" "Korea (South)" "Republic of Korea") ("kw" "Kuwait") ("ky" "Cayman Islands") ("kz" "Kazakhstan") ("la" "Lao People's Democratic Republic") ("lb" "Lebanon") ("lc" "Saint Lucia") ("li" "Liechtenstein") ("lk" "Sri Lanka" "The Democratic Socialist Republic of %s") ("lr" "Liberia") ("ls" "Lesotho") ("lt" "Lithuania") ("lu" "Luxembourg") ("lv" "Latvia") ("ly" "Libyan Arab Jamahiriya") ("ma" "Morocco") ("mc" "Monaco") ("md" "Moldova" "The Republic of %s") ("me" "Montenegro") ("mf" "Saint Martin (French part)") ("mg" "Madagascar") ("mh" "Marshall Islands") ("mk" "Macedonia" "The Former Yugoslav Republic of %s") ("ml" "Mali") ("mm" "Myanmar") ("mn" "Mongolia") ("mo" "Macao") ("mp" "Northern Mariana Islands") ("mq" "Martinique") ("mr" "Mauritania") ("ms" "Montserrat") ("mt" "Malta") ("mu" "Mauritius") ("mv" "Maldives") ("mw" "Malawi") ("mx" "Mexico" "The United Mexican States") ("my" "Malaysia") ("mz" "Mozambique") ("na" "Namibia") ("nc" "New Caledonia (Fr.)") ("ne" "Niger") ("nf" "Norfolk Island") ("ng" "Nigeria") ("ni" "Nicaragua" "The Republic of %s") ("nl" "Netherlands" "The Kingdom of the %s") ("no" "Norway" "The Kingdom of %s") ("np" "Nepal") ("nr" "Nauru") ("nu" "Niue") ("nz" "New Zealand") ("om" "Oman") ("pa" "Panama") ("pe" "Peru") ("pf" "French Polynesia") ("pg" "Papua New Guinea") ("ph" "Philippines" "The Republic of the %s") ("pk" "Pakistan") ("pl" "Poland") ("pm" "Saint Pierre and Miquelon") ("pn" "Pitcairn") ("pr" "Puerto Rico (U.S.)") ("ps" "Palestinian Territory, Occupied") ("pt" "Portugal" "The Portuguese Republic") ("pw" "Palau") ("py" "Paraguay") ("qa" "Qatar") ("re" "Reunion (Fr.)") ("ro" "Romania") ("rs" "Serbia") ("ru" "Russia" "Russian Federation") ("rw" "Rwanda") ("sa" "Saudi Arabia") ("sb" "Solomon Islands") ("sc" "Seychelles") ("sd" "Sudan") ("se" "Sweden" "The Kingdom of %s") ("sg" "Singapore" "The Republic of %s") ("sh" "Saint Helena") ("si" "Slovenia") ("sj" "Svalbard and Jan Mayen") ("sk" "Slovakia" "The Slovak Republic") ("sl" "Sierra Leone") ("sm" "San Marino") ("sn" "Senegal") ("so" "Somalia") ("sr" "Suriname") ("st" "Sao Tome and Principe") ("su" "U.S.S.R." "The Union of Soviet Socialist Republics") ("sv" "El Salvador") ("sy" "Syrian Arab Republic") ("sz" "Swaziland") ("tc" "Turks and Caicos Islands") ("td" "Chad") ("tf" "French Southern Territories") ("tg" "Togo") ("th" "Thailand" "The Kingdom of %s") ("tj" "Tajikistan") ("tk" "Tokelau") ("tl" "East Timor") ("tm" "Turkmenistan") ("tn" "Tunisia") ("to" "Tonga") ("tp" "East Timor") ("tr" "Turkey" "The Republic of %s") ("tt" "Trinidad and Tobago") ("tv" "Tuvalu") ("tw" "Taiwan" "%s, Province of China") ("tz" "Tanzania" "United Republic of %s") ("ua" "Ukraine") ("ug" "Uganda") ("uk" "United Kingdom" "The %s of Great Britain and Northern Ireland") ("um" "United States Minor Outlying Islands") ("us" "United States" "The %s of America") ("uy" "Uruguay" "The Eastern Republic of %s") ("uz" "Uzbekistan") ("va" "Holy See (Vatican City State)") ("vc" "Saint Vincent and the Grenadines") ("ve" "Venezuela" "The Republic of %s") ("vg" "Virgin Islands, British") ("vi" "Virgin Islands, U.S.") ("vn" "Vietnam") ("vu" "Vanuatu") ("wf" "Wallis and Futuna") ("ws" "Samoa") ("ye" "Yemen") ("yt" "Mayotte") ("yu" "Yugoslavia" "Yugoslavia, AKA Serbia-Montenegro") ("za" "South Africa" "The Republic of %s") ("zm" "Zambia") ("zw" "Zimbabwe" "Republic of %s") ("aero" t "Air Transport Industry") ("asia" t "Pan-Asia and Asia Pacific community") ("biz" t "Businesses") ("cat" t "Catalan language and culture") ("com" t "Commercial") ("coop" t "Cooperative Associations") ("info" t "Info") ("jobs" t "Employment") ("mobi" t "Mobile products") ("museum" t "Museums") ("name" t "Individuals") ("net" t "Network") ("org" t "Non-profit Organization") ("pro" t "Credentialed professionals") ("tel" t "Contact data") ("travel" t "Travel industry") ("gov" t "United States Government") ("edu" t "Educational") ("mil" t "United States Military") ("int" t "International Treaties") ("uucp" t "Unix to Unix CoPy") ("arpa" t "Advanced Research Projects Agency (U.S. DoD)"))] 3)) #@62 Convert mail domain DOMAIN to the country it corresponds to. (defalias 'what-domain #[(domain) "\302\227 \"\211\204 \303\304!\210\305\306\307!\226\310N#\207" [domain mail-extr-all-top-level-domains intern-soft error "No such domain" message "%s: %s" symbol-name domain-name] 5 (#$ . 32885) (let ((completion-ignore-case t)) (list (completing-read "Domain: " mail-extr-all-top-level-domains nil t)))]) (provide 'mail-extr)