;ELC ;;; compiled by jwz@thalidomide on Fri Dec 31 02:07:48 1993 ;;; from file /th/jwz/emacs19/lisp/rmail/rmailsum.el ;;; emacs version 19.9 Lucid (beta9). ;;; bytecomp version 2.22; 22-dec-93. ;;; 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 "This file was compiled for Emacs 19.")) (byte-code "!M" [boundp rmail-summary-mode-map nil rmail-update-summary #[(&rest ignore) " @ A\"" [apply rmail-summary-redo] 3]] 2) (fset 'rmail-summary #[nil "#" [rmail-new-summary "All" (rmail-summary) nil] 4 "\ Display a summary of all messages, one line per message." nil]) (fset 'rmail-summary-by-labels #[(labels) "\n!PD!Q$" [labels "" rmail-last-multi-labels error "No label specified" rmail-new-summary "labels " rmail-summary-by-labels rmail-message-labels-p ", \\(" mail-comma-list-regexp "\\),"] 7 "\ Display a summary of all messages with one or more LABELS. LABELS should be a string containing the desired labels, separated by commas." "sLabels to summarize by: "]) (fset 'rmail-summary-by-recipients #[(recipients &optional primary-only) "\nP\n E\n! %" [rmail-new-summary "recipients " recipients rmail-summary-by-recipients primary-only rmail-message-recipients-p mail-comma-list-regexp] 6 "\ 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 regexps separated by commas." "sRecipients to summarize by: \nP"]) (fset 'rmail-summary-by-regexp #[(regexp) "\n!PD$" [regexp "" rmail-last-regexp error "No regexp specified." rmail-new-summary "regexp " rmail-summary-by-regexp rmail-message-regexp-p] 5 "\ Display a summary of all messages according to regexp REGEXP. If the regular expression is found in the header of the message (including in the date and other lines, as well as the subject line), Emacs will list the header line in the RMAIL-summary." "sRegexp to summarize by: "]) (fset 'rmail-summary-by-topic #[(subject &optional whole-message) "\nP\n E\n! %" [rmail-new-summary "about " subject rmail-summary-by-topic whole-message rmail-message-subject-p mail-comma-list-regexp] 6 "\ Display a summary of all messages with the given SUBJECT. Normally checks the Subject field of headers; but if WHOLE-MESSAGE is non-nil (prefix arg given), look in the whole message. SUBJECT is a string of regexps separated by commas." "sTopics to summarize by: \nP"]) (fset 'rmail-message-subject-p #[(msg subject &optional whole-message) " !b!` Ū!`}eb #!\")" [rmail-msgbeg msg search-forward "\n*** EOOH ***\n" whole-message "" "\n\n" re-search-forward subject nil t string-match mail-fetch-field "Subject" ""] 4]) (fset 'rmail-summary-by-senders #[(senders) "\nP\n!#" [rmail-new-summary "senders " senders rmail-message-senders-p mail-comma-list-regexp] 5 "\ Display a summary of all messages with the given SENDERS. SENDERS is a string of names separated by commas." "sSenders to summarize by: "]) (byte-code "M!" [rmail-message-senders-p #[(msg senders) " !b!`!`}!\")" [rmail-msgbeg msg search-forward "\n*** EOOH ***\n" "\n\n" string-match senders mail-fetch-field "From" ""] 4] boundp rmail-summary-symbol-number 0] 2) (fset 'rmail-new-summary #[(description redo-form function &rest args) "!‰= q\n\n!\n P!~ebYB\"!BBTW,\np q @A \"Apeb) !C !\"- \n) ! ȉ#!+" [message "Computing summary lines..." nil was-in-summary mesg sumbuf major-mode rmail-summary-mode t rmail-buffer rmail-summary-buffer buffer-name generate-new-buffer "-summary" rmail-current-message 0 new-summary-line-count summary-msgs 1 buffer-read-only msgnum rmail-total-messages function apply args rmail-make-summary-line total rbuf erase-buffer princ make-local-variable minor-mode-alist (t (concat ": " description)) redo-form rmail-summary-redo pop-to-buffer rmail-summary-goto-msg "Computing summary lines...done"] 5 "\ 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 "MMMMM" [rmail-make-summary-line #[(msg) " SH\nTæU\n\" ! !˪ !\\fUϪI)" [rmail-summary-vector msg new-summary-line-count 10 0 message "Computing summary lines...%d" rmail-make-summary-line-1 line 4 rmail-message-deleted-p 68 rmail-msgbeg 3 48 45 32] 5] rmail-make-summary-line-1 #[(msg) " !bu!lǪ``{Q\ny!Εb`y`{\"`y`| ! !b#`y`#`}b ) !by,\" S \" O\n TORI+" [rmail-msgbeg msg nil pos 3 search-forward ",," "" "{" "} " labels 1 looking-at "Summary-line: " 0 line string-match "#" -1 t case-fold-search rmail-msgend next "\n*** EOOH ***\n" beg "\n\n" end rmail-make-basic-summary-line 2 rmail-summary-vector format "%4d "] 9] rmail-make-basic-summary-line #[nil "eb#ĪŊ`)#ɔɕ{!ʔʕ{#ˊ`)#ʔʕ{!ɔɕ{#)͊#ς`Sx`{! !Q\"eb#`x`{!P)G\"XZ]OZWઓ\\WZZ\\^O\",)#w``{#``{" [re-search-forward "^Date:" nil t " " "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- _]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)" format "%2d-%3s" string-to-int 2 4 "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z _]*\\)\\([0-9][0-9]?\\)" "??????" " " "^From:[ ]*" " " mail-strip-quoted-names " " from len mch lo string-match "^" regexp-quote user-login-name "\\($\\|@\\)" "^To:[ ]*" "to: " "[@%]" "%25s" 25 0 9 16 " #" "^Subject:" "[\n][\n]+" "\n"] 9] rmail-summary-next-all #[(&optional number) "y !" [number 1 display-buffer rmail-buffer] 2 nil "p"] rmail-summary-previous-all #[(&optional number) "[y !" [number 1 display-buffer rmail-buffer] 2 nil "p"]] 2) (fset 'rmail-summary-next-msg #[(&optional number) "y V W [ VêV# Sg+y !" [0 number nil re-search-forward re-search-backward non-del-msg-found search count "^....[^D]" t display-buffer rmail-buffer] 5 "\ Display next non-deleted msg from rmail file. With optional prefix argument NUMBER, moves forward this number of non-deleted messages, or backward if NUMBER is negative." "p"]) (fset 'rmail-summary-previous-msg #[(&optional number) " [!" [rmail-summary-next-msg number 1] 2 nil "p"]) (fset 'rmail-summary-next-labeled-message #[(n labels) "q\n \")" [rmail-buffer rmail-next-labeled-message n labels] 3 "\ Show next message with LABEL. Defaults to last labels used. With prefix argument N moves forward N messages with these labels." "p\nsMove to next msg with labels: "]) (fset 'rmail-summary-previous-labeled-message #[(n labels) "q\n \")" [rmail-buffer rmail-previous-labeled-message n labels] 3 "\ Show previous message with LABEL. Defaults to last labels used. With prefix argument N moves backward N messages with these labels." "p\nsMove to previous msg with labels: "]) (fset 'rmail-summary-delete-forward #[(&optional backward) " \n! ! !" [rmail-summary-goto-msg pop-to-buffer rmail-buffer rmail-delete-forward backward rmail-summary-buffer] 2 "\ 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." "P"]) (fset 'rmail-summary-delete-backward #[nil "!" [rmail-summary-delete-forward t] 2 "\ Delete this message and move to previous nondeleted one. Deleted messages stay in the file until the \\[rmail-expunge] command is given." nil]) (byte-code "MMM" [rmail-summary-mark-deleted #[(&optional n undel) "‰#mww!!c!c)yÇ" [n rmail-summary-goto-msg t nil buffer-read-only " " "[0-9]" undel looking-at "D" delete-char 1 0] 4] rmail-summary-mark-undeleted #[(n) " \"" [rmail-summary-mark-deleted n t] 3] rmail-summary-deleted-p #[(&optional n) "#ww!)" [n rmail-summary-goto-msg nil t " " "[0-9]" looking-at "D"] 4]] 2) (fset 'rmail-summary-undelete #[(&optional arg) "U!#!  !! !)" [arg 1 rmail-summary-undelete-many nil buffer-read-only re-search-backward "\\(^ *[0-9]*\\)\\(D\\)" t replace-match "\\1 " rmail-summary-goto-msg pop-to-buffer rmail-buffer rmail-message-deleted-p rmail-current-message rmail-undelete-previous-message rmail-summary-buffer] 4 "\ Undelete current message. Optional prefix ARG means undelete ARG previous messages." "p"]) (fset 'rmail-summary-undelete-many #[(&optional n) "q \n  \nV W\n!\"T\nSa q \nV W\n!\n!T\nSb, )" [rmail-buffer n rmail-current-message rmail-total-messages init-msg 0 msgs-undeled rmail-message-deleted-p rmail-set-attribute "deleted" nil rmail-summary-buffer rmail-summary-deleted-p rmail-summary-mark-undeleted rmail-summary-goto-msg] 4 "\ Undelete all deleted msgs, optional prefix arg N means undelete N prev msgs." "P"]) (put 'rmail-summary-mode 'mode-class 'special) (fset 'rmail-summary-mode #[nil " !  !!!!!!!\"!" [kill-all-local-variables rmail-summary-mode major-mode "RMAIL Summary" mode-name use-local-map rmail-summary-mode-map t truncate-lines buffer-read-only set-syntax-table text-mode-syntax-table make-local-variable rmail-buffer rmail-total-messages rmail-current-message nil rmail-summary-redo revert-buffer-function rmail-update-summary post-command-hook add-hook rmail-summary-rmail-update run-hooks rmail-summary-mode-hook] 3 "\ Rmail Summary Mode is invoked from Rmail Mode by using \\\\[rmail-summary]. As commands are issued in the summary buffer, they are applied to the corresponding mail messages in the rmail buffer. All normal editing commands are turned off. Instead, nearly all the Rmail mode commands are available, though many of them move only among the messages in the summary. These additional commands exist: \\[rmail-summary-undelete-many] Undelete all or prefix arg deleted messages. \\[rmail-summary-wipe] Delete the summary and go to the Rmail buffer. Commands for sorting the summary: \\[rmail-summary-sort-by-date] Sort by date. \\[rmail-summary-sort-by-subject] Sort by subject. \\[rmail-summary-sort-by-author] Sort by author. \\[rmail-summary-sort-by-recipient] Sort by recipient. \\[rmail-summary-sort-by-correspondent] Sort by correspondent. \\[rmail-summary-sort-by-lines] Sort by lines." nil]) (byte-code "M\nw \n!\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n@A#\nBC#\nDE#\nFG#\nHI#\nJK#\nLM#\nNO#\nPQ#\nRS#\nTU#\nVW#\nXY#\nZ[#\n\\]#\n^_#\n`a#\nbc#" [rmail-summary-rmail-update #[nil " !yw`w`{!\n=   \ngU!c ! Ҏ !!+," [get-buffer-window rmail-buffer nil buffer-read-only 0 " " msg-num beg "0-9" string-to-int rmail-current-message selected-window owin window 45 delete-char 1 display-buffer ((select-window owin)) select-window rmail-show-message] 3] rmail-summary-mode-map make-keymap suppress-keymap define-key "a" rmail-summary-add-label "c" rmail-summary-continue "d" rmail-summary-delete-forward "" rmail-summary-delete-backward "e" rmail-summary-edit-current-message "f" rmail-summary-forward "g" rmail-summary-get-new-mail "h" rmail-summary "i" rmail-summary-input "j" rmail-summary-goto-msg "k" rmail-summary-kill-label "l" rmail-summary-by-labels "" " " "" rmail-summary-by-recipients "" rmail-summary-by-regexp "" rmail-summary-by-topic "m" rmail-summary-mail "" rmail-summary-retry-failure "n" rmail-summary-next-msg "n" rmail-summary-next-all "" rmail-summary-next-labeled-message "o" rmail-summary-output-to-rmail-file "" rmail-summary-output "p" rmail-summary-previous-msg "p" rmail-summary-previous-all "" rmail-summary-previous-labeled-message "q" rmail-summary-quit "r" rmail-summary-reply "s" rmail-summary-expunge-and-save "s" rmail-summary-search "t" rmail-summary-toggle-header "u" rmail-summary-undelete "" rmail-summary-undelete-many "w" rmail-summary-wipe "x" rmail-summary-expunge "." rmail-summary-beginning-of-message "<" rmail-summary-first-message ">" rmail-summary-last-message " " rmail-summary-scroll-msg-up "" rmail-summary-scroll-msg-down "?" describe-mode "" rmail-summary-sort-by-date "" rmail-summary-sort-by-subject "" rmail-summary-sort-by-author "" rmail-summary-sort-by-recipient "" rmail-summary-sort-by-correspondent " " rmail-summary-sort-by-lines] 4) (fset 'rmail-summary-goto-msg #[(&optional n nowarn skip-rmail) ":!myy ``d`\\^{! W! V!db eb!P#\"bywwgU!c))y? !!!+" [n prefix-numeric-value -1 0 rmail-buffer string-to-int 5 curmsg cur buf 1 message "No preceding message" rmail-total-messages "No following message" rmail-summary-goto-msg re-search-forward "^ *" int-to-string nil t nowarn "Message %d not found" " " "0-9" 45 buffer-read-only delete-char skip-rmail pop-to-buffer rmail-show-message rmail-summary-buffer] 7 nil "P"]) (fset 'rmail-summary-scroll-msg-up #[(&optional dist) " !" [scroll-other-window dist] 2 "\ Scroll other window forward." "P"]) (fset 'rmail-summary-scroll-msg-down #[(&optional dist) " =ê ª ![!" [scroll-other-window dist - nil prefix-numeric-value] 3 "\ Scroll other window backward." "P"]) (fset 'rmail-summary-beginning-of-message #[nil " ! !" [pop-to-buffer rmail-buffer beginning-of-buffer rmail-summary-buffer] 2 "\ Show current message from the beginning." nil]) (fset 'rmail-summary-quit #[nil " " [rmail-summary-wipe rmail-quit] 1 "\ Quit out of Rmail and Rmail summary." nil]) (fset 'rmail-summary-wipe #[nil "q)p! \"= !)" [rmail-buffer nil rmail-summary-buffer local-rmail-buffer kill-buffer selected-window next-window no-minibuf delete-window pop-to-buffer] 4 "\ Kill and wipe away Rmail summary, remaining within Rmail." nil]) (fset 'rmail-summary-expunge #[nil "q ) " [rmail-buffer rmail-only-expunge rmail-update-summary] 1 "\ Actually erase all deleted messages and recompute summary headers." nil]) (fset 'rmail-summary-expunge-and-save #[nil "q ) q )" [rmail-buffer rmail-only-expunge rmail-update-summary save-buffer] 1 "\ Expunge and save RMAIL file." nil]) (fset 'rmail-summary-get-new-mail #[nil "\nq ) !)" [nil msg rmail-buffer rmail-get-new-mail rmail-current-message rmail-summary-goto-msg] 2 "\ Get new mail and recompute summary headers." nil]) (fset 'rmail-summary-input #[(filename) " ! !" [pop-to-buffer rmail-buffer rmail filename] 2 "\ Run Rmail on file FILENAME." "FRun rmail on RMAIL file: "]) (fset 'rmail-summary-first-message #[nil " " [beginning-of-buffer] 1 "\ Show first message in Rmail file from summary buffer." nil]) (fset 'rmail-summary-last-message #[nil " y" [end-of-buffer -1] 1 "\ Show last message in Rmail file from summary buffer." nil]) (byte-code "!  \" \" # #‡" [boundp rmail-summary-edit-map nil make-sparse-keymap set-keymap-parent text-mode-map set-keymap-name define-key "" rmail-cease-edit "" rmail-abort-edit] 4) (fset 'rmail-summary-edit-current-message #[nil " ! !" [pop-to-buffer rmail-buffer rmail-edit-current-message use-local-map rmail-summary-edit-map] 2 "\ Edit the contents of this message." nil]) (fset 'rmail-summary-cease-edit #[nil " \n!" [rmail-cease-edit pop-to-buffer rmail-summary-buffer] 2 "\ Finish editing message, then go back to Rmail summary buffer." nil]) (fset 'rmail-summary-abort-edit #[nil " \n!" [rmail-abort-edit pop-to-buffer rmail-summary-buffer] 2 "\ Abort edit of current message; restore original contents. Go back to summary buffer." nil]) (fset 'rmail-summary-search-backward #[(regexp &optional n) "p\nq [\"*" [buffer ((set-buffer buffer)) rmail-buffer rmail-search regexp n] 3 "\ Show message containing next match for REGEXP. Prefix argument gives repeat count; negative argument means search backwards (through earlier messages). Interactively, empty argument means use same regexp used last time." (byte-code " !YĪP \n\nR! Ś \n\n!\n !+D" [prefix-numeric-value current-prefix-arg 0 reversep "Reverse " "" "Rmail search (regexp): " prompt nil regexp rmail-search-last-regexp "(default " ") " read-string error "No previous Rmail search string"] 5)]) (fset 'rmail-summary-search #[(regexp &optional n) "p\nq \"*" [buffer ((set-buffer buffer)) rmail-buffer rmail-search regexp n] 3 "\ Show message containing next match for REGEXP. Prefix argument gives repeat count; negative argument means search backwards (through earlier messages). Interactively, empty argument means use same regexp used last time." (byte-code " !WĪP \n\nR! Ś \n\n!\n !+D" [prefix-numeric-value current-prefix-arg 0 reversep "Reverse " "" "Rmail search (regexp): " prompt nil regexp rmail-search-last-regexp "(default " ") " read-string error "No previous Rmail search string"] 5)]) (fset 'rmail-summary-toggle-header #[nil "q )" [rmail-buffer rmail-toggle-header] 1 "\ Show original message header if pruned header currently shown, or vice versa." nil]) (fset 'rmail-summary-add-label #[(label) "q\n!)" [rmail-buffer rmail-add-label label] 2 "\ Add LABEL to labels associated with current Rmail message. Completion is performed over known labels when reading." (byte-code "q!)C" [rmail-buffer rmail-read-label "Add label"] 2)]) (fset 'rmail-summary-kill-label #[(label) "q\n\")" [rmail-buffer rmail-set-label label nil] 3 "\ Remove LABEL from labels associated with current Rmail message. Completion is performed over known labels when reading." (byte-code "q!)C" [rmail-buffer rmail-read-label "Kill label"] 2)]) (fset 'rmail-summary-mail #[nil "\n& !! #" [mail-other-window nil rmail-buffer use-local-map copy-keymap current-local-map define-key "" rmail-summary-send-and-exit] 7 "\ Send mail in another window. While composing the message, use \\[mail-yank-original] to yank the original message into it." nil]) (fset 'rmail-summary-continue #[nil "!" [mail-other-window t] 2 "\ Continue composing outgoing message previously being composed." nil]) (fset 'rmail-summary-reply #[(just-sender) "‹ ! !! #)" [nil mailbuf ((byte-code "q\n!p" [rmail-buffer rmail-reply just-sender mailbuf] 2)) pop-to-buffer use-local-map copy-keymap current-local-map define-key "" rmail-summary-send-and-exit] 4 "\ 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." "P"]) (fset 'rmail-summary-retry-failure #[nil "‹ ! !! #)" [nil mailbuf ((byte-code "q p" [rmail-buffer rmail-retry-failure mailbuf] 1)) pop-to-buffer use-local-map copy-keymap current-local-map define-key "" rmail-summary-send-and-exit] 4 "\ Edit a mail message which is based on the contents of the current message. For a message rejected by the mail system, extract the interesting headers and the body of the original message; otherwise copy the current message." nil]) (fset 'rmail-summary-send-and-exit #[nil "!" [mail-send-and-exit t] 2 "\ Send mail reply and return to summary buffer." nil]) (fset 'rmail-summary-forward #[(resend) "q\n! !! #)" [rmail-buffer rmail-forward resend use-local-map copy-keymap current-local-map define-key "" rmail-summary-send-and-exit] 4 "\ Forward the current message to another user. With prefix argument, \"resend\" the message instead of forwarding it; see the documentation of `rmail-resend'." "P"]) (fset 'rmail-summary-output-to-rmail-file #[nil "q!)" [rmail-buffer call-interactively rmail-output-to-rmail-file] 2 "\ 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." nil]) (fset 'rmail-summary-output #[nil "q!)" [rmail-buffer call-interactively rmail-output] 2 "\ Append this message to Unix mail file named FILE-NAME." nil]) (fset 'rmail-summary-sort-by-date #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-date reverse] 3 "\ Sort messages of current Rmail summary by date. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-summary-sort-by-subject #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-subject reverse] 3 "\ Sort messages of current Rmail summary by subject. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-summary-sort-by-author #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-author reverse] 3 "\ Sort messages of current Rmail summary by author. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-summary-sort-by-recipient #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-recipient reverse] 3 "\ Sort messages of current Rmail summary by recipient. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-summary-sort-by-correspondent #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-correspondent reverse] 3 "\ Sort messages of current Rmail summary by other correspondent. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-summary-sort-by-lines #[(reverse) "\n\"" [rmail-sort-from-summary rmail-sort-by-lines reverse] 3 "\ Sort messages of current Rmail summary by lines of the message. If prefix argument REVERSE is non-nil, sort them in reverse order." "P"]) (fset 'rmail-sort-from-summary #[(sortfun reverse) "! ! ! " [require rmailsort pop-to-buffer rmail-buffer sortfun reverse rmail-summary] 2 "\ Sort Rmail messages from Summary buffer and update it after sorting."])