(defun rmail-summary nil "\
Display a summary of all messages, one line per message." (interactive) (byte-code "\"" [nil rmail-new-summary "All"] 3))

(defun rmail-summary-by-labels (labels) "\
Display a summary of all messages with one or more LABELS.
LABELS should be a string containing the desired labels, separated by commas." (interactive "sLabels to summarize by: ") (byte-code "ˆ\"	!P!Q#" [labels rmail-last-multi-labels nil string= "" error "No label specified" rmail-new-summary "labels " rmail-message-labels-p ", \\(" mail-comma-list-regexp "\\),"] 9))

(defun rmail-summary-by-recipients (recipients &optional primary-only) "\
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." (interactive "sRecipients to summarize by: 
P") (byte-code "ˆP!	$" [recipients primary-only nil rmail-new-summary "recipients " rmail-message-recipients-p mail-comma-list-regexp] 6))

(defun rmail-message-recipients-p (msg recipients &optional primary-only) (byte-code "!b!`!`\"	!\"<	!)\"<
?<	!;\")" [msg recipients primary-only rmail-msgbeg search-forward "
*** EOOH ***
" narrow-to-region "

" string-match mail-fetch-field "To" "" "From" "Cc"] 12))

(defun rmail-new-summary (description function &rest args) "\
Create a summary of selected messages.
DESCRIPTION makes part of the mode line of the summary buffer.
For each message, FUNCTION is applied to the message number and ARGS...
and if the result is non-nil, that message is included.
nil for FUNCTION means all messages." (byte-code "!! P! ebYO?<B\"F!	BT'))*p
		! 		!	\"!$)Ήeb !D
\",*!" [rmail-summary-buffer summary-msgs nil new-summary-line-count msgnum buffer-read-only rmail-total-messages function args sbuf rbuf total mesg rmail-current-message t minor-mode-alist description rmail-buffer message "Computing summary lines..." buffer-name generate-new-buffer "-summary" 0 1 widen apply rmail-make-summary-line pop-to-buffer erase-buffer princ nreverse delete-char -1 subst-char-in-region 2 40 32 rmail-summary-mode make-local-variable ": " rmail-summary-goto-msg "Computing summary lines...done"] 18))

(defun rmail-make-summary-line (msg) (byte-code "	
!\\fU9Ђ:I)" [line rmail-summary-vector msg new-summary-line-count zerop % 10 message "Computing summary lines...%d" rmail-make-summary-line-1 4 rmail-message-deleted-p 68 48 3 rmail-msgbeg 45 32] 11))

(defun rmail-make-summary-line-1 (msg) (byte-code "!b!`)!!l Ԃ*` `\"Q!!!E!b`!`\"^\"?^`!`\"ʼn!!b#}`!`	#`
\"	b )!b!\",\"S\"
TORI," [msg lim pos labels line nil case-fold-search t next beg end rmail-summary-vector rmail-msgbeg forward-line 2 forward-char 3 concat search-forward ",," "" "{" buffer-substring end-of-line "} " 1 looking-at "Summary-line: " match-end 0 string-match "#" delete-region -1 rmail-msgend "
*** EOOH ***
" "

" narrow-to-region rmail-make-basic-summary-line insert format "%4d  "] 35))

(defun rmail-make-basic-summary-line nil (byte-code "ebƊ#?ɂ]ʊ `)#7!!\"!!!\"#]Ԋ `)#\\!!\"!!!\"#])֊#?m؂`S !`\"! !Q
\"eb#?` !`\"!P)
\"?X
ZW\\WZZ
\\^O\",)#!` `\"$#` `\"&" [nil t from len mch lo concat re-search-forward "^Date:" "      " "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- 	_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)" end-of-line format "%2d-%3s" string-to-int buffer-substring match-beginning 2 match-end 4 "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z 	_]*\\)\\([0-9][0-9]?\\)" "??????" "  " "^From:[ 	]*" "                         " mail-strip-quoted-names skip-chars-backward " 	" string-match "^" regexp-quote user-login-name "\\($\\|@\\)" "^To:[ 	]*" "to: " "[@%]" "%25s" 25 0 9 16 "  #" "^Subject:" skip-chars-forward "[
]+" "
"] 50))

(defun rmail-summary-next-all (&optional number) (interactive "p") (byte-code "! " [number nil forward-line 1 rmail-summary-goto-msg] 3))

(defun rmail-summary-previous-all (&optional number) (interactive "p") (byte-code "[! " [number nil forward-line 1 rmail-summary-goto-msg] 3))

(defun rmail-summary-next-msg (&optional number) (interactive "p") (byte-code "Ĉ!V!W[V&ɂ'	V7
$B	S+ +" [number count search end nil t forward-line 0 1 re-search-forward re-search-backward funcall "^.....[^D]" rmail-summary-goto-msg] 7))

(defun rmail-summary-previous-msg (&optional number) (interactive "p") (byte-code "[!" [number nil rmail-summary-next-msg 1] 2))

(defun rmail-summary-delete-forward nil (interactive) (byte-code "Ĉ 	! 
!!!!c)!)" [end rmail-buffer rmail-summary-buffer buffer-read-only nil rmail-summary-goto-msg pop-to-buffer rmail-delete-message skip-chars-forward " " "[0-9]" delete-char 1 "D" rmail-summary-next-msg] 9))

(defun rmail-summary-undelete nil (interactive) (byte-code " #)! !!\" 
!+ )" [buffer-read-only nil t rmail-buffer rmail-current-message rmail-summary-buffer end-of-line re-search-backward "\\(^ *[0-9]*\\)\\(D\\)" replace-match "\\1 " rmail-summary-goto-msg pop-to-buffer rmail-message-deleted-p rmail-undelete-previous-message] 10))

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

(defun rmail-summary-mode nil "\
Major mode in effect in Rmail summary buffer.
A subset of the Rmail mode commands are supported in this mode. 
As commands are issued in the summary buffer the corresponding
mail message is displayed in the rmail buffer.

n       Move to next undeleted message, or arg messages.
p       Move to previous undeleted message, or arg messages.
C-n	Move to next, or forward arg messages.
C-p	Move to previous, or previous arg messages.
j       Jump to the message at the cursor location.
d       Delete the message at the cursor location and move to next message.
u	Undelete this or previous deleted message.
q	Quit Rmail.
x	Exit and kill the summary window.
space   Scroll message in other window forward.
delete  Scroll message backward.

Entering this mode calls value of hook variable rmail-summary-mode-hook." (interactive) (byte-code "Lj !!͉̉
!ĉĉ!!" [major-mode mode-name rmail-summary-mode-map truncate-lines t buffer-read-only text-mode-syntax-table nil kill-all-local-variables make-local-variable rmail-buffer rmail-total-messages rmail-summary-mode "RMAIL Summary" use-local-map set-syntax-table run-hooks rmail-summary-mode-hook] 7))

(defun rmail-summary-goto-msg (&optional n nowarn) (interactive "P") (byte-code "ƈ:!m! 
``d`\\^\"!?2pW?!҉
VO!db eb!P#?pi\"b !!gU	!c)) 	!!
!+" [n buf rmail-buffer cur curmsg rmail-total-messages nil t nowarn buffer-read-only rmail-summary-buffer prefix-numeric-value forward-line -1 beginning-of-line string-to-int buffer-substring 5 1 message "No preceding message" "No following message" rmail-summary-goto-msg re-search-forward "^ *" int-to-string "Message %d not found" skip-chars-forward " " "0-9" 45 delete-char pop-to-buffer rmail-show-message] 20))

(defvar rmail-summary-mode-map nil)

(if rmail-summary-mode-map nil (setq rmail-summary-mode-map (make-keymap)) (suppress-keymap rmail-summary-mode-map) (define-key rmail-summary-mode-map "j" (quote rmail-summary-goto-msg)) (define-key rmail-summary-mode-map "n" (quote rmail-summary-next-msg)) (define-key rmail-summary-mode-map "p" (quote rmail-summary-previous-msg)) (define-key rmail-summary-mode-map "" (quote rmail-summary-next-all)) (define-key rmail-summary-mode-map "" (quote rmail-summary-previous-all)) (define-key rmail-summary-mode-map " " (quote rmail-summary-scroll-msg-up)) (define-key rmail-summary-mode-map "q" (quote rmail-summary-quit)) (define-key rmail-summary-mode-map "u" (quote rmail-summary-undelete)) (define-key rmail-summary-mode-map "x" (quote rmail-summary-exit)) (define-key rmail-summary-mode-map "" (quote rmail-summary-scroll-msg-down)) (define-key rmail-summary-mode-map "d" (quote rmail-summary-delete-forward)))

(defun rmail-summary-scroll-msg-up (&optional dist) "\
Scroll other window forward." (interactive "P") (byte-code "Ĉ 
!ǎ	!!)*" [window new-window rmail-buffer dist nil selected-window display-buffer ((byte-code "!" [window select-window] 2)) select-window scroll-up] 5))

(defun rmail-summary-scroll-msg-down (&optional dist) "\
Scroll other window backward." (interactive "P") (byte-code "Ĉ 
!ǎ	!!)*" [window new-window rmail-buffer dist nil selected-window display-buffer ((byte-code "!" [window select-window] 2)) select-window scroll-down] 5))

(defun rmail-summary-quit nil "\
Quit out of rmail and rmail summary." (interactive) (byte-code "  " [nil rmail-summary-exit rmail-quit] 3))

(defun rmail-summary-exit nil "\
Exit rmail summary, remaining within rmail." (interactive) (byte-code "p!!! !!!" [rmail-buffer nil bury-buffer get-buffer-window select-window delete-window selected-window switch-to-buffer] 8))