;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Mon May 29 17:07:39 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/sendmail.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/sendmail.el' was compiled for Emacs 19")) #@241 *Specifies how "From:" fields look. If `nil', they contain just the return address like: king@grassland.com If `parens', they look like: king@grassland.com (Elvis Parsley) If `angles', they look like: Elvis Parsley  (defvar mail-from-style (quote angles) (#$ . -491)) #@170 Non-nil means insert BCC to self in messages to be sent. This is done when the message is initialized, so you can remove or alter the BCC field to override the default. (defvar mail-self-blind nil (#$ . 790)) #@126 Non-nil means when sending a message wait for and display errors. nil means let mailer mail back a message to report errors. (defvar mail-interactive nil (#$ . 1006)) #@70 Delete these headers from old message when it's inserted in a reply. (defvar mail-yank-ignored-headers "^via:\\|^mail-from:\\|^origin:\\|^status:\\|^remailed\\|^received:\\|^message-id:\\|^summary-line:\\|^to:\\|^subject:\\|^in-reply-to:\\|^return-path:" (#$ . 1179)) #@155 Function to call to send the current buffer as mail. The headers should be delimited by a line whose contents match the variable `mail-header-separator'. (defvar send-mail-function (quote sendmail-send-it) (#$ . 1454)) #@70 *Line used to separate headers from text in messages being composed. (defvar mail-header-separator "--text follows this line--" (#$ . -1679)) #@111 *Name of file to write all outgoing messages in, or nil for none. This can be an inbox file or an Rmail file. (defvar mail-archive-file-name nil (#$ . -1828)) #@68 *Address to insert as default Reply-to field of outgoing messages. (defvar mail-default-reply-to t (#$ . -1993)) #@299 *If non-nil, the name of a file to use instead of `/usr/lib/aliases'. This file defines aliases to be expanded by the mailer; this is a different feature from that of defining aliases in `.mailrc' to be expanded in Emacs. This variable has no effect unless your system uses sendmail as its mailer. (defvar mail-alias-file nil (#$ . -2113)) #@204 *If non-nil, the name of the user's personal mail alias file. This file typically should be in same format as the `.mailrc' file used by the `Mail' or `mailx' program. This file need not actually exist. (defvar mail-personal-alias-file "~/.mailrc" (#$ . -2460)) #@274 Alist of mail address aliases, or t meaning should be initialized from your mail aliases file. (The file's name is normally `~/.mailrc', but your MAILRC environment variable can override that name.) The alias definitions in the file have this form: alias ALIAS MEANING (defvar mail-aliases t (#$ . 2729)) #@74 The modification time of your mail alias file when it was last examined. (defvar mail-alias-modtime nil (#$ . 3044)) #@88 *Prefix insert on lines of yanked message being replied to. nil means use indentation. (defvar mail-yank-prefix nil (#$ . -3167)) #@117 *Number of spaces to insert at the beginning of each cited line. Used by `mail-yank-original' via `mail-yank-cite'. (defvar mail-indentation-spaces 3 (#$ . -3304)) #@352 Obsolete hook for modifying a citation just inserted in the mail buffer. Each hook function can find the citation between (point) and (mark t). And each hook function should leave point and mark around the citation text as modified. This is a normal hook, misnamed for historical reasons. It is semi-obsolete and mail agents should no longer use it. (defvar mail-yank-hooks nil (#$ . 3475)) #@313 *Hook for modifying a citation just inserted in the mail buffer. Each hook function can find the citation between (point) and (mark t). And each hook function should leave point and mark around the citation text as modified. If this hook is entirely empty (nil), a default action is taken instead of no action. (defvar mail-citation-hook nil (#$ . -3874)) (byte-code "! B! B‡" [boundp mail-abbrevs-loaded nil current-load-list mail-mode-map] 2) #@77 Read mail aliases from user's personal aliases file and set `mail-aliases'. (autoload (quote build-mail-aliases) "mailalias" '(#$ . 4345) nil) #@263 Expand all mail aliases in suitable header fields found between BEG and END. Suitable header fields are `To', `Cc' and `Bcc' and their `Resent-' variants. Optional second arg EXCLUDE may be a regular expression defining text to be removed from alias expansions. (autoload (quote expand-mail-aliases) "mailalias" '(#$ . 4495) nil) #@135 *Text inserted at end of mail buffer when a message is initialized. If t, it means to insert the contents of the file `~/.signature'. (defvar mail-signature nil (#$ . -4832)) (byte-code "! B‡" [boundp mail-reply-buffer nil current-load-list] 2) #@73 A list of actions to be performed upon successful sending of a message. (defvar mail-send-actions nil (#$ . 5093)) #@156 *A string containing header lines, to be inserted in outgoing messages. It is inserted before you edit the message, so you can edit or delete these lines. (defvar mail-default-headers nil (#$ . -5215)) #@223 *If non-nil, try to show RMAIL summary buffer after returning from mail. The functions \[mail-send-on-exit] or \[mail-dont-send] select the RMAIL summary buffer before returning, if it exists and this variable is non-nil. (defvar mail-bury-selects-summary t (#$ . -5424)) #@229 Set this non-nil if the system's mailer runs the header and body together. (This problem exists on Sunos 4 when sendmail is run in remote mode.) The value should be an expression to test whether the problem will actually occur. (defvar mail-mailer-swallows-blank-line (byte-code "\n\"-!-!Ȏq!eb #,-χ" [string-match "sparc-sun-sunos\\(\\'\\|[^5]\\)" system-configuration file-readable-p "/etc/sendmail.cf" get-buffer-create " *temp*" buffer ((kill-buffer buffer)) insert-file-contents nil case-fold-search re-search-forward "^OR\\>" t (looking-at "[ ]\\|[][!\"#$%&'()*+,-./0-9;<=>?@A-Z\\\\^_`a-z{|}~]+:")] 4) (#$ . 5703)) #@39 Syntax table used while in mail mode. (defvar mail-mode-syntax-table nil (#$ . 6360)) (byte-code "\n!#" [mail-mode-syntax-table copy-syntax-table text-mode-syntax-table modify-syntax-entry 37 ". "] 4) #@51 Additional expressions to highlight in Mail mode. (defvar mail-font-lock-keywords (byte-code "!QE˯" [("^To:" . font-lock-function-name-face) ("^B?CC:\\|^Reply-To:" . font-lock-keyword-face) ("^Subject:" . font-lock-comment-face) ("^Subject:\\s *\\(.+\\)" 1 font-lock-type-face) "^\\(" regexp-quote mail-header-separator "\\)$" 1 font-lock-comment-face ("^[ ]*\\sw*[>|}].*" . font-lock-reference-face) ("^\\(X-[A-Za-z0-9-]+\\|In-reply-to\\):.*" . font-lock-string-face)] 7) (#$ . 6580)) #@52 Normal hook run before sending mail, in Mail mode. (defvar mail-send-hook nil (#$ . 7088)) (defalias 'sendmail-synch-aliases #[nil "\n!8\f  ʼn)" [5 file-attributes mail-personal-alias-file modtime mail-alias-modtime t mail-aliases] 3]) (defalias 'mail-setup #[(to subject in-reply-to cc replybuffer actions) "=\n! =! \n \f ebcI`ӱd\"*L gc`ӱd\"*`ӱd\"+ӱcӱ! ӱ$$ӱ&ӱ`'=!c!''cdbn )b!!" [mail-default-reply-to t getenv "REPLYTO" sendmail-synch-aliases mail-aliases nil file-exists-p mail-personal-alias-file build-mail-aliases actions mail-send-actions replybuffer mail-reply-buffer "To: " to " " address-start fill-prefix "\n" fill-region-as-paragraph newline cc "CC: " in-reply-to 78 fill-column "In-reply-to: " "Subject: " subject "" mail-default-headers "Reply-to: " mail-self-blind "BCC: " user-login-name mail-archive-file-name "FCC: " mail-header-separator mail-signature "~/.signature" "\n\n-- \n" insert-file-contents set-buffer-modified-p run-hooks mail-setup-hook] 3]) #@660 Major mode for editing mail to be sent. Like Text Mode but with these additional commands: C-c C-s mail-send (send the message) C-c C-c mail-send-and-exit C-c C-f move to a header field (and create it if there isn't): C-c C-f C-t move to To: C-c C-f C-s move to Subject: C-c C-f C-c move to CC: C-c C-f C-b move to BCC: C-c C-f C-f move to FCC: C-c C-t mail-text (move to beginning of message text). C-c C-w mail-signature (insert `~/.signature' file). C-c C-y mail-yank-original (insert current message, in Rmail). C-c C-q mail-fill-yanked-message (fill what was yanked). C-c C-v mail-sent-via (add a Sent-via field for each To or CC). (defalias 'mail-mode #[nil " !!!! \n\f!!!!Q!Q\"" [kill-all-local-variables make-local-variable mail-reply-buffer nil mail-send-actions set-syntax-table mail-mode-syntax-table use-local-map mail-mode-map text-mode-abbrev-table local-abbrev-table mail-mode major-mode "Mail" mode-name t buffer-offer-save font-lock-defaults (mail-font-lock-keywords t) paragraph-separate paragraph-start regexp-quote mail-header-separator "$\\|[ ]*[-_][-_][-_]+$\\|" run-hooks text-mode-hook mail-mode-hook] 3 (#$ . 8290) nil]) (byte-code "] \n##############!B#######!B########@#" [mail-mode-map make-sparse-keymap text-mode-map define-key "?" describe-mode "" mail-to "" mail-bcc "" mail-fcc "" mail-cc "" mail-subject "" mail-reply-to "" mail-text "" mail-yank-original "" mail-fill-yanked-message "" mail-signature "" mail-sent-via "" mail-send-and-exit "" mail-send [menu-bar mail] "Mail" [menu-bar mail fill] ("Fill Citation" . mail-fill-yanked-message) [menu-bar mail yank] ("Cite Original" . mail-yank-original) [menu-bar mail signature] ("Insert Signature" . mail-signature) [menu-bar mail cancel] ("Cancel" . mail-dont-send) [menu-bar mail send-stay] ("Send, Keep Editing" . mail-send) [menu-bar mail send] ("Send Message" . mail-send-and-exit) [menu-bar headers] "Headers" "Move to Header" [menu-bar headers reply-to] ("Reply-To" . mail-reply-to) [menu-bar headers sent-via] ("Sent Via" . mail-sent-via) [menu-bar headers text] ("Text" . mail-text) [menu-bar headers bcc] ("Bcc" . mail-bcc) [menu-bar headers fcc] ("Fcc" . mail-fcc) [menu-bar headers cc] ("Cc" . mail-cc) [menu-bar headers subject] ("Subject" . mail-subject) [menu-bar headers to] ("To" . mail-to)] 6) #@118 Send message like `mail-send', then, if no errors, exit from mail buffer. Prefix arg means don't delete this window. (defalias 'mail-send-and-exit #[(arg) " \n!" [mail-send mail-bury arg] 2 (#$ . 10871) "P"]) #@90 Don't send the message you have been editing. Prefix arg means don't delete this window. (defalias 'mail-dont-send #[(arg) " !" [mail-bury arg] 2 (#$ . 11090) "P"]) #@24 Bury this mail buffer. (defalias 'mail-bury #[(arg) "p!p!!& A& \"& !ʉ \f j j \"!q=\fg!gg!g!?g )\f { ! !*)" [other-buffer newbuf bury-buffer fboundp frame-parameters dedicated delq selected-frame visible-frame-list delete-frame nil summary-buffer rmail-flag arg one-window-p window-buffer next-window selected-window not major-mode rmail-mode mail-bury-selects-summary boundp rmail-summary-buffer buffer-name get-buffer-window switch-to-buffer delete-window] 4 (#$ . 11263)]) #@220 Send the message in the current buffer. If `mail-interactive' is non-nil, wait for success indication or error messages, and inform user. Otherwise any failure is reported in a message back to the user from the mailer. (defalias 'mail-send #[nil "\n! !D!! \n4͏\nA\n&!?D!!" [buffer-file-name y-or-n-p "Send buffer contents as mail message? " buffer-modified-p "Message already sent; resend? " run-hooks mail-send-hook message "Sending..." send-mail-function mail-send-actions nil (byte-code " @@ @A\"" [apply mail-send-actions] 3) ((error)) "Sending...done" set-buffer-modified-p delete-auto-save-file-if-necessary t] 4 (#$ . 11832) nil]) (defalias 'sendmail-send-it #[nil "\n! !ʼnp \n ̎\nq !dbhU9ceb!Q!!!  `e\"eb#z`Wz!c ebeb#!eb!#``)} \")eb#!eb# ) +,=+),=)+,)Ա*Tb5! , q ))ed!=:>  D>S>PC?[@cA%\" qebЁB#ՁC!rD U?EFed{\")." [mail-interactive generate-new-buffer " sendmail errors" 0 " sendmail temp" nil mailbuf delimline resend-to-addresses case-fold-search tembuf errbuf ((byte-code " ! ! !" [kill-buffer tembuf bufferp errbuf] 2)) erase-buffer insert-buffer-substring 10 re-search-forward "^" regexp-quote mail-header-separator "\n" replace-match backward-char 1 point-marker sendmail-synch-aliases mail-aliases expand-mail-aliases "\n\n\n*" t "^FCC:" mail-do-fcc require mail-utils "^Resent-to:" append mail-parse-comma-list "^Subject:\\([ ]*\n\\)+\\b" "" "^From:" user-login-name login user-full-name fullname mail-from-style angles "From: " " <" ">\n" parens " (" ")\n" eval mail-mailer-swallows-blank-line newline apply call-process-region boundp sendmail-program "/usr/lib/sendmail" "-oi" "-f" mail-alias-file "-oA" ("-oem" "-odb") ("-t") "\n\n* *" "; " buffer-size error "Sending...failed to %s"] 10]) (defalias 'mail-file-babyl-p #[(file) "!q $!*" [((kill-buffer " mail-temp")) get-buffer-create " mail-temp" erase-buffer insert-file-contents file nil 0 20 looking-at "BABYL OPTIONS:"] 5]) (defalias 'mail-do-fcc #[(header-end) "p ! eb\f#8`x`{ B Δy`|q !ձuv!!ӱdb!dbcb#ucp) n @!!p\"e#d$eby`)%!!q TdU?d'!*+,+  ~dd} ձ\"%$#ceb~!`d}!+!'e T}db\"#$#-d @!Z @!Z!q ձ\"%$#ced @$)deTd @$- A )!-" [nil current-time generate-new-buffer " rmail output" t case-fold-search tembuf time rmailbuf fcc-list re-search-forward "^FCC:[ ]*" header-end " " 0 1 erase-buffer "\nFrom " user-login-name " " current-time-string "\n" -1 require mail-utils mail-rfc822-time-zone insert-buffer-substring 10 2 search-forward -5 62 find-buffer-visiting buffer curbuf beg end beg2 buffer-size max ((byte-code "e}" [max nil] 2)) boundp rmail-current-message msg buffer-read-only rmail-maybe-set-message-counters "\f\n0, unseen,,\n*** EOOH ***\n" "From: " "Date: " mail-rfc822-date "\n" search-backward rmail-count-new-messages rmail-show-message file-exists-p mail-file-babyl-p get-buffer-create " mail-temp" write-region kill-buffer] 8]) #@61 Make a Sent-via header line from each To or CC header line. (defalias 'mail-sent-via #[nil "eb\nQ!y  eb #G` #5!9 b`{\")," [search-forward "\n" mail-header-separator -1 point-marker t nil to-line case-fold-search end re-search-forward "^\\(to\\|cc\\):" "^[^ \n]" backward-char 1 insert-before-markers "Sent-via:"] 5 (#$ . 15237) nil]) #@32 Move point to end of To-field. (defalias 'mail-to #[nil " !" [expand-abbrev mail-position-on-field "To"] 2 (#$ . 15625) nil]) #@37 Move point to end of Subject-field. (defalias 'mail-subject #[nil " !" [expand-abbrev mail-position-on-field "Subject"] 2 (#$ . 15762) nil]) #@60 Move point to end of CC-field. Create a CC field if none. (defalias 'mail-cc #[nil " \"!c" [expand-abbrev mail-position-on-field "cc" t "to" "\nCC: "] 3 (#$ . 15914) nil]) #@62 Move point to end of BCC-field. Create a BCC field if none. (defalias 'mail-bcc #[nil " \"!c" [expand-abbrev mail-position-on-field "bcc" t "to" "\nBCC: "] 3 (#$ . 16106) nil]) #@49 Add a new FCC field, with file name completion. (defalias 'mail-fcc #[(folder) " \"!" [expand-abbrev mail-position-on-field "fcc" t "to" "\nFCC: " folder] 3 (#$ . 16303) "FFolder carbon copy: "]) #@38 Move point to end of Reply-To-field. (defalias 'mail-reply-to #[nil " !" [expand-abbrev mail-position-on-field "Reply-To"] 2 (#$ . 16522) nil]) (defalias 'mail-position-on-field #[(field &optional soft) "eb!Q!ɔeb\n!Q #6#yxIH b\nбx*" [nil t case-fold-search end re-search-forward "^" regexp-quote mail-header-separator "$" 0 field ":" "^[^ ]" move "\n" soft ": \n"] 4]) #@42 Move point to beginning of message text. (defalias 'mail-text #[nil " eb Q!" [expand-abbrev search-forward "\n" mail-header-separator] 4 (#$ . 16953) nil]) #@95 Sign letter with contents of the file `~/.signature'. Prefix arg means put contents at point. (defalias 'mail-signature #[(atpoint) "dbx`d|c!!)" [atpoint " \n" nil "\n\n-- \n" insert-file-contents expand-file-name "~/.signature"] 3 (#$ . 17122) "P"]) #@96 Fill the paragraphs of a message yanked into this one. Numeric argument means justify as well. (defalias 'mail-fill-yanked-message #[(&optional justifyp) "eb\nQ#`d$)" [search-forward "\n" mail-header-separator nil t fill-individual-paragraphs justifyp] 5 (#$ . 17403) "P"]) #@316 Modify text just inserted from a message to be cited. The inserted text should be the region. When this function returns, the region is again around the modified text. Normally, indent each nonblank line `mail-indentation-spaces' spaces. However, if `mail-yank-prefix' is non-nil, insert that prefix on each line. (defalias 'mail-indent-citation #[nil "`!\"\f!#.b`!W-\fcy))" [start mail-yank-clear-headers mark t mail-yank-prefix indent-rigidly mail-indentation-spaces 1] 4 (#$ . 17697)]) #@351 Insert the message being replied to, if any (in rmail). Puts point before the text and mark after. Normally, indents each nonblank line ARG spaces (default 3). However, if `mail-yank-prefix' is non-nil, insert that prefix on each line. Just \[universal-argument] as argument means don't indent, insert no prefix, and don't delete any header fields. (defalias 'mail-yank-original #[(arg) "T`\"! :A b ! !#1!@\n=!@ )! `pbl?Sc)" [mail-reply-buffer start delete-windows-on t insert-buffer arg prefix-numeric-value mail-indentation-spaces mail-citation-hook run-hooks mail-yank-hooks mail-indent-citation mark mark-marker 10] 4 (#$ . 18225) "P"]) (defalias 'mail-yank-clear-headers #[(start end) "b #2`}b#)1y`!u`|))" [start search-forward "\n\n" end t case-fold-search re-search-forward mail-yank-ignored-headers nil 0 "\n[^ ]" -1] 4]) #@1640 Edit a message to be sent. Prefix arg means resume editing (don't erase). When this function returns, the buffer `*mail*' is selected. The value is t if the message was newly initialized; otherwise, nil. Optionally, the signature file `~/.signature' can be inserted at the end; see the variable `mail-signature'. \ While editing message, type \[mail-send-and-exit] to send the message and exit. Various special commands starting with C-c are available in sendmail mode to move to message header fields: \{mail-mode-map} If `mail-self-blind' is non-nil, a BCC to yourself is inserted when the message is initialized. If `mail-default-reply-to' is non-nil, it should be an address (a string); a Reply-to: field with that address is inserted. If `mail-archive-file-name' is non-nil, an FCC field with that file name is inserted. If `mail-setup-hook' is bound, its value is called with no arguments after the message is initialized. It can add more default fields. When calling from a program, the first argument if non-nil says not to erase the existing contents of the `*mail*' buffer. The second through fifth arguments, TO, SUBJECT, IN-REPLY-TO and CC, specify if non-nil the initial contents of those header fields. These arguments should not have final newlines. The sixth argument REPLYBUFFER is a buffer whose contents should be yanked if the user types C-c C-y. The seventh argument ACTIONS is a list of actions to take if/when the message is sent. Each action looks like (FUNCTION . ARGS); when the message is sent, we apply FUNCTION to ARGS. This is how Rmail arranges to mark messages `answered'. (defalias 'mail #[(&optional noerase to subject in-reply-to cc replybuffer actions) "!!!!! \n A +!A &\nQ!Q!\n)" [pop-to-buffer "*mail*" file-exists-p expand-file-name "~/" default-directory auto-save-mode auto-save-default mail-mode nil initialized noerase buffer-modified-p y-or-n-p "Unsent message being composed; erase it? " erase-buffer mail-setup to subject in-reply-to cc replybuffer actions t buffer-auto-save-file-name message "Auto save file for draft message exists; consider M-x mail-recover"] 7 (#$ . 19151) "P"]) #@65 Reread contents of current buffer from its last auto-save file. (defalias 'mail-recover #[nil " ‹ \")!)" [make-auto-save-file-name file-name ((byte-code "=\f!\f & \"!" [system-type vax-vms "*Directory*" buffer-disable-undo standard-output call-process "ls" nil "-l" file-name yes-or-no-p format "Recover auto save file %s? "] 8)) nil buffer-read-only erase-buffer insert-file-contents error "mail-recover cancelled"] 3 (#$ . 21385) nil]) #@65 Like `mail' command, but display mail buffer in another window. (defalias 'mail-other-window #[(&optional noerase to subject in-reply-to cc replybuffer sendactions) "!-\n \f &" [t nil same-window-regexps same-window-buffer-names special-display-regexps special-display-buffer-names pop-up-windows pop-to-buffer "*mail*" mail noerase to subject in-reply-to cc replybuffer sendactions] 8 (#$ . 21871) "P"]) #@64 Like `mail' command, but display mail buffer in another frame. (defalias 'mail-other-frame #[(&optional noerase to subject in-reply-to cc replybuffer sendactions) "!-\n \f &" [t nil same-window-regexps same-window-buffer-names special-display-regexps special-display-buffer-names pop-up-frames pop-to-buffer "*mail*" mail noerase to subject in-reply-to cc replybuffer sendactions] 8 (#$ . 22309) "P"]) (provide (quote sendmail))