Function: mh-folder-mode
mh-folder-mode is an autoloaded, interactive and byte-compiled
function defined in mh-folder.el.gz.
Signature
(mh-folder-mode)
Documentation
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.
Options that control this mode can be changed with
M-x customize-group (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 (C-u (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(var)/transient-mark-mode(fun) 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-refile-or-write-again
' mh-toggle-tick
, mh-header-display
- negative-argument
. mh-alt-show
/ ' 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-show-preferred-alternative
; mh-toggle-mh-decode-mime-flag
<backtab> mh-index-previous-folder
<mouse-2> mh-show-mouse
> mh-write-msg-to-file
? mh-help
C-M-i mh-index-previous-folder
C-d mh-delete-msg-no-motion
D ? mh-prefix-help
D DEL mh-page-digest-backwards
D SPC mh-page-digest
D b mh-burst-digest
DEL mh-previous-page
E mh-extract-rejected-mail
F ' mh-index-ticked-messages
F ? mh-prefix-help
F S mh-sort-folder
F c mh-catchup
F f mh-alt-visit-folder
F k mh-kill-folder
F l mh-list-folders
F n mh-index-new-messages
F o mh-alt-visit-folder
F p mh-pack-folder
F q mh-index-sequenced-messages
F r mh-rescan-folder
F s mh-search
F u mh-undo-folder
F v mh-visit-folder
I ? #<anonymous-function>
J ? mh-prefix-help
J a mh-junk-allowlist
J b mh-junk-blocklist
J w mh-junk-whitelist
K <backtab> mh-prev-button
K ? mh-prefix-help
K C-M-i mh-prev-button
K TAB mh-next-button
K a mh-mime-save-parts
K e mh-display-with-external-viewer
K i mh-folder-inline-mime-part
K o mh-folder-save-mime-part
K t mh-toggle-mime-buttons
K v mh-folder-toggle-mime-part
M mh-modify
M-< mh-first-msg
M-> mh-last-msg
M-d mh-redistribute
M-n mh-next-unread-msg
M-p mh-previous-unread-msg
P ? mh-prefix-help
P C mh-ps-print-toggle-color
P F mh-ps-print-toggle-faces
P f mh-ps-print-msg-file
P l mh-print-msg
P p mh-ps-print-msg
RET mh-show
S ' mh-narrow-to-tick
S ? mh-prefix-help
S d mh-delete-msg-from-seq
S k mh-delete-seq
S l mh-list-sequences
S n mh-narrow-to-seq
S p mh-put-msg-in-seq
S s mh-msg-is-in-seq
S w mh-widen
SPC mh-page-msg
SPC..~ undefined
T ? mh-prefix-help
T d mh-thread-delete
T n mh-thread-next-sibling
T o mh-thread-refile
T p mh-thread-previous-sibling
T t mh-toggle-threads
T u mh-thread-ancestor
TAB mh-index-next-folder
X ? mh-prefix-help
X s mh-store-msg
X u mh-store-msg
^ 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
o mh-refile-msg
p mh-previous-undeleted-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
..\x3FFFFF digit-argument
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/mh-e/mh-folder.el.gz
;; Autoload cookie needed by desktop.el
;;;###autoload
(define-derived-mode mh-folder-mode fundamental-mode "MH-Folder"
"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}"
(mh-do-in-gnu-emacs
(unless mh-folder-tool-bar-map
(mh-tool-bar-folder-buttons-init))
(if (boundp 'tool-bar-map)
(set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)))
(mh-do-in-xemacs
(mh-tool-bar-init :folder))
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults '(mh-folder-font-lock-keywords t))
(make-local-variable 'desktop-save-buffer)
(setq desktop-save-buffer t)
(mh-make-local-vars
'mh-colors-available-flag (mh-colors-available-p)
; Do we have colors available
'mh-current-folder (buffer-name) ; Name of folder, a string
'mh-show-buffer (format "show-%s" (buffer-name)) ; Buffer that displays msgs
'mh-folder-filename ; e.g. "/usr/foobar/Mail/inbox/"
(file-name-as-directory (mh-expand-file-name (buffer-name)))
'mh-display-buttons-for-inline-parts-flag
mh-display-buttons-for-inline-parts-flag ; Allow for display of buttons to
; be toggled.
'mh-arrow-marker (make-marker) ; Marker where arrow is displayed
'overlay-arrow-position nil ; Allow for simultaneous display in
'overlay-arrow-string ">" ; different MH-E buffers.
'mh-showing-mode nil ; Show message also?
'mh-refile-list nil ; List of folder names in mh-seq-list
'mh-delete-list nil ; List of msgs nums to delete
'mh-blocklist nil ; List of messages to process as spam
'mh-allowlist nil ; List of messages to process as ham
'mh-seq-list nil ; Alist of (seq . msgs) nums
'mh-seen-list nil ; List of displayed messages
'mh-next-direction 'forward ; Direction to move to next message
'mh-view-ops () ; Stack that keeps track of the order
; in which narrowing/threading has been
; carried out.
'mh-folder-view-stack () ; Stack of previous views of the
; folder.
'mh-index-data nil ; If the folder was created by a call
; to mh-search, this contains info
; about the search results.
'mh-index-previous-search nil ; folder, indexer, search-regexp
'mh-index-msg-checksum-map nil ; msg -> checksum map
'mh-index-checksum-origin-map nil ; checksum -> ( orig-folder, orig-msg )
'mh-index-sequence-search-flag nil ; folder resulted from sequence search
'mh-first-msg-num nil ; Number of first msg in buffer
'mh-last-msg-num nil ; Number of last msg in buffer
'mh-msg-count nil ; Number of msgs in buffer
'mh-mode-line-annotation nil ; Indicates message range
'mh-sequence-notation-history (make-hash-table)
; Remember what is overwritten by
; mh-note-seq.
'imenu-create-index-function 'mh-index-create-imenu-index
; Setup imenu support
'mh-previous-window-config nil) ; Previous window configuration
(mh-remove-xemacs-horizontal-scrollbar)
(setq truncate-lines t)
(auto-save-mode -1)
(setq buffer-offer-save t)
(mh-make-local-hook (mh-write-file-functions))
(add-hook (mh-write-file-functions) #'mh-execute-commands nil t)
(make-local-variable 'revert-buffer-function)
(make-local-variable 'hl-line-mode) ; avoid pollution
(mh-funcall-if-exists hl-line-mode 1)
(setq revert-buffer-function #'mh-undo-folder)
(add-to-list 'minor-mode-alist '(mh-showing-mode " Show"))
(mh-do-in-xemacs
(easy-menu-add mh-folder-sequence-menu)
(easy-menu-add mh-folder-message-menu)
(easy-menu-add mh-folder-folder-menu))
(mh-inc-spool-make)
(mh-set-help mh-folder-mode-help-messages)
(if (and (featurep 'xemacs)
font-lock-auto-fontify)
(turn-on-font-lock))) ; Force font-lock in XEmacs.