(require (quote mail-utils)) (provide (quote rmail)) (defvar mmdf-delim1 "^ " "Regexp marking the start of an mmdf message") (defvar mmdf-delim2 "^ " "Regexp marking the end of an mmdf message") (defvar rmail-message-filter nil "If non nil, is a filter function for new headers in RMAIL. Called with region narrowed to unformatted header.") (defvar rmail-mode-map nil) (defvar rmail-current-message nil) (defvar rmail-total-messages nil) (defvar rmail-message-vector nil) (defvar rmail-deleted-vector nil) (defvar rmail-summary-buffer nil) (defvar rmail-summary-vector nil) (defvar rmail-last-label nil) (defvar rmail-last-multi-labels nil) (defvar rmail-last-file (expand-file-name "~/XMAIL")) (defvar rmail-last-rmail-file (expand-file-name "~/XMAIL")) (defun rmail (&optional file-name-arg) "\ Read and edit incoming mail. Moves messages into file named by rmail-file-name (a babyl format file) and edits that file in RMAIL Mode. Type \\[describe-mode] once editing that file, for a list of RMAIL commands. May be called with filename as argument; then performs rmail editing on that file, but does not copy any new mail into the file." (interactive) (byte-code "ň !! ! !) łD !8 c)D D W db!!!p !`d\" !)q ň? ? db? +" [file-name file-name-arg rmail-file-name existed convert nil buffer-read-only t rmail-inbox-list rmail-primary-inbox-list expand-file-name get-file-buffer find-file rmail-mode looking-at "BABYL OPTIONS:" "Version: 5 " "BABYL OPTIONS: " rmail-insert-rmail-file-header search-backward "" forward-char 1 " *From " message "Converting to Babyl format..." narrow-to-region rmail-convert-to-babyl-format "Converting to Babyl format...done" rmail-set-message-counters rmail-show-message rmail-get-new-mail] 18)) (defun rmail-insert-rmail-file-header nil (byte-code " c)" [buffer-read-only nil "BABYL OPTIONS: Version: 5 Labels: Note: This is the header of an rmail file. Note: If you are seeing it in rmail, Note: it means the file has no messages in it. "] 1)) (if rmail-mode-map nil (setq rmail-mode-map (make-keymap)) (suppress-keymap rmail-mode-map) (define-key rmail-mode-map "." (quote rmail-beginning-of-message)) (define-key rmail-mode-map " " (quote scroll-up)) (define-key rmail-mode-map "" (quote scroll-down)) (define-key rmail-mode-map "n" (quote rmail-next-undeleted-message)) (define-key rmail-mode-map "p" (quote rmail-previous-undeleted-message)) (define-key rmail-mode-map "n" (quote rmail-next-message)) (define-key rmail-mode-map "p" (quote rmail-previous-message)) (define-key rmail-mode-map "" (quote rmail-next-labeled-message)) (define-key rmail-mode-map "" (quote rmail-previous-labeled-message)) (define-key rmail-mode-map "a" (quote rmail-add-label)) (define-key rmail-mode-map "k" (quote rmail-kill-label)) (define-key rmail-mode-map "d" (quote rmail-delete-forward)) (define-key rmail-mode-map "u" (quote rmail-undelete-previous-message)) (define-key rmail-mode-map "e" (quote rmail-expunge)) (define-key rmail-mode-map "s" (quote rmail-save)) (define-key rmail-mode-map "g" (quote rmail-get-new-mail)) (define-key rmail-mode-map "h" (quote rmail-summary)) (define-key rmail-mode-map "" (quote rmail-summary)) (define-key rmail-mode-map "l" (quote rmail-summary-by-labels)) (define-key rmail-mode-map "" (quote rmail-summary-by-labels)) (define-key rmail-mode-map "" (quote rmail-summary-by-recipients)) (define-key rmail-mode-map "t" (quote rmail-toggle-header)) (define-key rmail-mode-map "m" (quote rmail-mail)) (define-key rmail-mode-map "r" (quote rmail-reply)) (define-key rmail-mode-map "c" (quote rmail-continue)) (define-key rmail-mode-map "f" (quote rmail-forward)) (define-key rmail-mode-map "s" (quote rmail-search)) (define-key rmail-mode-map "j" (quote rmail-show-message)) (define-key rmail-mode-map "o" (quote rmail-output-to-rmail-file)) (define-key rmail-mode-map "" (quote rmail-output)) (define-key rmail-mode-map "i" (quote rmail-input)) (define-key rmail-mode-map "q" (quote rmail-quit)) (define-key rmail-mode-map ">" (quote rmail-last-message)) (define-key rmail-mode-map "?" (quote describe-mode)) (define-key rmail-mode-map "" (quote rmail-edit-current-message)) (define-key rmail-mode-map "" (quote rmail-delete-backward))) (defun rmail-mode nil "\ Rmail Mode is used by \\[rmail] for editing Rmail files. All normal editing commands are turned off. Instead, these commands are available: . Move point to front of this message (same as \\[beginning-of-buffer]). SPC Scroll to next screen of this message. DEL Scroll to previous screen of this message. n Move to Next non-deleted message. p Move to Previous non-deleted message. M-n Move to Next message whether deleted or not. M-p Move to Previous message whether deleted or not. > Move to the last message in Rmail file. j Jump to message specified by numeric position in file. M-s Search for string and show message it is found in. d Delete this message, move to next nondeleted. C-d Delete this message, move to previous nondeleted. u Undelete message. Tries current message, then earlier messages till a deleted message is found. e Expunge deleted messages. s Expunge and save the file. q Quit Rmail: expunge, save, then switch to another buffer. C-x C-s Save without expunging. g Move new mail from system spool directory or mbox into this file. m Mail a message (same as \\[mail-other-window]). c Continue composing outgoing message started before. r Reply to this message. Like m but initializes some fields. f Forward this message to another user. o Output this message to an Rmail file (append it). C-o Output this message to a Unix-format mail file (append it). i Input Rmail file. Run Rmail on that file. a Add label to message. It will be displayed in the mode line. k Kill label. Remove a label from current message. C-M-n Move to Next message with specified label (label defaults to last one specified). Standard labels: filed, unseen, answered, forwarded, deleted. Any other label is present only if you add it with `a'. C-M-p Move to Previous message with specified label C-M-h Show headers buffer, with a one line summary of each message. C-M-l Like h only just messages with particular label(s) are summarized. C-M-r Like h only just messages with particular recipient(s) are summarized. t Toggle header, show Rmail header if unformatted or vice versa. C-r Edit the current message. C-c C-c to return to Rmail." (interactive) (byte-code " !" [nil kill-all-local-variables rmail-mode-1 rmail-variables run-hooks rmail-mode-hook] 5)) (defun rmail-mode-1 nil (byte-code "ˉ̉ ͉!! " [major-mode mode-name buffer-read-only t buffer-auto-save-file-name nil mode-line-format rmail-mode-map text-mode-syntax-table local-abbrev-table text-mode-abbrev-table rmail-mode "RMAIL" "--- Emacs: %b %M %[(%m)%] ----%3p-%-" use-local-map set-syntax-table] 4)) (defun rmail-variables nil (byte-code "!!!!!!!! !̉!!! " [require-final-newline nil version-control rmail-inbox-list make-local-variable rmail-last-label rmail-deleted-vector rmail-keywords rmail-summary-buffer rmail-summary-vector rmail-current-message rmail-total-messages never rmail-message-vector rmail-last-file rmail-parse-file-inboxes] 15)) (defun rmail-parse-file-inboxes nil (byte-code " b!5 #`\"b #4 ` `\"eb 5 ))" [nil t widen 1 looking-at "Babyl options:" search-forward "" move narrow-to-region " Mail:" end-of-line mail-parse-comma-list] 9)) (defun rmail-save nil "\ Expunge and save RMAIL file." (interactive) (byte-code " " [nil rmail-expunge save-buffer] 3)) (defun rmail-quit nil "\ Quit out of RMAIL." (interactive) (byte-code " ! p ! !)" [rmail-summary-buffer obuf nil rmail-save bury-buffer switch-to-buffer other-buffer] 6)) (defun rmail-input (filename) "\ Run RMAIL on FILENAME." (interactive "FRun rmail on RMAIL file: ") (byte-code "!" [filename nil rmail] 2)) (defun rmail-get-new-mail (&optional file-name) "\ Move any new mail from this RMAIL file's inbox files. The inbox files can be specified with the file's Mail: option. The variable rmail-primary-inbox-list specifies the inboxes for your primary RMAIL file if it has no Mail: option. These are normally your ~/mbox and your /usr/spool/mail/$USER. You can also specify the file to get new mail from. In this case, the file of new mail is not changed or deleted. Noninteractively, you can pass the inbox file name as an argument. Interactively, a prefix argument causes us to read a file name and use that file as the inbox." (interactive (byte-code " ! C" [current-prefix-arg read-file-name "Get new mail from file: " nil] 2)) (byte-code "Ĉ `db!`d\"ώ``\"2 C\": \"eb ) !] !`d\"eTb r ُAa ))," [current-prefix-arg opoint new-messages delete-files nil buffer-read-only file-name rmail-inbox-list t rmail-maybe-set-message-counters widen 0 skip-chars-backward " " delete-region ((byte-code "U b! U ǂ # " [new-messages opoint 0 message "(No new mail has arrived)" "%d new message%s read" 1 "" "s" rmail-show-message] 6)) narrow-to-region rmail-insert-inbox-text rmail-convert-to-babyl-format zerop search-backward "" rmail-count-new-messages save-buffer (byte-code "@!" [delete-files delete-file] 2) ((file-error (byte-code "" [nil] 1)))] 18)) (defun rmail-insert-inbox-text (files renamep) (byte-code " @!P! \">