4.4BSD/usr/src/contrib/emacs-18.57/lisp/rmail.elc


(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 nil)

(defvar rmail-last-rmail-file nil)

(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 "$C" [current-prefix-arg nil t read-file-name "Run rmail on RMAIL file: "] 5)) (byte-code "!!!
!	2!?O
!!D
=L  R
!
=]!g
=n ??
!! PD db?   +" [current-prefix-arg nil t rmail-last-file rmail-last-rmail-file file-name file-name-arg rmail-file-name existed inhibit-local-variables major-mode rmail-inbox-list rmail-primary-inbox-list rmail-spool-directory expand-file-name "~/xmail" "~/XMAIL" get-file-buffer verify-visited-file-modtime find-file rmail-mode rmail-forget-messages rmail-set-message-counters rmail-edit-mode error "exit rmail-edit-mode before getting new mail" "~/mbox" getenv "LOGNAME" "USER" user-login-name rmail-convert-file rmail-show-message rmail-get-new-mail] 20))

(defun rmail-convert-file nil (byte-code " eb!\"!c)\"É 5db!!!J!`d\" !))" [convert buffer-read-only nil t widen 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"] 12))

(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 "x" (quote rmail-expunge)) (define-key rmail-mode-map "s" (quote rmail-expunge-and-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 "w" (quote rmail-edit-current-message)) (define-key rmail-mode-map "" (quote rmail-delete-backward)))

(put (quote rmail-mode) (quote mode-class) (quote special))

(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.
w	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 "͉̉Éʼn!ω&!AB!	!
" [major-mode mode-name buffer-read-only t buffer-auto-save-file-name nil mode-line-modified mode-line-format rmail-mode-map text-mode-syntax-table local-abbrev-table text-mode-abbrev-table rmail-mode "RMAIL" boundp "--- " default-value use-local-map set-syntax-table] 6))

(defun rmail-variables nil (byte-code "!ɉ!!!!!!!!‰!Љ!ʼn!!! !‰" [revert-buffer-function require-final-newline nil version-control file-precious-flag t rmail-inbox-list rmail-keywords make-local-variable rmail-revert rmail-last-label rmail-deleted-vector rmail-summary-buffer rmail-summary-vector rmail-current-message rmail-total-messages never rmail-message-vector rmail-last-file rmail-parse-file-inboxes] 18))

(defun rmail-revert (arg noconfirm) (byte-code "	
\" db  )" [revert-buffer-function arg noconfirm nil revert-buffer rmail-convert-file rmail-set-message-counters rmail-show-message] 5))

(defun rmail-parse-file-inboxes nil (byte-code " b!1#`\"b#1` `\"eb ))" [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-expunge-and-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-expunge-and-save bury-buffer switch-to-buffer other-buffer] 6))

(defun rmail-input (filename) "\
Run RMAIL on file 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: "] 2)) (byte-code "Èp! !p!   	=%ÉҎ`2 db!`d\"``\"	^	C\"f
\"eb )
! !`d\"eTb  )ᏈA))
Ub	
!

U#.)" [current-prefix-arg buffer-undo-list t nil opoint new-messages delete-files make-backup-files buffer-read-only file-name rmail-inbox-list success verify-visited-file-modtime find-file buffer-file-name rmail-forget-messages rmail-maybe-set-message-counters widen ((byte-code " " [rmail-show-message] 2)) 0 buffer-modified-p skip-chars-backward " 	
" delete-region 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))) message "(No new mail has arrived)" "%d new message%s read" 1 "" "s"] 26))

(defun rmail-insert-inbox-text (files renamep) (byte-code "
I
@!!P!\"!\":!ȉd	!!\"!d!`!` \"o!	!x!\"?	!?!?ʂ??	#!!\"	&!?ʂqed$db!`d\"eb!e!\"!ed\"P!!)))	!<db	!dbhU6c	
B!
A

-" [file tofile delete-files movemail popmail files rmail-spool-directory renamep t buffer-file-name nil errors exec-directory expand-file-name substitute-in-file-name "~" equal file-name-directory string-match "^po:" file-name-nondirectory ".newmail" file-directory-p getenv "LOGNAME" "USER" user-login-name message "Getting mail from post office ..." file-exists-p "Getting mail from %s..." rename-file ((byte-code "!" [errors kill-buffer] 2)) generate-new-buffer " *rmail loss*" buffer-flush-undo call-process "movemail" buffer-modified-p subst-char-in-region 10 32 skip-chars-backward " 	" delete-region looking-at "movemail: " match-end 0 beep buffer-substring sit-for 3 insert-file-contents ""] 43))

(defun rmail-convert-to-babyl-format nil (byte-code "ebm?! !e`\"!P#8!!dbT`!`)\"`d\"
!)!`#!)	`S\"eb#!z))`d\"T!`c 
&#!bdbT	`\"eb#!))c`d\"!
)+" [count start case-fold-search nil t mmdf-delim1 mmdf-delim2 0 looking-at "BABYL OPTIONS:" search-forward "
" delete-region "" message "Invalid Babyl format in inbox!" sit-for 1 skip-chars-forward " 	
" narrow-to-region replace-match "
0, unseen,,
*** EOOH ***
" re-search-forward "" "
^_" "^From " rmail-nuke-pinhead-header concat "^[]?\\(" "From [^ 
]*\\(\\|\".*\"[^ 
]*\\)  ?[^ 
]* [^ 
]* *" "[0-9]* [0-9:]*\\( ?[A-Z]?[A-Z][A-Z]T\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) " "19[0-9]* *\\(remote from .*\\)?$\\|" "\\|" "^BABYL OPTIONS:\\|" "
[01],\\)" match-beginning 31 delete-char] 31))

(defun rmail-nuke-pinhead-header nil (byte-code "`ȏ`	\"b#b#-`b)#aGЂV!!UUԂV
^Ђ_P!),))" [start end has-from has-date case-fold-search t nil (byte-code "!" [search-forward "

"] 2) ((error (byte-code "dbc" ["

"] 1))) narrow-to-region search-forward "
From:" "
Date:" re-search-forward "^From \\([^ ]*\\(\\|\".*\"[^ ]*\\)\\)  ?\\([^ ]*\\) \\([^ ]*\\) *\\([0-9]*\\) \\([0-9:]*\\)\\( ?[A-Z]?[A-Z][A-Z]T\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) 19\\([0-9]*\\) *\\(remote from [^
]*\\)?
" replace-match "" match-beginning 7 match-end "Date: \\3, \\5 \\4 \\8 \\6 EST
" "Date: \\3, \\5 \\4 \\8 \\6\\7
" "From: \\1
"] 9))

(defun rmail-reformat-message (beg end) (byte-code "b!g\"! Z!c!!-!!<`!`\"`#`)\"
\"` Z\")ebb l!*" [beg buffer-read-only nil delta end str rmail-ignored-headers rmail-message-filter forward-line 1 /= 48 error "Bad format in RMAIL file." buffer-size delete-char 49 looking-at "Summary-line: " "\\*\\*\\* EOOH \\*\\*\\*
" delete-region buffer-substring search-forward "

" move insert "*** EOOH ***
" narrow-to-region rmail-clear-headers funcall] 19))

(defun rmail-clear-headers nil (byte-code "#3e`\"eb#)1 `!!`\"))" [nil t buffer-read-only case-fold-search rmail-ignored-headers search-forward "

" narrow-to-region re-search-forward beginning-of-line delete-region "
[^ 	]" forward-char -1] 10))

(defun rmail-toggle-header nil "\
Show original message header if pruned header currently shown, or vice versa." (interactive) (byte-code "ˆ !d\"eb!gU]!c!!/!c!!!`#M`\")eb!`d\"aed\")" [rmail-current-message buffer-read-only nil temp t rmail-maybe-set-message-counters narrow-to-region rmail-msgbeg forward-line 1 49 delete-char 48 looking-at "Summary-Line:" "*** EOOH ***
" forward-char -1 search-forward "
*** EOOH ***
" "

" delete-region rmail-reformat-message] 18))

(defun rmail-display-labels nil (byte-code "  ̎ !b!!s` `\"eb#B!>m>c*)db#s`eTV^e\\`\"d`ZVs`\\dS\"Q))\"!O!OQv\"!O!OQ%+" [blurb beg end rmail-current-message buffer-read-only nil t mode-line-process rmail-total-messages "" point-min-marker point-max-marker ((byte-code "	\"\"	\"" [beg end nil narrow-to-region set-marker] 5)) widen rmail-msgbeg forward-line 1 looking-at "[01]," narrow-to-region end-of-line search-forward "," "[ ,]" " " search-backward ",," move buffer-substring 2 ";" 3 string-match " +," 0 match-beginning match-end ", +" concat "/"] 25))

(defun rmail-set-attribute (attr state) (byte-code " dZ eZʎ !\\bQ` #
??=J
=`!S\"J !#)\"Y\"))+" [omax omin buffer-read-only nil rmail-current-message curstate attr t state buffer-size ((byte-code " Z] 	Z\" " [omin omax narrow-to-region 1 buffer-size rmail-display-labels] 6)) widen 3 rmail-msgbeg search-backward ", " "," end-of-line delete-region match-end 0 beginning-of-line forward-char 2 insert " " string= "deleted" rmail-set-message-deleted-p] 15))

(defun rmail-message-labels-p (msg labels) (byte-code "!b!	` #" [msg labels t rmail-msgbeg forward-char 3 re-search-backward end-of-line] 7))

(defun rmail-msgend (n) (byte-code "	TH!" [rmail-message-vector n marker-position] 3))

(defun rmail-msgbeg (n) (byte-code "	H!" [rmail-message-vector n marker-position] 3))

(defun rmail-widen-to-current-msgbeg (function) "\
Call FUNCTION with point at start of internal data of current message.
Assumes that bounds were previously narrowed to display the message in Rmail.
The bounds are widened enough to move point where desired,
then narrowed again afterward.
Assumes that the visible text of the message is not changed by FUNCTION." (byte-code "deZ
!d\"eb!*)" [obeg unwind-protect rmail-current-message function narrow-to-region rmail-msgbeg funcall nil] 5))

(defun rmail-forget-messages nil (byte-code "Ǝ!%
G	W$
	H\"	T+)" [rmail-message-vector i v n nil rmail-deleted-vector ((byte-code "" [rmail-message-vector nil rmail-deleted-vector] 2)) vectorp 0 move-marker] 5))

(defun rmail-maybe-set-message-counters nil (byte-code "
	


? " [rmail-deleted-vector rmail-message-vector rmail-current-message rmail-total-messages rmail-set-message-counters] 2))

(defun rmail-count-new-messages (&optional nomsg) (byte-code "
!db! Ce!T
\\A\"@I	P	

\"\"
eb
a
\"," [case-fold-search nil total-messages messages-head deleted-head nomsg rmail-current-message rmail-total-messages rmail-message-vector rmail-deleted-vector rmail-summary-vector 0 message "Counting new messages..." search-backward "" point-marker rmail-set-message-counters-counter vconcat make-vector "Counting new messages...done (%d)"] 10))

(defun rmail-set-message-counters nil (byte-code "  `!db! C`^!	 			
Z]^ 
B\"	P
\"!.))" [point-save total-messages messages-after-point nil case-fold-search messages-head deleted-head rmail-total-messages rmail-current-message rmail-message-vector rmail-deleted-vector rmail-summary-vector rmail-forget-messages widen 0 message "Counting messages..." search-backward "" point-marker rmail-set-message-counters-counter 1 apply vector point-min-marker "D" make-vector "Counting messages...done"] 12))

(defun rmail-set-message-counters-counter (&optional stop) (byte-code "#; 
B`!# ˂!B)T\"!7\"" [stop t messages-head deleted-head total-messages search-backward "
" point-marker ", deleted," forward-line 2 68 32 zerop % 20 message "Counting messages...%d"] 10))

(defun rmail-beginning-of-message nil "\
Show current message starting from the beginning." (interactive) (byte-code "!" [rmail-current-message nil rmail-show-message] 2))

(defun rmail-show-message (&optional n) "\
Show message number N (prefix argument), counting from start of file." (interactive "p") (byte-code "ˆ  !edS\"eb‰?*
MX:ωMVJЉM!!b!gUt\"\"#`\"eb !!*)" [rmail-total-messages mode-line-process nil blurb n rmail-current-message t beg end rmail-maybe-set-message-counters widen zerop narrow-to-region 0 1 "No previous message" "No following message" rmail-msgbeg rmail-msgend forward-line 48 rmail-reformat-message rmail-set-attribute "unseen" search-forward "
*** EOOH ***
" rmail-display-labels run-hooks rmail-show-message-hook message] 15))

(defun rmail-next-message (n) "\
Show following message whether deleted or not.
With prefix argument N, moves forward N messages,
or backward if N is negative." (interactive "p") (byte-code "ˆ 	\\!" [rmail-current-message n nil rmail-maybe-set-message-counters rmail-show-message] 4))

(defun rmail-previous-message (n) "\
Show previous message whether deleted or not.
With prefix argument N, moves backward N messages,
or forward if N is negative." (interactive "p") (byte-code "[!" [n nil rmail-next-message] 2))

(defun rmail-next-undeleted-message (n) "\
Show following non-deleted message.
With prefix argument N, moves forward N non-deleted messages,
or backward if N is negative." (interactive "p") (byte-code "ň 		V
W+
T
!?'
S	W5
VN
S
!?J
T,	\"Y!Wc!Vm!*" [lastwin rmail-current-message current n rmail-total-messages nil rmail-maybe-set-message-counters 0 rmail-message-deleted-p 1 /= rmail-show-message message "No previous nondeleted message" "No following nondeleted message"] 8))

(defun rmail-previous-undeleted-message (n) "\
Show previous non-deleted message.
With prefix argument N, moves backward N non-deleted messages,
or forward if N is negative." (interactive "p") (byte-code "[!" [n nil rmail-next-undeleted-message] 2))

(defun rmail-last-message nil "\
Show last message in file." (interactive) (byte-code " !" [rmail-total-messages nil rmail-maybe-set-message-counters rmail-show-message] 3))

(defun rmail-what-message nil (byte-code "`\"
	ZV3!Y!$	
	Z\"\\
!Y@
A	," [where low high rmail-total-messages mid 1 / 2 rmail-msgbeg] 7))

(defvar rmail-search-last-regexp nil)

(defun rmail-search (regexp &optional reversep) "\
Show message containing next match for REGEXP.
Search in reverse (earlier messages) with non-nil 2nd arg REVERSEP.
Interactively, empty argument means use same regexp used last time,
and reverse search is specified by a negative numeric arg." (interactive (byte-code "	!WǂP
R
!\"?4<?<!D+" [reversep current-prefix-arg prompt regexp rmail-search-last-regexp prefix-numeric-value 0 "Reverse " "" "Rmail search (regexp): " nil "(default " ") " read-string equal error "No previous Rmail search string"] 6)) (byte-code "͈Ђ
# ed`
	ӎ T?5	VQ	S	!b	!#+{?_	W{	T	!b	!#T)-" [reversep current-prefix-arg prompt regexp rmail-search-last-regexp omin omax opoint win msg rmail-current-message t rmail-total-messages nil message "%sRmail search for %s..." "Reverse " "" rmail-maybe-set-message-counters ((byte-code "0	
!b
!#`
!	'΂(#bA
b\" \"" [win reversep msg regexp t opoint omin omax rmail-msgend re-search-backward rmail-msgbeg rmail-show-message message "%sRmail search for %s...done" "Reverse " "" narrow-to-region ding "Searched failed: %s"] 10)) widen 1 rmail-msgbeg re-search-forward rmail-msgend] 13))

(defun rmail-message-deleted-p (n) (byte-code "	HU" [rmail-deleted-vector n 68] 2))

(defun rmail-set-message-deleted-p (n state) (byte-code "	

ÂI" [rmail-deleted-vector n state 68 32] 3))

(defun rmail-delete-message nil "\
Delete this message and stay on it." (interactive) (byte-code "\"" [t nil rmail-set-attribute "deleted"] 3))

(defun rmail-undelete-previous-message nil "\
Back up to deleted message, select it, and undelete it." (interactive) (byte-code "ˆ	V!?SU&!5	\"0!\")" [msg rmail-current-message nil 0 rmail-message-deleted-p error "No previous deleted message" /= rmail-show-message rmail-set-attribute "deleted"] 7))

(defun rmail-delete-forward (&optional backward) "\
Delete this message and move to next nondeleted one.
Deleted messages stay in the file until the \\[rmail-expunge] command is given.
With prefix argument, delete and move backward." (interactive "P") (byte-code "ˆ\"	Ƃ!" [t backward nil rmail-set-attribute "deleted" rmail-next-undeleted-message -1 1] 3))

(defun rmail-delete-backward nil "\
Delete this message and move to previous nondeleted one.
Deleted messages stay in the file until the \\[rmail-expunge] command is given." (interactive) (byte-code "!" [t nil rmail-delete-forward] 2))

(defun rmail-expunge nil "\
Actually erase all deleted messages in the file." (interactive) (byte-code "ˆ!=‰  dZ eZV+HU2ۂ5`eZ	HB
ݎ eb	
	‰
X
HU
H!
TH!\"
H\"VST

HB\"

U
SHB
T
\"!
\"

HB\"
\"	T\"!!.	))." [buffer-undo-list t nil omax omin opoint rmail-current-message rmail-deleted-vector messages-head rmail-message-vector messages-tail win counter number total rmail-total-messages new-message-number new-summary buffer-read-only messages deleted summary rmail-summary-vector message "Expunging deleted messages..." rmail-maybe-set-message-counters buffer-size 0 68 ((byte-code "!? 	Z 
Z\"!̂ !
!" [win omin omax rmail-current-message nil opoint message "Expunging deleted messages...done" narrow-to-region buffer-size rmail-show-message zerop 1 forward-char] 8)) widen 1 delete-region marker-position move-marker setcdr zerop % 20 "Expunging deleted messages...%d" apply vector make-string 32 vconcat nreverse] 20))

(defun rmail-mail nil "\
Send mail in another window.
While composing the message, use \\[mail-yank-original] to yank the
original message into it." (interactive) (byte-code "p&" [nil mail-other-window] 7))

(defun rmail-continue nil "\
Continue composing outgoing message previously being composed." (interactive) (byte-code "!" [t nil mail-other-window] 2))

(defun rmail-reply (just-sender) "\
Reply to the current message.
Normally include CC: to all other recipients of original message;
prefix argument means ignore them.
While composing the reply, use \\[mail-yank-original] to yank the
original message into it." (interactive "P") (byte-code "ʈ\"  	!b!gUF!`	!#`\"Q`! `\"\"!j#j	tʂ\"#\"!\"!\"#\"!))\"O
!	
#ʂ?
Q!!\"ʂ)p&." [t from reply-to cc subject date to message-id resent-reply-to rmail-current-message nil just-sender cc-list rmail-set-attribute "answered" rmail-display-labels widen rmail-msgbeg forward-line 1 48 narrow-to-region 2 search-forward "

" rmail-msgend move "
*** EOOH ***
" beginning-of-line mail-fetch-field "resent-reply-to" "from" "reply-to" "resent-cc" "cc" "resent-subject" "subject" "resent-date" "date" "resent-to" "to" "" "resent-message-id" "message-id" string-match "\\`Re: " 4 mail-other-window mail-strip-quoted-names rmail-make-in-reply-to-field rmail-dont-reply-to ", " string=] 40))

(defun rmail-make-in-reply-to-field (from date message-id) (byte-code "!
O
!@D\"-!O.!\"8=Rʼn	N!)	
?
\"hЂ
\"		?xł
	#	!Ђ	\\)
O
*	Q	Q	)" [mail-use-rfc822 field from tem message-id nil date stop-pos start-pos pos require rfc822 rfc822-addresses string-match regexp-quote "@[^@]*\\'" 0 match-beginning " \"" "\"" prin1-to-string "  *at \\|  *@ \\|  *<" " *(" ")" zerop 2 "'s message of " " "] 14))

(defun rmail-forward nil "\
Forward the current message to another user." (interactive) (byte-code "È\"p!!!%!)
#.
#=db!	!)*" [t forward-buffer subject nil rmail-set-attribute "forwarded" concat "[" mail-strip-quoted-names mail-fetch-field "From" ": " "Subject" "" "]" one-window-p mail mail-other-window forward-line 1 insert-buffer] 11))

(autoload (quote set-rmail-inbox-list) "rmailmsc" "\
Set the inbox list of the current RMAIL file to FILE-NAME.
This may be a list of file names separated by commas.
If FILE-NAME is empty, remove any inbox list." t)

(autoload (quote rmail-add-label) "rmailkwd" "\
Add LABEL to labels associated with current RMAIL message.
Completion is performed over known labels when reading." t)

(autoload (quote rmail-kill-label) "rmailkwd" "\
Remove LABEL from labels associated with current RMAIL message.
Completion is performed over known labels when reading." t)

(autoload (quote rmail-next-labeled-message) "rmailkwd" "\
Show next message with LABEL.  Defaults to last label used.
With prefix argument N moves forward N messages with this label." t)

(autoload (quote rmail-previous-labeled-message) "rmailkwd" "\
Show previous message with LABEL.  Defaults to last label used.
With prefix argument N moves backward N messages with this label." t)

(autoload (quote rmail-edit-current-message) "rmailedit" "\
Edit the contents of the current message" t)

(autoload (quote rmail-summary) "rmailsum" "\
Display a summary of all messages, one line per message." t)

(autoload (quote rmail-summary-by-labels) "rmailsum" "\
Display a summary of all messages with one or more LABELS.
LABELS should be a string containing the desired labels, separated by commas." t)

(autoload (quote rmail-summary-by-recipients) "rmailsum" "\
Display a summary of all messages with the given RECIPIENTS.
Normally checks the To, From and Cc fields of headers;
but if PRIMARY-ONLY is non-nil (prefix arg given),
 only look in the To and From fields.
RECIPIENTS is a string of names separated by commas." t)

(autoload (quote rmail-output-to-rmail-file) "rmailout" "\
Append the current message to an Rmail file named FILE-NAME.
If the file does not exist, ask if it should be created.
If file is being visited, the message is appended to the Emacs
buffer visiting that file." t)

(autoload (quote rmail-output) "rmailout" "\
Append this message to Unix mail file named FILE-NAME." t)

(autoload (quote undigestify-rmail-message) "undigest" "\
Break up a digest message into its constituent messages.
Leaves original message, deleted, before the undigestified messages." t)