;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sat Sep 3 18:13:49 1994 ;;; from file /home/fsf/rms/e19/lisp/mh-e.el ;;; emacs version 19.25.94.1. ;;; 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 "`/home/fsf/rms/e19/lisp/mh-e.el' was compiled for Emacs 19")) (byte-code "‡" ["Time-stamp: <94/04/13 11:30:48 gildea>" mh-e-time-stamp nil] 1) (defconst mh-e-version "4.1" "\ Version numbers of this version of mh-e.") (byte-code "!!" ["$Header: /home/fsf/rms/e19/lisp/RCS/mh-e.el,v 1.4 1994/09/03 08:43:52 rms Exp $" mh-e-RCS-id provide mh-e require mh-utils] 2) (defvar mh-redist-full-contents nil "\ Non-nil if the `dist' command needs whole letter for redistribution. This is the case only when `send' is compiled with the BERK option. If MH will not allow you to redist a previously redist'd msg, set to nil.") (defvar mh-folder-mode-hook nil "\ Invoked in MH-Folder mode on a new folder.") (defvar mh-inc-folder-hook nil "\ Invoked by \\`\\[mh-inc-folder]' after incorporating mail into a folder.") (defvar mh-show-hook nil "\ Invoked after \\`\\[mh-show]' shows a message.") (defvar mh-show-mode-hook nil "\ Invoked in MH-Show mode on each message.") (defvar mh-delete-msg-hook nil "\ Invoked after marking each message for deletion.") (defvar mh-refile-msg-hook nil "\ Invoked after marking each message for refiling.") (defvar mh-before-quit-hook nil "\ Invoked by \\`\\[mh-quit]' before quitting mh-e. See also mh-quit-hook.") (defvar mh-quit-hook nil "\ Invoked after \\`\\[mh-quit]' quits mh-e. See also mh-before-quit-hook.") (defvar mh-lpr-command-format "lpr -p -J '%s'" "\ *Format for Unix command that prints a message. The string should be a Unix command line, with the string '%s' where the job's name (folder and message number) should appear. The formatted message text is piped to this command when you type \\`\\[mh-print-msg]'.") (defvar mh-scan-prog "scan" "\ *Program to run to generate one-line-per-message listing of a folder. Normally \"scan\" or a file name linked to scan. This file is searched for relative to the mh-progs directory unless it is an absolute pathname. Automatically becomes buffer-local when set in any fashion.") (make-variable-buffer-local (quote mh-scan-prog)) (defvar mh-inc-prog "inc" "\ *Program to run to incorporate new mail into a folder. Normally \"inc\". This file is searched for relative to the mh-progs directory unless it is an absolute pathname.") (defvar mh-print-background nil "\ *Print messages in the background if non-nil. WARNING: do not delete the messages until printing is finished; otherwise, your output may be truncated.") (defvar mh-recenter-summary-p nil "\ *Recenter summary window when the show window is toggled off if non-nil.") (defvar mh-ins-buf-prefix "> " "\ *String to put before each non-blank line of a yanked or inserted message. \\Used when the message is inserted into an outgoing letter by \\[mh-insert-letter] or \\[mh-yank-cur-msg].") (defvar mh-do-not-confirm nil "\ *Non-nil means do not prompt for confirmation before some mh-e commands. Affects non-recoverable commands such as mh-kill-folder and mh-undo-folder.") (defvar mh-store-default-directory nil "\ *Last directory used by \\[mh-store-msg]; default for next store. A directory name string, or nil to use current directory.") (defvar mh-good-msg-regexp "^....[^D^]" "\ Regexp specifiying the scan lines that are 'good' messages.") (defvar mh-deleted-msg-regexp "^....D" "\ Regexp matching scan lines of deleted messages.") (defvar mh-refiled-msg-regexp "^....\\^" "\ Regexp matching scan lines of refiled messages.") (defvar mh-valid-scan-line "^ *[0-9]" "\ Regexp matching scan lines for messages (not error messages).") (defvar mh-flagged-scan-msg-regexp "^....\\D\\|^....\\^\\|^....\\+\\|^.....%" "\ Regexp matching flagged scan lines. Matches lines marked as deleted, refiled, in a sequence, or the cur message.") (defvar mh-cur-scan-msg-regexp "^....\\+" "\ Regexp matching scan line for the cur message.") (defvar mh-show-buffer-mode-line-buffer-id "{show-%s} %d" "\ Format string to produce `mode-line-buffer-identification' for show buffers. First argument is folder name. Second is message number.") (defvar mh-partial-folder-mode-line-annotation "select" "\ Annotation when displaying part of a folder. The string is displayed after the folder's name. NIL for no annotation.") (defvar mh-last-destination nil "\ Destination of last refile or write command.") (defvar mh-folder-mode-map (make-keymap) "\ Keymap for MH folders.") (defvar mh-next-seq-num nil "\ Index of free sequence id.") (defvar mh-delete-list nil "\ List of msg numbers to delete.") (defvar mh-refile-list nil "\ List of folder names in mh-seq-list.") (defvar mh-next-direction (quote forward) "\ Direction to move to next message.") (defvar mh-narrowed-to-seq nil "\ Sequence display is narrowed to.") (defvar mh-first-msg-num nil "\ Number of first msg in buffer.") (defvar mh-last-msg-num nil "\ Number of last msg in buffer.") (defalias (quote mh-mapc) #[(func list) " @!A‡" [list func nil] 3]) (defalias 'mh-rmail #[(&optional arg) " ! " [mh-find-path arg call-interactively mh-visit-folder mh-inc-folder] 2 "\ Inc(orporate) new mail with MH, or, with arg, scan an MH mail folder. This function is an entry point to mh-e, the Emacs front end to the MH mail system." "P"]) (defalias 'mh-smail #[nil " !!" [mh-find-path require mh-comp call-interactively mh-send] 2 "\ Compose and send mail with the MH mail system. This function is an entry point to mh-e, the Emacs front end to the MH mail system." nil]) (defalias 'mh-smail-other-window #[nil " !!" [mh-find-path require mh-comp call-interactively mh-send-other-window] 2 "\ Compose and send mail in other window with the MH mail system. This function is an entry point to mh-e, the Emacs front end to the MH mail system." nil]) (defalias 'mh-delete-msg #[(msg-or-seq) " ! " [mh-delete-msg-no-motion msg-or-seq mh-next-msg] 2 "\ Mark the specified MESSAGE(s) for subsequent deletion and move to the next. Default is the displayed message. If optional prefix argument is given then prompt for the message sequence." (list (if current-prefix-arg (mh-read-seq-default "Delete" t) (mh-get-msg-num t)))]) (defalias 'mh-delete-msg-no-motion #[(msg-or-seq) " !\"" [msg-or-seq mh-delete-a-msg mh-map-to-seq-msgs] 3 "\ Mark the specified MESSAGE(s) for subsequent deletion. Default is the displayed message. If optional prefix argument is provided, then prompt for the message sequence." (list (if current-prefix-arg (mh-read-seq-default "Delete" t) (mh-get-msg-num t)))]) (defalias 'mh-execute-commands #[nil " ! LJ" [mh-narrowed-to-seq mh-widen mh-process-commands mh-current-folder mh-set-scan-mode mh-goto-cur-msg mh-make-folder-mode-line t] 2 "\ Process outstanding delete and refile requests." nil]) (defalias 'mh-first-msg #[nil "eb" [] 1 "\ Move to the first message." nil]) (defalias 'mh-header-display #[nil " \f\n ĉ!  !\n)p!̎eb!*ω*" [mh-showing-with-headers mhl-formfile mh-clean-message-header mh-invalidate-show-buffer nil mh-show-msg selected-window mh-in-show-buffer-saved-window switch-to-buffer-other-window mh-show-buffer mh-bury-show-buffer bury-buffer ((select-window mh-in-show-buffer-saved-window)) mh-recenter 0 t] 2 "\ Show the current message with all its headers. Displays headers that might have been suppressed by setting the variables `mh-clean-message-header' or `mhl-formfile', or by the fallback behavior of scrolling uninteresting headers off the top of the window. Type \"\\[mh-show]\" to show the message normally again." nil]) (defalias 'mh-inc-folder #[(&optional maildrop-name) " \n&!! &p!=&! )\n!!" [current-window-configuration config maildrop-name get-buffer "+inbox" mh-make-folder mh-previous-window-config switch-to-buffer mh-get-new-mail run-hooks mh-inc-folder-hook] 3 "\ Inc(orporate)s new mail into +inbox. Optional prefix argument specifies an alternate maildrop from the default. If this is given, incorporates mail into the current folder, rather than +inbox. Runs `mh-inc-folder-hook' after incorporating new mail. Do not call this function from outside mh-e; use \\[mh-rmail] instead." (list (if current-prefix-arg (expand-file-name (read-file-name "inc mail from file: " mh-user-path))))]) (defalias 'mh-last-msg #[nil "dbo?!y" [looking-at "^$" -1] 2 "\ Move to the last message." nil]) (defalias 'mh-next-undeleted-msg #[(&optional arg) " !y $y y !$ !" [prefix-numeric-value arg forward mh-next-direction re-search-forward mh-good-msg-regexp nil 0 mh-maybe-show -1 get-buffer mh-show-buffer delete-windows-on] 5 "\ Move to next undeleted message in window." "P"]) (defalias 'mh-refile-msg #[(msg-or-seq dest) " B  \" # " [refile dest mh-last-destination msg-or-seq mh-refile-a-msg mh-map-to-seq-msgs mh-next-msg] 4 "\ Refile MESSAGE(s) (default: displayed message) in FOLDER. If optional prefix argument provided, then prompt for message sequence." (list (if current-prefix-arg (mh-read-seq-default "Refile" t) (mh-get-msg-num t)) (intern (mh-prompt-for-folder "Destination" (or (and mh-msg-folder-hook (let ((file-name (mh-msg-filename (mh-get-msg-num t)))) (save-excursion (set-buffer (get-buffer-create " *mh-temp*")) (erase-buffer) (insert-file-contents file-name) (let ((buffer-file-name file-name)) (funcall mh-msg-folder-hook))))) (and (eq (quote refile) (car mh-last-destination)) (symbol-name (cdr mh-last-destination))) "") t)))]) (defalias 'mh-refile-or-write-again #[(msg) "!@= A\"A\"+ A#A\" " [mh-last-destination error "No previous refile or write" refile mh-refile-a-msg msg message "Destination folder: %s" apply mh-write-msg-to-file "Destination: %s" mh-next-msg] 4 "\ Re-execute the last refile or write command on the given MESSAGE. Default is the displayed message. Use the same folder or file as the previous refile or write command." (list (mh-get-msg-num t))]) (defalias 'mh-quit #[nil "! p!!!$!!" [run-hooks mh-before-quit-hook mh-update-unseen mh-invalidate-show-buffer bury-buffer get-buffer mh-show-buffer mh-previous-window-config set-window-configuration mh-quit-hook] 2 "\ Quit mh-e. Start by running mh-before-quit-hook. Restore the previous window configuration, if one exists. Finish by running mh-quit-hook." nil]) (defalias 'mh-page-msg #[(&optional arg) " !" [scroll-other-window arg] 2 "\ Page the displayed message forwards. Scrolls ARG lines or a full screen if no argument is supplied." "P"]) (defalias 'mh-previous-page #[(&optional arg) "  !\fp!Ǝ!*" [selected-window mh-in-show-buffer-saved-window switch-to-buffer-other-window mh-show-buffer mh-bury-show-buffer bury-buffer ((select-window mh-in-show-buffer-saved-window)) scroll-down arg] 2 "\ Page the displayed message backwards. Scrolls ARG lines or a full screen if no argument is supplied." "P"]) (defalias 'mh-previous-undeleted-msg #[(&optional arg) "y\f$  ! !" [backward mh-next-direction 0 re-search-backward mh-good-msg-regexp nil arg mh-maybe-show get-buffer mh-show-buffer delete-windows-on] 5 "\ Move to previous undeleted message in window." "p"]) (defalias 'mh-rescan-folder #[(&optional range) " \f \"" [forward mh-next-direction mh-scan-folder mh-current-folder range "all"] 3 "\ Rescan a folder after optionally processing the outstanding commands. If optional prefix argument is provided, prompt for the range of messages to display. Otherwise show the entire folder." (list (if current-prefix-arg (mh-read-msg-range "Range to scan [all]? ") nil))]) (defalias 'mh-write-msg-to-file #[(msg file no-headers) " ! ! E!q !eb(!`d\f#+" [mh-msg-filename msg mh-expand-file-name file output-file file-name write no-headers mh-last-destination get-buffer-create " *mh-temp*" erase-buffer insert-file-contents search-forward "\n\n" append-to-file] 4 "\ Append MESSAGE to the end of a FILE. If NO-HEADERS (prefix argument) is provided, write only the message body. Otherwise send the entire message including the headers." (list (mh-get-msg-num t) (let ((default-dir (if (eq (quote write) (car mh-last-destination)) (file-name-directory (car (cdr mh-last-destination))) default-directory))) (read-file-name "Save message in file: " default-dir (expand-file-name "mail.out" default-dir))) current-prefix-arg)]) (defalias 'mh-toggle-showing #[nil " " [mh-showing mh-set-scan-mode mh-show] 1 "\ Toggle the scanning mode/showing mode of displaying messages." nil]) (defalias 'mh-undo #[(msg-or-seq) "e`y\f!B !B=!oB=1ym)B=<ʂ=y\n\f!N !Z!! a b!)l!\"\" ?{!" [msg-or-seq original-position 0 looking-at mh-deleted-msg-regexp mh-refiled-msg-regexp mh-next-direction forward backward nil -1 1 mh-undo-msg mh-get-msg-num t mh-maybe-show error "Nothing to undo" mh-mapc mh-seq-to-msgs #[(elt) " !? \"" [mh-seq-to-msgs elt delq mh-refile-list] 3] mh-refile-list mh-outstanding-commands-p mh-set-folder-modified-p] 4 "\ Undo the deletion or refile of the specified MESSAGE(s). Default is the displayed message. If optional prefix argument is provided, then prompt for the message sequence." (list (if current-prefix-arg (mh-read-seq-default "Undo" t) (mh-get-msg-num t)))]) (defalias 'mh-version #[nil " !q  \f!ͱ Џ\"ձ`ُb#y`|eb)!" [mh-find-progs get-buffer-create " *mh-temp*" erase-buffer " mh-e info:\n\nversion: " mh-e-version "\n" mh-e-time-stamp "\nEmacs: " emacs-version " on " symbol-name system-type " " nil (call-process "uname" nil t nil "-a") ((file-error)) "\n\n MH info:\n\n" expand-file-name "inc" mh-progs ":\n" help-start err-data (mh-exec-cmd-output "inc" nil "-help") ((file-error (byte-code "\nA#c" [mapconcat concat err-data ": "] 4))) search-forward "version: " t 0 display-buffer] 9 "\ Display version information about mh-e and MH." nil]) (defalias 'mh-visit-folder #[(folder &optional range) "  \f\n\" )LJ" [current-window-configuration config mh-scan-folder folder range "all" mh-previous-window-config nil] 3 "\ Visits FOLDER and displays RANGE of messages. Assumes mh-e has already been initialized. Do not call this function from outside mh-e; see \\[mh-rmail] instead." (list (mh-prompt-for-folder "Visit" "+inbox" t) (mh-read-msg-range "Range [all]? "))]) (defalias 'mh-compat-quit #[nil " !\"!!" [message "%s" documentation this-command sit-for 1 call-interactively mh-quit] 4 "\ \"b\" reserved for future use as mh-burst-digest; will assume you want \"\\[mh-quit]\" ..." nil]) (byte-code "\"\"\"\"\"\"#" [defalias mh-delete-a-msg #[(msg) " # ! \"!?4! \nB\n # #!)" [mh-goto-msg msg nil t looking-at mh-refiled-msg-regexp error "Message %d is refiled. Undo refile before deleting." mh-deleted-msg-regexp mh-set-folder-modified-p mh-delete-list mh-add-msgs-to-seq deleted mh-notate 68 mh-cmd-note run-hooks mh-delete-msg-hook] 4] mh-refile-a-msg #[(msg destination) " # ! \"k!> \f#!8!\f!&k!k!\f>Q\fB \f!>a \f# #!)" [mh-goto-msg msg nil t looking-at mh-deleted-msg-regexp error "Message %d is deleted. Undo delete before moving." mh-refiled-msg-regexp y-or-n-p format "Message %d already refiled. Copy to %s as well? " destination mh-exec-cmd "refile" mh-get-msg-num "-link" "-src" mh-current-folder symbol-name message "Message not copied." mh-set-folder-modified-p mh-refile-list mh-seq-to-msgs mh-add-msgs-to-seq mh-notate 94 mh-cmd-note run-hooks mh-refile-msg-hook] 8] mh-next-msg #[nil "=\n!!" [mh-next-direction forward mh-next-undeleted-msg 1 mh-previous-undeleted-msg] 2] mh-set-scan-mode #[nil " !\n ! !!" [get-buffer mh-show-buffer delete-windows-on nil mh-showing set-buffer-modified-p buffer-modified-p mh-recenter-summary-p mh-recenter] 2] mh-undo-msg #[(msg) " > \"#\" #" [msg mh-delete-list delq mh-delete-msg-from-seq deleted t mh-mapc #[(dest) " \n#" [mh-delete-msg-from-seq msg dest t] 4] mh-refile-list mh-notate 32 mh-cmd-note] 4] mh-make-folder #[(name) " !  ! " [switch-to-buffer name nil buffer-read-only erase-buffer t mh-folder-mode mh-set-folder-modified-p mh-folder-filename buffer-file-name] 2] put mh-folder-mode mode-class special] 4) (defalias 'mh-folder-mode #[nil " \n!! \" !!&!\"!$!&(\\(B(!" [kill-all-local-variables use-local-map mh-folder-mode-map mh-folder-mode major-mode mh-set-mode-name "MH-Folder" make-local-vars mh-current-folder buffer-name mh-show-buffer format "show-%s" mh-folder-filename file-name-as-directory mh-expand-file-name mh-showing nil mh-next-seq-num 0 mh-delete-list mh-refile-list mh-seq-list mh-seen-list mh-next-direction forward mh-narrowed-to-seq mh-first-msg-num mh-last-msg-num mh-previous-window-config t truncate-lines auto-save-mode -1 buffer-offer-save make-local-variable local-write-file-hooks (mh-execute-commands) revert-buffer-function mh-undo-folder minor-mode-alist (mh-showing " Show") run-hooks mh-folder-mode-hook] 29 "\ Major mh-e mode for \"editing\" an MH folder scan listing.\\ You can show the message the cursor is pointing to, and step through the messages. Messages can be marked for deletion or refiling into another folder; these commands are executed all at once with a separate command. A prefix argument (\\[universal-argument]) to delete, refile, list, or undo applies the action to a message sequence. Here is a list of the standard keys for mh-e commands, grouped by function. This list is purposefully not customized; mh-e has a long history, and many alternate key bindings as a result. This list is to encourage users to use standard keys so the other keys can perhaps someday be put to new uses. t toggle show or scan-only mode . show message, or back to top if already showing SPC page forward DEL page back n next message p previous message j jump to message by number d mark for deletion o, ^ mark for output (refile) to another folder ? show folder of pending refile u undo delete or refile marking x execute marked deletes and refiles i incorporate new mail m mail a new message r reply to a message f forward a message q quit mh-e M-f visit new folder M-r rescan this folder Here are all the commands with their current binding, listed in key order: \\{mh-folder-mode-map} Variables controlling mh-e operation are (defaults in parentheses): mh-recursive-folders (nil) Non-nil means commands which operate on folders do so recursively. mh-bury-show-buffer (t) Non-nil means that the buffer used to display message is buried. It will never be offered as the default other buffer. mh-clean-message-header (nil) Non-nil means remove header lines matching the regular expression specified in mh-invisible-headers from messages. mh-visible-headers (nil) If non-nil, it contains a regexp specifying the headers that are shown in a message if mh-clean-message-header is non-nil. Setting this variable overrides mh-invisible-headers. mh-do-not-confirm (nil) Non-nil means do not prompt for confirmation before executing some non-recoverable commands such as mh-kill-folder and mh-undo-folder. mhl-formfile (nil) Name of format file to be used by mhl to show messages. A value of T means use the default format file. Nil means don't use mhl to format messages. mh-lpr-command-format (\"lpr -p -J '%s'\") Format for command used to print a message on a system printer. mh-scan-prog (\"scan\") Program to run to generate one-line-per-message listing of a folder. Normally \"scan\" or a file name linked to scan. This file is searched for relative to the mh-progs directory unless it is an absolute pathname. Automatically becomes buffer-local when set in any fashion. mh-print-background (nil) Print messages in the background if non-nil. WARNING: do not delete the messages until printing is finished; otherwise, your output may be truncated. mh-recenter-summary-p (nil) If non-nil, then the scan listing is recentered when the window displaying a messages is toggled off. mh-summary-height (4) Number of lines in the summary window including the mode line. mh-ins-buf-prefix (\"> \") String to insert before each non-blank line of a message as it is inserted in a draft letter. The value of mh-folder-mode-hook is called when a new folder is set up."]) (byte-code "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" [defalias make-local-vars #[(&rest pairs) "@!@A@LAA‡" [pairs make-variable-buffer-local nil] 3] mh-scan-folder #[(folder range) " ! ! ! !! U;ɚ0 \"7 #! " [get-buffer folder mh-make-folder mh-process-or-undo-commands switch-to-buffer mh-regenerate-headers range buffer-size 0 "all" message "Folder %s is empty" "No messages in %s, range %s" sit-for 5 mh-goto-cur-msg] 4] mh-regenerate-headers #[(range) " \" ʼn  &eb!4!?!?!! \" ܚ?W!!+! \")" [mh-current-folder folder message "Scanning %s..." buffer-modified-p nil buffer-file-name buffer-read-only mh-folder-updating-mod-flag erase-buffer mh-exec-cmd-output mh-scan-prog "-noclear" "-noheader" "-width" window-width range looking-at "scan: no messages in" keep-lines mh-valid-scan-line "scan: " mh-delete-seq-locally cur mh-read-folder-sequences mh-seq-list mh-notate-user-sequences mh-make-folder-mode-line "all" mh-partial-folder-mode-line-annotation mh-set-folder-modified-p "Scanning %s...done"] 9] mh-get-new-mail #[(maildrop-name) "` \n \n## \"!db`\nG \n! &P $\n_ \n#c \"!b!\nz݂{\n\n##!!@&&&#(!+#*-!! \"0 \n \fb)!." [mh-current-folder nil new-mail-p folder point-before-inc buffer-modified-p buffer-file-name buffer-read-only mh-folder-updating-mod-flag message maildrop-name format "inc %s -file %s..." "inc %s..." forward mh-next-direction start-of-inc mh-exec-cmd-output mh-inc-prog "-file" expand-file-name "-width" window-width "-truncate" "inc %s -file %s...done" "inc %s...done" looking-at "inc: no mail" "No new mail%s%s" " in " "" re-search-forward "^inc:" t error "inc error" mh-seq-to-msgs cur cur-msg mh-goto-msg mh-cur-scan-msg-regexp mh-notate 32 mh-cmd-note keep-lines mh-valid-scan-line mh-delete-seq-locally mh-read-folder-sequences mh-seq-list mh-notate-user-sequences mh-goto-cur-msg mh-make-folder-mode-line mh-set-folder-modified-p] 9] mh-make-folder-mode-line #[(&optional annotation) " ! !ed\"\n$\n\"%U1΂DV@ #D \"$C*" [mh-first-msg mh-get-msg-num nil mh-first-msg-num mh-last-msg mh-last-msg-num count-lines lines format "{%%b%s} %d msg%s" annotation "/%s" "" 0 "s" 1 "s (%d-%d)" " (%d)" mode-line-buffer-identification] 8] mh-unmark-all-headers #[(remove-all-flags) "d Z ` XA ug.\n=4\n=4\n=4\n=;!cy\f," [nil mh-cmd-note char last-line case-fold-search mh-first-msg remove-all-flags 68 94 37 43 delete-char 1 " "] 3] mh-goto-cur-msg #[nil "!@\"\n#\"#!\n!( !)" [mh-seq-to-msgs cur cur-msg mh-goto-msg t nil mh-notate 43 mh-cmd-note mh-recenter 0 mh-maybe-show mh-last-msg message "No current message"] 5] mh-process-or-undo-commands #[(folder) "q \n!! " [folder mh-outstanding-commands-p mh-do-not-confirm y-or-n-p "Process outstanding deletes and refiles (or lose them)? " mh-process-commands mh-undo-folder mh-update-unseen mh-invalidate-show-buffer] 2] mh-process-commands #[(folder) "\n\"\nq ĉ  \" \f2\n\f$\f!\f VD!B\"!![!!![ \"! \n\"!+!" [message "Processing deletes and refiles for %s..." folder buffer-modified-p nil buffer-file-name buffer-read-only mh-folder-updating-mod-flag mh-update-unseen mh-mapc #[(dest) " ! !\n&\n!)" [mh-seq-to-msgs dest msgs apply mh-exec-cmd "refile" "-src" folder symbol-name mh-delete-scan-msgs] 8] mh-refile-list mh-delete-list apply mh-exec-cmd "rmm" mh-delete-scan-msgs buffer-size 0 mh-define-sequence cur mh-get-msg-num "last" get-buffer mh-show-buffer file-exists-p mh-invalidate-show-buffer mh-read-folder-sequences mh-current-folder mh-seq-list mh-unmark-all-headers t mh-notate-user-sequences "Processing deletes and refiles for %s...done" mh-set-folder-modified-p] 5] mh-update-unseen #[nil "\n!\n\"ĉ" [mh-seen-list mh-seq-to-msgs mh-unseen-seq mh-undefine-sequence nil] 3] mh-delete-scan-msgs #[(msgs) " \" 2`dW2! @,`y`)| A\ny )" [sort msgs < mh-first-msg mh-get-msg-num nil] 4] mh-outstanding-commands-p #[nil " " [mh-delete-list mh-refile-list] 1] mh-delete-seq-locally #[(seq) " !\n\f\")" [mh-find-seq seq entry delq mh-seq-list] 3] mh-read-folder-sequences #[(folder save-refiles) "\n \"$=5#1ʔʕ{! \" Be`|) )" [nil seqs save-refiles mh-mapc #[(seq) " @!\f \nB" [mh-folder-name-p seq seqs] 2] mh-seq-list mh-exec-cmd-quiet "mark" folder "-list" 0 re-search-forward "^[^: ]+" t mh-make-seq intern mh-read-msg-list] 5] mh-read-msg-list #[nil "`)\n#cȔȕ{!!Vu\n#Ȕȕ{!\f W@ \f# \fXR B TA) U B +" [nil num end-of-line msgs re-search-forward "[0-9]+" t string-to-int 0 looking-at "-" 1 num2 error "Bad message range: %d-%d"] 5] mh-notate-user-sequences #[nil "\" @@\n!\nT# A*" [mh-seq-list nil name seqs mh-internal-seq mh-notate-seq 37 mh-cmd-note] 5] mh-internal-seq #[(name) ">\n= =!" [name (answered cur deleted forwarded printed) mh-unseen-seq mh-previous-seq mh-folder-name-p] 2]] 3) (defalias 'mh-delete-msg-from-seq #[(msg seq &optional internal-flag) " !#\fT\n@$ \f\"\n\f\nA\")" [mh-find-seq seq entry mh-notate-if-in-one-seq msg 32 mh-cmd-note internal-flag mh-undefine-sequence delq] 6 "\ Delete MESSAGE from SEQUENCE. MESSAGE defaults to displayed message. From Lisp, optional third arg INTERNAL non-nil means do not inform MH of the change." (list (mh-get-msg-num t) (mh-read-seq-default "Delete from" t) nil)]) (byte-code "\"\"\"\"\"\"\"!#######################@A#BC#DE#FG#HI#JK#LK#MN#OP#QP#RS#TS#UV#WV#XY#Z[#\\]#^_#`a#bc#de#fg#hi#jk#lm#nm#op#qp#rs#" [defalias mh-undefine-sequence #[(seq msgs) "\n!&" [mh-exec-cmd "mark" mh-current-folder "-delete" "-sequence" symbol-name seq msgs] 7] mh-define-sequence #[(seq msgs) "\n!?\n!&)" [msgs mh-folder-name-p seq mh-exec-cmd-error nil "mark" mh-current-folder "-add" "-zero" "-sequence" symbol-name] 9] mh-define-sequences #[(seq-list) "\n\"" [mh-map-over-seqs mh-define-sequence seq-list] 3] mh-map-over-seqs #[(func seq-list) " @@@A\"A‡" [seq-list func nil] 4] mh-notate-if-in-one-seq #[(msg notation offset seq) " ! \n@=\nA? #)" [mh-seq-containing-msg msg in-seqs seq mh-notate notation offset] 4] mh-seq-containing-msg #[(msg) "\f @A> @@\nB A\n*" [mh-seq-list nil seqs l msg] 3] mh-read-msg-range #[(prompt) " !G W(\n # @B A)\f," [read-string prompt buf buf-size 0 start nil input read-from-string next] 5] suppress-keymap mh-folder-mode-map define-key "q" mh-quit "b" mh-compat-quit "?" mh-msg-is-in-seq "%" mh-put-msg-in-seq "|" mh-pipe-msg "a" mh-edit-again "%" mh-delete-msg-from-seq "#" mh-delete-seq "n" mh-narrow-to-seq "w" mh-widen "b" mh-burst-digest "u" mh-undo-folder " " mh-page-digest "" mh-page-digest-backwards "d" mh-redistribute "e" mh-extract-rejected-mail "f" mh-visit-folder "k" mh-kill-folder "l" mh-list-folders "n" mh-store-msg "p" mh-pack-folder "q" mh-list-sequences "s" mh-search-folder "r" mh-rescan-folder "l" mh-print-msg "t" mh-toggle-showing "c" mh-copy-msg "i" mh-inc-folder "x" mh-execute-commands "e" "f" mh-forward "m" mh-send "s" "r" mh-reply "a" "j" mh-goto-msg "g" ">" mh-last-msg "" mh-previous-page " " mh-page-msg "." mh-show "," mh-header-display "u" mh-undo "d" mh-delete-msg "" mh-delete-msg-no-motion "p" mh-previous-undeleted-msg "n" mh-next-undeleted-msg "o" mh-refile-msg "^" "" mh-write-msg-to-file ">" "!" mh-refile-or-write-again] 4) (autoload (quote mh-smail) "mh-comp" "\ Compose and send mail with the MH mail system." t) (autoload (quote mh-smail-other-window) "mh-comp" "\ Compose and send mail in other window with the MH mail system." t) (autoload (quote mh-edit-again) "mh-comp" "\ Clean-up a draft or a message previously sent and make it resendable." t) (autoload (quote mh-extract-rejected-mail) "mh-comp" "\ Extract a letter returned by the mail system and make it resendable." t) (autoload (quote mh-forward) "mh-comp" "\ Forward MESSAGE(s) (default: displayed message)." t) (autoload (quote mh-redistribute) "mh-comp" "\ Redistribute a letter." t) (autoload (quote mh-reply) "mh-comp" "\ Reply to a MESSAGE (default: displayed message)." t) (autoload (quote mh-send) "mh-comp" "\ Compose and send a letter." t) (autoload (quote mh-send-other-window) "mh-comp" "\ Compose and send a letter in another window." t) (autoload (quote mh-letter-mode) "mh-comp" "\ Mode for composing letters in mh-e." t) (autoload (quote mh-burst-digest) "mh-funcs" "\ Burst apart the current message, which should be a digest." t) (autoload (quote mh-copy-msg) "mh-funcs" "\ Copy specified MESSAGE(s) to another FOLDER without deleting them." t) (autoload (quote mh-kill-folder) "mh-funcs" "\ Remove the current folder." t) (autoload (quote mh-list-folders) "mh-funcs" "\ List mail folders." t) (autoload (quote mh-pack-folder) "mh-funcs" "\ Renumber the messages of a folder to be 1..n." t) (autoload (quote mh-pipe-msg) "mh-funcs" "\ Pipe the current message through the given shell COMMAND." t) (autoload (quote mh-page-digest) "mh-funcs" "\ Advance displayed message to next digested message." t) (autoload (quote mh-page-digest-backwards) "mh-funcs" "\ Back up displayed message to previous digested message." t) (autoload (quote mh-print-msg) "mh-funcs" "\ Print MESSAGE(s) (default: displayed message) on a line printer." t) (autoload (quote mh-sort-folder) "mh-funcs" "\ Sort the messages in the current folder by date." t) (autoload (quote mh-undo-folder) "mh-funcs" "\ Undo all commands in current folder." t) (autoload (quote mh-store-msg) "mh-funcs" "\ Store the file(s) contained in the current message into DIRECTORY. The message can contain a shar file or uuencoded file." t) (autoload (quote mh-store-buffer) "mh-funcs" "\ Store the file(s) contained in the current buffer into DIRECTORY. The buffer can contain a shar file or uuencoded file." t) (autoload (quote mh-search-folder) "mh-pick" "\ Search FOLDER for messages matching a pattern." t) (autoload (quote mh-put-msg-in-seq) "mh-seq" "\ Add MESSAGE(s) (default: displayed message) to SEQUENCE." t) (autoload (quote mh-delete-seq) "mh-seq" "\ Delete the SEQUENCE." t) (autoload (quote mh-list-sequences) "mh-seq" "\ List the sequences defined in FOLDER." t) (autoload (quote mh-msg-is-in-seq) "mh-seq" "\ Display the sequences that contain MESSAGE (default: displayed message)." t) (autoload (quote mh-narrow-to-seq) "mh-seq" "\ Restrict display of this folder to just messages in a sequence." t) (autoload (quote mh-widen) "mh-seq" "\ Remove restrictions from current folder, thereby showing all messages." t) (autoload (quote mh-rename-seq) "mh-seq" "\ Rename a SEQUENCE to have a new NAME." t)