;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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307%\210\310\311\312\313\314DD\315\316\317\306\303&\210\310\320\312\313\321DD\322\316\323\306\303&\207" [require sendmail custom-declare-group mailalias nil "Expanding mail aliases." :group mail custom-declare-variable mail-passwd-files funcall function #[0 "\300\207" [("/etc/passwd")] 1] "List of files from which to determine valid user names." :type (repeat string) mail-passwd-command #[0 "\300\207" [nil] 1] "Shell command to retrieve text to add to `/etc/passwd', or nil." (choice string (const nil))] 8) #@85 Alist of mail address directory entries. When t this still needs to be initialized. (defvar mail-directory-names t (#$ . 968)) (defvar mail-address-field-regexp "^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):") (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\210\300\315\302\303\316DD\317\306\320\310\311&\210\300\321\302\303\322DD\323\306\324\310\311&\210\325\321\326\327#\210\300\330\302\303\331DD\332\306\333\310\311&\210\300\334\302\303\335DD\336\306\337\310\311&\210\300\340\302\303\341DD\342\306\343\310\311&\210\312\340\313\314#\210\300\344\302\303\345DD\346\306\347\310\311&\210\312\344\313\314#\210\300\350\302\303\351DD\352\306\353\310\311&\210\312\350\313\314#\207" [custom-declare-variable mail-complete-alist funcall function #[0 "\300\207" [(("^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):" mail-get-names pattern) ("Newsgroups:" if (boundp 'gnus-active-hashtb) gnus-active-hashtb (if (boundp news-group-article-assoc) news-group-article-assoc)) ("Followup-To:" mail-sentto-newsgroups))] 1] "Alist of header field and expression to return alist for completion.\nThe expression may reference the variable `pattern'\nwhich will hold the string being completed.\nIf not on matching header, `mail-complete-function' gets called instead." :type alist :group mailalias put risky-local-variable t mail-complete-style #[0 "\300\207" [angles] 1] "Specifies how \\[mail-complete] formats the full name when it completes.\nIf nil, they contain just the return address like:\n king@grassland.com\nIf `parens', they look like:\n king@grassland.com (Elvis Parsley)\nIf `angles', they look like:\n Elvis Parsley " (choice (const angles) (const parens) (const nil)) mail-complete-function #[0 "\300\207" [ispell-complete-word] 1] "Function to call when completing outside `mail-complete-alist'-header." (choice function (const nil)) make-obsolete-variable completion-at-point-functions "24.1" mail-directory-function #[0 "\300\207" [nil] 1] "Function to get completions from directory service or nil for none.\nSee `mail-directory-requery'." (choice function (const nil)) mail-directory-requery #[0 "\300\207" [nil] 1] "When non-nil call `mail-directory-function' for each completion.\nIn that case, one argument gets passed to the function, the partial string\nentered so far." boolean mail-directory-process #[0 "\300\207" [nil] 1] "Shell command to get the list of names from a mail directory.\nThis value is used when the value of `mail-directory-function'\nis `mail-directory-process'. The value should be a list\nof the form (COMMAND ARG ...), where each of the list elements\nis evaluated. COMMAND should evaluate to a string. When\n`mail-directory-requery' is non-nil, during evaluation of these\nelements, the variable `pattern' contains the partial input being\ncompleted. `pattern' is nil when `mail-directory-requery' is nil.\n\nThe value might look like this:\n\n (remote-shell-program \"HOST\" \"-nl\" \"USER\" \"COMMAND\")\n\nor like this:\n\n (remote-shell-program \"HOST\" \"-n\" \"COMMAND \\='^\" pattern \"\\='\")" sexp mail-directory-stream #[0 "\300\207" [nil] 1] "List of (HOST SERVICE) for stream connection to mail directory." (choice (const nil) (list (string :tag "Host name or ip address") (choice (integer :tag "Service port number") (string :tag "Service name")) (plist :inline t :tag "Additional open-network-stream parameters"))) mail-directory-parser #[0 "\300\207" [nil] 1] "How to interpret the output of `mail-directory-function'.\nThree types of values are possible:\n\n - nil means to gather each line as one name\n - regexp means first \\(grouping\\) in successive matches is name\n - function called at beginning of buffer that returns an alist of names" (choice (const nil) regexp function)] 8) #@246 Alist of local users, aliases and directory entries as available. Elements have the form (MAILNAME) or (MAILNAME . FULLNAME). If the value means t, it means the real value should be calculated for the next use. This is used in `mail-complete'. (defvar mail-names t (#$ . 4789)) #@66 Alist of local users. When t this still needs to be initialized. (defvar mail-local-names t (#$ . 5074)) #@358 Expand all mail aliases in suitable header fields found between BEG and END. If interactive, expand in header fields. Suitable header fields are `To', `From', `Cc' and `Bcc', `Reply-To', and their `Resent-' variants. Optional second arg EXCLUDE may be a regular expression defining text to be removed from alias expansions. (fn BEG END &optional EXCLUDE) (defalias 'expand-mail-aliases #[770 "\303 \210\304=\203\305\306 \210\212b\210\307 \305\223\262\305\304\310\n\304#)\203\357\311\305w\210`\305\211\211\211\211\310\312 \313#\210\314 \210\315\305x\210\316 \262b\210`W\203\346`\262\211\203c@AZV\203c\211A\262\202N\310\317\304#\203x\320\224\262`Z\262\202\200\321!\262\320\262\322\"\305\323\"\204\333\323\"A\211\262\203\333ZBB\262b\210\211c\210\203\313\324 \325Q\316 b\210\310\304#\203\307\326\327!\210\202\270\211b\266``Z\\|\210b\210\202\341b\210u\210\266\202E\305\211\223\266\202\305\211\223*\207" [mail-aliases case-fold-search mail-address-field-regexp sendmail-sync-aliases t nil build-mail-aliases make-marker re-search-forward " " "^[^ ]" move beginning-of-line " \n" point-marker "[ ]*[\n,][ ]*" 0 marker-position buffer-substring-no-properties assoc "\\b\\(" "\\)\\b" replace-match ""] 17 (#$ . 5186) (byte-code "\212eb\300 )D\207" [mail-header-end] 2)]) #@161 Read mail aliases from personal aliases file and set `mail-aliases'. By default, this is the file specified by `mail-personal-alias-file'. (fn &optional FILE) (defalias 'build-mail-aliases #[256 "\302\206!\262\303\304\305!r\211q\210\306\307\310\311\312!\313\"\314$\216\203\315\315!\2038r\315!q\210\316ed\")c\210\202[\317!\203E\320!\210\202[\317\302\321\"\211\262!\203X\320!\210\202[\303\262eb\210\322\323\303\324#\203t`\314Z\303\210\211`|\266\202^db\210h\325=\204\200\326 \210eb\210m\204\244\303\210h\327U\203\236\330\331!\210\330\332!\210\333c\210\202\203\332u\210\202\203eb\210\334\335\303\324#\203\307\334\336!\210\316\307\224\307\225\"\262\337 \210\323c\210\337 \210\202\303\262\202eb\210\334\340\303\324#\203\373\341\314!\342\303w\210`\303\211\210\316`\"\262\211\343\232\204\366\344\324#\210\266\202\320 *\207" [mail-personal-alias-file mail-aliases expand-file-name nil generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 get-file-buffer buffer-substring-no-properties file-exists-p insert-file-contents "~/" search-forward "# " t 10 newline 92 delete-char -1 1 32 re-search-forward "^source[ ]+" "\\S-+" beginning-of-line "^\\(a\\|alias\\|g\\|group\\)[ ]+\\([^ \n]+\\)" match-string " " "" define-mail-alias] 9 (#$ . 6539) (byte-code "\301\302\303\"\304\305$C\207" [mail-personal-alias-file read-file-name format "Read mail alias file (default %s): " nil t] 5)]) #@408 Define NAME as a mail alias that translates to DEFINITION. This means that sending a message to NAME will actually send to DEFINITION. Normally, the addresses in DEFINITION must be separated by commas. If FROM-MAILRC-FILE is non-nil, then addresses in DEFINITION can be separated by spaces; an address can contain spaces if it is quoted with double-quotes. (fn NAME DEFINITION &optional FROM-MAILRC-FILE) (defalias 'define-mail-alias #[770 "\211\204\303 \210\304=\203\305\306 !\203\307 \210\310\311\"\203&\312\313\225\"\262\310\314\"\2035\312\313\211\224#\262G\211\313V\205>\313\305\211\211\211\203\203\251H\315=\203iT\262\310\316 #\205d\317\225\262\202r\310\320 #\262\312#\262\205\213\313\225U?\205\213\313\225\262\310\321\"\203 \310\322\323\317\"\"\203 \324\321\325#\262\202 \310\326 #\232\203\314\323\317 \"\262\313\225U?\205\307\313\225\262\202 \310\327 #\262\312#\262\205\356\313\225U?\205\356\313\225\262\310\321\"\203 \310\322\323\317\"\"\203 \324\321\325#\262B\262\202B\330\331\237\332#\262\333 \"\262\211\203+\211\241\2026BB\304\211\207" [mail-aliases mail-personal-alias-file mail-names sendmail-sync-aliases t nil file-exists-p build-mail-aliases string-match "\\`[ \n,]+" substring 0 "[ \n,]+\\'" 34 "[^\\]\\(\\([\\][\\]\\)*\\)\"[ ,]*" 1 "[ ,]+" "\\(.+?\\)[ ]*\\(<.*>\\)" "[^- !#$%&'*+/0-9=?A-Za-z^_`{|}~]" match-string replace-regexp-in-string "\"\\1\" \\2" "[ ,]*\\(\"\\(?:[^\"]\\|[^\\]\\(?:[\\][\\]\\)*\"\\)*\"[ ]*<[-.!#$%&'*+/0-9=?A-Za-z^_`{|}~@]+>\\)[ ,]*" "[ \n,]*,[ \n]*" mapconcat identity ", " assoc] 14 (#$ . 8041) "sDefine mail alias: \nsDefine %s as mail alias for: "]) #@87 Compute completion data for mail aliases. For use on `completion-at-point-functions'. (defalias 'mail-completion-at-point-function #[0 "\303 \210\304=\203\305\306 !\203\307 \210\n\305C\310\311 W\205i\212\312\313\305\304#\203F\203F\314@@!\203?\211@A\240\210\305\262\202'A\262\202'\211\242)\205i`\212\315\305x\210`)\316\317\320\321\322\323!\324\"\325\326%!E\266\203\207" [mail-aliases mail-personal-alias-file mail-complete-alist sendmail-sync-aliases t nil file-exists-p build-mail-aliases 0 mail-header-end re-search-backward "^[^ ]" looking-at "^ <,:" completion-table-dynamic make-byte-code 257 "\211\302\300\242!)\207" vconcat vector [pattern eval] 3 "\n\n(fn PREFIX)"] 11 (#$ . 9770)]) #@225 Perform completion on header field or word preceding point. Completable headers are according to `mail-complete-alist'. If none matches current header, calls `mail-complete-function' and passes prefix ARG if any. (fn ARG) (defalias 'mail-complete #[257 "\303 \210\304=\203\305\306 !\203\307 \210\310 \211\203!\311\312\"\202$\n!\207" [mail-aliases mail-personal-alias-file mail-complete-function sendmail-sync-aliases t nil file-exists-p build-mail-aliases mail-completion-at-point-function apply completion-in-region] 5 (#$ . 10494) "P"]) (make-obsolete 'mail-complete 'mail-completion-at-point-function "24.1") #@185 Build new completion table that expands aliases. Completes like TABLE except that if the completion is a valid alias, it expands it to its full `mail-complete-style' form. (fn TABLE) (defalias 'mail-completion-expand #[257 "\300\301\302\303\304!\305\"\306\307%\207" [make-byte-code 771 "\211\302=\203E\303\300#\300<\205!\211\205!\304;\203\202\300\"\211\204)\202D \305\267\202C\211@\306A\307R\202D\211A\310@\311R\202D\207\312\300$\207" vconcat vector [mail-complete-style nil try-completion assoc #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (parens 47 angles 57)) " (" ")" " <" ">" complete-with-action] 9 "\n\n(fn STRING PRED ACTION)"] 7 (#$ . 11125)]) #@211 Fetch local users and global mail addresses for completion. Consults `/etc/passwd' and a directory service if one is set up via `mail-directory-function'. PREFIX is the string we want to complete. (fn PREFIX) (defalias 'mail-get-names #[257 "\306=\203fr\307\310!q\210 \211\203!\311@\312\211\211\306%\210\211A\262\202 \210\n\2030\313 \312\306\312\f\n&\210eb\210\312m\204a\314\315!\203Z\316\317!\320\321\316\322!!!B\211\235\203U\210\202Y\211B\210\323\322!\210\2025\324p!\210) \306=\204s\306=\203\300\312\203\212\306=\203\212\325\205\207!\262\204\222\211\211\204\234 \306=\203\277\326\327:\205\251\330\331\":\205\257\206\273:\205\273#\332\"\210\333 !\207" [mail-local-names mail-passwd-files mail-passwd-command shell-file-name shell-command-switch mail-names t generate-new-buffer " passwd" insert-file-contents nil call-process looking-at "\\+?\\([^:@\n+]+\\):[^:\n]*:\\([^\n:]*\\):" match-string 1 user-full-name string-to-number 2 beginning-of-line kill-buffer mail-directory sort append mapcar #[257 "\211@C\207" #1=[] 2 "\n\n(fn A)"] #[514 "@\227@\227\231\207" #1# 4 "\n\n(fn A B)"] mail-completion-expand mail-directory-names mail-directory-function mail-directory-requery mail-aliases] 8 (#$ . 11852)]) #@263 Use mail-directory facility to get user names matching PREFIX. If PREFIX is nil, get all the defined user names. This function calls `mail-directory-function' to query the directory, then uses `mail-directory-parser' to parse the output it returns. (fn PREFIX) (defalias 'mail-directory #[257 "\302\303!\210r\304\305!q\210!\210eb\210\306 ;\203)\307 \306\310#\203N\311\312!B\262\202 \2034 \262\202Nm\204N`\306y\210n\203E`S\202F`{B\262\2024\313p!\210\302\314!\210\211\262)\207" [mail-directory-function mail-directory-parser message "Querying directory..." generate-new-buffer " *mail-directory*" nil re-search-forward t match-string 1 kill-buffer "Querying directory...done"] 6 (#$ . 13126)]) #@94 Run a shell command to output names in directory. See `mail-directory-process'. (fn PREFIX) (defalias 'mail-directory-process #[257 ":\205\211\302\303\304@!\305\306\305\307\304A\"&)\207" [mail-directory-process pattern apply call-process eval nil t mapcar] 10 (#$ . 13844)]) #@89 Open a stream to retrieve names in directory. See `mail-directory-stream'. (fn PREFIX) (defalias 'mail-directory-stream #[257 "\303\304\305\306\307p\n$\310\"\210 ?\205\311\312!\210\202*\207" [pattern mailalias-done mail-directory-stream nil set-process-sentinel apply open-network-stream "mailalias" #[514 "\301\211\207" [mailalias-done t] 4 "\n\n(fn X Y)"] sit-for 0.1] 7 (#$ . 14133)]) #@65 Return all entries from Newsgroups: header as completion alist. (defalias 'mail-sentto-newsgroups #[0 "\212\300\301\302\"\205&`\303\304\303x\305W\203$`{CB\262\306\303x\210`\262\202\n\262)\207" [mail-position-on-field "newsgroups" t nil "^:, \n" 0 ", \n"] 4 (#$ . 14536)]) (provide 'mailalias)