;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@63 US-ASCII control characters excluding CR, LF and white space. (defvar ietf-drums-no-ws-ctl-token "- \f-" (#$ . 408)) #@42 US-ASCII characters excluding CR and LF. (defvar ietf-drums-text-token "- \f-" (#$ . 536)) #@21 Special characters. (defvar ietf-drums-specials-token "()<>[]:;@\\,.\"" (#$ . 637)) #@18 Quote character. (defvar ietf-drums-quote-token "\\" (#$ . 727)) #@14 White space. (defvar ietf-drums-wsp-token " " (#$ . 798)) #@22 Folding white space. (defvar ietf-drums-fws-regexp (concat "[" ietf-drums-wsp-token "]*\n[" ietf-drums-wsp-token "]+") (#$ . 863)) #@16 Textual token. (defvar ietf-drums-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~" (#$ . 1000)) #@36 Textual token including full stop. (defvar ietf-drums-dot-atext-token "-^a-zA-Z0-9!#$%&'*+/=?_`{|}~." (#$ . 1096)) #@97 Non-white-space control characters, plus the rest of ASCII excluding backslash and doublequote. (defvar ietf-drums-qtext-token (concat ietf-drums-no-ws-ctl-token "!#-[]-") (#$ . 1217)) #@12 Tspecials. (defvar ietf-drums-tspecials "][()<>@,;:\\\"/?=" (#$ . 1409)) (defvar ietf-drums-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\312#\210\302\314\315#\210\302\316\315#\210\302\317\315#\210\211\207" [emacs-lisp-mode-syntax-table copy-syntax-table modify-syntax-entry 92 "/" 60 "(" 62 ")" 64 "w" 47 42 "_" 59 39] 5)) #@56 Translate TOKEN into a list of characters. (fn TOKEN) (defalias 'ietf-drums-token-to-list #[257 "\300\301\211\211\211GW\203rH\262T\262\302=\203.\203&\303\262\202B\262\202\211\203MX\203G\304\305\"B\262T\262\2022\301\262\202GU\203`\304\305\"B\262\202\203l\304\305\"B\262\262\202\237\207" [0 nil 45 t make-char ascii] 9 (#$ . 1809)]) #@15 (fn STRING) (defalias 'ietf-drums-init #[257 "\301!\210\211c\210\302 \210eb\207" [ietf-drums-syntax-table set-syntax-table ietf-drums-unfold-fws] 3 (#$ . 2200)]) (put 'ietf-drums-init 'byte-optimizer 'byte-compile-inline-expand) #@43 Remove comments from STRING. (fn STRING) (defalias 'ietf-drums-remove-comments #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312\313!\210\211c\210\314 \210eb\266m\204~\312f\262\211\315\267\202x\3161<\317\320!0\202?\210db\210\202#`\3211q\322 p\303\304\323\306\307\"\324\"\311$\216\313\325!!\210\326\327\330\"\210\317\320!\210`)\266\2020\202s\210d|\210\202#\320u\210\202#\331 \262*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil set-syntax-table ietf-drums-unfold-fws #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 49 40 67)) (error) forward-sexp 1 (error) syntax-table "r\301q\210\302\300!)\207" [set-syntax-table] copy-syntax-table modify-syntax-entry 34 "w" buffer-string] 13 (#$ . 2438)]) #@45 Remove whitespace from STRING. (fn STRING) (defalias 'ietf-drums-remove-whitespace #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266\314m\204L\314f\262\211\315\267\202F\316\317!\210\202#\316\317!\210\202#\320\317!\210\202#\317u\210\202#\321 \262*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 49 40 56 32 63 9 63 10 63 13 63)) forward-sexp 1 delete-char buffer-string] 8 (#$ . 3323)]) #@50 Return the first comment in STRING. (fn STRING) (defalias 'ietf-drums-get-comment #[257 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266\314\211m\204M\314f\262\211\315\267\202G\316\317!\210\202$`T\316\317!\210`S{\262\202$\317u\210\202$\266\202*\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 50 40 57)) forward-sexp 1] 8 (#$ . 4010)]) #@58 Remove comments and whitespace from STRING. (fn STRING) (defalias 'ietf-drums-strip #[257 "\300\301!!\207" [ietf-drums-remove-whitespace ietf-drums-remove-comments] 4 (#$ . 4641)]) #@47 Remove some garbage from STRING. (fn STRING) (defalias 'ietf-drums-remove-garbage #[257 "\300\301\"\203\302\303\211\224#\302\303\225\"P\262\202\207" [string-match "[][()<>@,;:\\\"/?=]+" substring 0] 5 (#$ . 4830)]) #@171 Remove comments, whitespace and garbage from STRING. STRING is assumed to be a string that is extracted from the Content-Transfer-Encoding header of a mail. (fn STRING) (defalias 'ietf-drums-strip-cte #[257 "\300\301\302!!\262!\207" [ietf-drums-remove-garbage ietf-drums-remove-whitespace ietf-drums-remove-comments] 6 (#$ . 5061)]) #@188 Parse STRING and return a MAILBOX / DISPLAY-NAME pair. If DECODE, the DISPLAY-NAME will have RFC2047 decoding performed (that's the "=?utf...q...=?") stuff. (fn STRING &optional DECODE) (defalias 'ietf-drums-parse-address #[513 "\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313\211\211\211\314!\210\211c\210\315 \210eb\266m\204\265\313f\262\316=\203Q\212\3171C\320\321!\210\3220\202E\210\313)\204Q\323\321!\210\313f\262\324=\204]\325=\203c\321u\210\202'\326\267\202\200\320\321!\210\202'`T\320\321!\210`S{B\262\202'\327\330 \331Q!\203\227`\320\321!\210`{B\262\202'\332=\203\257\333\334`T\320\321!\210`S{!!\262\202'\321u\210\202'\203\306\335\336\337!\340#\262\202\314\341!\262\204\351\211\205\367\342\343\"\205\367\335\336\237\344#\341!B\202\367\203\365\345!\202\366B\266\204*\207" [ietf-drums-syntax-table ietf-drums-atext-token generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil set-syntax-table ietf-drums-unfold-fws 34 (error) forward-sexp 1 t delete-char 32 9 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (40 105 34 112)) looking-at "[" "@]" 60 ietf-drums-remove-whitespace ietf-drums-remove-comments mapconcat identity reverse " " ietf-drums-get-comment string-match "@" "" rfc2047-decode-string] 12 (#$ . 5405)]) #@184 Parse STRING and return a list of MAILBOX / DISPLAY-NAME pairs. If RAWP, don't actually parse the addresses, but instead return a list of address strings. (fn STRING &optional RAWP) (defalias 'ietf-drums-parse-addresses #[513 "\205\251\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210\211c\210\313 \210eb\266`\314\211\211m\204~\314f\262\315\267\202x\3161C\317\320!0\202G\210\321\314w\210\202*\203U`{\202d\3221b\323`{!0\202d\210\314\262\211\203o\211B\262\320u\210`\262\202*\320u\210\202*\203\210`{\202\227\3241\225\323`{!0\202\227\210\314\262\211\203\242\211B\262\237\266\204*\262\207" [ietf-drums-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-syntax-table ietf-drums-unfold-fws nil #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (34 56 60 56 40 56 44 75)) (error) forward-sexp 1 "^," (error) ietf-drums-parse-address (error)] 10 (#$ . 6815)]) #@51 Unfold folding white space in the current buffer. (defalias 'ietf-drums-unfold-fws #[0 "eb\210\301\302\303#\203\304\305\303\211#\210\202eb\207" [ietf-drums-fws-regexp re-search-forward nil t replace-match " "] 4 (#$ . 7850)]) #@53 Return an Emacs time spec from STRING. (fn STRING) (defalias 'ietf-drums-parse-date #[257 "\300\301!!\207" [encode-time parse-time-string] 4 (#$ . 8087)]) #@53 Narrow to the header section in the current buffer. (defalias 'ietf-drums-narrow-to-header #[0 "eb\300\301\302\303#\203\304\224\202d}\210eb\207" [re-search-forward "^ ?$" nil 1 0] 5 (#$ . 8250)]) #@76 Quote string if it needs quoting to be displayed in a header. (fn STRING) (defalias 'ietf-drums-quote-string #[257 "\301\302\303Q\"\203\304\304Q\207\207" [ietf-drums-atext-token string-match "[^" "]" "\""] 5 (#$ . 8456)]) #@21 (fn NAME ADDRESS) (defalias 'ietf-drums-make-address #[514 "\203\f\300!\301\302R\207\207" [ietf-drums-quote-string " <" ">"] 6 (#$ . 8690)]) (provide 'ietf-drums)