MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.218.164.141
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/mh-e/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/mh-e/mh-folder.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:37 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/mh-e/mh-folder.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\"\210\303\306\305\"\210\300\307!\210\303\310\311\"\207" [require mh-e mh-scan autoload mh-tool-bar-folder-buttons-init "mh-tool-bar" mh-tool-bar-init gnus-util message-fetch-field "message"] 3)
#@153 Incorporate new mail with MH.
Scan an MH folder if ARG is non-nil.

This function is an entry point to MH-E, the Emacs interface to
the MH mail system.
(defalias 'mh-rmail #[(&optional arg) "\303 \210\203\304\305!\207\306	!\204\305	\307\n!\"\210\310 \207" [arg mh-inbox mh-unseen-seq mh-find-path call-interactively mh-visit-folder get-buffer symbol-name mh-inc-folder] 4 (#$ . 803) "P"])
#@159 Check for new mail in inbox folder.
Scan an MH folder if ARG is non-nil.

This function is an entry point to MH-E, the Emacs interface to
the MH mail system.
(defalias 'mh-nmail #[(&optional arg) "\302 \210\203\303\304!\207\304	!\207" [arg mh-inbox mh-find-path call-interactively mh-visit-folder] 2 (#$ . 1204) "P"])
(byte-code "\300\301!\203\302\301\303\"\210\300\207" [boundp desktop-buffer-mode-handlers add-to-list (mh-folder-mode . mh-restore-desktop-buffer)] 3)
#@303 Restore an MH folder buffer specified in a desktop file.
When desktop creates a buffer, DESKTOP-BUFFER-FILE-NAME holds the
file name to visit, DESKTOP-BUFFER-NAME holds the desired buffer
name, and DESKTOP-BUFFER-MISC holds a list of miscellaneous info
used by the `desktop-buffer-handlers' functions.
(defalias 'mh-restore-desktop-buffer #[(desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc) "\301 \210\302!\210p\207" [desktop-buffer-name mh-find-path mh-visit-folder] 2 (#$ . 1685)])
#@41 Full path of directory for this folder.
(defvar mh-folder-filename nil (#$ . 2193))
#@118 Annotation when displaying part of a folder.
The string is displayed after the folder's name. nil for no
annotation.
(defvar mh-partial-folder-mode-line-annotation "select" (#$ . 2284))
#@46 Destination of last refile or write command.
(defvar mh-last-destination nil (#$ . 2476))
#@37 Destination of last refile command.
(defvar mh-last-destination-folder nil (#$ . 2572))
#@36 Destination of last write command.
(defvar mh-last-destination-write nil (#$ . 2666))
#@36 Number of first message in buffer.
(defvar mh-first-msg-num nil (#$ . 2758))
#@31 Number of last msg in buffer.
(defvar mh-last-msg-num nil (#$ . 2841))
#@27 Number of msgs in buffer.
(defvar mh-msg-count nil (#$ . 2918))
#@32 Menu for MH-E folder-sequence.
(defvar mh-folder-sequence-menu nil (#$ . 2988))
(easy-menu-do-define 'mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence." '("Sequence" ["Add Message to Sequence..." mh-put-msg-in-seq (mh-get-msg-num nil)] ["List Sequences for Message" mh-msg-is-in-seq (mh-get-msg-num nil)] ["Delete Message from Sequence..." mh-delete-msg-from-seq (mh-get-msg-num nil)] ["List Sequences in Folder..." mh-list-sequences t] ["Delete Sequence..." mh-delete-seq t] ["Narrow to Sequence..." mh-narrow-to-seq t] ["Widen from Sequence" mh-widen mh-folder-view-stack] "--" ["Narrow to Subject Sequence" mh-narrow-to-subject t] ["Narrow to Tick Sequence" mh-narrow-to-tick (and mh-tick-seq (mh-seq-msgs (mh-find-seq mh-tick-seq)))] ["Delete Rest of Same Subject" mh-delete-subject t] ["Toggle Tick Mark" mh-toggle-tick t] "--" ["Push State Out to MH" mh-update-sequences t]))
#@31 Menu for MH-E folder-message.
(defvar mh-folder-message-menu nil (#$ . 3901))
(easy-menu-do-define 'mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message." '("Message" ["Show Message" mh-show (mh-get-msg-num nil)] ["Show Message with Header" mh-header-display (mh-get-msg-num nil)] ["Show Message with Preferred Alternative" mh-show-preferred-alternative (mh-get-msg-num nil)] ["Next Message" mh-next-undeleted-msg t] ["Previous Message" mh-previous-undeleted-msg t] ["Go to First Message" mh-first-msg t] ["Go to Last Message" mh-last-msg t] ["Go to Message by Number..." mh-goto-msg t] ["Modify Message" mh-modify t] ["Delete Message" mh-delete-msg (mh-get-msg-num nil)] ["Refile Message" mh-refile-msg (mh-get-msg-num nil)] ["Undo Delete/Refile" mh-undo (mh-outstanding-commands-p)] ["Execute Delete/Refile" mh-execute-commands (mh-outstanding-commands-p)] "--" ["Compose a New Message" mh-send t] ["Reply to Message..." mh-reply (mh-get-msg-num nil)] ["Forward Message..." mh-forward (mh-get-msg-num nil)] ["Redistribute Message..." mh-redistribute (mh-get-msg-num nil)] ["Edit Message Again" mh-edit-again (mh-get-msg-num nil)] ["Re-edit a Bounced Message" mh-extract-rejected-mail t] "--" ["Copy Message to Folder..." mh-copy-msg (mh-get-msg-num nil)] ["Print Message" mh-print-msg (mh-get-msg-num nil)] ["Write Message to File..." mh-write-msg-to-file (mh-get-msg-num nil)] ["Pipe Message to Command..." mh-pipe-msg (mh-get-msg-num nil)] ["Unpack Uuencoded Message..." mh-store-msg (mh-get-msg-num nil)] ["Burst Digest Message" mh-burst-digest (mh-get-msg-num nil)]))
#@23 Menu for MH-E folder.
(defvar mh-folder-folder-menu nil (#$ . 5500))
(byte-code "\302\303\304\305$\210\306!\210\307\310\311\"\210\307\312\313\"\210\307\314\315\"\210\307\316\317\"\210\320\300\321\"\210\320\322\323\"\210\324\325	#\210\320\326\327\"\210\320\330\331\"\210\320\332\333\"\210\320\334\335\"\210\320\336\337\"\210\320\340\341\"\210\320\342\343\"\210\320\344\345\"\210\324\346\347#\207" [mh-folder-mode-map mh-inc-spool-map easy-menu-do-define mh-folder-folder-menu "Menu for MH-E folder." ("Folder" ["Incorporate New Mail" mh-inc-folder t] ["Toggle Show/Folder" mh-toggle-showing t] ["Execute Delete/Refile" mh-execute-commands (mh-outstanding-commands-p)] ["Rescan Folder" mh-rescan-folder t] ["Thread Folder" mh-toggle-threads (not (memq 'unthread mh-view-ops))] ["Pack Folder" mh-pack-folder t] ["Sort Folder" mh-sort-folder t] "--" ["List Folders" mh-list-folders t] ["Visit a Folder..." mh-visit-folder t] ["View New Messages" mh-index-new-messages t] ["Search..." mh-search t] "--" ["Quit MH-E" mh-quit t]) suppress-keymap defalias mh-alt-show mh-show mh-alt-refile-msg mh-refile-msg mh-alt-send mh-send mh-alt-visit-folder mh-visit-folder gnus-define-keys-1 (" " mh-page-msg "!" mh-refile-or-write-again "'" mh-toggle-tick "," mh-header-display "." mh-alt-show ":" mh-show-preferred-alternative ";" mh-toggle-mh-decode-mime-flag ">" mh-write-msg-to-file "?" mh-help "E" mh-extract-rejected-mail "M" mh-modify "" mh-previous-page "" mh-delete-msg-no-motion "	" mh-index-next-folder [backtab] mh-index-previous-folder "\211" mh-index-previous-folder "<" mh-first-msg ">" mh-last-msg "d" mh-redistribute "
" mh-show "^" mh-alt-refile-msg "c" mh-copy-msg "d" mh-delete-msg "e" mh-edit-again "f" mh-forward "g" mh-goto-msg "i" mh-inc-folder "k" mh-delete-subject-or-thread "m" mh-alt-send "n" mh-next-undeleted-msg "\356" mh-next-unread-msg "o" mh-refile-msg "p" mh-previous-undeleted-msg "\360" mh-previous-unread-msg "q" mh-quit "r" mh-reply "s" mh-send "t" mh-toggle-showing "u" mh-undo "v" mh-index-visit-folder "x" mh-execute-commands "|" mh-pipe-msg) (mh-folder-map "F" mh-folder-mode-map) ("?" mh-prefix-help "'" mh-index-ticked-messages "S" mh-sort-folder "c" mh-catchup "f" mh-alt-visit-folder "k" mh-kill-folder "l" mh-list-folders "n" mh-index-new-messages "o" mh-alt-visit-folder "p" mh-pack-folder "q" mh-index-sequenced-messages "r" mh-rescan-folder "s" mh-search "u" mh-undo-folder "v" mh-visit-folder) define-key "I" (mh-junk-map "J" mh-folder-mode-map) ("?" mh-prefix-help "b" mh-junk-blacklist "w" mh-junk-whitelist) (mh-ps-print-map "P" mh-folder-mode-map) ("?" mh-prefix-help "C" mh-ps-print-toggle-color "F" mh-ps-print-toggle-faces "f" mh-ps-print-msg-file "l" mh-print-msg "p" mh-ps-print-msg) (mh-sequence-map "S" mh-folder-mode-map) ("'" mh-narrow-to-tick "?" mh-prefix-help "d" mh-delete-msg-from-seq "k" mh-delete-seq "l" mh-list-sequences "n" mh-narrow-to-seq "p" mh-put-msg-in-seq "s" mh-msg-is-in-seq "w" mh-widen) (mh-thread-map "T" mh-folder-mode-map) ("?" mh-prefix-help "u" mh-thread-ancestor "p" mh-thread-previous-sibling "n" mh-thread-next-sibling "t" mh-toggle-threads "d" mh-thread-delete "o" mh-thread-refile) (mh-limit-map "/" mh-folder-mode-map) ("'" mh-narrow-to-tick "?" mh-prefix-help "c" mh-narrow-to-cc "g" mh-narrow-to-range "m" mh-narrow-to-from "s" mh-narrow-to-subject "t" mh-narrow-to-to "w" mh-widen) (mh-extract-map "X" mh-folder-mode-map) ("?" mh-prefix-help "s" mh-store-msg "u" mh-store-msg) (mh-digest-map "D" mh-folder-mode-map) (" " mh-page-digest "?" mh-prefix-help "" mh-page-digest-backwards "b" mh-burst-digest) (mh-mime-map "K" mh-folder-mode-map) ("?" mh-prefix-help "a" mh-mime-save-parts "e" mh-display-with-external-viewer "i" mh-folder-inline-mime-part "o" mh-folder-save-mime-part "t" mh-toggle-mime-buttons "v" mh-folder-toggle-mime-part "	" mh-next-button [backtab] mh-prev-button "\211" mh-prev-button) [mouse-2] mh-show-mouse] 5)
#@45 Key binding cheat sheet.
See `mh-set-help'.
(defvar mh-folder-mode-help-messages '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n" "[d]elete, [o]refile, e[x]ecute,\n" "[s]end, [r]eply,\n" "[;]toggle MIME decoding.\n" "Prefix characters:\n [F]older, [S]equence, [J]unk, MIME [K]eys," "\n [T]hread, [/]limit, e[X]tract, [D]igest, [I]nc spools.") (70 "[l]ist; [v]isit folder;\n" "[n]ew messages; [']ticked messages; [s]earch;\n" "[p]ack; [S]ort; [r]escan; [k]ill") (80 "[p]rint message to [f]ile; old-style [l]pr printing;\n" "Toggle printing of [C]olors, [F]aces") (83 "[p]ut message in sequence, [n]arrow, [']narrow to ticked, [w]iden,\n" "[s]equences, [l]ist,\n" "[d]elete message from sequence, [k]ill sequence") (84 "[t]oggle, [d]elete, [o]refile thread") (47 "Limit to [c]c, ran[g]e, fro[m], [s]ubject, [t]o; [w]iden") (88 "un[s]har, [u]udecode message") (68 "[b]urst digest") (75 "[v]iew, [i]nline, with [e]xternal viewer; \n" "[o]utput/save MIME part; save [a]ll parts; \n" "[t]oggle buttons; [TAB] next; [SHIFT-TAB] previous") (74 "[b]lacklist, [w]hitelist message")) (#$ . 9433))
#@70 Keywords (regular expressions) used to fontify the MH-Folder buffer.
(defvar mh-folder-font-lock-keywords (byte-code "\306\307D\310P\311D	\310P\312D\n\313D\314\315D\f\316D
\317D\320\321E\322\323E\257\n\207" [mh-scan-deleted-msg-regexp mh-scan-refiled-msg-regexp mh-scan-body-regexp mh-scan-cur-msg-number-regexp mh-scan-good-msg-regexp mh-scan-date-regexp "^\\+.*" (0 'mh-search-folder) ".*" (0 'mh-folder-deleted) (0 'mh-folder-refiled) (1 'mh-folder-body nil t) (mh-folder-font-lock-subject (1 'mh-folder-followup append t) (2 'mh-folder-subject append t)) (1 'mh-folder-cur-msg-number) (1 'mh-folder-msg-number) (1 'mh-folder-date) (1 'mh-folder-to) (2 'mh-folder-address) (1 'mh-folder-sent-to-me-hint) (2 'mh-folder-sent-to-me-sender) mh-scan-rcpt-regexp mh-scan-sent-to-me-sender-regexp] 12) (#$ . 10536))
#@72 Return MH-E scan subject strings to font-lock between point and LIMIT.
(defalias 'mh-folder-font-lock-subject #[(limit) "\302	\303#\205/\304\224\203\305\304\224\306\225\304\224\306\225\307\211\257!\210\202.\305\306\224\306\225\307\211\306\224\306\225\257!\210\303\207" [mh-scan-subject-regexp limit re-search-forward t 1 set-match-data 3 nil] 7 (#$ . 11360)])
#@284 Generate the appropriate code to fontify messages in SEQ.
PREFIX is used to generate unique names for the variables and
functions defined by the macro. So a different prefix should be
provided for every invocation.
FACE is the font-lock face used to display the matching scan lines.
(defalias 'mh-generate-sequence-font-lock '(macro . #[(seq prefix face) "\305\306\307\"!\305\306\310\"!\311\312\n\313BB\314\315\nDD\316	\317\320\321\322\nD\323\n\324\325DDEE\326\327\330\322\nD\331B\332\323\n\333BB\334BB\335\336\nE\326\337\321\340\323\n\341BBE\342BBBD\343\344\345\346\347\322\335\350\nEDFD\326\351\330\352\353\322\335\336\nEDE\323\n\354BB\355BB\335\336\nE\326\356\321\357\323\n\360BBE\361BBBDEEE\257E\257\323\362\363\362\364\211\315	D\364\365\315\211\fDD\366BBBEDEE\257*\207" [prefix func cache seq face intern format "mh-folder-%s-seq-cache" "mh-folder-font-lock-%s" progn defvar (nil "Internal cache variable used for font-lock in MH-E.\nShould only be non-nil through font-lock stepping, and nil once\nfont-lock is done highlighting.") make-variable-buffer-local quote defun (limit) "Return unseen message lines to font-lock between point and LIMIT." if not setq mh-seq-msgs mh-find-seq let ((cur-msg (mh-get-msg-num nil))) cond (nil) (>= (point) limit) (nil) (nil) member cur-msg ((bpoint (progn (beginning-of-line) (point))) (epoint (progn (forward-line 1) (point)))) (<= limit (point)) (nil) ((set-match-data (list bpoint epoint bpoint epoint)) t) t while and (= 0 (forward-line 1)) (> limit (point)) (mh-get-msg-num nil) ((cur-msg (mh-get-msg-num nil))) or (<= limit (point)) (nil) (nil) ((bpoint (progn (beginning-of-line) (point))) (epoint (progn (forward-line 1) (point)))) (<= limit (point)) (nil) ((set-match-data (list bpoint epoint bpoint epoint)) t) mh-folder-font-lock-keywords append list 1 ('prepend t)] 28 (#$ . 11734)]))
#@149 Internal cache variable used for font-lock in MH-E.
Should only be non-nil through font-lock stepping, and nil once
font-lock is done highlighting.
(defvar mh-folder-unseen-seq-cache nil (#$ . 13589))
(make-variable-buffer-local 'mh-folder-unseen-seq-cache)
#@67 Return unseen message lines to font-lock between point and LIMIT.
(defalias 'mh-folder-font-lock-unseen #[(limit) "\204\f\306	!\211A)\307\310!\204\310\202\235`\fY\203$\310\211\202\235\235\203L\311 \210`\312y\210`\f`X\203=\310\313

F!\210*\314\202\235\312y\315U\203a\f`V\203a\307\310!\235\203L\307\310!\f`X\204q\235\204w\310\211\202\234\235\205\234\311 \210`\312y\210`\f`X\203\220\310\313

F!\210*\314))\207" [mh-folder-unseen-seq-cache mh-unseen-seq sequence cur-msg limit epoint mh-find-seq mh-get-msg-num nil beginning-of-line 1 set-match-data t 0 bpoint] 6 (#$ . 13853)])
(byte-code "\301\302\303\304\305\306FDC\"\301\207" [mh-folder-font-lock-keywords append mh-folder-font-lock-unseen 1 'bold prepend t] 7)
#@149 Internal cache variable used for font-lock in MH-E.
Should only be non-nil through font-lock stepping, and nil once
font-lock is done highlighting.
(defvar mh-folder-tick-seq-cache nil (#$ . 14622))
(make-variable-buffer-local 'mh-folder-tick-seq-cache)
#@67 Return unseen message lines to font-lock between point and LIMIT.
(defalias 'mh-folder-font-lock-tick #[(limit) "\204\f\306	!\211A)\307\310!\204\310\202\235`\fY\203$\310\211\202\235\235\203L\311 \210`\312y\210`\f`X\203=\310\313

F!\210*\314\202\235\312y\315U\203a\f`V\203a\307\310!\235\203L\307\310!\f`X\204q\235\204w\310\211\202\234\235\205\234\311 \210`\312y\210`\f`X\203\220\310\313

F!\210*\314))\207" [mh-folder-tick-seq-cache mh-tick-seq sequence cur-msg limit epoint mh-find-seq mh-get-msg-num nil beginning-of-line 1 set-match-data t 0 bpoint] 6 (#$ . 14882)])
(byte-code "\301\302\303\304\305\306FDC\"\301\207" [mh-folder-font-lock-keywords append mh-folder-font-lock-tick 1 'mh-folder-tick prepend t] 7)
#@72 Get rid of the horizontal scrollbar that XEmacs insists on putting in.
(defalias 'mh-remove-xemacs-horizontal-scrollbar '(macro . #[nil "\300\207" [nil] 1 (#$ . 15652)]))
(byte-code "\301\302\303\304#\210\305\300!\203<\203\306\300\307\"\210\310\307\311\312#\210\313\314N\204*\310\313\314\315\316!#\210\305\317!\2046\310\317\320\307#\210\303\207" [which-func-modes mh-require which-func nil t boundp add-to-list mh-folder-mode put mode-class special mh-folder-mode-hook variable-documentation purecopy "Hook run when entering MH-Folder mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" mh-folder-mode-map definition-name] 5)
(defvar mh-folder-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [mh-folder-mode-map variable-documentation put purecopy "Keymap for `mh-folder-mode'." boundp mh-folder-mode-syntax-table definition-name mh-folder-mode] 5)
(defvar mh-folder-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [mh-folder-mode-syntax-table variable-documentation put purecopy "Syntax table for `mh-folder-mode'." mh-folder-mode-abbrev-table definition-name mh-folder-mode] 5)
(defvar mh-folder-mode-abbrev-table (progn (define-abbrev-table 'mh-folder-mode-abbrev-table nil) mh-folder-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [mh-folder-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `mh-folder-mode'." mh-folder-mode derived-mode-parent nil] 5)
#@1679 Major MH-E mode for "editing" an MH folder scan listing.\<mh-folder-mode-map>

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.

Options that control this mode can be changed with
\[customize-group]; specify the "mh" group. In particular, please
see the `mh-scan-format-file' option if you wish to modify scan's
format.

When a folder is visited, the hook `mh-folder-mode-hook' is run.

Ranges
======
Many commands that operate on individual messages, such as
`mh-forward' or `mh-refile-msg' take a RANGE argument. This argument
can be used in several ways.

If you provide the prefix argument (\[universal-argument]) to
these commands, then you will be prompted for the message range.
This can be any valid MH range which can include messages,
sequences, and the abbreviations (described in the mh(1) man
page):

<num1>-<num2>
    Indicates all messages in the range <num1> to <num2>, inclusive.
    The range must be nonempty.

<num>:N
<num>:+N
<num>:-N
    Up to N messages beginning with (or ending with) message num. Num
    may be any of the predefined symbols: first, prev, cur, next or
    last.

first:N
prev:N
next:N
last:N
    The first, previous, next or last messages, if they exist.

all
    All of the messages.

For example, a range that shows all of these things is `1 2 3
5-10 last:5 unseen'.

If the option `transient-mark-mode' is set to t and you set a
region in the MH-Folder buffer, then the MH-E command will
perform the operation on all messages in that region.

\{mh-folder-mode-map}
(defalias 'mh-folder-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210
@A\204 \315 \210\316\317!\203.\306\317!\210A\306\320!\210\321\306\322!\210\307\323\324\325 \326\327 \330\331\332\327 \"\333\334\335\327 !!\336\337\340 \341\342\343\344\345\342\346\342\347\342\350\342\351\342\352\353\354\342\355\342\356\342\357\342\360\342\361\342\362\342\363\342\364\342\365\342\366\342\367\370 \371\372\373\342&8\210\307B\374\375!\210\307C\376\377\201I\342\307$\210\306\201D!\210\306\201J!\210\201K\201J!\203\267\201J\201L!\210\201MD\201N\201O\201P\"\210\201QE!\210\201QF!\210\201QG!\210\201R \210\201SH!\210)\201T\201U!\207" [delay-mode-hooks major-mode mode-name mh-folder-mode-map mh-folder-mode-syntax-table mh-folder-mode-abbrev-table make-local-variable t kill-all-local-variables mh-folder-mode "MH-Folder" use-local-map set-syntax-table mh-tool-bar-folder-buttons-init boundp tool-bar-map font-lock-defaults (mh-folder-font-lock-keywords t) desktop-save-buffer mh-make-local-vars mh-colors-available-flag mh-colors-available-p mh-current-folder buffer-name mh-show-buffer format "show-%s" mh-folder-filename file-name-as-directory mh-expand-file-name mh-display-buttons-for-inline-parts-flag mh-arrow-marker make-marker overlay-arrow-position nil overlay-arrow-string ">" mh-showing-mode mh-delete-list mh-refile-list mh-seq-list mh-seen-list mh-next-direction forward mh-view-ops mh-folder-view-stack mh-index-data mh-index-previous-search mh-index-msg-checksum-map mh-index-checksum-origin-map mh-index-sequence-search-flag mh-first-msg-num mh-last-msg-num mh-msg-count mh-mode-line-annotation mh-sequence-notation-history make-hash-table imenu-create-index-function mh-index-create-imenu-index mh-previous-window-config auto-save-mode -1 add-hook write-file-functions local-abbrev-table mh-folder-tool-bar-map truncate-lines buffer-offer-save revert-buffer-function mh-folder-sequence-menu mh-folder-message-menu mh-folder-folder-menu mh-folder-mode-help-messages mh-execute-commands hl-line-mode fboundp 1 mh-undo-folder add-to-list minor-mode-alist (mh-showing-mode " Show") easy-menu-add mh-inc-spool-make mh-set-help run-mode-hooks mh-folder-mode-hook] 57 (#$ . 17327) nil])
#@786 Delete RANGE\<mh-folder-mode-map>.

To mark a message for deletion, use this command. A "D" is
placed by the message in the scan window, and the next undeleted
message is displayed. If the previous command had been
\[mh-previous-undeleted-msg], then the next message displayed is
the first undeleted message previous to the message just deleted.
Use \[mh-next-undeleted-msg] to force subsequent
\[mh-delete-msg] commands to move forward to the next undeleted
message after deleting the message under the cursor.

The hook `mh-delete-msg-hook' is called after you mark a message
for deletion. For example, a past maintainer of MH-E used this
once when he kept statistics on his mail usage.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.
(defalias 'mh-delete-msg #[(range) "\302!\210\303	!\205\f\304 \207" [range mh-scan-deleted-msg-regexp mh-delete-msg-no-motion looking-at mh-next-msg] 2 (#$ . 21251) (list (mh-interactive-range "Delete"))])
#@288 Delete RANGE, don't move to next message.

This command marks the RANGE for deletion but leaves the cursor
at the current message in case you wish to perform other
operations on the message.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.
(defalias 'mh-delete-msg-no-motion #[(range) "\247\203\306\307\211#\205\277\310\311!\207:\203H@\247\203HA\247\203H\212@b\210\312 \210`AX\205Fm?\205F\313	!\203@\310\311!\210\314y\210\202*)\207\203W9\203W\315!\202d;\203c\316\n\"\202d\317 \211\311\211\203\215@\211\320\307#\210*A\211\204q*\212eb\210\312 \210`dX\205\276m?\205\276\313	!\203\270\321\307!\322\"\203\267\310\311!\210)\314y\210\202\225+\207" [range mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table #2=#:msgs msg mh-goto-msg t mh-delete-a-msg nil beginning-of-line looking-at 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash mh-get-msg-num gethash --dolist-tail-- #3=#:v #4=#:v v] 5 (#$ . 22251) (list (mh-interactive-range "Delete"))])
#@618 Process outstanding delete and refile requests\<mh-folder-mode-map>.

If you've marked messages to be deleted or refiled and you want
to go ahead and delete or refile the messages, use this command.
Many MH-E commands that may affect the numbering of the
messages (such as \[mh-rescan-folder] or \[mh-pack-folder])
will ask if you want to process refiles or deletes first and then
either run this command for you or undo the pending refiles and
deletes.

This function runs `mh-before-commands-processed-hook' before the
commands are processed and `mh-after-commands-processed-hook'
after the commands are processed.
(defalias 'mh-execute-commands #[nil "\203\302\303!\210\304	!\210\305 \210\306 \210\307 \210\303\207" [mh-folder-view-stack mh-current-folder mh-widen t mh-process-commands mh-set-scan-mode mh-goto-cur-msg mh-make-folder-mode-line] 2 (#$ . 23322) nil])
#@24 Display first message.
(defalias 'mh-first-msg #[nil "eb\210m?\205\301!?\205\302y\210\202\207" [mh-scan-valid-regexp looking-at 1] 2 (#$ . 24201) nil])
#@446 Go to a message\<mh-folder-mode-map>.

You can enter the message NUMBER either before or after typing
\[mh-goto-msg]. In the latter case, Emacs prompts you.

In a program, optional non-nil second argument NO-ERROR-IF-NO-MESSAGE
means return nil instead of signaling an error if message does not
exist; in this case, the cursor is positioned near where the message
would have been. Non-nil third argument DONT-SHOW means not to show
the message.
(defalias 'mh-goto-msg #[(number &optional no-error-if-no-message dont-show) "\305!`\306eb\210\307\310\311 \"\312\306#\204%\nb\210\204#\313\314\"\210\312\315 \210\f\2044	\2034\316!\210	*\207" [number return-value point no-error-if-no-message dont-show prefix-numeric-value t re-search-forward format mh-scan-msg-search-regexp nil error "No message %d" beginning-of-line mh-maybe-show] 4 (#$ . 24367) "NGo to message: "])
#@358 Incorporate new mail into a folder.

You can incorporate mail from any file into the current folder by
specifying a prefix argument; you'll be prompted for the name of
the FILE to use as well as the destination FOLDER

The hook `mh-inc-folder-hook' is run after incorporating new
mail.

Do not call this function from outside MH-E; use \[mh-rmail]
instead.
(defalias 'mh-inc-folder #[(&optional file folder) "\204	\306\307 \f\203\310\f!\203\311\f!\210\310!\204+\312!\210
\202:p\310!=\204:\313!\210)\314!\210\n\203d\212eb\210?\206]Ty\315\232?\206]\316\317!\210\306)\203d\320 \210\321 \210\203v\322!\203v\323 \210\324\325!)\207" [folder mh-inbox threading-needed-flag config mh-show-buffer mh-show-threads-flag nil current-window-configuration get-buffer delete-windows-on mh-make-folder switch-to-buffer mh-get-new-mail 0 message "Not threading since the number of messages exceeds `mh-large-folder'" mh-toggle-threads beginning-of-line looking-at mh-show run-hooks mh-inc-folder-hook mh-previous-window-config file mh-large-folder mh-showing-mode mh-scan-valid-regexp] 3 (#$ . 25253) (list (if current-prefix-arg (expand-file-name (read-file-name "inc mail from file: " mh-user-path))) (if current-prefix-arg (mh-prompt-for-folder "inc mail into" mh-inbox t)))])
#@23 Display last message.
(defalias 'mh-last-msg #[nil "db\210o\204\301!\204\302y\210\202\303\304!\207" [mh-scan-valid-regexp looking-at -1 mh-recenter nil] 2 (#$ . 26562) nil])
#@359 Edit message.

There are times when you need to edit a message. For example, you
may need to fix a broken Content-Type header field. You can do
this with this command. It displays the raw message in an
editable buffer. When you are done editing, save and kill the
buffer as you would any other.

From a program, edit MESSAGE; nil means edit current message.
(defalias 'mh-modify #[(&optional message) "\206\306\307!\310!\311\312	!\204\313\314\"\210\315\316!!\203/rq\210\f)	\232\203/\317 \210\320	!\210p\321 \210\322
!\210\323 \210\324\n!+\207" [message msg-filename edit-buffer mh-show-buffer buffer-file-name text-mode-map mh-get-msg-num t mh-msg-filename nil file-exists-p error "Message %d does not exist" buffer-live-p get-buffer mh-invalidate-show-buffer find-file mh-letter-mode use-local-map delete-other-windows switch-to-buffer] 3 (#$ . 26750) nil])
#@217 Go to the next button.

If the end of the buffer is reached then the search wraps over to
the start of the buffer.

If an optional prefix argument BACKWARD-FLAG is given, the cursor
will move to the previous button.
(defalias 'mh-next-button #[(&optional backward-flag) "\204\305 \210\306 \307\n!\210\203\310p!\210\311\216\312\f!*\207" [mh-showing-mode mh-in-show-buffer-saved-window mh-show-buffer mh-bury-show-buffer-flag backward-flag mh-show selected-window switch-to-buffer-other-window bury-buffer ((select-window mh-in-show-buffer-saved-window)) mh-goto-next-button] 2 (#$ . 27631) (list current-prefix-arg)])
#@278 Display next message.

This command can be given a prefix argument COUNT to specify how
many unread messages to skip.

In a program, pause for a second after printing message if we are
at the last undeleted message and optional argument
WAIT-AFTER-COMPLAINING-FLAG is non-nil.
(defalias 'mh-next-undeleted-msg #[(&optional count wait-after-complaining-flag) "\304\305y\210\306	\307\310\n$\203\311 \210\312 \207\313y\210\314\315!\210\205\"\316\305!\207" [mh-next-direction mh-scan-good-msg-regexp count wait-after-complaining-flag forward 1 re-search-forward nil t beginning-of-line mh-maybe-show -1 message "No more undeleted messages" sit-for] 5 (#$ . 28262) "p"])
#@126 Display next unread message.

This command can be given a prefix argument COUNT to specify how
many unread messages to skip.
(defalias 'mh-next-unread-msg #[(&optional count) "\306V\204\n\307\310!\210S\311\312	\n\"A!\313\314!\204(o\204(\315y\210\313\314!\f\2030\2046\316\317!\202\244\f\203H\f@Y\203H\fA\211\204:\306V\203X\fAS\211\202I\f@\204c\316\317!\202\244\f\314\320\314
:\203\224
@\321\320\"\203\211\314\211\211\202\212\320\203\224
A\211\202o\203\241\316\317!\210\314\202\243,*\207" [count mh-unseen-seq mh-seq-list cur-msg unread-sequence #1=#:--cl-var-- 0 error "The function `mh-next-unread-msg' expects positive argument" reverse assoc mh-get-msg-num nil -1 message "No more unread messages" t mh-goto-msg msg #2=#:--cl-var-- #3=#:--cl-var--] 5 (#$ . 28940) "p"])
#@219 Display next page in message.

You can give this command a prefix argument that specifies the
number of LINES to scroll. This command will also show the next
undeleted message if it is used at the bottom of a message.
(defalias 'mh-page-msg #[(&optional lines) "\203H	\203\n\306\232\203\307 \207\310 \207\311 \312\f!\210
\203#\313p!\210\314\216\315d!*\203C\316\317\320!\n\306\232\203<\321\202=\322#\210\323\211\207\324!\207\325 \207" [mh-showing-mode mh-page-to-next-msg-flag mh-next-direction mh-in-show-buffer-saved-window mh-show-buffer mh-bury-show-buffer-flag backward mh-previous-undeleted-msg mh-next-undeleted-msg selected-window switch-to-buffer-other-window bury-buffer ((select-window mh-in-show-buffer-saved-window)) pos-visible-in-window-p message "End of message (Type %s to read %s undeleted message)" single-key-description "previous" "next" t scroll-other-window mh-show last-input-event lines] 5 (#$ . 29773) "P"])
#@124 Go to the previous button.

If the beginning of the buffer is reached then the search wraps
over to the end of the buffer.
(defalias 'mh-prev-button #[nil "\300\301!\207" [mh-next-button t] 2 (#$ . 30729) nil])
#@122 Display next page in message.

You can give this command a prefix argument that specifies the
number of LINES to scroll.
(defalias 'mh-previous-page #[(&optional lines) "\304 \305	!\210\n\203\306p!\210\307\216\310!*\207" [mh-in-show-buffer-saved-window mh-show-buffer mh-bury-show-buffer-flag lines selected-window switch-to-buffer-other-window bury-buffer ((select-window mh-in-show-buffer-saved-window)) scroll-down] 2 (#$ . 30947) "P"])
#@282 Display previous message.

This command can be given a prefix argument COUNT to specify how
many unread messages to skip.

In a program, pause for a second after printing message if we are
at the last undeleted message and optional argument
WAIT-AFTER-COMPLAINING-FLAG is non-nil.
(defalias 'mh-previous-undeleted-msg #[(&optional count wait-after-complaining-flag) "\304\305 \210\306	\307\310\n$\203\311 \207\312\313!\210\205\314\315!\207" [mh-next-direction mh-scan-good-msg-regexp count wait-after-complaining-flag backward beginning-of-line re-search-backward nil t mh-maybe-show message "No previous undeleted message" sit-for 1] 5 (#$ . 31398) "p"])
#@130 Display previous unread message.

This command can be given a prefix argument COUNT to specify how
many unread messages to skip.
(defalias 'mh-previous-unread-msg #[(&optional count) "\306V\204\n\307\310!\210S\311	\n\"A\312\313!\204&o\204&\314y\210\312\313!\f\203.\2044\315\316!\202\242\f\203F\f@Y\203F\fA\211\2048\306V\203V\fAS\211\202G\f@\204a\315\316!\202\242\f\313\317\313
:\203\222
@\320\317\"\203\207\313\211\211\202\210\317\203\222
A\211\202m\203\237\315\316!\210\313\202\241,*\207" [count mh-unseen-seq mh-seq-list cur-msg unread-sequence #1=#:--cl-var-- 0 error "The function `mh-previous-unread-msg' expects positive argument" assoc mh-get-msg-num nil -1 message "No more unread messages" t mh-goto-msg msg #2=#:--cl-var-- #3=#:--cl-var--] 4 (#$ . 32067) "p"])
#@800 Quit the current MH-E folder.

When you want to quit using MH-E and go back to editing, you can use
this command. This buries the buffers of the current MH-E folder and
restores the buffers that were present when you first ran
\[mh-rmail]. It also removes any MH-E working buffers whose name
begins with " *mh-" or "*MH-E ". You can later restore your MH-E
session by selecting the "+inbox" buffer or by running \[mh-rmail]
again.

The two hooks `mh-before-quit-hook' and `mh-quit-hook' are called by
this function. The former one is called before the quit occurs, so you
might use it to perform any MH-E operations; you could perform some
query and abort the quit or call `mh-execute-commands', for example.
The latter is not run in an MH-E context, so you might use it to
modify the window setup.
(defalias 'mh-quit #[nil "\305\306!\210\307!\211\203\310	!\210)\311 \210\312 \210\313p!\210\314 \315\211\203D@\316\317\320\n!\"\2049\316\321\320\n!\"\203=\310\n!\210A\211\204$*\f\203M\322\f!\210\305\323!\207" [mh-show-buffer show-buffer buffer --dolist-tail-- mh-previous-window-config run-hooks mh-before-quit-hook get-buffer kill-buffer mh-update-sequences mh-destroy-postponed-handles bury-buffer buffer-list nil string-match "^ \\*mh-" buffer-name "^\\*MH-E " set-window-configuration mh-quit-hook] 5 (#$ . 32899) nil])
#@541 Refile (output) RANGE into FOLDER.

You are prompted for the folder name. Note that this command can also
be used to create folders. If you specify a folder that does not
exist, you will be prompted to create it.

The hook `mh-refile-msg-hook' is called after a message is marked to
be refiled.

Check the documentation of `mh-interactive-range' to see how RANGE is
read in interactive use.

In a program, the variables `mh-last-destination' and
`mh-last-destination-folder' are not updated if
DONT-UPDATE-LAST-DESTINATION-FLAG is non-nil.
(defalias 'mh-refile-msg #[(range folder &optional dont-update-last-destination-flag) "\204\n\306	B\211\f\247\203\307\f\310\211#\203\326\311\312	\"\210\202\326\f:\203X\f@\247\203X\fA\247\203X\212\f@b\210\313 \210`\fAX\203Tm\204T\314
!\203N\311\312	\"\210\315y\210\2028)\202\326\f\203g\f9\203g\316\f!\202u\f;\203t\317\f\"\202u\f\320 \211\312\211\203\243@\211\321\310#\210*A\211\204\205*\212eb\210\313 \210`dX\203\325m\204\325\314
!\203\317\322\310!\323\"\203\316\311\312	\"\210)\315y\210\202\253+\314!\205\337\324 \207" [dont-update-last-destination-flag folder mh-last-destination mh-last-destination-folder range mh-scan-valid-regexp refile mh-goto-msg t mh-refile-a-msg nil beginning-of-line looking-at 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash mh-get-msg-num gethash mh-next-msg mh-current-folder #1=#:seq-hash-table #2=#:msgs msg --dolist-tail-- #3=#:v #4=#:v v mh-scan-refiled-msg-regexp] 5 (#$ . 34244) (list (mh-interactive-range "Refile") (intern (mh-prompt-for-refile-folder)))])
#@404 Repeat last output command.

If you are refiling several messages into the same folder, you
can use this command to repeat the last
refile (\[mh-refile-msg]) or write (\[mh-write-msg-to-file]).
You can use a range.

Check the documentation of `mh-interactive-range' to see how RANGE is
read in interactive use.

In a program, a non-nil INTERACTIVE-FLAG means that the function was
called interactively.
(defalias 'mh-refile-or-write-again #[(range &optional interactive-flag) "\204\306\307!\210@\310=\203\311	A\"\210\312\313A\"\207	\247\2035\314	\315\211#\203\363	\316\317\nA#\210)\202\363	:\203u	@\247\203u	A\247\203u\212	@b\210\320 \210`	AX\203qm\204q\321!\203k\322\315!\316\317\nA#\210)\323y\210\202N)\202\363	\203\204	9\203\204\324	!\202\221	;\203\220\325\f	\"\202\221	\326 \211\327\211\203\273@\211
\330\315#\210*A\211\204\237*\212eb\210\320 \210`dX\203\362m\204\362\321!\203\354\322\315!\331
\"\203\353\316\317\nA#\210))\323y\210\202\303+\332 !\207" [mh-last-destination range msg mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table error "No previous refile or write" refile mh-refile-msg message "Destination folder: %s" mh-goto-msg t apply mh-write-msg-to-file beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table nil puthash gethash mh-next-msg #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v interactive-flag] 5 (#$ . 35863) (list (mh-interactive-range "Redo") t)])
#@593 Rescan folder\<mh-folder-mode-map>.

This command is useful to grab all messages in your "+inbox" after
processing your new mail for the first time. If you don't want to
rescan the entire folder, this command will accept a RANGE. Check the
documentation of `mh-interactive-range' to see how RANGE is read in
interactive use.

This command will ask if you want to process refiles or deletes first
and then either run \[mh-execute-commands] for you or undo the
pending refiles and deletes.

In a program, the processing of outstanding commands is not performed
if DONT-EXEC-PENDING is non-nil.
(defalias 'mh-rescan-folder #[(&optional range dont-exec-pending) "\306\307	>\310\311!\312\f
\206\313#\210\314\315!@\204\"\316\n\317\211#\210\203+\320 \2022\2052\321 *\207" [mh-next-direction mh-view-ops msg-num threaded-flag mh-current-folder range forward unthread mh-get-msg-num nil mh-scan-folder "all" mh-seq-to-msgs cur mh-goto-msg t mh-toggle-threads mh-index-insert-folder-headers dont-exec-pending mh-index-data] 4 (#$ . 37358) (list (if current-prefix-arg (mh-read-range "Rescan" mh-current-folder t nil t mh-interpret-number-as-range-flag) nil))])
#@45 Move point to mouse EVENT and show message.
(defalias 'mh-show-mouse #[(event) "\301!\210\302 \207" [event mouse-set-point mh-show] 2 (#$ . 38529) "e"])
#@383 Toggle between MH-Folder and MH-Folder Show modes.

This command switches between MH-Folder mode and MH-Folder Show
mode. MH-Folder mode turns off the associated show buffer so that
you can perform operations on the messages quickly without
reading them. This is an excellent way to prune out your junk
mail or to refile a group of messages to another folder for later
examination.
(defalias 'mh-toggle-showing #[nil "\203\301 \207\302 \207" [mh-showing-mode mh-set-scan-mode mh-show] 1 (#$ . 38690) nil])
#@413 Undo pending deletes or refiles in RANGE.

If you've deleted a message or refiled it, but changed your mind,
you can cancel the action before you've executed it. Use this
command to undo a refile on or deletion of a single message. You
can also undo refiles and deletes for messages that are found in
a given RANGE.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.
(defalias 'mh-undo #[(range) "\247\203b`\306 \210\307\n!\204?\307!\204?\f\310=\203 o\204?\f\311=\203/\212\312y\210m)\204?\f\310=\2039\313\202:\314y\210\202\n\307\n!\204K\307!\203W\315\316\317!!\210\320 \210\202^	b\210\321\322!\210)\202+\247\203v\323\317\211#\203+\315\312!\210\202+:\203\256@\247\203\256A\247\203\256\212@b\210\306 \210`AX\203\252m\204\252\307
!\203\244\315\312!\210\314y\210\202\217)\202+\203\2759\203\275\324!\202\313;\203\312\325\"\202\313\326 \211\312\211\203\371@\211 !\327 \317!#\210*A\211\204\333*\212eb\210\306 \210`dX\203*m\204*\307
!\203$\316\317!\"\330\"\"\203#\315\312!\210)\314y\210\202+\331 ?\2054\332\312!\207" [range original-position mh-scan-deleted-msg-regexp mh-scan-refiled-msg-regexp mh-next-direction mh-scan-valid-regexp beginning-of-line looking-at forward backward nil -1 1 mh-undo-msg mh-get-msg-num t mh-maybe-show error "Nothing to undo" mh-goto-msg mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash mh-outstanding-commands-p mh-set-folder-modified-p mh-current-folder #1=#:seq-hash-table #2=#:msgs msg --dolist-tail-- #3=#:v #4=#:v v] 5 (#$ . 39206) (list (mh-interactive-range "Undo"))])
#@1130 Visit FOLDER.

When you want to read the messages that you have refiled into folders,
use this command to visit the folder. You are prompted for the folder
name.

The folder buffer will show just unseen messages if there are any;
otherwise, it will show all the messages in the buffer as long there
are fewer than `mh-large-folder' messages. If there are more, then you
are prompted for a range of messages to scan.

You can provide a prefix argument in order to specify a RANGE of
messages to show when you visit the folder. In this case, regions are
not used to specify the range and `mh-large-folder' is ignored. Check
the documentation of `mh-interactive-range' to see how RANGE is read
in interactive use.

Note that this command can also be used to create folders. If you
specify a folder that does not exist, you will be prompted to create
it.

Do not call this function from outside MH-E; use \[mh-rmail] instead.

If, in a program, RANGE is nil (the default), then all messages in
FOLDER are displayed. If an index buffer is being created then
INDEX-DATA is used to initialize the index buffer specific data
structures.
(defalias 'mh-visit-folder #[(folder &optional range index-data) "\306 p\307 \210\310\f!\203r\fq\210\311
>)\203B\312\f!\210@\313\314\315\"\313\314\315\"\316\f\211A@)\"\210\317 \210\320\f\206J\321\"\210	\203s\212eb\210?\206iTy\322\232?\206i\323\324!\210\325)\203s\326 \210\202{\203{\327 \210\np=\204\204+\325\207" [mh-show-threads-flag threaded-view-flag current-buffer config folder mh-view-ops current-window-configuration delete-other-windows get-buffer unthread mh-make-folder make-hash-table :test equal mh-index-update-maps mh-index-create-sequences mh-scan-folder "all" 0 message "Not threading since the number of messages exceeds `mh-large-folder'" nil mh-toggle-threads mh-index-insert-folder-headers index-data mh-index-data mh-index-msg-checksum-map mh-index-checksum-origin-map x range mh-large-folder mh-previous-window-config] 4 (#$ . 40860) (let ((folder-name (mh-prompt-for-folder "Visit" mh-inbox t))) (list folder-name (mh-read-range "Scan" folder-name t nil current-prefix-arg mh-interpret-number-as-range-flag)))])
#@346 Append MESSAGE to end of FILE\<mh-folder-mode-map>.

You are prompted for the filename. If the file already exists,
the message is appended to it. You can also write the message to
the file without the header by specifying a prefix argument
NO-HEADER. Subsequent writes to the same file can be made with
the command \[mh-refile-or-write-again].
(defalias 'mh-write-msg-to-file #[(message file no-header) "\306!\307	!\310	\f\205\304E\211r\311!q\210\312 \210\313!\210eb\210\f\203-\314\315!\210\316`d\n#+\207" [message file output-file msg-file-to-output no-header mh-last-destination mh-msg-filename mh-expand-file-name write get-buffer-create erase-buffer insert-file-contents search-forward "\n\n" append-to-file mh-last-destination-write mh-temp-buffer] 5 (#$ . 43072) (list (mh-get-msg-num t) (let ((default-dir (if (eq 'write (car mh-last-destination-write)) (file-name-directory (car (cdr mh-last-destination-write))) default-directory))) (read-file-name (format "Save message%s in file: " (if current-prefix-arg " body" "")) default-dir (if (eq 'write (car mh-last-destination-write)) (car (cdr mh-last-destination-write)) (expand-file-name "mail.out" default-dir)))) current-prefix-arg)])
#@255 Flush MH-E's state out to MH.

This function updates the sequence specified by your
"Unseen-Sequence:" profile component, "cur", and the sequence
listed by the `mh-tick-seq' option which is "tick" by default.
The message at the cursor is used for "cur".
(defalias 'mh-update-sequences #[nil "\305 \306\307!\203,\310\311!\312 \210\nC\241\210\313\311C\"\210\314 \210\315!\205(\316 )\202E	\206E\212\f;\203?\317\320\321\f\322$\202D\317\320\321\322#)*\207" [new-cur folder-set seq-entry mh-scan-good-msg-regexp mh-current-folder mh-update-unseen mh-get-msg-num nil mh-find-seq cur mh-remove-cur-notation mh-define-sequence beginning-of-line looking-at mh-notate-cur mh-exec-cmd-quiet t "folder" "-fast"] 5 (#$ . 44286) nil])
#@89 Read new mail from MAILDROP-NAME into the current buffer.
Return in the current buffer.
(defalias 'mh-get-new-mail #[(maildrop-name) "`\306\307 \306\21123\203\310\311\n3#\210\202\"\310\312\n\"\210\3134db\210\314 \210`53\203I\3156\306\n\316 \317\3203!\321\322 \323&	\210\202T\3156\306\316 \321\322 %\2103\203c\310\324\n3#\210\202h\310\325\n\"\2105b\210\212\326\327\306\330#)\203\222\310\3313\203\201\332\202\202\3333\203\2143\202\215\333#\210\202\3307\203\252\3345d\"85d|\210\335\216\336\330!\210*\326\337\306\330#\203\271\340\341!\210\202\3309\330\232\203\326:\203\326\212\326;\306\342\343$)\203\326\344\n!5\330\345<!\210\346\n\330\"=\347\350=\">\347?=\"@\347\350A\"\204\350CABA\347?A\"\204?CABA\347\350A\">A\241\210\347?A\"@A\241\210+d5\232\2032\351 \210	\203V\352 \210\353 \203C\354\330\"\210\355B>\203P\356\n5\"\210\357 \210\202Yb\210\3605dB!)\3612!\210.\207" [mh-current-folder new-mail-flag folder point-before-inc buffer-file-name buffer-read-only nil buffer-modified-p message "inc %s -file %s..." "inc %s..." forward mh-remove-cur-notation mh-exec-cmd-output mh-scan-format "-file" expand-file-name "-width" window-width "-truncate" "inc %s -file %s...done" "inc %s...done" re-search-forward "^inc: no mail" t "No new mail%s%s" " in " "" buffer-substring-no-properties ((byte-code "\302 \210db\210`	c\210b\207" [start-of-inc saved-text mh-remove-cur-notation] 1)) mh-widen "^inc:" error "Error incorporating mail" 0 1 mh-generate-new-cmd-note keep-lines mh-read-folder-sequences assoc cur mh-notate-cur mh-make-folder-mode-line mh-speed-flists-active-p mh-speed-flists unthread mh-thread-inc mh-goto-cur-msg mh-notate-user-sequences mh-set-folder-modified-p mh-folder-updating-mod-flag maildrop-name mh-next-direction start-of-inc mh-inc-prog mh-folder-view-stack saved-text mh-scan-format-file mh-adaptive-cmd-note-flag mh-scan-msg-overflow-regexp mh-scan-valid-regexp sequences new-cur mh-unseen-seq new-unseen mh-seq-list mh-view-ops] 10 (#$ . 45025)])
#@656 Fix the `mh-cmd-note' value for this FOLDER.

After doing an `mh-get-new-mail' operation in this FOLDER, at least
one line that looks like a truncated message number was found.

Remove the text added by the last `mh-inc' command. It should be the
messages cur-last. Call `mh-set-cmd-note', adjusting the notation
column with the width of the largest message number in FOLDER.

Reformat the message number width on each line in the buffer and trim
the line length to fit in the window.

Rescan the FOLDER in the range cur-last in order to display the
messages that were removed earlier. They should all fit in the scan
line now with no message truncation.
(defalias 'mh-generate-new-cmd-note #[(folder) "\212\306 S\307\211\310d`Z!\210\311\312\313
!!!\210\314\315\316\"\317Qeb\210\320>\2034\321Z!\210\202i\322\323 \307\324\325$\203i\326\325\224\325\225{!\327\315\n	\"!\210\307\210`\330\f!\210`X\203e\310`Z!\210)\2024db\210`\331\332\333\"\210-\207" [mh-cmd-note msgnum mh-cmd-note-fmt old-cmd-note maxcol folder window-width nil delete-char mh-set-cmd-note mh-msg-num-width-to-column mh-msg-num-width "%" format "%d" "d" unthread mh-thread-add-spaces re-search-forward mh-scan-msg-number-regexp 0 1 string-to-number replace-match move-to-column mh-regenerate-headers "cur-last" t mh-view-ops eol] 5 (#$ . 47084)])
#@150 Position the cursor at the current message.
When optional argument MINIMAL-CHANGES-FLAG is non-nil, the
function doesn't recenter the folder buffer.
(defalias 'mh-goto-cur-msg #[(&optional minimal-changes-flag) "\303\304!@\211\203#\305\306\211#\203#	?\205(\307 \210\310\311!\210\312!\202(\313\314\315!)\207" [cur-msg minimal-changes-flag overlay-arrow-position mh-seq-to-msgs cur mh-goto-msg t mh-notate-cur mh-recenter 0 mh-maybe-show nil message "No current message"] 5 (#$ . 48426)])
#@297 Like recenter but with three improvements:

- At the end of the buffer it tries to show fewer empty lines.

- operates only if the current buffer is in the selected window.
  (Commands like `save-some-buffers' can make this false.)

- nil ARG means recenter as if prefix argument had been given.
(defalias 'mh-recenter #[(arg) "\302p!\303 =\204\304\207d\212\305 \306\245\306Zy\210`)U\2034\306\212d\304y\210`V\203-T\202)\307[!)\207\307	\206:\310!\207" [lines-from-end arg get-buffer-window selected-window nil window-height 2 recenter (4)] 3 (#$ . 48928)])
#@165 Synchronize the unseen sequence with MH.
Return non-nil if the MH folder was set.
The hook `mh-unseen-updated-hook' is called after the unseen sequence
is updated.
(defalias 'mh-update-unseen #[nil "\2058\305	!\211\211A)\211\2034\306	\"\210\307\310!\210\203,\311@\f\"A\211\204\n\f\241\210\312\2027\313\211*\207" [mh-seen-list mh-unseen-seq unseen-seq sequence unseen-msgs mh-find-seq mh-undefine-sequence run-hooks mh-unseen-updated-hook delq t nil] 4 (#$ . 49502)])
#@61 Return non-nil if there are outstanding deletes or refiles.
(defalias 'mh-outstanding-commands-p #[nil "\212\304=\203\n	q\210\n\206)\207" [major-mode mh-show-folder-buffer mh-delete-list mh-refile-list mh-show-mode] 2 (#$ . 49992)])
#@66 Mark current folder as modified or unmodified according to FLAG.
(defalias 'mh-set-folder-modified-p #[(flag) "\301!\207" [flag set-buffer-modified-p] 2 (#$ . 50236)])
#@205 Process outstanding commands for FOLDER.

This function runs `mh-before-commands-processed-hook' before the
commands are processed and `mh-after-commands-processed-hook'
after the commands are processed.
(defalias 'mh-process-commands #[(folder) "\306\307\"\210q\210\310 \311\211\312\313!\210\314 \210\f
C.\205'/\205'\3150!.\2053/\2053\316 1234\f\203J\317 \210\3203\321 \"3\322\323.\"\210\311.5\203m\3244\325\326\327\3305!$\210\3315!\210\3115\332 \333V\203\200\334\335\336\311!\206}\337C\"\2104\203\247\340 \203\221\325\341\3243#\210\3426>\203\240\343d\"\210\202\247\f\203\247\344 \210\301\3457!!\203\276\346\301\3457!!!\204\276\347 \210\350
\311\"0\351 \210\352 \21038\312\353!\210-\306\354\"\355!\210+\355\311!\210\207" [folder buffer-file-name buffer-read-only mh-folder-updating-mod-flag mh-index-data mh-current-folder message "Processing deletes and refiles for %s..." buffer-modified-p nil run-hooks mh-before-commands-processed-hook mh-update-unseen mh-create-sequence-map make-hash-table mh-index-delete-folder-headers append mh-index-execute-commands mh-mapc #[(folder-msg-list) "\306@!\307	\310\"@A	\fB\311\312\313\314\315	\316!&\210\317!\210\205\231\320!\210\n\2064\321T\322\323!\324\"\325:\203\223@\326 \"!\325\"!:\203\204!@\211\"#$\327#\326#$\"B$#\210*!A\211!\202Z*TA\211\202D+\330\331\"+\207" [folder-msg-list dest-folder last msgs folders-changed redraw-needed-flag symbol-name mh-translate-range "last" t apply mh-exec-cmd "refile" "-src" mh-coalesce-msg-list mh-delete-scan-msgs clrhash 0 sort copy-sequence < nil gethash puthash maphash #[(seq msgs) "\303\304\305\306\307!	\310\311\312\313\n!\"&\207" [seq dest-folder msgs apply mh-exec-cmd "mark" "-sequence" symbol-name "-add" mapcar #[(x) "\301\302\"\207" [x format "%s"] 3] mh-coalesce-msg-list] 11] folder mh-refile-preserves-sequences-flag dest-map i #1=#:--cl-var-- msg seq-map #2=#:--cl-var-- seq-name #3=#:v #4=#:v] 9] t apply mh-exec-cmd "rmm" mh-coalesce-msg-list mh-delete-scan-msgs buffer-size 0 mh-define-sequence cur mh-get-msg-num "last" mh-speed-flists-active-p mh-speed-flists unthread mh-thread-inc mh-index-insert-folder-headers get-buffer file-exists-p mh-invalidate-show-buffer mh-read-folder-sequences mh-remove-all-notation mh-notate-user-sequences mh-after-commands-processed-hook "Processing deletes and refiles for %s...done" mh-set-folder-modified-p mh-refile-list mh-refile-preserves-sequences-flag mh-seq-list dest-map seq-map folders-changed redraw-needed-flag mh-delete-list mh-view-ops mh-show-buffer mh-folders-changed] 6 (#$ . 50412)])
#@41 Delete the scan listing lines for MSGS.
(defalias 'mh-delete-scan-msgs #[(msgs) "\212\205%\302@\303\211#\203\304	>\203\305@!\210\306\307!\210A\211\204\310)\207" [msgs mh-view-ops mh-goto-msg t unthread mh-thread-forget-message mh-delete-line 1 nil] 5 (#$ . 53076)])
#@61 Display the scan listing buffer, but do not show a message.
(defalias 'mh-set-scan-mode #[nil "\302!\203\n\303!\210\304\305!\210\306 \210	\205\307\310!\207" [mh-show-buffer mh-recenter-summary-flag get-buffer delete-windows-on mh-showing-mode 0 force-mode-line-update mh-recenter nil] 2 (#$ . 53360)])
#@210 Set the fields of the mode line for a folder buffer.
The optional argument is now obsolete and IGNORED. It used to be
used to pass in what is now stored in the buffer-local variable
`mh-mode-line-annotation'.
(defalias 'mh-make-folder-mode-line #[(&optional ignored) "\212\306 \307\216\310 \210\311\312!\313\n>\203!\203!	\203!	W\203#	)\314 \210\311\312!\313\n>\203?
\203?\f\203?\f
V\203A\f)\203M\315ed\"\202N\316\317\320\203_\317\321\"\202`\322\323!\203k\324\202p\317\325\"\323!\203{\326\202\226\327V\203\212\317\330
#\202\226\203\225\317\331\"\202\226\322$C\332 +\207" [#1=#:wconfig new-first-msg-num mh-view-ops mh-first-msg-num new-last-msg-num mh-last-msg-num current-window-configuration ((set-window-configuration #1#)) mh-first-msg mh-get-msg-num nil unthread mh-last-msg count-lines 0 format "    {%%b%s} %s msg%s" "/%s" "" zerop "no" "%d" "s" 1 "s (%d-%d)" " (%d)" mh-logo-display mh-msg-count mh-mode-line-annotation mode-line-buffer-identification] 8 (#$ . 53674)])
#@286 Scan FOLDER over RANGE.

After the scan is performed, switch to the buffer associated with
FOLDER.

Check the documentation of `mh-interactive-range' to see how RANGE is
read in interactive use.

The processing of outstanding commands is not performed if
DONT-EXEC-PENDING is non-nil.
(defalias 'mh-scan-folder #[(folder range &optional dont-exec-pending) ";\203
\303\304\305\306\"\"\307	!\204\310	!\210\202)\n\204%\311	!\210\312 \210\313	!\210\314!\210\315\316 !\203K\317\232\203B\320\321	\"\210\202N\320\322	#\210\202N\323 \210\324 \205U\325 \207" [range folder dont-exec-pending delete "" split-string "[ 	\n]" get-buffer mh-make-folder mh-process-or-undo-commands mh-reset-threads-and-narrowing switch-to-buffer mh-regenerate-headers zerop buffer-size "all" message "Folder %s is empty" "No messages in %s, range %s" mh-goto-cur-msg mh-outstanding-commands-p mh-notate-deleted-and-refiled] 5 (#$ . 54705)])
#@149 If FOLDER has outstanding commands, then either process or discard them.
Called by functions like `mh-sort-folder', so also invalidate
show buffer.
(defalias 'mh-process-or-undo-commands #[(folder) "q\210\302 \203	\204\303\304!\203\305!\210\202q\210\306 \210\307 \210\310 \207" [folder mh-do-not-confirm-flag mh-outstanding-commands-p y-or-n-p "Process outstanding deletes and refiles? " mh-process-commands mh-undo-folder mh-update-unseen mh-invalidate-show-buffer] 2 (#$ . 55639)])
#@78 Scan folder over RANGE.
If UPDATE, append the scan lines, otherwise replace.
(defalias 'mh-regenerate-headers #[(range &optional update) "	\203	:\204	C\202	\306\307\310\"\210\311 \210\312 \306\211#$\203/db\210\202@ed|\210%\203@\313\314\315!!!\210`\316\317&\306\320 \321\322\323\324 	&\n\210\nb\210\325\326!\203d\327'!\210\202\207\325\330\331!\203o\332\202p\333!\203|\327'!\210\202\207\325\334!\204\207\327'!\210\335\306\"(\336 \210$\204\240	\337\232?\205\236)*\340 \210\341#!\210+\341\306!\210\307\342\"+\207" [mh-current-folder range scan-start folder buffer-file-name buffer-read-only nil message "Scanning %s..." mh-remove-all-notation buffer-modified-p mh-set-cmd-note mh-msg-num-width-to-column mh-msg-num-width apply mh-exec-cmd-output mh-scan-format "-noclear" "-noheader" "-width" window-width looking-at "scan: no messages in" keep-lines mh-variant-p gnu-mh "scan: message set .* does not exist" "scan: bad message list " "scan: " mh-read-folder-sequences mh-notate-user-sequences ("all") mh-make-folder-mode-line mh-set-folder-modified-p "Scanning %s...done" mh-folder-updating-mod-flag update mh-adaptive-cmd-note-flag mh-scan-prog mh-scan-valid-regexp mh-seq-list mh-partial-folder-mode-line-annotation mh-mode-line-annotation] 11 (#$ . 56140)])
#@107 Reset all variables pertaining to threads and narrowing.
Also removes all content from the folder buffer.
(defalias 'mh-reset-threads-and-narrowing #[nil "\304\211\304\211\305 )\207" [mh-view-ops mh-folder-view-stack mh-thread-scan-line-map-stack buffer-read-only nil erase-buffer] 2 (#$ . 57447)])
#@67 Create a new mail folder called NAME.
Make it the current folder.
(defalias 'mh-make-folder #[(name) "\306!\210\307\310 \210\n\203\311\312\313!!!\210\314\315 \210\316\307!\210
\2040\317\fP!\2030\320 \210\321 \207" [name buffer-read-only mh-adaptive-cmd-note-flag mh-folder-filename buffer-file-name mh-index-data switch-to-buffer nil erase-buffer mh-set-cmd-note mh-msg-num-width-to-column mh-msg-num-width t mh-folder-mode mh-set-folder-modified-p file-exists-p mh-index-read-data mh-make-folder-mode-line mh-index-data-file] 4 (#$ . 57756)])
#@253 Move backward or forward to the next undeleted message in the buffer.
If optional argument WAIT-AFTER-COMPLAINING-FLAG is non-nil and
we are at the last message, then wait for a second after telling
the user that there aren't any more unread messages.
(defalias 'mh-next-msg #[(&optional wait-after-complaining-flag) "\302=\203\303\304	\"\207\305\304	\"\207" [mh-next-direction wait-after-complaining-flag forward mh-next-undeleted-msg 1 mh-previous-undeleted-msg] 3 (#$ . 58319)])
#@243 Prompt the user for a folder in which the message should be filed.
The folder is returned as a string.

The default folder name is generated by the option
`mh-default-folder-for-message-function' if it is non-nil or
`mh-folder-from-address'.
(defalias 'mh-prompt-for-refile-folder #[nil "\305\306\307\310\311\217\211\204\312\202=r\313	!q\210\314 \210\315!\210\n\203(\n )\206<\316 \206<\f@\317=\203;\320\fA!\206<\312))\321#\207" [refile-file mh-temp-buffer mh-default-folder-for-message-function buffer-file-name mh-last-destination-folder mh-prompt-for-folder "Destination" nil (byte-code "\300\301\302!!\207" [mh-msg-filename mh-get-msg-num t] 3) ((error)) "" get-buffer-create erase-buffer insert-file-contents mh-folder-from-address refile symbol-name t] 6 (#$ . 58811)])
#@704 Derive folder name from sender.

The name of the folder is derived as follows:

  a) The folder name associated with the first address found in
     the list `mh-default-folder-list' is used. Each element in
     this list contains a "Check Recipient" item. If this item is
     turned on, then the address is checked against the recipient
     instead of the sender. This is useful for mailing lists.

  b) An alias prefixed by `mh-default-folder-prefix'
     corresponding to the address is used. The prefix is used to
     prevent clutter in your mail directory.

Return nil if a folder name was not derived, or if the variable
`mh-default-folder-must-exist-flag' is t and the folder does not
exist.
(defalias 'mh-folder-from-address #[nil "\214eb\210\306\307\310\311#\210e`}\210\312\313!\206\314\315\312\316!\206\314Q\312\317!\206%\314\310\310\320\310\f:\203d\f@\321
@\322
8\203H\n\202I	\"\203Y
A@\310\211\202Z\320\203d\fA\211\2024?\205l,\211\203~\323H\324=\204~\325P\204\255\326 \211\205\220\327!A@\211\205\232\330!\211\203\254\205\253\325 Q+\205\277!\203\276\331\332!!\205\277,\207" [folder-name from to/cc mh-default-folder-list #1=#:--cl-var-- list re-search-forward "\n\n" nil limit message-fetch-field "to" "" ", " "cc" "from" t string-match 2 0 43 "+" mh-extract-from-header-value mail-extract-address-components mh-alias-address-to-alias file-exists-p mh-expand-file-name #2=#:--cl-var-- #3=#:--cl-var-- from-header address alias mh-default-folder-prefix mh-default-folder-must-exist-flag] 5 (#$ . 59605)])
#@249 Delete MESSAGE.
If MESSAGE is nil then the message at point is deleted.
The hook `mh-delete-msg-hook' is called after you mark a message
for deletion. For example, a past maintainer of MH-E used this
once when he kept statistics on his mail usage.
(defalias 'mh-delete-a-msg #[(message) "\212\247\203\306\307\310#\210\202\311 \210\312\310!\313	!\203!\314\315\"\210\313\n!?\2059\316\310!\210B\317\307\f
#\210\320\321!)\207" [message mh-scan-refiled-msg-regexp mh-scan-deleted-msg-regexp mh-delete-list mh-note-deleted mh-cmd-note mh-goto-msg nil t beginning-of-line mh-get-msg-num looking-at error "Message %d is refiled; undo refile before deleting" mh-set-folder-modified-p mh-notate run-hooks mh-delete-msg-hook] 4 (#$ . 61199)])
#@198 Refile MESSAGE in FOLDER.
If MESSAGE is nil then the message at point is refiled.
Folder is a symbol, not a string.
The hook `mh-refile-msg-hook' is called after a message is marked to
be refiled.
(defalias 'mh-refile-a-msg #[(message folder) "\212\247\203\306\307\310#\210\202\311 \210\312\310!\313	!\203#\314\315\"\202\201\313\n!\203I\316\317\320#!\203C\321\322\312\310!\323\324\f\325!&\202\201\300\326!\202\201\327\310!\210\330
\"\204]D
B\202v\330
\"A\235\204v\330
\"\211AB\241\210)\331\307#\210\332\333!)\207" [message mh-scan-deleted-msg-regexp mh-scan-refiled-msg-regexp folder mh-current-folder mh-refile-list mh-goto-msg nil t beginning-of-line mh-get-msg-num looking-at error "Message %d is deleted; undo delete before moving" y-or-n-p format "Message %d already refiled; copy to %s as well? " mh-exec-cmd "refile" "-link" "-src" symbol-name "Message not copied" mh-set-folder-modified-p assoc mh-notate run-hooks mh-refile-msg-hook #1=#:v mh-note-refiled mh-cmd-note] 9 (#$ . 61951)])
#@88 Undo the deletion or refile of one MSG.
If MSG is nil then act on the message at point
(defalias 'mh-undo-msg #[(msg) "\212\247\203\306\307\211#\210\202\310 \210\311\307!	>\203$\312	\"\202p\n\313\211\203A\f@\211\211\314A\"\241\210)\fA\211\204,*\n\313\211:\203k@\211A\203bBA\211\202M\237+\315\313\316#)\207" [msg mh-delete-list mh-refile-list folder-msg-list --dolist-tail-- #1=#:v mh-goto-msg t beginning-of-line mh-get-msg-num delq nil remove mh-notate 32 #2=#:--cl-var-- x #3=#:--cl-var-- mh-cmd-note] 5 (#$ . 62989)])
#@65 Return the file name of MSG in FOLDER (default current folder).
(defalias 'mh-msg-filename #[(msg &optional folder) "\303\304!	\203\305	!\202\n\"\207" [msg folder mh-folder-filename expand-file-name int-to-string mh-expand-file-name] 4 (#$ . 63567)])
(provide 'mh-folder)

MMCT - 2023