changeset 67758:6b063593fdad

Follow Emacs coding conventions. Use default setting of emacs-lisp-docstring-fill-column which is 65.
author Bill Wohler <wohler@newt.com>
date Fri, 23 Dec 2005 07:40:40 +0000
parents 488b4dbc7482
children b7b75914a27d
files lisp/mh-e/ChangeLog lisp/mh-e/mh-acros.el lisp/mh-e/mh-alias.el lisp/mh-e/mh-comp.el lisp/mh-e/mh-customize.el lisp/mh-e/mh-e.el lisp/mh-e/mh-funcs.el lisp/mh-e/mh-gnus.el lisp/mh-e/mh-identity.el lisp/mh-e/mh-index.el lisp/mh-e/mh-init.el lisp/mh-e/mh-junk.el lisp/mh-e/mh-mime.el lisp/mh-e/mh-pick.el lisp/mh-e/mh-print.el lisp/mh-e/mh-seq.el lisp/mh-e/mh-speed.el lisp/mh-e/mh-utils.el
diffstat 18 files changed, 2543 insertions(+), 2111 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Fri Dec 23 07:40:40 2005 +0000
@@ -1,5 +1,8 @@
 2005-12-22  Bill Wohler  <wohler@newt.com>
 
+	Follow Emacs coding conventions. Use default setting of
+	emacs-lisp-docstring-fill-column which is 65.
+	
 	* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
 
 	* mh-comp.el (mh-letter-mode): Use 60 column width.
--- a/lisp/mh-e/mh-acros.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-acros.el	Fri Dec 23 07:40:40 2005 +0000
@@ -49,8 +49,9 @@
 (defmacro mh-require-cl ()
   "Macro to load `cl' if needed.
 Some versions of `cl' produce code for the expansion of
-\(setf (gethash ...) ...) that uses functions in `cl' at run time.  This macro
-recognizes that and loads `cl' where appropriate."
+\(setf (gethash ...) ...) that uses functions in `cl' at run
+time. This macro recognizes that and loads `cl' where
+appropriate."
   (if (eq (car (macroexpand '(setf (gethash foo bar) baz))) 'cl-puthash)
       `(require 'cl)
     `(eval-when-compile (require 'cl))))
@@ -75,16 +76,16 @@
 
 (defmacro mh-make-local-hook (hook)
   "Make HOOK local if needed.
-XEmacs and versions of GNU Emacs before 21.1 require `make-local-hook' to be
-called."
+XEmacs and versions of GNU Emacs before 21.1 require
+`make-local-hook' to be called."
   (when (and (fboundp 'make-local-hook)
              (not (get 'make-local-hook 'byte-obsolete-info)))
     `(make-local-hook ,hook)))
 
 (defmacro mh-mark-active-p (check-transient-mark-mode-flag)
   "A macro that expands into appropriate code in XEmacs and nil in GNU Emacs.
-In GNU Emacs if CHECK-TRANSIENT-MARK-MODE-FLAG is non-nil then check if
-variable `transient-mark-mode' is active."
+In GNU Emacs if CHECK-TRANSIENT-MARK-MODE-FLAG is non-nil then
+check if variable `transient-mark-mode' is active."
   (cond ((featurep 'xemacs)             ;XEmacs
          `(and (boundp 'zmacs-regions) zmacs-regions (region-active-p)))
         ((not check-transient-mark-mode-flag) ;GNU Emacs
@@ -95,12 +96,14 @@
 
 (defmacro mh-defstruct (name-spec &rest fields)
   "Replacement for `defstruct' from the `cl' package.
-The `defstruct' in the `cl' library produces compiler warnings, and generates
-code that uses functions present in `cl' at run-time.  This is a partial
-replacement, that avoids these issues.
+The `defstruct' in the `cl' library produces compiler warnings,
+and generates code that uses functions present in `cl' at
+run-time. This is a partial replacement, that avoids these
+issues.
 
-NAME-SPEC declares the name of the structure, while FIELDS describes the
-various structure fields. Lookup `defstruct' for more details."
+NAME-SPEC declares the name of the structure, while FIELDS
+describes the various structure fields. Lookup `defstruct' for
+more details."
   (let* ((struct-name (if (atom name-spec) name-spec (car name-spec)))
          (conc-name (or (and (consp name-spec)
                              (cadr (assoc :conc-name (cdr name-spec))))
@@ -136,8 +139,8 @@
 
 (defmacro mh-assoc-ignore-case (key alist)
   "Check if KEY is present in ALIST while ignoring case to do the comparison.
-Compatibility macro for Emacs versions that lack `assoc-string', introduced in
-Emacs 22."
+Compatibility macro for Emacs versions that lack `assoc-string',
+introduced in Emacs 22."
   (if (fboundp 'assoc-string)
       `(assoc-string ,key ,alist t)
     `(assoc-ignore-case ,key ,alist)))
--- a/lisp/mh-e/mh-alias.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-alias.el	Fri Dec 23 07:40:40 2005 +0000
@@ -68,10 +68,11 @@
     "/usr/lib/mh/MailAliases" "/usr/share/mailutils/mh/MailAliases"
     "/etc/passwd")
   "*A list of system files which are a source of aliases.
-If these files are modified, they are automatically reread. This list need
-include only system aliases and the passwd file, since personal alias files
-listed in your `Aliasfile:' MH profile component are automatically included.
-You can update the alias list manually using \\[mh-alias-reload].")
+If these files are modified, they are automatically reread. This list
+need include only system aliases and the passwd file, since personal
+alias files listed in your `Aliasfile:' MH profile component are
+automatically included. You can update the alias list manually using
+\\[mh-alias-reload].")
 
 
 
@@ -79,8 +80,8 @@
 
 (defun mh-alias-tstamp (arg)
   "Check whether alias files have been modified.
-Return t if any file listed in the Aliasfile MH profile component has been
-modified since the timestamp.
+Return t if any file listed in the Aliasfile MH profile component has
+been modified since the timestamp.
 If ARG is non-nil, set timestamp with the current time."
   (if arg
       (let ((time (current-time)))
@@ -98,8 +99,10 @@
 
 (defun mh-alias-filenames (arg)
   "Return list of filenames that contain aliases.
-The filenames come from the Aliasfile profile component and are expanded.
-If ARG is non-nil, filenames listed in `mh-alias-system-aliases' are appended."
+The filenames come from the Aliasfile profile component and are
+expanded.
+If ARG is non-nil, filenames listed in `mh-alias-system-aliases' are
+appended."
   (or mh-progs (mh-find-path))
   (save-excursion
     (let* ((filename (mh-profile-component "Aliasfile"))
@@ -120,8 +123,8 @@
 
 (defun mh-alias-gecos-name (gecos-name username comma-separator)
   "Return a usable address string from a GECOS-NAME and USERNAME.
-Use only part of the GECOS-NAME up to the first comma if COMMA-SEPARATOR is
-non-nil."
+Use only part of the GECOS-NAME up to the first comma if
+COMMA-SEPARATOR is non-nil."
   (let ((res gecos-name))
     ;; Keep only string until first comma if COMMA-SEPARATOR is t.
     (if (and comma-separator
@@ -183,14 +186,15 @@
 (defun mh-alias-reload ()
   "Reload MH aliases.
 
-Since aliases are updated frequently, MH-E reloads aliases automatically
-whenever an alias lookup occurs if an alias source has changed. Sources
-include files listed in your `Aliasfile:' profile component and your password
-file if option `mh-alias-local-users' is turned on. However, you can reload
-your aliases manually by calling this command directly.
+Since aliases are updated frequently, MH-E reloads aliases
+automatically whenever an alias lookup occurs if an alias source has
+changed. Sources include files listed in your `Aliasfile:' profile
+component and your password file if option `mh-alias-local-users' is
+turned on. However, you can reload your aliases manually by calling
+this command directly.
 
-This function runs `mh-alias-reloaded-hook' after the aliases have been
-loaded."
+This function runs `mh-alias-reloaded-hook' after the aliases have
+been loaded."
   (interactive)
   (save-excursion
     (message "Loading MH aliases...")
@@ -238,8 +242,8 @@
 (defun mh-alias-ali (alias &optional user)
   "Return ali expansion for ALIAS.
 ALIAS must be a string for a single alias.
-If USER is t, then assume ALIAS is an address and call ali -user.
-ali returns the string unchanged if not defined.  The same is done here."
+If USER is t, then assume ALIAS is an address and call ali -user. ali
+returns the string unchanged if not defined. The same is done here."
   (condition-case err
       (save-excursion
         (let ((user-arg (if user "-user" "-nouser")))
@@ -322,8 +326,8 @@
 
 (defun mh-alias-suggest-alias (string &optional no-comma-swap)
   "Suggest an alias for STRING.
-Don't reverse the order of strings separated by a comma if NO-COMMA-SWAP is
-non-nil."
+Don't reverse the order of strings separated by a comma if
+NO-COMMA-SWAP is non-nil."
   (cond
    ((string-match "^<\\(.*\\)>$" string)
     ;; <somename@foo.bar>  -> recurse, stripping brackets.
@@ -378,8 +382,8 @@
 (defun mh-alias-canonicalize-suggestion (string)
   "Process STRING to replace spaces by periods.
 First all spaces and commas are replaced by periods. Then every run of
-consecutive periods are replaced with a single period. Finally the string
-is converted to lower case."
+consecutive periods are replaced with a single period. Finally the
+string is converted to lower case."
   (with-temp-buffer
     (insert string)
     ;; Replace spaces with periods
@@ -417,10 +421,10 @@
 
 (defun mh-alias-insert-file (&optional alias)
   "Return filename which should be used to add ALIAS.
-The value of the option `mh-alias-insert-file' is used if non-nil\; otherwise
-the value of the `Aliasfile:' profile component is used.
-If the alias already exists, try to return the name of the file that contains
-it."
+The value of the option `mh-alias-insert-file' is used if non-nil\;
+otherwise the value of the `Aliasfile:' profile component is used.
+If the alias already exists, try to return the name of the file that
+contains it."
   (cond
    ((and mh-alias-insert-file (listp mh-alias-insert-file))
     (if (not (elt mh-alias-insert-file 1))        ; Only one entry, use it
@@ -488,12 +492,14 @@
 
 (defun mh-alias-add-alias-to-file (alias address &optional file)
   "Add ALIAS for ADDRESS in alias FILE without alias check or prompts.
-Prompt for alias file if not provided and there is more than one candidate.
+Prompt for alias file if not provided and there is more than one
+candidate.
 
-If the alias exists already, you will have the choice of inserting the new
-alias before or after the old alias. In the former case, this alias will be
-used when sending mail to this alias. In the latter case, the alias serves as
-an additional folder name hint when filing messages."
+If the alias exists already, you will have the choice of
+inserting the new alias before or after the old alias. In the
+former case, this alias will be used when sending mail to this
+alias. In the latter case, the alias serves as an additional
+folder name hint when filing messages."
   (if (not file)
       (setq file (mh-alias-insert-file alias)))
   (save-excursion
@@ -543,11 +549,12 @@
 ;;;###mh-autoload
 (defun mh-alias-add-alias (alias address)
   "*Add ALIAS for ADDRESS in personal alias file.
-This function prompts you for an alias and address. If the alias exists
-already, you will have the choice of inserting the new alias before or after
-the old alias. In the former case, this alias will be used when sending mail
-to this alias. In the latter case, the alias serves as an additional folder
-name hint when filing messages."
+This function prompts you for an alias and address. If the alias
+exists already, you will have the choice of inserting the new
+alias before or after the old alias. In the former case, this
+alias will be used when sending mail to this alias. In the latter
+case, the alias serves as an additional folder name hint when
+filing messages."
   (interactive "P\nP")
   (mh-alias-reload-maybe)
   (setq alias (completing-read "Alias: " mh-alias-alist nil nil alias))
--- a/lisp/mh-e/mh-comp.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-comp.el	Fri Dec 23 07:40:40 2005 +0000
@@ -92,8 +92,8 @@
 
 (defvar mh-redist-background nil
   "If non-nil redist will be done in background like send.
-This allows transaction log to be visible if -watch, -verbose or -snoop are
-used.")
+This allows transaction log to be visible if -watch, -verbose or
+-snoop are used.")
 
 
 
@@ -110,32 +110,39 @@
 
 (defvar mh-yank-hooks nil
   "Obsolete hook for modifying a citation just inserted in the mail buffer.
+
 Each hook function can find the citation between point and mark.
-And each hook function should leave point and mark around the citation
-text as modified.
+And each hook function should leave point and mark around the
+citation text as modified.
 
-This is a normal hook, misnamed for historical reasons.
-It is semi-obsolete and is only used if `mail-citation-hook' is nil.")
+This is a normal hook, misnamed for historical reasons. It is
+semi-obsolete and is only used if `mail-citation-hook' is nil.")
 
 (defvar mh-comp-formfile "components"
   "Name of file to be used as a skeleton for composing messages.
-Default is \"components\".  If not an absolute file name, the file
-is searched for first in the user's MH directory, then in the
-system MH lib directory.")
+
+Default is \"components\".
+
+If not an absolute file name, the file is searched for first in the
+user's MH directory, then in the system MH lib directory.")
 
 (defvar mh-repl-formfile "replcomps"
   "Name of file to be used as a skeleton for replying to messages.
-Default is \"replcomps\".  If not an absolute file name, the file
-is searched for first in the user's MH directory, then in the
-system MH lib directory.")
+
+Default is \"replcomps\".
+
+If not an absolute file name, the file is searched for first in the
+user's MH directory, then in the system MH lib directory.")
 
 (defvar mh-repl-group-formfile "replgroupcomps"
   "Name of file to be used as a skeleton for replying to messages.
-This file is used to form replies to the sender and all recipients of a
-message. Only used if `(mh-variant-p 'nmh)' is non-nil.
+
 Default is \"replgroupcomps\".
-If not an absolute file name, the file is searched for first in the user's MH
-directory, then in the system MH lib directory.")
+
+This file is used to form replies to the sender and all recipients of
+a message. Only used if `(mh-variant-p 'nmh)' is non-nil.
+If not an absolute file name, the file is searched for first in the
+user's MH directory, then in the system MH lib directory.")
 
 (defvar mh-rejected-letter-start
   (format "^%s$"
@@ -216,12 +223,12 @@
 (defun mh-smail-batch (&optional to subject other-headers &rest ignored)
   "Compose a message with the MH mail system.
 
-This function does not prompt the user for any header fields, and thus
-is suitable for use by programs that want to create a mail buffer. Users
-should use \\[mh-smail] to compose mail.
+This function does not prompt the user for any header fields, and
+thus is suitable for use by programs that want to create a mail
+buffer. Users should use \\[mh-smail] to compose mail.
 
-Optional arguments for setting certain fields include TO, SUBJECT, and
-OTHER-HEADERS. Additional arguments are IGNORED."
+Optional arguments for setting certain fields include TO,
+SUBJECT, and OTHER-HEADERS. Additional arguments are IGNORED."
   (mh-find-path)
   (let ((mh-error-if-no-draft t))
     (mh-send (or to "") "" (or subject ""))))
@@ -237,11 +244,12 @@
 The optional arguments TO and SUBJECT specify recipients and the
 initial Subject field, respectively.
 
-OTHER-HEADERS is an alist specifying additional
-header fields.  Elements look like (HEADER . VALUE) where both
-HEADER and VALUE are strings.
+OTHER-HEADERS is an alist specifying additional header fields.
+Elements look like (HEADER . VALUE) where both HEADER and VALUE
+are strings.
 
-CONTINUE, SWITCH-FUNCTION, YANK-ACTION and SEND-ACTIONS are ignored."
+CONTINUE, SWITCH-FUNCTION, YANK-ACTION and SEND-ACTIONS are
+ignored."
   (mh-find-path)
   (let ((mh-error-if-no-draft t))
     (mh-send to "" subject)
@@ -254,20 +262,21 @@
 (defun mh-edit-again (message)
   "Edit a MESSAGE to send it again.
 
-If you don't complete a draft for one reason or another, and if the draft
-buffer is no longer available, you can pick your draft up again with this
-command. If you don't use a draft folder, your last \"draft\" file will be
-used. If you use draft folders, you'll need to visit the draft folder with
-\"\\[mh-visit-folder] drafts <RET>\", use \\[mh-next-undeleted-msg] to move to
-the appropriate message, and then use \\[mh-edit-again] to prepare the message
-for editing.
+If you don't complete a draft for one reason or another, and if
+the draft buffer is no longer available, you can pick your draft
+up again with this command. If you don't use a draft folder, your
+last \"draft\" file will be used. If you use draft folders,
+you'll need to visit the draft folder with \"\\[mh-visit-folder]
+drafts <RET>\", use \\[mh-next-undeleted-msg] to move to the
+appropriate message, and then use \\[mh-edit-again] to prepare
+the message for editing.
 
-This command can also be used to take messages that were sent to you and to
-send them to more people.
+This command can also be used to take messages that were sent to
+you and to send them to more people.
 
-Don't use this command to re-edit a message from a Mailer-Daemon who
-complained that your mail wasn't posted for some reason or another (see
-`mh-extract-rejected-mail').
+Don't use this command to re-edit a message from a Mailer-Daemon
+who complained that your mail wasn't posted for some reason or
+another (see `mh-extract-rejected-mail').
 
 The default message is the current message.
 
@@ -303,9 +312,10 @@
 (defun mh-extract-rejected-mail (message)
   "Edit a MESSAGE that was returned by the mail system.
 
-This command prepares the message for editing by removing the Mailer-Daemon
-envelope and unneeded header fields. Fix whatever addressing problem you had,
-and send the message again with \\[mh-send-letter].
+This command prepares the message for editing by removing the
+Mailer-Daemon envelope and unneeded header fields. Fix whatever
+addressing problem you had, and send the message again with
+\\[mh-send-letter].
 
 The default message is the current message.
 
@@ -335,13 +345,14 @@
 (defun mh-forward (to cc &optional range)
   "Forward message.
 
-You are prompted for the TO and CC recipients. You are given a draft
-to edit that looks like it would if you had run the MH command
-\"forw\". You can then add some text.
+You are prompted for the TO and CC recipients. You are given a
+draft to edit that looks like it would if you had run the MH
+command \"forw\". You can then add some text.
 
-You can forward several messages by using a RANGE. All of the messages
-in the range are inserted into your draft. Check the documentation of
-`mh-interactive-range' to see how RANGE is read in interactive use.
+You can forward several messages by using a RANGE. All of the
+messages in the range are inserted into your draft. Check the
+documentation of `mh-interactive-range' to see how RANGE is read
+in interactive use.
 
 The hook `mh-forward-hook' is called on the draft.
 
@@ -434,14 +445,15 @@
 (defun mh-redistribute (to cc &optional message)
   "Redistribute a message.
 
-This command is similar in function to forwarding mail, but it does not allow
-you to edit the message, nor does it add your name to the \"From\" header
-field. It appears to the recipient as if the message had come from the
-original sender. When you run this command, you are prompted for the TO and CC
-recipients. The default MESSAGE is the current message.
+This command is similar in function to forwarding mail, but it
+does not allow you to edit the message, nor does it add your name
+to the \"From\" header field. It appears to the recipient as if
+the message had come from the original sender. When you run this
+command, you are prompted for the TO and CC recipients. The
+default MESSAGE is the current message.
 
-Also investigate the \\[mh-edit-again] command for another way to redistribute
-messages.
+Also investigate the \\[mh-edit-again] command for another way to
+redistribute messages.
 
 See also `mh-redist-full-contents-flag'."
   (interactive (list (mh-read-address "Redist-To: ")
@@ -486,10 +498,11 @@
 
 (defun mh-show-buffer-message-number (&optional buffer)
   "Message number of displayed message in corresponding show buffer.
+
 Return nil if show buffer not displayed.
-If in `mh-letter-mode', don't display the message number being replied to,
-but rather the message number of the show buffer associated with our
-originating folder buffer.
+If in `mh-letter-mode', don't display the message number being replied
+to, but rather the message number of the show buffer associated with
+our originating folder buffer.
 Optional argument BUFFER can be used to specify the buffer."
   (save-excursion
     (if buffer
@@ -513,14 +526,14 @@
 (defun mh-reply (message &optional reply-to includep)
   "Reply to a MESSAGE.
 
-When you reply to a message, you are first prompted with \"Reply to whom?\"
-\(unless the optional argument REPLY-TO is provided). You have several choices
-here.
+When you reply to a message, you are first prompted with \"Reply
+to whom?\" (unless the optional argument REPLY-TO is provided).
+You have several choices here.
 
      Response     Reply Goes To
 
-     from         The person who sent the message.  This is the default,
-                  so <RET> is sufficient.
+     from         The person who sent the message.  This is the
+                  default, so <RET> is sufficient.
 
      to           Replies to the sender, plus all recipients in the
                   \"To:\" header field.
@@ -528,31 +541,32 @@
      all
      cc           Forms a reply to the sender, plus all recipients.
 
-Depending on your answer, \"repl\" is given a different argument to form your
-reply. Specifically, a choice of \"from\" or none at all runs \"repl -nocc
-all\", and a choice of \"to\" runs \"repl -cc to\". Finally, either \"cc\" or
-\"all\" runs \"repl -cc all -nocc me\".
+Depending on your answer, \"repl\" is given a different argument
+to form your reply. Specifically, a choice of \"from\" or none at
+all runs \"repl -nocc all\", and a choice of \"to\" runs \"repl
+-cc to\". Finally, either \"cc\" or \"all\" runs \"repl -cc all
+-nocc me\".
 
-Two windows are then created. One window contains the message to which you are
-replying in an MH-Show buffer. Your draft, in MH-Letter mode
-\(see `mh-letter-mode'), is in the other window.
-
-If you supply a prefix argument INCLUDEP, the message you are replying to is
-inserted in your reply after having first been run through \"mhl\" with the
-format file \"mhl.reply\".
+Two windows are then created. One window contains the message to
+which you are replying in an MH-Show buffer. Your draft, in
+MH-Letter mode \(see `mh-letter-mode'), is in the other window.
 
-Alternatively, you can customize the option `mh-yank-behavior' and choose one
-of its \"Automatically\" variants to do the same thing. If you do so, the
-prefix argument has no effect.
+If you supply a prefix argument INCLUDEP, the message you are
+replying to is inserted in your reply after having first been run
+through \"mhl\" with the format file \"mhl.reply\".
+
+Alternatively, you can customize the option `mh-yank-behavior'
+and choose one of its \"Automatically\" variants to do the same
+thing. If you do so, the prefix argument has no effect.
 
-Another way to include the message automatically in your draft is to use
-\"repl: -filter repl.filter\" in your MH profile.
+Another way to include the message automatically in your draft is
+to use \"repl: -filter repl.filter\" in your MH profile.
 
-If you wish to customize the header or other parts of the reply draft, please
-see \"repl\" and \"mh-format\".
+If you wish to customize the header or other parts of the reply
+draft, please see \"repl\" and \"mh-format\".
 
-See also `mh-reply-show-message-flag', `mh-reply-default-reply-to', and
-`mh-send'."
+See also `mh-reply-show-message-flag',
+`mh-reply-default-reply-to', and `mh-send'."
   (interactive (list
                 (mh-get-msg-num t)
                 (let ((minibuffer-help-form
@@ -619,17 +633,19 @@
 (defun mh-send (to cc subject)
   "Compose a message.
 
-Your letter appears in an Emacs buffer whose mode is MH-Letter (see
-`mh-letter-mode').
+Your letter appears in an Emacs buffer whose mode is
+MH-Letter (see `mh-letter-mode').
 
-The arguments TO, CC, and SUBJECT can be used to prefill the draft fields or
-suppress the prompts if `mh-compose-prompt-flag' is on. They are also passed
-to the function set in the option `mh-compose-letter-function'.
+The arguments TO, CC, and SUBJECT can be used to prefill the
+draft fields or suppress the prompts if `mh-compose-prompt-flag'
+is on. They are also passed to the function set in the option
+`mh-compose-letter-function'.
 
 See also `mh-insert-x-mailer-flag' and `mh-letter-mode-hook'.
 
-Outside of an MH-Folder buffer (`mh-folder-mode'), you must call either
-\\[mh-smail] or \\[mh-smail-other-window] to compose a new message."
+Outside of an MH-Folder buffer (`mh-folder-mode'), you must call
+either \\[mh-smail] or \\[mh-smail-other-window] to compose a new
+message."
   (interactive (list
                 (mh-interactive-read-address "To: ")
                 (mh-interactive-read-address "Cc: ")
@@ -642,8 +658,8 @@
 (defun mh-send-other-window (to cc subject)
   "Compose a message in another window.
 
-See `mh-send' for more information and a description of how the TO, CC, and
-SUBJECT arguments are used."
+See `mh-send' for more information and a description of how the
+TO, CC, and SUBJECT arguments are used."
   (interactive (list
                 (mh-interactive-read-address "To: ")
                 (mh-interactive-read-address "Cc: ")
@@ -693,14 +709,16 @@
 
 (defun mh-read-draft (use initial-contents delete-contents-file)
   "Read draft file into a draft buffer and make that buffer the current one.
-USE is a message used for prompting about the intended use of the message.
+
+USE is a message used for prompting about the intended use of the
+message.
 INITIAL-CONTENTS is filename that is read into an empty buffer, or nil
-if buffer should not be modified.  Delete the initial-contents file if
+if buffer should not be modified. Delete the initial-contents file if
 DELETE-CONTENTS-FILE flag is set.
 Returns the draft folder's name.
-If the draft folder facility is enabled in ~/.mh_profile, a new buffer is
-used each time and saved in the draft folder.  The draft file can then be
-reused."
+If the draft folder facility is enabled in ~/.mh_profile, a new buffer
+is used each time and saved in the draft folder. The draft file can
+then be reused."
   (cond (mh-draft-folder
          (let ((orig-default-dir default-directory)
                (draft-file-name (mh-new-draft-name)))
@@ -748,7 +766,8 @@
 
 (defun mh-annotate-msg (msg buffer note &rest args)
   "Mark MSG in BUFFER with character NOTE and annotate message with ARGS.
-MSG can be a message number, a list of message numbers, or a sequence."
+MSG can be a message number, a list of message numbers, or a
+sequence."
   (apply 'mh-exec-cmd "anno" buffer
          (if (listp msg) (append msg args) (cons msg args)))
   (save-excursion
@@ -780,7 +799,8 @@
   "Move to the end of the FIELD in the header.
 Move to end of entire header if FIELD not found.
 Returns non-nil iff FIELD was found.
-The optional second arg is for pre-version 4 compatibility and is IGNORED."
+The optional second arg is for pre-version 4 compatibility and is
+IGNORED."
   (cond ((mh-goto-header-field field)
          (mh-header-field-end)
          t)
@@ -907,20 +927,21 @@
      "\t\t  Signature:              \\[mh-insert-signature]"))
   "Key binding cheat sheet.
 
-This is an associative array which is used to show the most common commands.
-The key is a prefix char. The value is one or more strings which are
-concatenated together and displayed in the minibuffer if ? is pressed after
-the prefix character. The special key nil is used to display the
-non-prefixed commands.
+This is an associative array which is used to show the most
+common commands. The key is a prefix char. The value is one or
+more strings which are concatenated together and displayed in the
+minibuffer if ? is pressed after the prefix character. The
+special key nil is used to display the non-prefixed commands.
 
-The substitutions described in `substitute-command-keys' are performed as
-well.")
+The substitutions described in `substitute-command-keys' are
+performed as well.")
 
 ;;;###mh-autoload
 (defun mh-fill-paragraph-function (arg)
   "Fill paragraph at or after point.
-Prefix ARG means justify as well. This function enables `fill-paragraph' to
-work better in MH-Letter mode (see `mh-letter-mode')."
+Prefix ARG means justify as well. This function enables
+`fill-paragraph' to work better in MH-Letter mode (see
+`mh-letter-mode')."
   (interactive "P")
   (let ((fill-paragraph-function) (fill-prefix))
     (if (mh-in-header-p)
@@ -938,14 +959,14 @@
 (define-derived-mode mh-letter-mode text-mode "MH-Letter"
   "Mode for composing letters in MH-E\\<mh-letter-mode-map>.
 
-When you have finished composing, type \\[mh-send-letter] to send the
-message using the MH mail handling system.
+When you have finished composing, type \\[mh-send-letter] to send
+the message using the MH mail handling system.
 
-There are two types of tags used by MH-E when composing MIME messages:
-MML and MH. The option `mh-compose-insertion' controls what type of
-tags are inserted by MH-E commands. These tags can be converted to
-MIME body parts by running \\[mh-mh-to-mime] for MH-style directives
-or \\[mh-mml-to-mime] for MML tags.
+There are two types of tags used by MH-E when composing MIME
+messages: MML and MH. The option `mh-compose-insertion' controls
+what type of tags are inserted by MH-E commands. These tags can
+be converted to MIME body parts by running \\[mh-mh-to-mime] for
+MH-style directives or \\[mh-mml-to-mime] for MML tags.
 
 Options that control this mode can be changed with
 \\[customize-group]; specify the \"mh-compose\" group.
@@ -1054,8 +1075,8 @@
 
 (defun mh-letter-header-end ()
   "Find the end of the message header.
-This function is to be used only for font locking. It works by searching for
-`mh-mail-header-separator' in the buffer."
+This function is to be used only for font locking. It works by
+searching for `mh-mail-header-separator' in the buffer."
   (save-excursion
     (goto-char (point-min))
     (cond ((equal mh-mail-header-separator "") (point-min))
@@ -1065,7 +1086,8 @@
 
 (defun mh-auto-fill-for-letter ()
   "Perform auto-fill for message.
-Header is treated specially by inserting a tab before continuation lines."
+Header is treated specially by inserting a tab before continuation
+lines."
   (if (mh-in-header-p)
       (let ((fill-prefix "\t"))
         (do-auto-fill))
@@ -1083,8 +1105,9 @@
 (defun mh-to-field ()
   "Move to specified header field.
 The field is indicated by the previous keystroke (the last keystroke
-of the command) according to the list in the variable `mh-to-field-choices'.
-Create the field if it does not exist.  Set the mark to point before moving."
+of the command) according to the list in the variable
+`mh-to-field-choices'. Create the field if it does not exist. Set the
+mark to point before moving."
   (interactive)
   (expand-abbrev)
   (let ((target (cdr (or (assoc (char-to-string (logior last-input-char ?`))
@@ -1113,8 +1136,8 @@
 ;;;###mh-autoload
 (defun mh-to-fcc (&optional folder)
   "Move to \"Fcc:\" header field.
-This command will prompt you for the FOLDER name in which to file a copy of
-the draft."
+This command will prompt you for the FOLDER name in which to file a
+copy of the draft."
   (interactive)
   (or folder
       (setq folder (mh-prompt-for-folder
@@ -1215,9 +1238,10 @@
 ;;;###mh-autoload
 (defun mh-check-whom ()
   "Verify recipients, showing expansion of any aliases.
-This command expands aliases so you can check the actual address(es) in the
-alias. A new buffer named \"*MH-E Recipients*\" is created with the output of
-\"whom\"."
+
+This command expands aliases so you can check the actual address(es)
+in the alias. A new buffer named \"*MH-E Recipients*\" is created with
+the output of \"whom\"."
   (interactive)
   (let ((file-name buffer-file-name))
     (save-buffer)
@@ -1256,8 +1280,8 @@
 
 (defvar mh-x-mailer-string nil
   "*String containing the contents of the X-Mailer header field.
-If nil, this variable is initialized to show the version of MH-E, Emacs, and
-MH the first time a message is composed.")
+If nil, this variable is initialized to show the version of MH-E,
+Emacs, and MH the first time a message is composed.")
 
 (defun mh-insert-x-mailer ()
   "Append an X-Mailer field to the header.
@@ -1298,11 +1322,14 @@
 ;;;###mh-autoload
 (defun mh-insert-auto-fields (&optional non-interactive)
   "Insert custom fields if recipient is found in `mh-auto-fields-list'.
-Sets buffer-local `mh-insert-auto-fields-done-local' when done and inserted
-something.  If NON-INTERACTIVE is non-nil, do not be verbose and only
-attempt matches if `mh-insert-auto-fields-done-local' is nil.
 
-An `identity' entry is skipped if one was already entered manually.
+Sets buffer-local `mh-insert-auto-fields-done-local' when done
+and inserted something. If NON-INTERACTIVE is non-nil, do not be
+verbose and only attempt matches if
+`mh-insert-auto-fields-done-local' is nil.
+
+An `identity' entry is skipped if one was already entered
+manually.
 
 Return t if fields added; otherwise return nil."
   (interactive)
@@ -1343,7 +1370,8 @@
 
 (defun mh-modify-header-field (field value &optional overwrite-flag)
   "To header FIELD add VALUE.
-If OVERWRITE-FLAG is non-nil then the old value, if present, is discarded."
+If OVERWRITE-FLAG is non-nil then the old value, if present, is
+discarded."
   (cond ((and overwrite-flag
               (mh-goto-header-field (concat field ":")))
          (insert " " value)
@@ -1366,15 +1394,16 @@
                                        config)
   "Edit and compose a draft message in buffer DRAFT and send or save it.
 SEND-ARGS is the argument passed to the send command.
-SENT-FROM-FOLDER is buffer containing scan listing of current folder, or
-nil if none exists.
+SENT-FROM-FOLDER is buffer containing scan listing of current folder,
+or nil if none exists.
 SENT-FROM-MSG is the message number or sequence name or nil.
 The TO, SUBJECT, and CC fields are passed to the
 `mh-compose-letter-function'.
-If ANNOTATE-CHAR is non-null, it is used to notate the scan listing of the
-message.  In that case, the ANNOTATE-FIELD is used to build a string
-for `mh-annotate-msg'.
-CONFIG is the window configuration to restore after sending the letter."
+If ANNOTATE-CHAR is non-null, it is used to notate the scan listing of
+the message. In that case, the ANNOTATE-FIELD is used to build a
+string for `mh-annotate-msg'.
+CONFIG is the window configuration to restore after sending the
+letter."
   (pop-to-buffer draft)
   (mh-letter-mode)
 
@@ -1421,8 +1450,8 @@
 
 (defun mh-ascii-buffer-p ()
   "Check if current buffer is entirely composed of ASCII.
-The function doesn't work for XEmacs since `find-charset-region' doesn't exist
-there."
+The function doesn't work for XEmacs since `find-charset-region'
+doesn't exist there."
   (loop for charset in (mh-funcall-if-exists
                         find-charset-region (point-min) (point-max))
         unless (eq charset 'ascii) return nil
@@ -1509,15 +1538,17 @@
 ;;;###mh-autoload
 (defun mh-insert-letter (folder message verbatim)
   "Insert a message.
-This command prompts you for the FOLDER and MESSAGE number and inserts the
-message, indented by `mh-ins-buf-prefix' (\"> \") unless `mh-yank-behavior' is
-set to one of the supercite flavors in which case supercite is used to format
-the message. Certain undesirable header fields (see
-`mh-invisible-header-fields-compiled') are removed before insertion.
 
-If given a prefix argument VERBATIM, the header is left intact, the message is
-not indented, and \"> \" is not inserted before each line. This command leaves
-the mark before the letter and point after it."
+This command prompts you for the FOLDER and MESSAGE number and inserts
+the message, indented by `mh-ins-buf-prefix' (\"> \") unless
+`mh-yank-behavior' is set to one of the supercite flavors in which
+case supercite is used to format the message. Certain undesirable
+header fields (see `mh-invisible-header-fields-compiled') are removed
+before insertion.
+
+If given a prefix argument VERBATIM, the header is left intact, the
+message is not indented, and \"> \" is not inserted before each line.
+This command leaves the mark before the letter and point after it."
   (interactive
    (list (mh-prompt-for-folder "Message from" mh-sent-from-folder nil)
          (read-string (concat "Message number"
@@ -1559,31 +1590,34 @@
 (defun mh-yank-cur-msg ()
   "Insert the current message into the draft buffer.
 
-It is often useful to insert a snippet of text from a letter that someone
-mailed to provide some context for your reply. This command does this by
-adding an attribution, yanking a portion of text from the message to which
-you're replying, and inserting `mh-ins-buf-prefix' (`> ') before each line.
+It is often useful to insert a snippet of text from a letter that
+someone mailed to provide some context for your reply. This
+command does this by adding an attribution, yanking a portion of
+text from the message to which you're replying, and inserting
+`mh-ins-buf-prefix' (`> ') before each line.
 
 The attribution consists of the sender's name and email address
 followed by the content of the `mh-extract-from-attribution-verb'
 option.
 
-You can also turn on the `mh-delete-yanked-msg-window-flag' option to delete
-the window containing the original message after yanking it to make more room
-on your screen for your reply.
+You can also turn on the `mh-delete-yanked-msg-window-flag'
+option to delete the window containing the original message after
+yanking it to make more room on your screen for your reply.
 
-You can control how the message to which you are replying is yanked
-into your reply using `mh-yank-behavior'.
+You can control how the message to which you are replying is
+yanked into your reply using `mh-yank-behavior'.
 
-If this isn't enough, you can gain full control over the appearance of the
-included text by setting `mail-citation-hook' to a function that modifies it.
-For example, if you set this hook to `trivial-cite' (which is NOT part of
-Emacs), set `mh-yank-behavior' to \"Body and Header\" (see URL
+If this isn't enough, you can gain full control over the
+appearance of the included text by setting `mail-citation-hook'
+to a function that modifies it. For example, if you set this hook
+to `trivial-cite' \(which is NOT part of Emacs), set
+`mh-yank-behavior' to \"Body and Header\" (see URL
 `http://shasta.cs.uiuc.edu/~lrclause/tc.html').
 
-Note that if `mail-citation-hook' is set, `mh-ins-buf-prefix' is not inserted.
-If the option `mh-yank-behavior' is set to one of the supercite flavors, the
-hook `mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not inserted."
+Note that if `mail-citation-hook' is set, `mh-ins-buf-prefix' is
+not inserted. If the option `mh-yank-behavior' is set to one of
+the supercite flavors, the hook `mail-citation-hook' is ignored
+and `mh-ins-buf-prefix' is not inserted."
   (interactive)
   (if (and mh-sent-from-folder
            (save-excursion (set-buffer mh-sent-from-folder) mh-show-buffer)
@@ -1676,9 +1710,9 @@
 
 (defun mh-insert-prefix-string (mh-ins-string)
   "Insert prefix string before each line in buffer.
-The inserted letter is cited using `sc-cite-original' if `mh-yank-behavior' is
-one of 'supercite or 'autosupercite. Otherwise, simply insert MH-INS-STRING
-before each line."
+The inserted letter is cited using `sc-cite-original' if
+`mh-yank-behavior' is one of 'supercite or 'autosupercite.
+Otherwise, simply insert MH-INS-STRING before each line."
   (goto-char (point-min))
   (cond ((or (eq mh-yank-behavior 'supercite)
              (eq mh-yank-behavior 'autosupercite))
@@ -1697,9 +1731,10 @@
 ;;;###mh-autoload
 (defun mh-fully-kill-draft ()
   "Quit editing and delete draft message.
-If for some reason you are not happy with the draft, you can use the this
-command to kill the draft buffer and delete the draft message. Use the
-\\[kill-buffer] command if you don't want to delete the draft message."
+If for some reason you are not happy with the draft, you can use
+the this command to kill the draft buffer and delete the draft
+message. Use the \\[kill-buffer] command if you don't want to
+delete the draft message."
   (interactive)
   (if (y-or-n-p "Kill draft message? ")
       (let ((config mh-previous-window-config))
@@ -1727,10 +1762,12 @@
 ;;;###mh-autoload
 (defun mh-open-line ()
   "Insert a newline and leave point after it.
-This command is similar to the \\[open-line] command in that it inserts a
-newline after point. It differs in that it also inserts the right number of
-quoting characters and spaces so that the next line begins in the same column
-as it was. This is useful when breaking up paragraphs in replies."
+
+This command is similar to the \\[open-line] command in that it
+inserts a newline after point. It differs in that it also inserts
+the right number of quoting characters and spaces so that the
+next line begins in the same column as it was. This is useful
+when breaking up paragraphs in replies."
   (interactive)
   (let ((column (current-column))
         (prefix (mh-current-fill-prefix)))
@@ -1747,9 +1784,9 @@
 (defmacro mh-display-completion-list-compat (word choices)
   "Completes WORD from CHOICES using `display-completion-list'.
 Calls `display-completion-list' correctly in older environments.
-Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING argument
-which is used to highlight the next possible character you can enter
-in the current list of completions."
+Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING
+argument which is used to highlight the next possible character you
+can enter in the current list of completions."
   (if (>= emacs-major-version 22)
       `(display-completion-list (all-completions ,word ,choices) ,word)
     `(display-completion-list (all-completions ,word ,choices))))
@@ -1818,11 +1855,12 @@
 
 (defun mh-letter-complete (arg)
   "Perform completion on header field or word preceding point.
-If the field contains addresses (for example, \"To:\" or \"Cc:\") or folders
-\(for example, \"Fcc:\") then this command will provide alias completion. In
-the body of the message, this command runs `mh-letter-complete-function'
-instead, which is set to \"'ispell-complete-word\" by default. This command
-takes a prefix argument ARG that is passed to the
+If the field contains addresses (for example, \"To:\" or \"Cc:\")
+or folders \(for example, \"Fcc:\") then this command will
+provide alias completion. In the body of the message, this
+command runs `mh-letter-complete-function' instead, which is set
+to \"'ispell-complete-word\" by default. This command takes a
+prefix argument ARG that is passed to the
 `mh-letter-complete-function'."
   (interactive "P")
   (let ((func nil))
@@ -1835,8 +1873,9 @@
 
 (defun mh-letter-complete-or-space (arg)
   "Perform completion or insert space.
-Turn on the `mh-compose-space-does-completion-flag' option to use this command
-to perform completion in the header. Otherwise, a space is inserted.
+Turn on the `mh-compose-space-does-completion-flag' option to use
+this command to perform completion in the header. Otherwise, a
+space is inserted.
 
 ARG is the number of spaces inserted."
   (interactive "p")
@@ -1855,9 +1894,9 @@
 
 (defun mh-letter-confirm-address ()
   "Flash alias expansion.
-Addresses are separated by a comma\; and when you press the comma, this
-command flashes the alias expansion in the minibuffer if
-`mh-alias-flash-on-comma' is turned on."
+Addresses are separated by a comma\; and when you press the
+comma, this command flashes the alias expansion in the minibuffer
+if `mh-alias-flash-on-comma' is turned on."
   (interactive)
   (cond ((not (mh-in-header-p)) (self-insert-command 1))
         ((eq (cdr (assoc (mh-letter-header-field-at-point)
@@ -1871,8 +1910,8 @@
 
 (defun mh-letter-header-field-at-point ()
   "Return the header field name at point.
-A symbol is returned whose name is the string obtained by downcasing the field
-name."
+A symbol is returned whose name is the string obtained by
+downcasing the field name."
   (save-excursion
     (end-of-line)
     (and (re-search-backward mh-letter-header-field-regexp nil t)
@@ -1881,12 +1920,13 @@
 ;;;###mh-autoload
 (defun mh-letter-next-header-field-or-indent (arg)
   "Move to next field or indent depending on point.
-Within the header of the message, this command moves between fields, but skips
-those fields listed in `mh-compose-skipped-header-fields'. After the last
-field, this command then moves point to the message body before cycling back
-to the first field. If point is already past the first line of the message
-body, then this command indents by calling `indent-relative' with the given
-prefix argument ARG."
+Within the header of the message, this command moves between
+fields, but skips those fields listed in
+`mh-compose-skipped-header-fields'. After the last field, this
+command then moves point to the message body before cycling back
+to the first field. If point is already past the first line of
+the message body, then this command indents by calling
+`indent-relative' with the given prefix argument ARG."
   (interactive "P")
   (let ((header-end (save-excursion
                       (goto-char (mh-mail-header-end))
@@ -1898,7 +1938,8 @@
 
 (defun mh-letter-next-header-field ()
   "Cycle to the next header field.
-If we are at the last header field go to the start of the message body."
+If we are at the last header field go to the start of the message
+body."
   (let ((header-end (mh-mail-header-end)))
     (cond ((>= (point) header-end) (goto-char (point-min)))
           ((< (point) (progn
@@ -1918,10 +1959,10 @@
 ;;;###mh-autoload
 (defun mh-letter-previous-header-field ()
   "Cycle to the previous header field.
-This command moves backwards between the fields and cycles to the body of the
-message after the first field. Unlike the
-\\[mh-letter-next-header-field-or-indent] command, it will always take point
-to the last field from anywhere in the body."
+This command moves backwards between the fields and cycles to the
+body of the message after the first field. Unlike the
+\\[mh-letter-next-header-field-or-indent] command, it will always
+take point to the last field from anywhere in the body."
   (interactive)
   (let ((header-end (mh-mail-header-end)))
     (if (>= (point) header-end)
@@ -1944,8 +1985,8 @@
 
 (defun mh-letter-skip-leading-whitespace-in-header-field ()
   "Skip leading whitespace in a header field.
-If the header field doesn't have at least one space after the colon then a
-space character is added."
+If the header field doesn't have at least one space after the
+colon then a space character is added."
   (let ((need-space t))
     (while (memq (char-after) '(?\t ?\ ))
       (forward-char)
@@ -1963,8 +2004,9 @@
 
 (defun mh-letter-toggle-header-field-display-button (event)
   "Toggle header field display at location of EVENT.
-This function does the same thing as `mh-letter-toggle-header-field-display'
-except that it is callable from a mouse button."
+This function does the same thing as
+`mh-letter-toggle-header-field-display' except that it is
+callable from a mouse button."
   (interactive "e")
   (mh-do-at-event-location event
     (mh-letter-toggle-header-field-display nil)))
@@ -1972,10 +2014,10 @@
 (defun mh-letter-toggle-header-field-display (arg)
   "Toggle display of header field at point.
 
-Use this command to display truncated header fields. This command is a toggle
-so entering it again will hide the field. This command takes a prefix argument
-ARG: if negative then the field is hidden, if positive then the field is
-displayed."
+Use this command to display truncated header fields. This command
+is a toggle so entering it again will hide the field. This
+command takes a prefix argument ARG: if negative then the field
+is hidden, if positive then the field is displayed."
   (interactive (list nil))
   (when (and (mh-in-header-p)
              (progn
@@ -2035,13 +2077,15 @@
 
 (defun mh-interactive-read-address (prompt)
   "Read an address.
-If `mh-compose-prompt-flag' is non-nil, then read an address with PROMPT.
+If `mh-compose-prompt-flag' is non-nil, then read an address with
+PROMPT.
 Otherwise return the empty string."
   (if mh-compose-prompt-flag (mh-read-address prompt) ""))
 
 (defun mh-interactive-read-string (prompt)
   "Read a string.
-If `mh-compose-prompt-flag' is non-nil, then read a string with PROMPT.
+If `mh-compose-prompt-flag' is non-nil, then read a string with
+PROMPT.
 Otherwise return the empty string."
   (if mh-compose-prompt-flag (read-string prompt) ""))
 
--- a/lisp/mh-e/mh-customize.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-customize.el	Fri Dec 23 07:40:40 2005 +0000
@@ -90,8 +90,8 @@
 
 (defun mh-customize (&optional delete-other-windows-flag)
   "Customize MH-E variables.
-If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in
-the frame are removed."
+If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other
+windows in the frame are removed."
   (interactive "P")
   (customize-group 'mh-e)
   (when delete-other-windows-flag
@@ -103,8 +103,8 @@
 
 (defgroup mh-e nil
   "Emacs interface to the MH mail system.
-MH is the Rand Mail Handler. Other implementations include nmh and GNU
-mailutils."
+MH is the Rand Mail Handler. Other implementations include nmh
+and GNU mailutils."
   :link '(custom-manual "(mh-e)Top")
   :group 'mail)
 
@@ -271,12 +271,14 @@
 (defcustom mh-variant 'autodetect
   "*Specifies the variant used by MH-E.
 
-The default setting of this option is `Auto-detect' which means that MH-E will
-automatically choose the first of nmh, MH, or GNU mailutils that it finds in
-the directories listed in `mh-path' (which you can customize), `mh-sys-path',
-and `exec-path'. If, for example, you have both nmh and mailutils installed
-and `mh-variant-in-use' was initialized to nmh but you want to use mailutils,
-then you can set this option to `mailutils'.
+The default setting of this option is `Auto-detect' which means
+that MH-E will automatically choose the first of nmh, MH, or GNU
+mailutils that it finds in the directories listed in
+`mh-path' (which you can customize), `mh-sys-path', and
+`exec-path'. If, for example, you have both nmh and mailutils
+installed and `mh-variant-in-use' was initialized to nmh but you
+want to use mailutils, then you can set this option to
+`mailutils'.
 
 When this variable is changed, MH-E resets `mh-progs', `mh-lib',
 `mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use'
@@ -295,26 +297,30 @@
 
 (defcustom mh-alias-completion-ignore-case-flag t
   "*Non-nil means don't consider case significant in MH alias completion.
-As MH ignores case in the aliases, so too does MH-E. However, you may turn
-this option off to make case significant which can be used to segregate
-completion of your aliases. You might use lowercase for mailing lists and
-uppercase for people."
+
+As MH ignores case in the aliases, so too does MH-E. However, you
+may turn this option off to make case significant which can be
+used to segregate completion of your aliases. You might use
+lowercase for mailing lists and uppercase for people."
   :type 'boolean
   :group 'mh-alias)
 
 (defcustom mh-alias-expand-aliases-flag nil
   "*Non-nil means to expand aliases entered in the minibuffer.
-In other words, aliases entered in the minibuffer will be expanded to the full
-address in the message draft. By default, this expansion is not performed."
+
+In other words, aliases entered in the minibuffer will be
+expanded to the full address in the message draft. By default,
+this expansion is not performed."
   :type 'boolean
   :group 'mh-alias)
 
 (defcustom mh-alias-flash-on-comma t
   "*Specify whether to flash address or warn on translation.
-This option controls the behavior when a [comma] is pressed while entering
-aliases or addresses. The default setting flashes the address associated with
-an address in the minibuffer briefly, but does not display a warning if the
-alias is not found."
+
+This option controls the behavior when a [comma] is pressed while
+entering aliases or addresses. The default setting flashes the
+address associated with an address in the minibuffer briefly, but
+does not display a warning if the alias is not found."
   :type '(choice (const :tag "Flash but Don't Warn If No Alias" t)
                  (const :tag "Flash and Warn If No Alias" 1)
                  (const :tag "Don't Flash Nor Warn If No Alias" nil))
@@ -322,11 +328,12 @@
 
 (defcustom mh-alias-insert-file nil
   "*Filename used to store a new MH-E alias.
-The default setting of this option is `Use Aliasfile Profile Component'. This
-option can also hold the name of a file or a list a file names. If this option
-is set to a list of file names, or the `Aliasfile:' profile component contains
-more than one file name, MH-E will prompt for one of them when MH-E adds an
-alias."
+
+The default setting of this option is `Use Aliasfile Profile
+Component'. This option can also hold the name of a file or a
+list a file names. If this option is set to a list of file names,
+or the `Aliasfile:' profile component contains more than one file
+name, MH-E will prompt for one of them when MH-E adds an alias."
   :type '(choice (const :tag "Use Aliasfile Profile Component" nil)
                  (file :tag "Alias File")
                  (repeat :tag "List of Alias Files" file))
@@ -334,9 +341,10 @@
 
 (defcustom mh-alias-insertion-location 'sorted
   "Specifies where new aliases are entered in alias files.
-This option is set to `Alphabetical' by default. If you organize your alias
-file in other ways, then adding aliases to the `Top' or `Bottom' of your alias
-file might be more appropriate."
+
+This option is set to `Alphabetical' by default. If you organize
+your alias file in other ways, then adding aliases to the `Top'
+or `Bottom' of your alias file might be more appropriate."
   :type '(choice (const :tag "Alphabetical" sorted)
                  (const :tag "Top" top)
                  (const :tag "Bottom" bottom))
@@ -345,17 +353,20 @@
 (defcustom mh-alias-local-users t
   "*If on, local users are added to alias completion.
 
-Aliases are created from `/etc/passwd' entries with a user ID larger than
-a magical number, typically 200. This can be a handy tool on a machine where
-you and co-workers exchange messages. These aliases have the form
-`local.first.last' if a real name is present in the password file.
-Otherwise, the alias will have the form `local.login'.
-
-If you're on a system with thousands of users you don't know, and the loading
-of local aliases slows MH-E down noticeably, then turn this option off.
-
-This option also takes a string which is executed to generate the password
-file. For example, use \"ypcat passwd\" to obtain the NIS password file."
+Aliases are created from `/etc/passwd' entries with a user ID
+larger than a magical number, typically 200. This can be a handy
+tool on a machine where you and co-workers exchange messages.
+These aliases have the form `local.first.last' if a real name is
+present in the password file. Otherwise, the alias will have the
+form `local.login'.
+
+If you're on a system with thousands of users you don't know, and
+the loading of local aliases slows MH-E down noticeably, then
+turn this option off.
+
+This option also takes a string which is executed to generate the
+password file. For example, use \"ypcat passwd\" to obtain the
+NIS password file."
   :type '(choice (boolean) (string))
   :group 'mh-alias)
 
@@ -367,24 +378,27 @@
 
     psg:x:1000:1000:Peter S Galbraith,,,:/home/psg:/bin/tcsh
 
-The following settings of this option will produce the associated aliases:
+The following settings of this option will produce the associated
+aliases:
 
     \"local.\"                  local.peter.galbraith
     \"\"                        peter.galbraith
     Use Login                   psg
 
-This option has no effect if variable `mh-alias-local-users' is turned off."
+This option has no effect if variable `mh-alias-local-users' is
+turned off."
   :type '(choice (const :tag "Use Login" nil)
                  (string))
   :group 'mh-alias)
 
 (defcustom mh-alias-passwd-gecos-comma-separator-flag t
   "*Non-nil means the gecos field in the password file uses a comma separator.
-In the example in `mh-alias-local-users-prefix', commas are used to separate
-different values within the so-called gecos field. This is a fairly common
-usage. However, in the rare case that the gecos field in your password file is
-not separated by commas and whose contents may contain commas, you can turn
-this option off."
+
+In the example in `mh-alias-local-users-prefix', commas are used
+to separate different values within the so-called gecos field.
+This is a fairly common usage. However, in the rare case that the
+gecos field in your password file is not separated by commas and
+whose contents may contain commas, you can turn this option off."
   :type 'boolean
   :group 'mh-alias)
 
@@ -395,9 +409,10 @@
 (defcustom mh-new-messages-folders t
   "Folders searched for the \"unseen\" sequence.
 
-Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
-search all of the top level folders. Otherwise, list the folders that should
-be searched with the \"Choose Folders\" menu item.
+Set this option to \"Inbox\" to search the \"+inbox\" folder or
+\"All\" to search all of the top level folders. Otherwise, list
+the folders that should be searched with the \"Choose Folders\"
+menu item.
 
 See also `mh-recursive-folders-flag'."
   :type '(choice (const :tag "Inbox" t)
@@ -408,9 +423,10 @@
 (defcustom mh-ticked-messages-folders t
   "Folders searched for `mh-tick-seq'.
 
-Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
-search all of the top level folders. Otherwise, list the folders that should
-be searched with the \"Choose Folders\" menu item.
+Set this option to \"Inbox\" to search the \"+inbox\" folder or
+\"All\" to search all of the top level folders. Otherwise, list
+the folders that should be searched with the \"Choose Folders\"
+menu item.
 
 See also `mh-recursive-folders-flag'."
   :type '(choice (const :tag "Inbox" t)
@@ -420,17 +436,20 @@
 
 (defcustom mh-large-folder 200
   "The number of messages that indicates a large folder.
-If a folder is deemed to be large, that is the number of messages in it exceed
-this value, then confirmation is needed when it is visited. Even when
-`mh-show-threads-flag' is non-nil, the folder is not automatically threaded, if
-it is large. If set to nil all folders are treated as if they are small."
+
+If a folder is deemed to be large, that is the number of messages
+in it exceed this value, then confirmation is needed when it is
+visited. Even when `mh-show-threads-flag' is non-nil, the folder
+is not automatically threaded, if it is large. If set to nil all
+folders are treated as if they are small."
   :type '(choice (const :tag "No Limit") integer)
   :group 'mh-folder)
 
 (defcustom mh-recenter-summary-flag nil
   "*Non-nil means to recenter the summary window.
-If this option is turned on, recenter the summary window when the show window
-is toggled off."
+
+If this option is turned on, recenter the summary window when the
+show window is toggled off."
   :type 'boolean
   :group 'mh-folder)
 
@@ -443,9 +462,10 @@
   "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>.
 
 This option is consulted when a prefix argument is used with
-\\[mh-sort-folder]. Normally default arguments to \"sortm\" are specified in
-the MH profile. This option may be used to provide an alternate view. For
-example, \"'(\"-nolimit\" \"-textfield\" \"subject\")\" is a useful setting."
+\\[mh-sort-folder]. Normally default arguments to \"sortm\" are
+specified in the MH profile. This option may be used to provide
+an alternate view. For example, \"'(\"-nolimit\" \"-textfield\"
+\"subject\")\" is a useful setting."
   :type 'string
   :group 'mh-folder)
 
@@ -455,23 +475,27 @@
 
 (defcustom mh-default-folder-for-message-function nil
   "Function to select a default folder for refiling or `Fcc'.
-The current buffer is set to the message being refiled with point at the start
-of the message. This function should return the default folder as a string
-with a leading `+' sign. It can also return nil so that the last folder name
-is used as the default, or an empty string to suppress the default entirely."
+
+The current buffer is set to the message being refiled with point
+at the start of the message. This function should return the
+default folder as a string with a leading `+' sign. It can also
+return nil so that the last folder name is used as the default,
+or an empty string to suppress the default entirely."
   :type 'function
   :group 'mh-folder-selection)
 
 (defcustom mh-default-folder-list nil
   "*List of addresses and folders.
-The folder name associated with the first address found in this list is used
-as the default for `mh-refile-msg' and similar functions. 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.
-
-See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more
-information."
+
+The folder name associated with the first address found in this
+list is used as the default for `mh-refile-msg' and similar
+functions. 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.
+
+See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
+for more information."
   :type '(repeat (list (regexp :tag "Address")
                        (string :tag "Folder")
                        (boolean :tag "Check Recipient")))
@@ -479,13 +503,14 @@
 
 (defcustom mh-default-folder-must-exist-flag t
   "*Non-nil means guessed folder name must exist to be used.
-If the derived folder does not exist, and this option is on, then the last
-folder name used is suggested. This is useful if you get mail from various
-people for whom you have an alias, but file them all in the same project
-folder.
-
-See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more
-information."
+
+If the derived folder does not exist, and this option is on, then
+the last folder name used is suggested. This is useful if you get
+mail from various people for whom you have an alias, but file
+them all in the same project folder.
+
+See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
+for more information."
   :type 'boolean
   :group 'mh-folder-selection)
 
@@ -493,8 +518,8 @@
   "*Prefix used for folder names generated from aliases.
 The prefix is used to prevent clutter in your mail directory.
 
-See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more
-information."
+See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
+for more information."
   :type 'string
   :group 'mh-folder-selection)
 
@@ -505,34 +530,38 @@
 (defcustom mh-identity-list nil
   "*List of identities.
 
-To customize this option, click on the `INS' button and enter a label such as
-`Home' or `Work'. Then click on the `INS' button with the label `Add at least
-one item below'. Then choose one of the items in the `Value Menu'.
-
-You can specify an alternate `From:' header field using the `From Field' menu
-item. You must include a valid email address. A standard format is `First Last
-<login@@host.domain>'. If you use an initial with a period, then you must
-quote your name as in `\"First I. Last\" <login@@host.domain>'. People usually
-list the name of the company where they work using the `Organization Field'
-menu item. Set any arbitrary header field and value in the `Other Field' menu
-item. Unless the header field is a standard one, precede the name of your
+To customize this option, click on the `INS' button and enter a label
+such as `Home' or `Work'. Then click on the `INS' button with the
+label `Add at least one item below'. Then choose one of the items in
+the `Value Menu'.
+
+You can specify an alternate `From:' header field using the `From
+Field' menu item. You must include a valid email address. A standard
+format is `First Last <login@@host.domain>'. If you use an initial
+with a period, then you must quote your name as in `\"First I. Last\"
+<login@@host.domain>'. People usually list the name of the company
+where they work using the `Organization Field' menu item. Set any
+arbitrary header field and value in the `Other Field' menu item.
+Unless the header field is a standard one, precede the name of your
 field's label with `X-', as in `X-Fruit-of-the-Day:'. The value of
 `Attribution Verb' overrides the setting of
-`mh-extract-from-attribution-verb'. Set your signature with the `Signature'
-menu item. You can specify the contents of `mh-signature-file-name', a file,
-or a function. Specify a different key to sign or encrypt messages with the
-`GPG Key ID' menu item.
-
-You can select the identities you have added via the menu called `Identity' in
-the MH-Letter buffer. You can also use \\[mh-insert-identity]. To clear the
-fields and signature added by the identity, select the `None' identity.
-
-The `Identity' menu contains two other items to save you from having to set
-the identity on every message. The menu item `Set Default for Session' can be
-used to set the default identity to the current identity until you exit Emacs.
-The menu item `Save as Default' sets the option `mh-identity-default' to the
-current identity setting. You can also customize the `mh-identity-default'
-option in the usual fashion."
+`mh-extract-from-attribution-verb'. Set your signature with the
+`Signature' menu item. You can specify the contents of
+`mh-signature-file-name', a file, or a function. Specify a different
+key to sign or encrypt messages with the `GPG Key ID' menu item.
+
+You can select the identities you have added via the menu called
+`Identity' in the MH-Letter buffer. You can also use
+\\[mh-insert-identity]. To clear the fields and signature added by the
+identity, select the `None' identity.
+
+The `Identity' menu contains two other items to save you from having
+to set the identity on every message. The menu item `Set Default for
+Session' can be used to set the default identity to the current
+identity until you exit Emacs. The menu item `Save as Default' sets
+the option `mh-identity-default' to the current identity setting. You
+can also customize the `mh-identity-default' option in the usual
+fashion."
   :type '(repeat (list :tag ""
                        (string :tag "Label")
                        (repeat :tag "Add at least one item below"
@@ -567,37 +596,40 @@
 (defcustom mh-auto-fields-list nil
   "List of recipients for which header lines are automatically inserted.
 
-This option can be used to set the identity depending on the recipient. To
-customize this option, click on the `INS' button and enter a regular
-expression for the recipient's address. Click on the `INS' button with the
-`Add at least one item below' label. Then choose one of the items in the
-`Value Menu'.
-
-The `Identity' menu item is used to select an identity from those configured
-in `mh-identity-list'. All of the information for that identity will be added
-if the recipient matches. The `Fcc Field' menu item is used to select a folder
-that is used in the `Fcc:' header. When you send the message, MH will put a
-copy of your message in this folder. The `Mail-Followup-To Field' menu item is
-used to insert an `Mail-Followup-To:' header field with the recipients you
-provide. If the recipient's mail user agent supports this header field (as nmh
-does), then their replies will go to the addresses listed. This is useful if
-their replies go both to the list and to you and you don't have a mechanism to
-suppress duplicates. If you reply to someone not on the list, you must either
-remove the `Mail-Followup-To:' field, or ensure the recipient is also listed
-there so that he receives replies to your reply. Other header fields may be
-added using the `Other Field' menu item.
-
-These fields can only be added after the recipient is known. Once the header
-contains one or more recipients, run the \\[mh-insert-auto-fields] command or
-choose the `Identity -> Insert Auto Fields' menu item to insert these fields
-manually. However, you can just send the message and the fields will be added
-automatically. You are given a chance to see these fields and to confirm them
-before the message is actually sent. You can do away with this confirmation by
-turning off the option `mh-auto-fields-prompt-flag'.
-
-You should avoid using the same header field in `mh-auto-fields-list' and
-`mh-identity-list' definitions that may apply to the same message as the
-result is undefined."
+This option can be used to set the identity depending on the
+recipient. To customize this option, click on the `INS' button and
+enter a regular expression for the recipient's address. Click on the
+`INS' button with the `Add at least one item below' label. Then choose
+one of the items in the `Value Menu'.
+
+The `Identity' menu item is used to select an identity from those
+configured in `mh-identity-list'. All of the information for that
+identity will be added if the recipient matches. The `Fcc Field' menu
+item is used to select a folder that is used in the `Fcc:' header.
+When you send the message, MH will put a copy of your message in this
+folder. The `Mail-Followup-To Field' menu item is used to insert an
+`Mail-Followup-To:' header field with the recipients you provide. If
+the recipient's mail user agent supports this header field (as nmh
+does), then their replies will go to the addresses listed. This is
+useful if their replies go both to the list and to you and you don't
+have a mechanism to suppress duplicates. If you reply to someone not
+on the list, you must either remove the `Mail-Followup-To:' field, or
+ensure the recipient is also listed there so that he receives replies
+to your reply. Other header fields may be added using the `Other
+Field' menu item.
+
+These fields can only be added after the recipient is known. Once the
+header contains one or more recipients, run the
+\\[mh-insert-auto-fields] command or choose the `Identity -> Insert
+Auto Fields' menu item to insert these fields manually. However, you
+can just send the message and the fields will be added automatically.
+You are given a chance to see these fields and to confirm them before
+the message is actually sent. You can do away with this confirmation
+by turning off the option `mh-auto-fields-prompt-flag'.
+
+You should avoid using the same header field in `mh-auto-fields-list'
+and `mh-identity-list' definitions that may apply to the same message
+as the result is undefined."
   :type `(repeat
           (list :tag ""
                 (string :tag "Recipient")
@@ -645,25 +677,28 @@
     (":pgg-default-user-id" . mh-identity-handler-gpg-identity))
   "Handler functions for fields in `mh-identity-list'.
 
-This option is used to change the way that fields, signatures, and
-attributions in `mh-identity-list' are added. To customize
-`mh-identity-handlers', replace the name of an existing handler function
-associated with the field you want to change with the name of a function you
-have written. You can also click on an `INS' button and insert a field of your
-choice and the name of the function you have written to handle it.
+This option is used to change the way that fields, signatures,
+and attributions in `mh-identity-list' are added. To customize
+`mh-identity-handlers', replace the name of an existing handler
+function associated with the field you want to change with the
+name of a function you have written. You can also click on an
+`INS' button and insert a field of your choice and the name of
+the function you have written to handle it.
 
 The `Field' field can be any field that you've used in your
-`mh-identity-list'. The special fields `:attribution-verb', `:signature', or
-`:pgg-default-user-id' are used for the `mh-identity-list' choices
-`Attribution Verb', `Signature', and `GPG Key ID' respectively.
-
-The handler associated with the `:default' field is used when no other field
-matches.
-
-The handler functions are passed two or three arguments: the FIELD itself (for
-example, `From'), or one of the special fields (for example, `:signature'),
-and the ACTION `'remove' or `'add'. If the action is `'add', an additional
-argument containing the VALUE for the field is given."
+`mh-identity-list'. The special fields `:attribution-verb',
+`:signature', or `:pgg-default-user-id' are used for the
+`mh-identity-list' choices `Attribution Verb', `Signature', and
+`GPG Key ID' respectively.
+
+The handler associated with the `:default' field is used when no
+other field matches.
+
+The handler functions are passed two or three arguments: the
+FIELD itself (for example, `From'), or one of the special
+fields (for example, `:signature'), and the ACTION `'remove' or
+`'add'. If the action is `'add', an additional argument
+containing the VALUE for the field is given."
   :type '(repeat (cons (string :tag "Field") function))
   :group 'mh-identity)
 
@@ -674,23 +709,25 @@
 (defcustom mh-inc-prog "inc"
   "*Program to incorporate new mail into a folder.
 
-This program generates a one-line summary for each of the new messages. Unless
-it is an absolute pathname, the file is assumed to be in the `mh-progs'
-directory. You may also link a file to `inc' that uses a different format.
-You'll then need to modify several scan line format variables appropriately."
+This program generates a one-line summary for each of the new
+messages. Unless it is an absolute pathname, the file is assumed
+to be in the `mh-progs' directory. You may also link a file to
+`inc' that uses a different format. You'll then need to modify
+several scan line format variables appropriately."
   :type 'string
   :group 'mh-inc)
 
 (defcustom mh-inc-spool-list nil
   "*Alternate spool files.
 
-You can use the `mh-inc-spool-list' variable to direct MH-E to retrieve mail
-from arbitrary spool files other than your system mailbox, file it in folders
-other than your `+inbox', and assign key bindings to incorporate this mail.
-
-Suppose you are subscribed to the `mh-e-devel' mailing list and you use
-`procmail' to filter this mail into `~/mail/mh-e' with the following recipe in
-`.procmailrc':
+You can use the `mh-inc-spool-list' variable to direct MH-E to
+retrieve mail from arbitrary spool files other than your system
+mailbox, file it in folders other than your `+inbox', and assign
+key bindings to incorporate this mail.
+
+Suppose you are subscribed to the `mh-e-devel' mailing list and
+you use `procmail' to filter this mail into `~/mail/mh-e' with
+the following recipe in `.procmailrc':
 
     MAILDIR=$HOME/mail
     :0:
@@ -698,12 +735,12 @@
     mh-e
 
 In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m'
-\(`mh-inc-spool-mh-e'\) command, customize this option, and click on the `INS'
-button. Enter a `Spool File' of `~/mail/mh-e', a `Folder' of `mh-e', and a
-`Key Binding' of `m'.
-
-You can use `xbuffy' to automate the incorporation of this mail using the
-`gnudoit' command in the `gnuserv' package as follows:
+\(`mh-inc-spool-mh-e'\) command, customize this option, and click
+on the `INS' button. Enter a `Spool File' of `~/mail/mh-e', a
+`Folder' of `mh-e', and a `Key Binding' of `m'.
+
+You can use `xbuffy' to automate the incorporation of this mail
+using the `gnudoit' command in the `gnuserv' package as follows:
 
     box ~/mail/mh-e
         title mh-e
@@ -723,13 +760,15 @@
 
 (defcustom mh-index-program nil
   "Indexing program that MH-E shall use.
-The default setting of this option is `Auto-detect' which means that MH-E will
-automatically choose one of swish++, swish-e, mairix, namazu, pick and grep in
-that order. If, for example, you have both swish++ and mairix installed and
-you want to use mairix, then you can set this option to `mairix'.
-
-More information about setting up an indexing program to use with MH-E can be
-found in the documentation of `mh-index-search'."
+
+The default setting of this option is `Auto-detect' which means
+that MH-E will automatically choose one of swish++, swish-e,
+mairix, namazu, pick and grep in that order. If, for example, you
+have both swish++ and mairix installed and you want to use
+mairix, then you can set this option to `mairix'.
+
+More information about setting up an indexing program to use with
+MH-E can be found in the documentation of `mh-index-search'."
   :type '(choice (const :tag "Auto-detect" nil)
                  (const :tag "swish++" swish++)
                  (const :tag "swish-e" swish)
@@ -752,13 +791,17 @@
     (bogofilter mh-bogofilter-blacklist mh-bogofilter-whitelist)
     (spamprobe mh-spamprobe-blacklist mh-spamprobe-whitelist))
   "Available choices of spam programs to use.
-This is an alist. For each element there are functions that blacklist a message
-as spam and whitelist a message incorrectly classified as spam.")
+
+This is an alist. For each element there are functions that
+blacklist a message as spam and whitelist a message incorrectly
+classified as spam.")
 
 (defun mh-junk-choose (symbol value)
   "Choose spam program to use.
-The function is always called with SYMBOL bound to `mh-junk-program' and VALUE
-bound to the new value of `mh-junk-program'. The function sets the variable
+
+The function is always called with SYMBOL bound to
+`mh-junk-program' and VALUE bound to the new value of
+`mh-junk-program'. The function sets the variable
 `mh-junk-choice' in addition to `mh-junk-program'."
   (set symbol value)
   (setq mh-junk-choice
@@ -770,9 +813,11 @@
 ;; User customizable variables
 (defcustom mh-junk-background nil
   "If on, spam programs are run in background.
-By default, the programs are run in the foreground, but this can be slow when
-junking large numbers of messages. If you have enough memory or don't junk
-that many messages at the same time, you might try turning on this option."
+
+By default, the programs are run in the foreground, but this can
+be slow when junking large numbers of messages. If you have
+enough memory or don't junk that many messages at the same time,
+you might try turning on this option."
   :type '(choice (const :tag "Off" nil)
                  (const :tag "On" 0))
   :group 'mh-junk)
@@ -786,11 +831,11 @@
 (defcustom mh-junk-program nil
   "Spam program that MH-E should use.
 
-The default setting of this option is \"Auto-detect\" which means that MH-E
-will automatically choose one of SpamAssassin, bogofilter, or SpamProbe in
-that order. If, for example, you have both SpamAssassin and bogofilter
-installed and you want to use bogofilter, then you can set this option to
-\"Bogofilter\"."
+The default setting of this option is \"Auto-detect\" which means
+that MH-E will automatically choose one of SpamAssassin,
+bogofilter, or SpamProbe in that order. If, for example, you have
+both SpamAssassin and bogofilter installed and you want to use
+bogofilter, then you can set this option to \"Bogofilter\"."
   :type '(choice (const :tag "Auto-detect" nil)
                  (const :tag "SpamAssassin" spamassassin)
                  (const :tag "Bogofilter" bogofilter)
@@ -804,11 +849,13 @@
 
 (defcustom mh-compose-insertion (if (locate-library "mml") 'mml 'mh)
   "Type of tags used when composing MIME messages.
-In addition to MH-style directives, MH-E also supports MML (MIME Meta
-Language) tags. (see Info node `(emacs-mime)Composing'). This option can be
-used to choose between them. By default, this option is set to \"MML\" if it
-is supported since it provides a lot more functionality. This option can also
-be set to \"MH\" if MH-style directives are preferred."
+
+In addition to MH-style directives, MH-E also supports MML (MIME
+Meta Language) tags. (see Info node `(emacs-mime)Composing').
+This option can be used to choose between them. By default, this
+option is set to \"MML\" if it is supported since it provides a
+lot more functionality. This option can also be set to \"MH\" if
+MH-style directives are preferred."
   :type '(choice (const :tag "MML" mml)
                  (const :tag "MH"  mh))
   :group 'mh-letter)
@@ -827,18 +874,20 @@
 
 (defcustom mh-delete-yanked-msg-window-flag nil
   "*Non-nil means delete any window displaying the message.
-This deletes the window containing the original message after yanking it with
-\\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make more room on your screen for
-your reply."
+
+This deletes the window containing the original message after
+yanking it with \\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make
+more room on your screen for your reply."
   :type 'boolean
   :group 'mh-letter)
 
 (defcustom mh-extract-from-attribution-verb "wrote:"
   "*Verb to use for attribution when a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg].
-The attribution consists of the sender's name and email address followed by
-the content of this option. This option can be set to \"wrote:\", \"a
-écrit:\", and \"schrieb:\". You can also use the \"Custom String\" menu item
-to enter your own verb."
+
+The attribution consists of the sender's name and email address
+followed by the content of this option. This option can be set to
+\"wrote:\", \"a écrit:\", and \"schrieb:\". You can also use the
+\"Custom String\" menu item to enter your own verb."
   :type '(choice (const "wrote:")
                  (const "a écrit:")
                  (const "schrieb:")
@@ -847,43 +896,51 @@
 
 (defcustom mh-ins-buf-prefix "> "
   "*String to put before each line of a yanked or inserted message.
-The prefix \"> \" is the default setting of this option. I suggest that you
-not modify this option since it is used by many mailers and news readers:
-messages are far easier to read if several included messages have all been
-indented by the same string.
-
-This prefix is not inserted if you use one of the supercite flavors of
-`mh-yank-behavior' or you have added a `mail-citation-hook'."
+
+The prefix \"> \" is the default setting of this option. I
+suggest that you not modify this option since it is used by many
+mailers and news readers: messages are far easier to read if
+several included messages have all been indented by the same
+string.
+
+This prefix is not inserted if you use one of the supercite
+flavors of `mh-yank-behavior' or you have added a
+`mail-citation-hook'."
   :type 'string
   :group 'mh-letter)
 
 (defcustom mh-letter-complete-function 'ispell-complete-word
   "*Function to call when completing outside of address or folder fields.
-In the body of the message, \\<mh-letter-mode-map>\\[mh-letter-complete] runs
-this function, which is set to \"ispell-complete-word\" by default."
+
+In the body of the message,
+\\<mh-letter-mode-map>\\[mh-letter-complete] runs this function,
+which is set to \"ispell-complete-word\" by default."
   :type '(choice function (const nil))
   :group 'mh-letter)
 
 (defcustom mh-letter-fill-column 72
   "*Fill column to use in MH Letter mode.
-By default, this option is 72 to allow others to quote your message without
-line wrapping."
+
+By default, this option is 72 to allow others to quote your
+message without line wrapping."
   :type 'integer
   :group 'mh-letter)
 
 (defcustom mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none")
   "Default method to use in security tags.
-This option is used to select between a variety of mail security mechanisms.
-The default is \"PGP (MIME)\" if it is supported\; otherwise, the default is
-\"None\". Other mechanisms include vanilla \"PGP\" and \"S/MIME\".
-
-The `pgg' customization group may have some settings which may interest you
-\(see Info node `(pgg)').
-
-In particular, I set the option `pgg-encrypt-for-me' to t so that all messages
-I encrypt are encrypted with my public key as well. If you keep a copy of all
-of your outgoing mail with a \"Fcc:\" header field, this setting is vital so
-that you can read the mail you write!"
+
+This option is used to select between a variety of mail security
+mechanisms. The default is \"PGP (MIME)\" if it is supported\;
+otherwise, the default is \"None\". Other mechanisms include
+vanilla \"PGP\" and \"S/MIME\".
+
+The `pgg' customization group may have some settings which may
+interest you \(see Info node `(pgg)').
+
+In particular, I set the option `pgg-encrypt-for-me' to t so that all
+messages I encrypt are encrypted with my public key as well. If you
+keep a copy of all of your outgoing mail with a \"Fcc:\" header field,
+this setting is vital so that you can read the mail you write!"
   :type '(choice (const :tag "PGP (MIME)" "pgpmime")
                  (const :tag "PGP" "pgp")
                  (const :tag "S/MIME" "smime")
@@ -914,72 +971,76 @@
 
 (defcustom mh-signature-separator-flag t
   "*Non-nil means a signature separator should be inserted.
-It is not recommended that you change this option since various mail user
-agents, including MH-E, use the separator to present the signature
-differently, and to suppress the signature when replying or yanking a letter
-into a draft."
+
+It is not recommended that you change this option since various
+mail user agents, including MH-E, use the separator to present
+the signature differently, and to suppress the signature when
+replying or yanking a letter into a draft."
   :type 'boolean
   :group 'mh-letter)
 
 (defcustom mh-x-face-file "~/.face"
   "*File containing face header field to insert in outgoing mail.
 
-If the file starts with either of the strings \"X-Face:\", \"Face:\" or
-\"X-Image-URL:\" then the contents are added to the message header verbatim.
-Otherwise it is assumed that the file contains the value of the \"X-Face:\"
-header field.
-
-The \"X-Face:\" header field, which is a low-resolution, black
-and white image, can be generated using the \"compface\" command
-\(see URL `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z').
-The \"Online X-Face Converter\" is a useful resource for quick
-conversion of images into \"X-Face:\" header fields (see URL
+If the file starts with either of the strings \"X-Face:\", \"Face:\"
+or \"X-Image-URL:\" then the contents are added to the message header
+verbatim. Otherwise it is assumed that the file contains the value of
+the \"X-Face:\" header field.
+
+The \"X-Face:\" header field, which is a low-resolution, black and
+white image, can be generated using the \"compface\" command (see URL
+`ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z'). The
+\"Online X-Face Converter\" is a useful resource for quick conversion
+of images into \"X-Face:\" header fields (see URL
 `http://www.dairiki.org/xface/').
 
-Use the \"make-face\" script to convert a JPEG image to the
-higher resolution, color, \"Face:\" header field (see URL
+Use the \"make-face\" script to convert a JPEG image to the higher
+resolution, color, \"Face:\" header field (see URL
 `http://quimby.gnus.org/circus/face/make-face').
 
 The URL of any image can be used for the \"X-Image-URL:\" field and no
 processing of the image is required.
 
 To prevent the setting of any of these header fields, either set
-`mh-x-face-file' to nil, or simply ensure that the file defined by this option
-doesn't exist."
+`mh-x-face-file' to nil, or simply ensure that the file defined by
+this option doesn't exist."
   :type 'file
   :group 'mh-letter)
 
 (defcustom mh-yank-behavior 'attribution
   "*Controls which part of a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg].
 
-To include the entire message, including the entire header, use \"Body and
-Header\". Use \"Body\" to yank just the body without the header. To yank only
-the portion of the message following the point, set this option to \"Below
-Point\".
-
-Choose \"Invoke supercite\" to pass the entire message and header through
-supercite.
-
-If the \"Body With Attribution\" setting is used, then the message minus the
-header is yanked and a simple attribution line is added at the top using the
-value of the `mh-extract-from-attribution-verb' option. This is the default.
-
-If the \"Invoke supercite\" or \"Body With Attribution\" settings are used,
-the \"-noformat\" argument is passed to the \"repl\" program to override a
-\"-filter\" or \"-format\" argument. These settings also have
-\"Automatically\" variants that perform the action automatically when you
-reply so that you don't need to use \\[mh-yank-cur-msg] at all. Note that this
-automatic action is only performed if the show buffer matches the message
-being replied to. People who use the automatic variants tend to turn on the
-`mh-delete-yanked-msg-window-flag' option as well so that the show window is
-never displayed.
-
-If the show buffer has a region, the `mh-yank-behavior' option is ignored
-unless its value is one of Attribution variants in which case the attribution
-is added to the yanked region.
+To include the entire message, including the entire header, use \"Body
+and Header\". Use \"Body\" to yank just the body without the header.
+To yank only the portion of the message following the point, set this
+option to \"Below Point\".
+
+Choose \"Invoke supercite\" to pass the entire message and header
+through supercite.
+
+If the \"Body With Attribution\" setting is used, then the message
+minus the header is yanked and a simple attribution line is added at
+the top using the value of the `mh-extract-from-attribution-verb'
+option. This is the default.
+
+If the \"Invoke supercite\" or \"Body With Attribution\" settings are
+used, the \"-noformat\" argument is passed to the \"repl\" program to
+override a \"-filter\" or \"-format\" argument. These settings also
+have \"Automatically\" variants that perform the action automatically
+when you reply so that you don't need to use \\[mh-yank-cur-msg] at
+all. Note that this automatic action is only performed if the show
+buffer matches the message being replied to. People who use the
+automatic variants tend to turn on the
+`mh-delete-yanked-msg-window-flag' option as well so that the show
+window is never displayed.
+
+If the show buffer has a region, the `mh-yank-behavior' option is
+ignored unless its value is one of Attribution variants in which case
+the attribution is added to the yanked region.
 
 If this option is set to one of the supercite flavors, the hook
-`mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not inserted."
+`mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not
+inserted."
   :type '(choice (const :tag "Body and Header" t)
                  (const :tag "Body" body)
                  (const :tag "Below Point" nil)
@@ -996,10 +1057,11 @@
 
 (defcustom mh-interpret-number-as-range-flag t
   "*Non-nil means interpret a number as a range.
-Since one of the most frequent ranges used is \"last:N\", MH-E will interpret
-input such as \"200\" as \"last:200\" if this option is on (which is the
-default). If you need to scan just the message 200, then use the range
-\"200:200\"."
+
+Since one of the most frequent ranges used is \"last:N\", MH-E
+will interpret input such as \"200\" as \"last:200\" if this
+option is on (which is the default). If you need to scan just the
+message 200, then use the range \"200:200\"."
   :type 'boolean
   :group 'mh-ranges)
 
@@ -1012,8 +1074,9 @@
 
 (defun mh-adaptive-cmd-note-flag-check (symbol value)
   "Check if desired setting is legal.
-Throw an error if user tries to turn on `mh-adaptive-cmd-note-flag' when
-`mh-scan-format-file' isn't t. Otherwise, set SYMBOL to VALUE."
+Throw an error if user tries to turn on
+`mh-adaptive-cmd-note-flag' when `mh-scan-format-file' isn't t.
+Otherwise, set SYMBOL to VALUE."
   (if (and value
            (not (eq mh-scan-format-file t)))
       (error "%s %s" "Can't turn on unless mh-scan-format-file"
@@ -1022,8 +1085,9 @@
 
 (defun mh-scan-format-file-check (symbol value)
   "Check if desired setting is legal.
-Throw an error if user tries to set `mh-scan-format-file' to anything but t
-when `mh-adaptive-cmd-note-flag' is on. Otherwise, set SYMBOL to VALUE."
+Throw an error if user tries to set `mh-scan-format-file' to
+anything but t when `mh-adaptive-cmd-note-flag' is on. Otherwise,
+set SYMBOL to VALUE."
   (if (and (not (eq value t))
            (eq mh-adaptive-cmd-note-flag t))
       (error "%s %s" "You must turn off mh-adaptive-cmd-note-flag"
@@ -1032,16 +1096,17 @@
 
 (defcustom mh-adaptive-cmd-note-flag t
   "*Non-nil means that the message number width is determined dynamically.
-If you've created your own format to handle long message numbers, you'll be
-pleased to know you no longer need it since MH-E adapts its internal format
-based upon the largest message number if this option is on (the default).
-This option may only be turned on when `mh-scan-format-file' is set to \"Use
-MH-E scan Format\".
-
-If you prefer fixed-width message numbers, turn off this option and call
-`mh-set-cmd-note' with the width specified by your format file
-\(see `mh-scan-format-file'). For example, the default width is 4, so you would
-use \"(mh-set-cmd-note 4)\"."
+
+If you've created your own format to handle long message numbers,
+you'll be pleased to know you no longer need it since MH-E adapts its
+internal format based upon the largest message number if this option
+is on (the default). This option may only be turned on when
+`mh-scan-format-file' is set to \"Use MH-E scan Format\".
+
+If you prefer fixed-width message numbers, turn off this option and
+call `mh-set-cmd-note' with the width specified by your format file
+\(see `mh-scan-format-file'). For example, the default width is 4, so
+you would use \"(mh-set-cmd-note 4)\"."
   :type 'boolean
   :group 'mh-scan-line-formats
   :set 'mh-adaptive-cmd-note-flag-check)
@@ -1049,22 +1114,24 @@
 (defcustom mh-scan-format-file t
   "Specifies the format file to pass to the scan program.
 
-The default setting for this option is \"Use MH-E scan Format\". This means
-that the format string will be taken from the either `mh-scan-format-mh' or
-`mh-scan-format-nmh' depending on whether MH or nmh (or GNU mailutils) is in
-use. This setting also enables you to turn on the `mh-adaptive-cmd-note-flag'
-option.
+The default setting for this option is \"Use MH-E scan Format\". This
+means that the format string will be taken from the either
+`mh-scan-format-mh' or `mh-scan-format-nmh' depending on whether MH or
+nmh (or GNU mailutils) is in use. This setting also enables you to
+turn on the `mh-adaptive-cmd-note-flag' option.
 
 You can also set this option to \"Use Default scan Format\" to get the
-same output as you would get if you ran \"scan\" from the shell. If you have a
-format file that you want MH-E to use but not MH, you can set this option to
-\"Specify a scan Format File\" and enter the name of your format file.
-
-If you change the format of the scan lines you'll need to tell MH-E how to
-parse the new format. As you will see, quite a lot of variables are involved
-to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to obtain a list of these
-variables. You will also have to call `mh-set-cmd-note' if your notations are
-not in column 4 (columns in Emacs start with 0)."
+same output as you would get if you ran \"scan\" from the shell. If
+you have a format file that you want MH-E to use but not MH, you can
+set this option to \"Specify a scan Format File\" and enter the name
+of your format file.
+
+If you change the format of the scan lines you'll need to tell MH-E
+how to parse the new format. As you will see, quite a lot of variables
+are involved to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to
+obtain a list of these variables. You will also have to call
+`mh-set-cmd-note' if your notations are not in column 4 (columns in
+Emacs start with 0)."
   :type '(choice (const :tag "Use MH-E scan Format" t)
                  (const :tag "Use Default scan Format" nil)
                  (file  :tag "Specify a scan Format File"))
@@ -1073,10 +1140,12 @@
 
 (defcustom mh-scan-prog "scan"
   "*Program used to scan messages.
-The name of the program that generates a listing of one line per message is
-held in this option. Unless this variable contains an absolute pathname, it is
-assumed to be in the `mh-progs' directory. You may link another program to
-`scan' (see \"mh-profile(5)\") to produce a different type of listing."
+
+The name of the program that generates a listing of one line per
+message is held in this option. Unless this variable contains an
+absolute pathname, it is assumed to be in the `mh-progs'
+directory. You may link another program to `scan' (see
+\"mh-profile(5)\") to produce a different type of listing."
   :type 'string
   :group 'mh-scan-line-formats)
 (make-variable-buffer-local 'mh-scan-prog)
@@ -1088,24 +1157,26 @@
 (defcustom mh-compose-forward-as-mime-flag t
   "*Non-nil means that messages are forwarded as attachments.
 
-By default, this option is on which means that the forwarded messages are
-included as attachments. If you would prefer to forward your messages verbatim
-\(as text, inline), then turn off this option. Forwarding messages verbatim
-works well for short, textual messages, but your recipient won't be able to
-view any non-textual attachments that were in the forwarded message. Be aware
-that if you have \"forw: -mime\" in your MH profile, then forwarded messages
-will always be included as attachments regardless of the settings of this
-option."
+By default, this option is on which means that the forwarded
+messages are included as attachments. If you would prefer to
+forward your messages verbatim (as text, inline), then turn off
+this option. Forwarding messages verbatim works well for short,
+textual messages, but your recipient won't be able to view any
+non-textual attachments that were in the forwarded message. Be
+aware that if you have \"forw: -mime\" in your MH profile, then
+forwarded messages will always be included as attachments
+regardless of the settings of this option."
   :type 'boolean
   :group 'mh-sending-mail)
 
 (defcustom mh-compose-letter-function nil
   "Invoked when starting a new draft.
 
-However, it is the last function called before you edit your message. The
-consequence of this is that you can write a function to write and send the
-message for you. This function is passed three arguments: the contents of the
-TO, SUBJECT, and CC header fields."
+However, it is the last function called before you edit your
+message. The consequence of this is that you can write a function
+to write and send the message for you. This function is passed
+three arguments: the contents of the TO, SUBJECT, and CC header
+fields."
   :type '(choice (const nil) function)
   :group 'mh-sending-mail)
 
@@ -1117,40 +1188,40 @@
 (defcustom mh-forward-subject-format "%s: %s"
   "*Format string for forwarded message subject.
 
-This option is a string which includes two escapes (\"%s\"). The first \"%s\"
-is replaced with the sender of the original message, and the second one is
-replaced with the original \"Subject:\"."
+This option is a string which includes two escapes (\"%s\"). The
+first \"%s\" is replaced with the sender of the original message,
+and the second one is replaced with the original \"Subject:\"."
   :type 'string
   :group 'mh-sending-mail)
 
 (defcustom mh-insert-x-mailer-flag t
   "*Non-nil means append an \"X-Mailer:\" header field to the header.
 
-This header field includes the version of MH-E and Emacs that you are using.
-If you don't want to participate in our marketing, you can turn this option
-off."
+This header field includes the version of MH-E and Emacs that you
+are using. If you don't want to participate in our marketing, you
+can turn this option off."
   :type 'boolean
   :group 'mh-sending-mail)
 
 (defcustom mh-redist-full-contents-flag nil
   "*Non-nil means the \"dist\" command needs entire letter for redistribution.
 
-This option must be turned on if \"dist\" requires the whole letter for
-redistribution, which is the case if \"send\" is compiled with the BERK option
-\(which many people abhor). If you find that MH will not allow you to
-redistribute a message that has been redistributed before, turn off this
-option."
+This option must be turned on if \"dist\" requires the whole
+letter for redistribution, which is the case if \"send\" is
+compiled with the BERK option (which many people abhor). If you
+find that MH will not allow you to redistribute a message that
+has been redistributed before, turn off this option."
   :type 'boolean
   :group 'mh-sending-mail)
 
 (defcustom mh-reply-default-reply-to nil
   "*Sets the person or persons to whom a reply will be sent.
 
-This option is set to \"Prompt\" by default so that you are prompted for the
-recipient of a reply. If you find that most of the time that you specify
-\"cc\" when you reply to a message, set this option to \"cc\". Other choices
-include \"from\", \"to\", or \"all\". You can always edit the recipients in
-the draft."
+This option is set to \"Prompt\" by default so that you are
+prompted for the recipient of a reply. If you find that most of
+the time that you specify \"cc\" when you reply to a message, set
+this option to \"cc\". Other choices include \"from\", \"to\", or
+\"all\". You can always edit the recipients in the draft."
   :type '(choice (const :tag "Prompt" nil)
                  (const "from")
                  (const "to")
@@ -1161,8 +1232,8 @@
 (defcustom mh-reply-show-message-flag t
   "*Non-nil means the MH-Show buffer is displayed when replying.
 
-If you include the message automatically, you can hide the MH-Show
-buffer by turning off this option.
+If you include the message automatically, you can hide the
+MH-Show buffer by turning off this option.
 
 See also `mh-reply'."
   :type 'boolean
@@ -1179,19 +1250,20 @@
 (defcustom mh-refile-preserves-sequences-flag t
   "*Non-nil means that sequences are preserved when messages are refiled.
 
-If a message is in any sequence (except \"Previous-Sequence:\" and \"cur\")
-when it is refiled, then it will still be in those sequences in the
-destination folder. If this behavior is not desired, then turn off this
-option."
+If a message is in any sequence (except \"Previous-Sequence:\"
+and \"cur\") when it is refiled, then it will still be in those
+sequences in the destination folder. If this behavior is not
+desired, then turn off this option."
   :type 'boolean
   :group 'mh-sequences)
 
 (defcustom mh-tick-seq 'tick
   "The name of the MH sequence for ticked messages.
 
-You can customize this option if you already use the \"tick\" sequence for
-your own use. You can also disable all of the ticking functions by choosing
-the \"Disable Ticking\" item but there isn't much advantage to that."
+You can customize this option if you already use the \"tick\"
+sequence for your own use. You can also disable all of the
+ticking functions by choosing the \"Disable Ticking\" item but
+there isn't much advantage to that."
   :type '(choice (const :tag "Disable Ticking" nil)
                  symbol)
   :group 'mh-sequences)
@@ -1199,13 +1271,14 @@
 (defcustom mh-update-sequences-after-mh-show-flag t
   "*Non-nil means flush MH sequences to disk after message is shown.
 
-Three sequences are maintained internally by MH-E and pushed out to MH when a
-message is shown. They include the sequence specified by your
-\"Unseen-Sequence:\" profile entry, \"cur\", and the sequence listed by the
-option `mh-tick-seq' which is \"tick\" by default. If you do not like this
-behavior, turn off this option. You can then update the state manually with
-the `\\[mh-execute-commands]', `\\[mh-quit]', or `\\[mh-update-sequences]'
-commands."
+Three sequences are maintained internally by MH-E and pushed out
+to MH when a message is shown. They include the sequence
+specified by your \"Unseen-Sequence:\" profile entry, \"cur\",
+and the sequence listed by the option `mh-tick-seq' which is
+\"tick\" by default. If you do not like this behavior, turn off
+this option. You can then update the state manually with the
+`\\[mh-execute-commands]', `\\[mh-quit]', or
+`\\[mh-update-sequences]' commands."
   :type 'boolean
   :group 'mh-sequences)
 
@@ -1216,10 +1289,10 @@
 (defcustom mh-bury-show-buffer-flag t
   "*Non-nil means show buffer is buried.
 
-One advantage of not burying the show buffer is that one can delete the show
-buffer more easily in an electric buffer list because of its proximity to its
-associated MH-Folder buffer. Try running \\[electric-buffer-list] to see what
-I mean."
+One advantage of not burying the show buffer is that one can
+delete the show buffer more easily in an electric buffer list
+because of its proximity to its associated MH-Folder buffer. Try
+running \\[electric-buffer-list] to see what I mean."
   :type 'boolean
   :group 'mh-show)
 
@@ -1234,45 +1307,47 @@
 (defcustom mh-decode-mime-flag (not (not (locate-library "mm-decode")))
   "*Non-nil means attachments are handled\\<mh-folder-mode-map>.
 
-MH-E can handle attachments as well if the Gnus `mm-decode' library is
-present. If so, this option will be on. Otherwise, you'll see the MIME body
-parts rather than text or attachments. There isn't much point in turning off
-this option; however, you can inspect it if it appears that the body parts are
-not being interpreted correctly or toggle it with the command
+MH-E can handle attachments as well if the Gnus `mm-decode'
+library is present. If so, this option will be on. Otherwise,
+you'll see the MIME body parts rather than text or attachments.
+There isn't much point in turning off this option; however, you
+can inspect it if it appears that the body parts are not being
+interpreted correctly or toggle it with the command
 \\[mh-toggle-mh-decode-mime-flag] to view the raw message.
 
-This option also controls the display of quoted-printable messages and other
-graphical widgets. See the options `mh-graphical-smileys-flag' and
-`mh-graphical-emphasis-flag'."
+This option also controls the display of quoted-printable
+messages and other graphical widgets. See the options
+`mh-graphical-smileys-flag' and `mh-graphical-emphasis-flag'."
   :type 'boolean
   :group 'mh-show)
 
 (defcustom mh-display-buttons-for-alternatives-flag nil
   "*Non-nil means display buttons for all alternative attachments.
 
-Sometimes, a mail program will produce multiple alternatives of the attachment
-in increasing degree of faithfulness to the original content. By default, only
-the preferred alternative is displayed. If this option is on, then the
-preferred part is shown inline and buttons are shown for each of the other
-alternatives."
+Sometimes, a mail program will produce multiple alternatives of
+the attachment in increasing degree of faithfulness to the
+original content. By default, only the preferred alternative is
+displayed. If this option is on, then the preferred part is shown
+inline and buttons are shown for each of the other alternatives."
   :type 'boolean
   :group 'mh-show)
 
 (defcustom mh-display-buttons-for-inline-parts-flag nil
   "*Non-nil means display buttons for all inline attachments\\<mh-folder-mode-map>.
 
-The sender can request that attachments should be viewed inline so that they
-do not really appear like an attachment at all to the reader. Most of the
-time, this is desirable, so by default MH-E suppresses the buttons for inline
-attachments. On the other hand, you may receive code or HTML which the sender
-has added to his message as inline attachments so that you can read them in
-MH-E. In this case, it is useful to see the buttons so that you know you don't
-have to cut and paste the code into a file; you can simply save the
-attachment.
-
-If you want to make the buttons visible for inline attachments, you can use
-the command \\[mh-toggle-mime-buttons] to toggle the visibility of these
-buttons. You can turn on these buttons permanently by turning on this option.
+The sender can request that attachments should be viewed inline so
+that they do not really appear like an attachment at all to the
+reader. Most of the time, this is desirable, so by default MH-E
+suppresses the buttons for inline attachments. On the other hand, you
+may receive code or HTML which the sender has added to his message as
+inline attachments so that you can read them in MH-E. In this case, it
+is useful to see the buttons so that you know you don't have to cut
+and paste the code into a file; you can simply save the attachment.
+
+If you want to make the buttons visible for inline attachments, you
+can use the command \\[mh-toggle-mime-buttons] to toggle the
+visibility of these buttons. You can turn on these buttons permanently
+by turning on this option.
 
 MH-E cannot display all attachments inline however. It can display
 text (including HTML) and images."
@@ -1282,42 +1357,44 @@
 (defcustom mh-do-not-confirm-flag nil
   "*Non-nil means non-reversible commands do not prompt for confirmation.
 
-Commands such as `mh-pack-folder' prompt to confirm whether to process
-outstanding moves and deletes or not before continuing. Turning on this option
-means that these actions will be performed--which is usually desired but
-cannot be retracted--without question."
+Commands such as `mh-pack-folder' prompt to confirm whether to
+process outstanding moves and deletes or not before continuing.
+Turning on this option means that these actions will be
+performed--which is usually desired but cannot be
+retracted--without question."
   :type 'boolean
   :group 'mh-show)
 
 (defcustom mh-fetch-x-image-url nil
   "*Control fetching of \"X-Image-URL:\" header field image.
 
-Ths option controls the fetching of the \"X-Image-URL:\" header field image
-with the following values:
+Ths option controls the fetching of the \"X-Image-URL:\" header
+field image with the following values:
 
 Ask Before Fetching
-     You are prompted before the image is fetched. MH-E will remember
-     your reply and will either use the already fetched image the next
-     time the same URL is encountered or silently skip it if you didn't
-     fetch it the first time. This is a good setting.
+     You are prompted before the image is fetched. MH-E will
+     remember your reply and will either use the already fetched
+     image the next time the same URL is encountered or silently
+     skip it if you didn't fetch it the first time. This is a
+     good setting.
 
 Never Fetch
-     Images are never fetched and only displayed if they are already
-     present in the cache. This is the default.
+     Images are never fetched and only displayed if they are
+     already present in the cache. This is the default.
 
 There isn't a value of \"Always Fetch\" for privacy and DOS (denial of
-service) reasons. For example, fetching a URL can tip off a spammer that
-you've read his email (which is why you shouldn't blindly answer yes if you've
-set this option to \"Ask Before Fetching\"). Someone may also flood your
-network and fill your disk drive by sending a torrent of messages, each
-specifying a unique URL to a very large file.
-
-The cache of images is found in the directory \".mhe-x-image-cache\" within
-your MH directory. You can add your own face to the \"From:\" field too. See
-Info node `(mh-e)Picture'.
-
-This setting only has effect if the option `mh-show-use-xface-flag' is turned
-on."
+service) reasons. For example, fetching a URL can tip off a spammer
+that you've read his email (which is why you shouldn't blindly answer
+yes if you've set this option to \"Ask Before Fetching\"). Someone may
+also flood your network and fill your disk drive by sending a torrent
+of messages, each specifying a unique URL to a very large file.
+
+The cache of images is found in the directory \".mhe-x-image-cache\"
+within your MH directory. You can add your own face to the \"From:\"
+field too. See Info node `(mh-e)Picture'.
+
+This setting only has effect if the option `mh-show-use-xface-flag' is
+turned on."
 
   :type '(choice (const :tag "Ask Before Fetching" ask)
                  (const :tag "Never Fetch" nil))
@@ -1326,37 +1403,42 @@
 (defcustom mh-graphical-smileys-flag t
   "*Non-nil means graphical smileys are displayed.
 
-It is a long standing custom to inject body language using a cornucopia of
-punctuation, also known as the \"smileys\". MH-E can render these as graphical
-widgets if this option is turned on, which it is by default. Smileys include
-patterns such as :-) and ;-).
-
-This option is disabled if the option `mh-decode-mime-flag' is turned off."
+It is a long standing custom to inject body language using a
+cornucopia of punctuation, also known as the \"smileys\". MH-E
+can render these as graphical widgets if this option is turned
+on, which it is by default. Smileys include patterns such as :-)
+and ;-).
+
+This option is disabled if the option `mh-decode-mime-flag' is
+turned off."
   :type 'boolean
   :group 'mh-show)
 
 (defcustom mh-graphical-emphasis-flag t
   "*Non-nil means graphical emphasis is displayed.
 
-A few typesetting features are indicated in ASCII text with certain
-characters. If your terminal supports it, MH-E can render these typesetting
-directives naturally if this option is turned on, which it is by default. For
-example, _underline_ will be underlined, *bold* will appear in bold, /italics/
-will appear in italics, and so on. See the option `gnus-emphasis-alist' for
-the whole list.
-
-This option is disabled if the option `mh-decode-mime-flag' is turned off."
+A few typesetting features are indicated in ASCII text with
+certain characters. If your terminal supports it, MH-E can render
+these typesetting directives naturally if this option is turned
+on, which it is by default. For example, _underline_ will be
+underlined, *bold* will appear in bold, /italics/ will appear in
+italics, and so on. See the option `gnus-emphasis-alist' for the
+whole list.
+
+This option is disabled if the option `mh-decode-mime-flag' is
+turned off."
   :type 'boolean
   :group 'mh-show)
 
 (defcustom mh-highlight-citation-style 'gnus
   "Style for highlighting citations.
 
-If the sender of the message has cited other messages in his message, then
-MH-E will highlight these citations to emphasize the sender's actual response.
-This option can be customized to change the highlighting style. The
-\"Multicolor\" method uses a different color for each indentation while the
-\"Monochrome\" method highlights all citations in red. To disable highlighting
+If the sender of the message has cited other messages in his
+message, then MH-E will highlight these citations to emphasize
+the sender's actual response. This option can be customized to
+change the highlighting style. The \"Multicolor\" method uses a
+different color for each indentation while the \"Monochrome\"
+method highlights all citations in red. To disable highlighting
 of citations entirely, choose \"None\"."
   :type '(choice (const :tag "Multicolor" gnus)
                  (const :tag "Monochrome" font-lock)
@@ -1538,9 +1620,11 @@
     "X400-"                             ; X400
     "Xref:")
   "List of default header fields that are not to be shown.
-Do not alter this variable directly.  Instead, add entries from here that you
-would like to be displayed in `mh-invisible-header-fields-default'
-and add entries to hide in `mh-invisible-header-fields'.")
+
+Do not alter this variable directly. Instead, add entries from
+here that you would like to be displayed in
+`mh-invisible-header-fields-default' and add entries to hide in
+`mh-invisible-header-fields'.")
 
 (defvar mh-invisible-header-fields-compiled nil
   "*Regexp matching lines in a message header that are not to be shown.
@@ -1551,9 +1635,9 @@
 
 (defun mh-invisible-headers ()
   "Make or remake the variable `mh-invisible-header-fields-compiled'.
-Done using `mh-invisible-header-fields-internal' as input, from which entries
-from `mh-invisible-header-fields-default' are removed and entries
-from `mh-invisible-header-fields' are added."
+Done using `mh-invisible-header-fields-internal' as input, from
+which entries from `mh-invisible-header-fields-default' are
+removed and entries from `mh-invisible-header-fields' are added."
   (let ((fields mh-invisible-header-fields-internal))
     (when mh-invisible-header-fields-default
       ;; Remove entries from `mh-invisible-header-fields-default'
@@ -1577,11 +1661,11 @@
 (defcustom mh-invisible-header-fields-default nil
   "*List of hidden header fields.
 
-The header fields listed in this option are hidden, although you can check off
-any field that you would like to see.
-
-Header fields that you would like to hide that aren't listed can be added to
-the option `mh-invisible-header-fields'.
+The header fields listed in this option are hidden, although you
+can check off any field that you would like to see.
+
+Header fields that you would like to hide that aren't listed can
+be added to the option `mh-invisible-header-fields'.
 
 See also `mh-clean-message-header-flag'."
   :type `(set ,@(mapcar (lambda (x) `(const ,x))
@@ -1595,11 +1679,12 @@
   "*Additional header fields to hide.
 
 Header fields that you would like to hide that aren't listed in
-`mh-invisible-header-fields-default' can be added to this option with a couple
-of caveats. Regular expressions are not allowed. Unique fields should have a
-`:' suffix; otherwise, the element can be used to render invisible an entire
-class of fields that start with the same prefix. If you think a header field
-should be generally ignored, report a bug (see URL
+`mh-invisible-header-fields-default' can be added to this option
+with a couple of caveats. Regular expressions are not allowed.
+Unique fields should have a `:' suffix; otherwise, the element
+can be used to render invisible an entire class of fields that
+start with the same prefix. If you think a header field should be
+generally ignored, report a bug (see URL
 `https://sourceforge.net/tracker/?group_id=13357&atid=113357').
 
 See also `mh-clean-message-header-flag'."
@@ -1613,12 +1698,13 @@
 (defcustom mh-lpr-command-format "lpr -J '%s'"
   "*Command used to print\\<mh-folder-mode-map>.
 
-This option contains the Unix command line which performs the actual printing
-for the \\[mh-print-msg] command. The string can contain one escape, \"%s\",
-which is replaced by the name of the folder and the message number and is
-useful for print job names. I use \"mpage -h'%s' -b Letter -H1of -mlrtb -P\"
-which produces a nice header and adds a bit of margin so the text fits within
-my printer's margins.
+This option contains the Unix command line which performs the
+actual printing for the \\[mh-print-msg] command. The string can
+contain one escape, \"%s\", which is replaced by the name of the
+folder and the message number and is useful for print job names.
+I use \"mpage -h'%s' -b Letter -H1of -mlrtb -P\" which produces a
+nice header and adds a bit of margin so the text fits within my
+printer's margins.
 
 This options is not used by the commands \\[mh-ps-print-msg] or
 \\[mh-ps-print-msg-file]."
@@ -1628,48 +1714,51 @@
 (defcustom mh-max-inline-image-height nil
   "*Maximum inline image height if \"Content-Disposition:\" is not present.
 
-Some older mail programs do not insert this needed plumbing to tell
-MH-E whether to display the attachments inline or not. If this is the
-case, MH-E will display these images inline if they are smaller than
-the window. However, you might want to allow larger images to be
-displayed inline. To do this, you can change the options
-`mh-max-inline-image-width' and `mh-max-inline-image-height' from their
-default value of zero to a large number. The size of your screen is a
-good choice for these numbers."
+Some older mail programs do not insert this needed plumbing to
+tell MH-E whether to display the attachments inline or not. If
+this is the case, MH-E will display these images inline if they
+are smaller than the window. However, you might want to allow
+larger images to be displayed inline. To do this, you can change
+the options `mh-max-inline-image-width' and
+`mh-max-inline-image-height' from their default value of zero to
+a large number. The size of your screen is a good choice for
+these numbers."
   :type '(choice (const nil) integer)
   :group 'mh-show)
 
 (defcustom mh-max-inline-image-width nil
   "*Maximum inline image width if \"Content-Disposition:\" is not present.
 
-Some older mail programs do not insert this needed plumbing to tell
-MH-E whether to display the attachments inline or not. If this is the
-case, MH-E will display these images inline if they are smaller than
-the window. However, you might want to allow larger images to be
-displayed inline. To do this, you can change the options
-`mh-max-inline-image-width' and `mh-max-inline-image-height' from their
-default value of zero to a large number. The size of your screen is a
-good choice for these numbers."
+Some older mail programs do not insert this needed plumbing to
+tell MH-E whether to display the attachments inline or not. If
+this is the case, MH-E will display these images inline if they
+are smaller than the window. However, you might want to allow
+larger images to be displayed inline. To do this, you can change
+the options `mh-max-inline-image-width' and
+`mh-max-inline-image-height' from their default value of zero to
+a large number. The size of your screen is a good choice for
+these numbers."
   :type '(choice (const nil) integer)
   :group 'mh-show)
 
 (defcustom mh-mhl-format-file nil
   "*Specifies the format file to pass to the \"mhl\" program.
 
-Normally MH-E takes care of displaying messages itself (rather than calling an
-MH program to do the work). If you'd rather have \"mhl\" display the
-message (within MH-E), change this option from its default value of \"Use
-Default mhl Format (Printing Only)\".
-
-You can set this option to \"Use Default mhl Format\" to get the same output
-as you would get if you ran \"mhl\" from the shell.
-
-If you have a format file that you want MH-E to use, you can set this option
-to \"Specify an mhl Format File\" and enter the name of your format file. Your
-format file should specify a non-zero value for \"overflowoffset\" to allow
-MH-E to parse the header. Note that \"mhl\" is always used for printing and
-forwarding; in this case, the value of this option is consulted if you have
-specified a format file."
+Normally MH-E takes care of displaying messages itself (rather than
+calling an MH program to do the work). If you'd rather have \"mhl\"
+display the message (within MH-E), change this option from its default
+value of \"Use Default mhl Format (Printing Only)\".
+
+You can set this option to \"Use Default mhl Format\" to get the same
+output as you would get if you ran \"mhl\" from the shell.
+
+If you have a format file that you want MH-E to use, you can set this
+option to \"Specify an mhl Format File\" and enter the name of your
+format file. Your format file should specify a non-zero value for
+\"overflowoffset\" to allow MH-E to parse the header. Note that
+\"mhl\" is always used for printing and forwarding; in this case, the
+value of this option is consulted if you have specified a format
+file."
   :type '(choice (const :tag "Use Default mhl Format (Printing Only)" nil)
                  (const :tag "Use Default mhl Format" t)
                  (file :tag "Specify an mhl Format File"))
@@ -1678,12 +1767,13 @@
 (defcustom mh-mime-save-parts-default-directory t
   "Default directory to use for \\<mh-folder-mode-map>\\[mh-mime-save-parts].
 
-The default value for this option is \"Prompt Always\" so that you are always
-prompted for the directory in which to save the attachments. However, if you
-usually use the same directory within a session, then you can set this option
-to \"Prompt the First Time\" to avoid the prompt each time. you can make this
-directory permanent by choosing \"Directory\" and entering the directory's
-name."
+The default value for this option is \"Prompt Always\" so that
+you are always prompted for the directory in which to save the
+attachments. However, if you usually use the same directory
+within a session, then you can set this option to \"Prompt the
+First Time\" to avoid the prompt each time. you can make this
+directory permanent by choosing \"Directory\" and entering the
+directory's name."
   :type '(choice (const :tag "Prompt the First Time" nil)
                  (const :tag "Prompt Always" t)
                  directory)
@@ -1692,11 +1782,12 @@
 (defcustom mh-print-background-flag nil
   "*Non-nil means messages should be printed in the background\\<mh-folder-mode-map>.
 
-Normally messages are printed in the foreground. If this is slow on your
-system, you may elect to turn off this option to print in the background.
-
-WARNING: If you do this, do not delete the message until it is printed or else
-the output may be truncated.
+Normally messages are printed in the foreground. If this is slow on
+your system, you may elect to turn off this option to print in the
+background.
+
+WARNING: If you do this, do not delete the message until it is printed
+or else the output may be truncated.
 
 This option is not used by the commands \\[mh-ps-print-msg] or
 \\[mh-ps-print-msg-file]."
@@ -1706,9 +1797,9 @@
 (defcustom mh-show-maximum-size 0
   "*Maximum size of message (in bytes) to display automatically.
 
-This option provides an opportunity to skip over large messages which may be
-slow to load. The default value of 0 means that all message are shown
-regardless of size."
+This option provides an opportunity to skip over large messages
+which may be slow to load. The default value of 0 means that all
+message are shown regardless of size."
   :type 'integer
   :group 'mh-show)
 
@@ -1716,12 +1807,12 @@
                                            goto-address-highlight-p)
   "*Non-nil means highlight URLs and email addresses\\<goto-address-highlight-keymap>.
 
-To send a message using the highlighted email address or to view the web page
-for the highlighted URL, use the middle mouse button or
-\\[goto-address-at-point].
-
-See Info node `(mh-e)Sending Mail' to see how to configure Emacs to send the
-message using MH-E.
+To send a message using the highlighted email address or to view
+the web page for the highlighted URL, use the middle mouse button
+or \\[goto-address-at-point].
+
+See Info node `(mh-e)Sending Mail' to see how to configure Emacs
+to send the message using MH-E.
 
 The default value of this option comes from the value of
 `goto-address-highlight-p'."
@@ -1731,33 +1822,36 @@
 (defcustom mh-show-use-xface-flag (>= emacs-major-version 21)
   "*Non-nil means display face images in MH-show buffers.
 
-MH-E can display the content of \"Face:\", \"X-Face:\", and \"X-Image-URL:\"
-header fields. If any of these fields occur in the header of your message, the
-sender's face will appear in the \"From:\" header field. If more than one of
-these fields appear, then the first field found in the order \"Face:\",
-\"X-Face:\", and \"X-Image-URL:\" will be used.
-
-The option `mh-show-use-xface-flag' is used to turn this feature on and off.
-This feature will be turned on by default if your system supports it.
-
-The first header field used, if present, is the Gnus-specific \"Face:\" field.
-The \"Face:\" field appeared in GNU Emacs 21 and XEmacs. For more information,
-see URL `http://quimby.gnus.org/circus/face/'. Next is the traditional
+MH-E can display the content of \"Face:\", \"X-Face:\", and
+\"X-Image-URL:\" header fields. If any of these fields occur in the
+header of your message, the sender's face will appear in the \"From:\"
+header field. If more than one of these fields appear, then the first
+field found in the order \"Face:\", \"X-Face:\", and \"X-Image-URL:\"
+will be used.
+
+The option `mh-show-use-xface-flag' is used to turn this feature on
+and off. This feature will be turned on by default if your system
+supports it.
+
+The first header field used, if present, is the Gnus-specific
+\"Face:\" field. The \"Face:\" field appeared in GNU Emacs 21 and
+XEmacs. For more information, see URL
+`http://quimby.gnus.org/circus/face/'. Next is the traditional
 \"X-Face:\" header field. The display of this field requires the
 \"uncompface\" program (see URL
-`ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent versions
-of XEmacs have internal support for \"X-Face:\" images. If your version of
-XEmacs does not, then you'll need both \"uncompface\" and the x-face
-package (see URL `ftp://ftp.jpl.org/pub/elisp/').
-
-Finally, MH-E will display images referenced by the \"X-Image-URL:\" header
-field if neither the \"Face:\" nor the \"X-Face:\" fields are present. The
-display of the images requires \"wget\" (see URL
-`http://www.gnu.org/software/wget/wget.html'), \"fetch\", or \"curl\" to fetch
-the image and the \"convert\" program from the ImageMagick suite (see URL
-`http://www.imagemagick.org/'). Of the three header fields this is the most
-efficient in terms of network usage since the image doesn't need to be
-transmitted with every single mail.
+`ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent
+versions of XEmacs have internal support for \"X-Face:\" images. If
+your version of XEmacs does not, then you'll need both \"uncompface\"
+and the x-face package (see URL `ftp://ftp.jpl.org/pub/elisp/').
+
+Finally, MH-E will display images referenced by the \"X-Image-URL:\"
+header field if neither the \"Face:\" nor the \"X-Face:\" fields are
+present. The display of the images requires \"wget\" (see URL
+`http://www.gnu.org/software/wget/wget.html'), \"fetch\", or \"curl\"
+to fetch the image and the \"convert\" program from the ImageMagick
+suite (see URL `http://www.imagemagick.org/'). Of the three header
+fields this is the most efficient in terms of network usage since the
+image doesn't need to be transmitted with every single mail.
 
 The option `mh-fetch-x-image-url' controls the fetching of the
 \"X-Image-URL:\" header field image."
@@ -1767,9 +1861,10 @@
 (defcustom mh-store-default-directory nil
   "*Default directory for \\<mh-folder-mode-map>\\[mh-store-msg].
 
-If you would like to change the initial default directory, customize this
-option, change the value from `Current' to `Directory', and then enter the
-name of the directory for storing the content of these messages."
+If you would like to change the initial default directory,
+customize this option, change the value from `Current' to
+`Directory', and then enter the name of the directory for storing
+the content of these messages."
   :type '(choice (const :tag "Current" nil)
                  directory)
   :group 'mh-show)
@@ -1777,10 +1872,11 @@
 (defcustom mh-summary-height nil
   "*Number of lines in MH-Folder buffer (including the mode line).
 
-The default value of this option is \"Automatic\" which means that the
-MH-Folder buffer will maintain the same proportional size if the frame is
-resized. If you'd prefer a fixed height, then choose the \"Fixed Size\" option
-and enter the number of lines you'd like to see."
+The default value of this option is \"Automatic\" which means
+that the MH-Folder buffer will maintain the same proportional
+size if the frame is resized. If you'd prefer a fixed height,
+then choose the \"Fixed Size\" option and enter the number of
+lines you'd like to see."
   :type '(choice (const :tag "Automatic" nil)
                  (integer :tag "Fixed Size"))
   :group 'mh-show)
@@ -1802,9 +1898,10 @@
 (defcustom mh-show-threads-flag nil
   "*Non-nil means new folders start in threaded mode.
 
-Threading large number of messages can be time consuming so this option is
-turned off by default. If you turn this option on, then threading will be done
-only if the number of messages being threaded is less than `mh-large-folder'."
+Threading large number of messages can be time consuming so this
+option is turned off by default. If you turn this option on, then
+threading will be done only if the number of messages being
+threaded is less than `mh-large-folder'."
   :type 'boolean
   :group 'mh-thread)
 
@@ -1816,8 +1913,8 @@
   "*Function called by the tool bar search button.
 
 Available functions include `mh-search-folder', the default, and
-`mh-index-search'. You can also choose \"Other Function\" from the \"Value
-Menu\" and enter a function of your own choosing."
+`mh-index-search'. You can also choose \"Other Function\" from
+the \"Value Menu\" and enter a function of your own choosing."
   :type '(choice (const mh-search-folder)
                  (const mh-index-search)
                  (function :tag "Other Function"))
@@ -1849,7 +1946,7 @@
 
 (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag)
   "Generate FUNCTION that replies to RECIPIENT.
-If FOLDER-BUFFER-FLAG is nil then the function generated
+If FOLDER-BUFFER-FLAG is nil then the function generated...
 When INCLUDE-FLAG is non-nil, include message body being replied to."
   `(defun ,function (&optional arg)
      ,(format "Reply to \"%s\".\nWhen ARG is non-nil include message in reply."
@@ -1870,9 +1967,10 @@
   (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag
     "*If non-nil, use tool bar.
 
-This option controls whether to show the MH-E icons at all. By default, this
-option is turned on if the window system supports tool bars. If your system
-doesn't support tool bars, then you won't be able to turn on this option."
+This option controls whether to show the MH-E icons at all. By
+default, this option is turned on if the window system supports
+tool bars. If your system doesn't support tool bars, then you
+won't be able to turn on this option."
     :type 'boolean
     :group 'mh-tool-bar
     :set (lambda (symbol value)
@@ -1884,11 +1982,12 @@
   (defcustom mh-xemacs-tool-bar-position nil
     "*Tool bar location.
 
-This option controls the placement of the tool bar along the four edges of the
-frame. You can choose from one of \"Same As Default Tool Bar\", \"Top\",
-\"Bottom\", \"Left\", or \"Right\". If this variable is set to anything other
-than \"Same As Default Tool Bar\" and the default tool bar is in a different
-location, then two tool bars will be displayed: the MH-E tool bar and the
+This option controls the placement of the tool bar along the four
+edges of the frame. You can choose from one of \"Same As Default
+Tool Bar\", \"Top\", \"Bottom\", \"Left\", or \"Right\". If this
+variable is set to anything other than \"Same As Default Tool
+Bar\" and the default tool bar is in a different location, then
+two tool bars will be displayed: the MH-E tool bar and the
 default tool bar."
     :type '(radio (const :tag "Same As Default Tool Bar" :value nil)
                   (const :tag "Top" :value top)
@@ -1907,47 +2006,49 @@
 
 (defmacro mh-tool-bar-define (defaults &rest buttons)
   "Define a tool bar for MH-E.
-DEFAULTS is the list of buttons that are present by default. It is a list of
-lists where the sublists are of the following form:
+DEFAULTS is the list of buttons that are present by default. It
+is a list of lists where the sublists are of the following form:
 
   (:KEYWORD FUNC1 FUNC2 FUNC3 ...)
 
-Here :KEYWORD is one of :folder or :letter. If it is :folder then the default
-buttons in the folder and show mode buffers are being specified. If it is
-:letter then the default buttons in the letter mode are listed. FUNC1, FUNC2,
-FUNC3, ... are the names of the functions that the buttons would execute.
-
-Each element of BUTTONS is a list consisting of four mandatory items and one
-optional item as follows:
+Here :KEYWORD is one of :folder or :letter. If it is :folder then
+the default buttons in the folder and show mode buffers are being
+specified. If it is :letter then the default buttons in the
+letter mode are listed. FUNC1, FUNC2, FUNC3, ... are the names of
+the functions that the buttons would execute.
+
+Each element of BUTTONS is a list consisting of four mandatory
+items and one optional item as follows:
 
   (FUNCTION MODES ICON DOC &optional ENABLE-EXPR)
 
 where,
 
-  FUNCTION is the name of the function that will be executed when the button
-  is clicked.
-
-  MODES is a list of symbols. List elements must be from `folder', `letter' and
-  `sequence'. If `folder' is present then the button is available in the
-  folder and show buffer. If the name of FUNCTION is of the form \"mh-foo\",
-  where foo is some arbitrary string, then we check if the function
-  `mh-show-foo' exists. If it exists then that function is used in the show
-  buffer. Otherwise the original function `mh-foo' is used in the show buffer
-  as well. Presence of `sequence' is handled similar to the above. The only
-  difference is that the button is shown only when the folder is narrowed to a
-  sequence. If `letter' is present in MODES, then the button is available
-  during draft editing and runs FUNCTION when clicked.
+  FUNCTION is the name of the function that will be executed when
+  the button is clicked.
+
+  MODES is a list of symbols. List elements must be from `folder',
+  `letter' and `sequence'. If `folder' is present then the button is
+  available in the folder and show buffer. If the name of FUNCTION is
+  of the form \"mh-foo\", where foo is some arbitrary string, then we
+  check if the function `mh-show-foo' exists. If it exists then that
+  function is used in the show buffer. Otherwise the original function
+  `mh-foo' is used in the show buffer as well. Presence of `sequence'
+  is handled similar to the above. The only difference is that the
+  button is shown only when the folder is narrowed to a sequence. If
+  `letter' is present in MODES, then the button is available during
+  draft editing and runs FUNCTION when clicked.
 
   ICON is the icon that is drawn in the button.
 
-  DOC is the documentation for the button. It is used in tool-tips and in
-  providing other help to the user. GNU Emacs uses only the first line of the
-  string. So the DOC should be formatted such that the first line is useful and
-  complete without the rest of the string.
-
-  Optional item ENABLE-EXPR is an arbitrary lisp expression. If it evaluates
-  to nil, then the button is deactivated, otherwise it is active. If is in't
-  present then the button is always active."
+  DOC is the documentation for the button. It is used in tool-tips and
+  in providing other help to the user. GNU Emacs uses only the first
+  line of the string. So the DOC should be formatted such that the
+  first line is useful and complete without the rest of the string.
+
+  Optional item ENABLE-EXPR is an arbitrary lisp expression. If it
+  evaluates to nil, then the button is deactivated, otherwise it is
+  active. If is in't present then the button is always active."
   ;; The following variable names have been carefully chosen to make code
   ;; generation easier. Modifying the names should be done carefully.
   (let (folder-buttons folder-docs folder-button-setter sequence-button-setter
@@ -2237,10 +2338,10 @@
 (defcustom mh-after-commands-processed-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding requests.
 
-Variables that are useful in this hook include `mh-folders-changed',
-which lists which folders were affected by deletes and refiles. This
-list will always include the current folder, which is also available
-in `mh-current-folder'."
+Variables that are useful in this hook include
+`mh-folders-changed', which lists which folders were affected by
+deletes and refiles. This list will always include the current
+folder, which is also available in `mh-current-folder'."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder)
@@ -2254,9 +2355,9 @@
 (defcustom mh-before-commands-processed-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding requests.
 
-Variables that are useful in this hook include `mh-delete-list' and
-`mh-refile-list' which can be used to see which changes will be made
-to the current folder, `mh-current-folder'."
+Variables that are useful in this hook include `mh-delete-list'
+and `mh-refile-list' which can be used to see which changes will
+be made to the current folder, `mh-current-folder'."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder)
@@ -2264,9 +2365,9 @@
 (defcustom mh-before-quit-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-quit] before quitting MH-E.
 
-This hook 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.
+This hook 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.
 
 See also `mh-quit-hook'."
   :type 'hook
@@ -2276,8 +2377,8 @@
 (defcustom mh-before-send-letter-hook nil
   "Hook run at the beginning of the \\<mh-letter-mode-map>\\[mh-send-letter] command.
 
-For example, if you want to check your spelling in your message before
-sending, add the `ispell-message' function."
+For example, if you want to check your spelling in your message
+before sending, add the `ispell-message' function."
   :type 'hook
   :options '(ispell-message)
   :group 'mh-hooks
@@ -2286,8 +2387,8 @@
 (defcustom mh-delete-msg-hook nil
   "Hook run by \\<mh-letter-mode-map>\\[mh-delete-msg] after marking each message for deletion.
 
-For example, a past maintainer of MH-E used this once when he kept
-statistics on his mail usage."
+For example, a past maintainer of MH-E used this once when he
+kept statistics on his mail usage."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-show)
@@ -2296,8 +2397,8 @@
   "Hook run by `mh-find-path' after reading the user's MH profile.
 
 This hook can be used the change the value of the variables that
-`mh-find-path' sets if you need to run with different values between
-MH and MH-E."
+`mh-find-path' sets if you need to run with different values
+between MH and MH-E."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-e)
@@ -2323,8 +2424,9 @@
 (defcustom mh-insert-signature-hook nil
   "Hook run by \\<mh-letter-mode-map>\\[mh-insert-signature] after signature has been inserted.
 
-Hook functions may access the actual name of the file or the function
-used to insert the signature with `mh-signature-file-name'."
+Hook functions may access the actual name of the file or the
+function used to insert the signature with
+`mh-signature-file-name'."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-letter)
@@ -2332,16 +2434,16 @@
 (defcustom mh-kill-folder-suppress-prompt-hooks '(mh-index-p)
   "Abnormal hook run at the beginning of \\<mh-folder-mode-map>\\[mh-kill-folder].
 
-The hook functions are called with no arguments and should return a
-non-nil value to suppress the normal prompt when you remove a folder.
-This is useful for folders that are easily regenerated.
-
-The default value of `mh-index-p' suppresses the prompt on folders
-generated by an index search.
-
-WARNING: Use this hook with care. If there is a bug in your hook which
-returns t on \"+inbox\" and you hit \\[mh-kill-folder] by accident in
-the \"+inbox\" folder, you will not be happy."
+The hook functions are called with no arguments and should return
+a non-nil value to suppress the normal prompt when you remove a
+folder. This is useful for folders that are easily regenerated.
+
+The default value of `mh-index-p' suppresses the prompt on
+folders generated by an index search.
+
+WARNING: Use this hook with care. If there is a bug in your hook
+which returns t on \"+inbox\" and you hit \\[mh-kill-folder] by
+accident in the \"+inbox\" folder, you will not be happy."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder)
@@ -2349,10 +2451,11 @@
 (defcustom mh-letter-mode-hook nil
   "Hook run by `mh-letter-mode' on a new letter.
 
-This hook allows you to do some processing before editing a letter.
-For example, you may wish to modify the header after \"repl\" has done
-its work, or you may have a complicated \"components\" file and need
-to tell MH-E where the cursor should go."
+This hook allows you to do some processing before editing a
+letter. For example, you may wish to modify the header after
+\"repl\" has done its work, or you may have a complicated
+\"components\" file and need to tell MH-E where the cursor should
+go."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-sending-mail)
@@ -2366,10 +2469,10 @@
 (defcustom mh-pick-mode-hook nil
   "Hook run upon entry to `mh-pick-mode'\\<mh-folder-mode-map>.
 
-If you find that you do the same thing over and over when editing the
-search template, you may wish to bind some shortcuts to keys. This can
-be done with this hook which is called when \\[mh-search-folder] is
-run on a new pattern."
+If you find that you do the same thing over and over when editing
+the search template, you may wish to bind some shortcuts to keys.
+This can be done with this hook which is called when
+\\[mh-search-folder] is run on a new pattern."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-index)
@@ -2377,8 +2480,8 @@
 (defcustom mh-quit-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-quit] after quitting MH-E.
 
-This hook is not run in an MH-E context, so you might use it to modify
-the window setup.
+This hook is not run in an MH-E context, so you might use it to
+modify the window setup.
 
 See also `mh-before-quit-hook'."
   :type 'hook
@@ -2394,9 +2497,9 @@
 (defcustom mh-show-hook nil
   "Hook run after \\<mh-folder-mode-map>\\[mh-show] shows a message.
 
-It is the last thing called after messages are displayed. It's used to
-affect the behavior of MH-E in general or when `mh-show-mode-hook' is
-too early."
+It is the last thing called after messages are displayed. It's
+used to affect the behavior of MH-E in general or when
+`mh-show-mode-hook' is too early."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-show)
@@ -2404,8 +2507,9 @@
 (defcustom mh-show-mode-hook nil
   "Hook run upon entry to `mh-show-mode'.
 
-This hook is called early on in the process of the message display. It
-is usually used to perform some action on the message's content."
+This hook is called early on in the process of the message
+display. It is usually used to perform some action on the
+message's content."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-show)
@@ -2413,8 +2517,9 @@
 (defcustom mh-unseen-updated-hook nil
   "Hook run after the unseen sequence has been updated.
 
-The variable `mh-seen-list' can be used by this hook to obtain the
-list of messages which were removed from the unseen sequence."
+The variable `mh-seen-list' can be used by this hook to obtain
+the list of messages which were removed from the unseen
+sequence."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-sequences)
@@ -2693,7 +2798,8 @@
 
 (defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown
   "Face used to highlight a PGG signature whose status is unknown.
-This face is also used for a signature when the signer is untrusted.")
+This face is also used for a signature when the signer is
+untrusted.")
 (defface mh-show-pgg-unknown
   '((t
      (:bold t :foreground "DarkGoldenrod2")))
--- a/lisp/mh-e/mh-e.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-e.el	Fri Dec 23 07:40:40 2005 +0000
@@ -102,7 +102,8 @@
 
 (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.")
+The string is displayed after the folder's name. nil for no
+annotation.")
 
 
 
@@ -133,15 +134,16 @@
    "%<(zero)%17(friendly{from})%>  "
    "%{subject}%<{body}<<%{body}%>")
   "*Scan format string for MH.
-This string is passed to the scan program via the -format argument.
-This format is identical to the default except that additional hints for
-fontification have been added to the fifth column (remember that in Emacs, the
-first column is 0).
-
-The values of the fifth column, in priority order, are: `-' if the message has
-been replied to, t if an address on the To: line matches one of the
-mailboxes of the current user, `c' if the Cc: line matches, `b' if the Bcc:
-line matches, and `n' if a non-empty Newsgroups: header is present.")
+This string is passed to the scan program via the -format
+argument. This format is identical to the default except that
+additional hints for fontification have been added to the fifth
+column (remember that in Emacs, the first column is 0).
+
+The values of the fifth column, in priority order, are: `-' if
+the message has been replied to, t if an address on the To: line
+matches one of the mailboxes of the current user, `c' if the Cc:
+line matches, `b' if the Bcc: line matches, and `n' if a
+non-empty Newsgroups: header is present.")
 
 (defvar mh-scan-format-nmh
   (concat
@@ -159,14 +161,15 @@
    "%(decode{subject})%<{body}<<%{body}%>")
   "*Scan format string for nmh.
 This string is passed to the scan program via the -format arg.
-This format is identical to the default except that additional hints for
-fontification have been added to the fifth column (remember that in Emacs, the
-first column is 0).
-
-The values of the fifth column, in priority order, are: `-' if the message has
-been replied to, t if an address on the To: field matches one of the
-mailboxes of the current user, `c' if the Cc: field matches, `b' if the Bcc:
-field matches, and `n' if a non-empty Newsgroups: field is present.")
+This format is identical to the default except that additional
+hints for fontification have been added to the fifth
+column (remember that in Emacs, the first column is 0).
+
+The values of the fifth column, in priority order, are: `-' if
+the message has been replied to, t if an address on the To: field
+matches one of the mailboxes of the current user, `c' if the Cc:
+field matches, `b' if the Bcc: field matches, and `n' if a
+non-empty Newsgroups: field is present.")
 
 (defvar mh-note-deleted ?D
   "Messages that have been deleted are marked by this character.
@@ -182,101 +185,140 @@
 
 (defvar mh-scan-good-msg-regexp  "^\\( *[0-9]+\\)[^D^0-9]"
   "This regular expression matches \"good\" messages.
-It must match from the beginning of the line. Note that the default setting of
-`mh-folder-font-lock-keywords' expects this expression to contain at least one
-parenthesized expression which matches the message number as in the default of
-\"^\\\\( *[0-9]+\\\\)[^D^0-9]\". This expression includes the leading space
-within the parenthesis since it looks better to highlight it as well. This
-regular expression should be correct as it is needed by non-fontification
+
+It must match from the beginning of the line. Note that the
+default setting of `mh-folder-font-lock-keywords' expects this
+expression to contain at least one parenthesized expression which
+matches the message number as in the default of
+
+  \"^\\\\( *[0-9]+\\\\)[^D^0-9]\".
+
+This expression includes the leading space within the parenthesis
+since it looks better to highlight it as well. This regular
+expression should be correct as it is needed by non-fontification
 functions.")
 
 (defvar mh-scan-deleted-msg-regexp "^\\( *[0-9]+\\)D"
   "This regular expression matches deleted messages.
-It must match from the beginning of the line. Note that the default setting of
-`mh-folder-font-lock-keywords' expects this expression to contain at least one
-parenthesized expression which matches the message number as in the default of
-\"^\\\\( *[0-9]+\\\\)D\". This expression includes the leading space within
-the parenthesis since it looks better to highlight it as well. This regular
-expression should be correct as it is needed by non-fontification functions.
-See also `mh-note-deleted'.")
+
+It must match from the beginning of the line. Note that the
+default setting of `mh-folder-font-lock-keywords' expects this
+expression to contain at least one parenthesized expression which
+matches the message number as in the default of
+
+  \"^\\\\( *[0-9]+\\\\)D\".
+
+This expression includes the leading space within the parenthesis
+since it looks better to highlight it as well. This regular
+expression should be correct as it is needed by non-fontification
+functions. See also `mh-note-deleted'.")
 
 (defvar mh-scan-refiled-msg-regexp  "^\\( *[0-9]+\\)\\^"
   "This regular expression matches refiled messages.
-It must match from the beginning of the line. Note that the default setting of
-`mh-folder-font-lock-keywords' expects this expression to contain at least one
-parenthesized expression which matches the message number as in the default of
-\"^\\\\( *[0-9]+\\\\)\\\\^\". This expression includes the leading space
-within the parenthesis since it looks better to highlight it as well. This
-regular expression should be correct as it is needed by non-fontification
+
+It must match from the beginning of the line. Note that the
+default setting of `mh-folder-font-lock-keywords' expects this
+expression to contain at least one parenthesized expression which
+matches the message number as in the default of
+
+  \"^\\\\( *[0-9]+\\\\)\\\\^\".
+
+This expression includes the leading space within the parenthesis
+since it looks better to highlight it as well. This regular
+expression should be correct as it is needed by non-fontification
 functions. See also `mh-note-refiled'.")
 
 (defvar mh-scan-valid-regexp "^ *[0-9]"
   "This regular expression describes a valid scan line.
-This is used to eliminate error messages that are occasionally produced by
-\"inc\".")
+
+This is used to eliminate error messages that are occasionally
+produced by \"inc\".")
 
 (defvar mh-scan-cur-msg-number-regexp "^\\( *[0-9]+\\+\\).*"
   "This regular expression matches the current message.
-It must match from the beginning of the line. Note that the default setting of
-`mh-folder-font-lock-keywords' expects this expression to contain at least one
-parenthesized expression which matches the message number as in the default of
-\"^\\\\( *[0-9]+\\\\+\\\\).*\". This expression includes the leading space and
-current message marker \"+\" within the parenthesis since it looks better to
-highlight these items as well. This regular expression should be correct as it
-is needed by non-fontification functions. See also `mh-note-cur'.")
+
+It must match from the beginning of the line. Note that the
+default setting of `mh-folder-font-lock-keywords' expects this
+expression to contain at least one parenthesized expression which
+matches the message number as in the default of
+
+  \"^\\\\( *[0-9]+\\\\+\\\\).*\".
+
+This expression includes the leading space and current message
+marker \"+\" within the parenthesis since it looks better to
+highlight these items as well. This regular expression should be
+correct as it is needed by non-fontification functions. See also
+`mh-note-cur'.")
 
 (defvar mh-scan-date-regexp "\\([0-9][0-9]/[0-9][0-9]\\)"
   "This regular expression matches a valid date.
-It must not be anchored to the beginning or the end of the line. Note that the
-default setting of `mh-folder-font-lock-keywords' expects this expression to
-contain only one parenthesized expression which matches the date field as in
-the default of \"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. If this regular
-expression is not correct, the date will not be highlighted. See also
+
+It must not be anchored to the beginning or the end of the line.
+Note that the default setting of `mh-folder-font-lock-keywords'
+expects this expression to contain only one parenthesized
+expression which matches the date field as in the default of
+\"\\\\([0-9][0-9]/[0-9][0-9]\\\\)\"}. If this regular expression
+is not correct, the date will not be highlighted. See also
 `mh-scan-format-regexp'.")
 
 (defvar mh-scan-rcpt-regexp  "\\(To:\\)\\(..............\\)"
   "This regular expression specifies the recipient in messages you sent.
+
 Note that the default setting of `mh-folder-font-lock-keywords'
-expects this expression to contain two parenthesized expressions. The
-first is expected to match the `To:' that the default scan format
-file generates. The second is expected to match the recipient's name
-as in the default of \"\\\\(To:\\\\)\\\\(..............\\\\)\". If this
-regular expression is not correct, the recipient will not be highlighted.")
+expects this expression to contain two parenthesized expressions.
+The first is expected to match the `To:' that the default scan
+format file generates. The second is expected to match the
+recipient's name as in the default of
+\"\\\\(To:\\\\)\\\\(..............\\\\)\". If this regular
+expression is not correct, the recipient will not be
+highlighted.")
 
 (defvar mh-scan-body-regexp "\\(<<\\([^\n]+\\)?\\)"
   "This regular expression matches the message body fragment.
-Note that the default setting of `mh-folder-font-lock-keywords' expects this
-expression to contain at least one parenthesized expression which matches the
-body text as in the default of \"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\". If this
-regular expression is not correct, the body fragment will not be highlighted.")
+
+Note that the default setting of `mh-folder-font-lock-keywords'
+expects this expression to contain at least one parenthesized
+expression which matches the body text as in the default of
+\"\\\\(<<\\\\([^\\n]+\\\\)?\\\\)\". If this regular expression is
+not correct, the body fragment will not be highlighted.")
 
 (defvar mh-scan-subject-regexp
   "^ *[0-9]+........[ ]*...................\\([Rr][Ee]\\(\\[[0-9]+\\]\\)?:\\s-*\\)*\\([^<\n]*\\)"
   "This regular expression matches the subject.
-It must match from the beginning of the line. Note that the default setting
-of `mh-folder-font-lock-keywords' expects this expression to contain at least
-three parenthesized expressions. The first is expected to match the `Re:'
-string, if any. The second matches an optional bracketed number after `Re:',
-such as in `Re[2]:' (and is thus a sub-expression of the first expression) and
-the third is expected to match the subject line itself as in the default of
-\(broken on multiple lines for readability):
+
+It must match from the beginning of the line. Note that the
+default setting of `mh-folder-font-lock-keywords' expects this
+expression to contain at least three parenthesized expressions.
+The first is expected to match the `Re:' string, if any. The
+second matches an optional bracketed number after `Re:', such as
+in `Re[2]:' (and is thus a sub-expression of the first
+expression) and the third is expected to match the subject line
+itself as in the default of \(broken on multiple lines for
+readability):
+
   ^ *[0-9]+........[ ]*...................
   \\\\([Rr][Ee]\\\\(\\\\\\=[[0-9]+\\\\]\\\\)?:\\\\s-*\\\\)*
   \\\\([^<\\n]*\\\\)
-This regular expression should be correct as it is needed by non-fontification
-functions.")
+
+This regular expression should be correct as it is needed by
+non-fontification functions.")
 
 (defvar mh-scan-format-regexp
   (concat "\\([bct]\\)" mh-scan-date-regexp " *\\(..................\\)")
   "This regular expression matches the output of scan.
-Note that the default setting of `mh-folder-font-lock-keywords' expects this
-expression to contain at least three parenthesized expressions. The first
-should match the fontification hint (see `mh-scan-format-nmh'), the second is
-found in `mh-scan-date-regexp', and the third should match the user name as in
-the default of \"(concat \"\\\\([bct]\\\\)\" mh-scan-date-regexp
-                         \"*\\\\(..................\\\\)\")\".
-If this regular expression is not correct, the notation hints and the sender
-will not be highlighted.")
+
+Note that the default setting of `mh-folder-font-lock-keywords'
+expects this expression to contain at least three parenthesized
+expressions. The first should match the fontification hint (see
+`mh-scan-format-nmh'), the second is found in
+`mh-scan-date-regexp', and the third should match the user name
+as in the default of
+
+  \"(concat \"\\\\([bct]\\\\)\" mh-scan-date-regexp
+            \"*\\\\(..................\\\\)\")\".
+
+If this regular expression is not correct, the notation hints and
+the sender will not be highlighted.")
 
 
 
@@ -313,22 +355,27 @@
 
 (defvar mh-scan-cmd-note-width 1
   "Number of columns consumed by the cmd-note field in `mh-scan-format'.
-This column will have one of the values: ` ', `D', `^', `+' and where
-` ' is the default value,
-`D' is the `mh-note-deleted' character,
-`^' is the `mh-note-refiled' character, and
-`+' is the `mh-note-cur' character.")
+
+This column will have one of the values: ` ', `D', `^', `+' and
+where ` ' is the default value,
+
+  `D' is the `mh-note-deleted' character,
+  `^' is the `mh-note-refiled' character, and
+  `+' is the `mh-note-cur' character.")
 
 (defvar mh-scan-destination-width 1
   "Number of columns consumed by the destination field in `mh-scan-format'.
-This column will have one of ' ', '%', '-', 't', 'c', 'b', or `n' in it.
-A ' ' blank space is the default character.
-A '%' indicates that the message in in a named MH sequence.
-A '-' indicates that the message has been annotated with a replied field.
-A 't' indicates that the message contains mymbox in the To: field.
-A 'c' indicates that the message contains mymbox in the Cc: field.
-A 'b' indicates that the message contains mymbox in the Bcc: field.
-A 'n' indicates that the message contains a Newsgroups: field.")
+
+This column will have one of ' ', '%', '-', 't', 'c', 'b', or `n'
+in it.
+
+  ' ' blank space is the default character.
+  '%' indicates that the message in in a named MH sequence.
+  '-' indicates that the message has been annotated with a replied field.
+  't' indicates that the message contains mymbox in the To: field.
+  'c' indicates that the message contains mymbox in the Cc: field.
+  'b' indicates that the message contains mymbox in the Bcc: field.
+  'n' indicates that the message contains a Newsgroups: field.")
 
 (defvar mh-scan-date-width 5
   "Number of columns consumed by the date field in `mh-scan-format'.
@@ -336,7 +383,8 @@
 
 (defvar mh-scan-date-flag-width 1
   "Number of columns consumed to flag (in)valid dates in `mh-scan-format'.
-This column will have ` ' for valid and `*' for invalid or missing dates.")
+This column will have ` ' for valid and `*' for invalid or
+missing dates.")
 
 (defvar mh-scan-from-mbox-width 17
   "Number of columns consumed with the \"From:\" line in `mh-scan-format'.
@@ -388,17 +436,17 @@
 
 (defmacro mh-generate-sequence-font-lock (seq prefix face)
   "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.
+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."
   (let ((cache (intern (format "mh-folder-%s-seq-cache" prefix)))
         (func (intern (format "mh-folder-font-lock-%s" prefix))))
     `(progn
        (defvar ,cache nil
          "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.")
+Should only be non-nil through font-lock stepping, and nil once
+font-lock is done highlighting.")
        (make-variable-buffer-local ',cache)
 
        (defun ,func (limit)
@@ -463,16 +511,19 @@
 
 (defvar mh-delete-list nil
   "List of message numbers to delete.
-This variable can be used by `mh-before-commands-processed-hook'.")
+This variable can be used by
+`mh-before-commands-processed-hook'.")
 
 (defvar mh-refile-list nil
   "List of folder names in `mh-seq-list'.
-This variable can be used by `mh-before-commands-processed-hook'.")
+This variable can be used by
+`mh-before-commands-processed-hook'.")
 
 (defvar mh-folders-changed nil
   "Lists which folders were affected by deletes and refiles.
-This list will always include the current folder `mh-current-folder'.
-This variable can be used by `mh-before-commands-processed-hook'.")
+This list will always include the current folder
+`mh-current-folder'. This variable can be used by
+`mh-before-commands-processed-hook'.")
 
 (defvar mh-next-direction 'forward
   "Direction to move to next message.")
@@ -534,9 +585,11 @@
 
 ;;;###autoload
 (defun mh-rmail (&optional arg)
-  "Inc(orporate) 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."
+  "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."
   (interactive "P")
   (mh-find-path)
   (if arg
@@ -548,8 +601,10 @@
 ;;;###autoload
 (defun mh-nmail (&optional arg)
   "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."
+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."
   (interactive "P")
   (mh-find-path)                        ; init mh-inbox
   (if arg
@@ -563,20 +618,21 @@
 (defun mh-delete-msg (range)
   "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."
+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."
   (interactive (list (mh-interactive-range "Delete")))
   (mh-delete-msg-no-motion range)
   (if (looking-at mh-scan-deleted-msg-regexp)
@@ -585,11 +641,12 @@
 (defun mh-delete-msg-no-motion (range)
   "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."
+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."
   (interactive (list (mh-interactive-range "Delete")))
   (mh-iterate-on-range () range
     (mh-delete-a-msg nil)))
@@ -597,16 +654,17 @@
 (defun mh-execute-commands ()
   "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
+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, which are lost.
 
-This function runs `mh-before-commands-processed-hook' before the commands are
-processed and `mh-after-commands-processed-hook' after the commands are
-processed."
+This function runs `mh-before-commands-processed-hook' before the
+commands are processed and `mh-after-commands-processed-hook'
+after the commands are processed."
   (interactive)
   (if mh-folder-view-stack (mh-widen t))
   (mh-process-commands mh-current-folder)
@@ -643,15 +701,17 @@
   "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.
-
-In a program optional argument MAILDROP-NAME specifies an alternate
-maildrop from the default. The optional argument FOLDER specifies
-where to incorporate mail instead of the default named by `mh-inbox'."
+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.
+
+In a program optional argument MAILDROP-NAME specifies an
+alternate maildrop from the default. The optional argument FOLDER
+specifies where to incorporate mail instead of the default named
+by `mh-inbox'."
   (interactive (list (if current-prefix-arg
                          (expand-file-name
                           (read-file-name "inc mail from file: "
@@ -695,12 +755,12 @@
 (defun mh-next-undeleted-msg (&optional count wait-after-complaining-flag)
   "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."
+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."
   (interactive "p")
   (setq mh-next-direction 'forward)
   (forward-line 1)
@@ -716,18 +776,19 @@
 
 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.
+  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."
+`mh-default-folder-must-exist-flag' is t and the folder does not
+exist."
   ;; Loop for all entries in mh-default-folder-list
   (save-restriction
     (goto-char (point-min))
@@ -792,15 +853,15 @@
 (defun mh-refile-msg (range folder &optional dont-update-last-destination-flag)
   "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.
+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
@@ -817,14 +878,14 @@
 (defun mh-refile-or-write-again (range &optional interactive-flag)
   "Repeat last output command.
 
-If you are refiling several messages into the same folder, you can use this
-command to repeat the last refile or write. 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."
+If you are refiling several messages into the same folder, you can use
+this command to repeat the last refile or write. 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."
   (interactive (list (mh-interactive-range "Redo") t))
   (if (null mh-last-destination)
       (error "No previous refile or write"))
@@ -840,18 +901,20 @@
 (defun mh-quit ()
   "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."
+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."
   (interactive)
   (run-hooks 'mh-before-quit-hook)
   (let ((show-buffer (get-buffer mh-show-buffer)))
@@ -874,9 +937,9 @@
 (defun mh-page-msg (&optional lines)
   "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."
+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."
   (interactive "P")
   (if mh-showing-mode
       (if mh-page-to-next-msg-flag
@@ -899,8 +962,8 @@
 (defun mh-previous-page (&optional lines)
   "Display next page in message.
 
-You can give this command a prefix argument that specifies the number of LINES
-to scroll."
+You can give this command a prefix argument that specifies the
+number of LINES to scroll."
   (interactive "P")
   (mh-in-show-buffer (mh-show-buffer)
     (scroll-down lines)))
@@ -908,12 +971,12 @@
 (defun mh-previous-undeleted-msg (&optional count wait-after-complaining-flag)
   "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."
+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."
   (interactive "p")
   (setq mh-next-direction 'backward)
   (beginning-of-line)
@@ -925,8 +988,8 @@
 (defun mh-previous-unread-msg (&optional count)
   "Display previous unread message.
 
-This command can be given a prefix argument COUNT to specify how many unread
-messages to skip."
+This command can be given a prefix argument COUNT to specify how
+many unread messages to skip."
   (interactive "p")
   (unless (> count 0)
     (error "The function mh-previous-unread-msg expects positive argument"))
@@ -958,9 +1021,11 @@
 
 (defun mh-goto-next-button (backward-flag &optional criterion)
   "Search for next button satisfying criterion.
-If BACKWARD-FLAG is non-nil search backward in the buffer for a mime button. If
-CRITERION is a function or a symbol which has a function binding then that
-function must return non-nil at the button we stop."
+
+If BACKWARD-FLAG is non-nil search backward in the buffer for a mime
+button.
+If CRITERION is a function or a symbol which has a function binding
+then that function must return non-nil at the button we stop."
   (unless (or (and (symbolp criterion) (fboundp criterion))
               (functionp criterion))
     (setq criterion (lambda (x) t)))
@@ -1003,11 +1068,11 @@
 (defun mh-next-button (&optional backward-flag)
   "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."
+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."
   (interactive (list current-prefix-arg))
   (unless mh-showing-mode
     (mh-show))
@@ -1017,17 +1082,18 @@
 (defun mh-prev-button ()
   "Go to the previous button.
 
-If the beginning of the buffer is reached then the search wraps over to the
-end of the buffer."
+If the beginning of the buffer is reached then the search wraps
+over to the end of the buffer."
   (interactive)
   (mh-next-button t))
 
 (defun mh-folder-mime-action (part-index action include-security-flag)
   "Go to PART-INDEX and carry out ACTION.
-If PART-INDEX is nil then go to the next part in the buffer. The search for
-the next buffer wraps around if end of buffer is reached. If argument
-INCLUDE-SECURITY-FLAG is non-nil then include security info buttons when
-searching for a suitable parts."
+
+If PART-INDEX is nil then go to the next part in the buffer. The
+search for the next buffer wraps around if end of buffer is reached.
+If argument INCLUDE-SECURITY-FLAG is non-nil then include security
+info buttons when searching for a suitable parts."
   (unless mh-showing-mode
     (mh-show))
   (mh-in-show-buffer (mh-show-buffer)
@@ -1058,15 +1124,17 @@
 (defun mh-folder-toggle-mime-part (part-index)
   "View attachment.
 
-This command displays (or hides) the attachment associated with the button
-under the cursor. If the cursor is not located over a button, then the cursor
-first moves to the next button, wrapping to the beginning of the message if
-necessary. This command has the advantage over related commands of working
-from the MH-Folder buffer.
-
-You can also provide a numeric prefix argument PART-INDEX to view the
-attachment labeled with that number. If Emacs does not know how to display the
-attachment, then Emacs offers to save the attachment in a file."
+This command displays (or hides) the attachment associated with
+the button under the cursor. If the cursor is not located over a
+button, then the cursor first moves to the next button, wrapping
+to the beginning of the message if necessary. This command has
+the advantage over related commands of working from the MH-Folder
+buffer.
+
+You can also provide a numeric prefix argument PART-INDEX to view
+the attachment labeled with that number. If Emacs does not know
+how to display the attachment, then Emacs offers to save the
+attachment in a file."
   (interactive "P")
   (when (consp part-index) (setq part-index (car part-index)))
   (mh-folder-mime-action part-index #'mh-press-button t))
@@ -1074,14 +1142,15 @@
 (defun mh-folder-inline-mime-part (part-index)
   "Show attachment verbatim.
 
-You can view the raw contents of an attachment with this command. This command
-displays (or hides) the contents of the attachment associated with the button
-under the cursor verbatim. If the cursor is not located over a button, then
-the cursor first moves to the next button, wrapping to the beginning of the
-message if necessary.
-
-You can also provide a numeric prefix argument PART-INDEX to view the
-attachment labeled with that number."
+You can view the raw contents of an attachment with this command.
+This command displays (or hides) the contents of the attachment
+associated with the button under the cursor verbatim. If the
+cursor is not located over a button, then the cursor first moves
+to the next button, wrapping to the beginning of the message if
+necessary.
+
+You can also provide a numeric prefix argument PART-INDEX to view
+the attachment labeled with that number."
   (interactive "P")
   (when (consp part-index) (setq part-index (car part-index)))
   (mh-folder-mime-action part-index #'mh-mime-inline-part nil))
@@ -1089,15 +1158,16 @@
 (defun mh-folder-save-mime-part (part-index)
   "Save (output) attachment.
 
-This command saves the attachment associated with the button under the cursor.
-If the cursor is not located over a button, then the cursor first moves to the
-next button, wrapping to the beginning of the message if necessary.
+This command saves the attachment associated with the button under the
+cursor. If the cursor is not located over a button, then the cursor
+first moves to the next button, wrapping to the beginning of the
+message if necessary.
 
 You can also provide a numeric prefix argument PART-INDEX to save the
 attachment labeled with that number.
 
-This command prompts you for a filename and suggests a specific name if it is
-available."
+This command prompts you for a filename and suggests a specific name
+if it is available."
   (interactive "P")
   (when (consp part-index) (setq part-index (car part-index)))
   (mh-folder-mime-action part-index #'mh-mime-save-part nil))
@@ -1116,16 +1186,17 @@
   "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, which are lost.
-
-In a program, the processing of outstanding commands is not performed if
-DONT-EXEC-PENDING is non-nil."
+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, which are lost.
+
+In a program, the processing of outstanding commands is not performed
+if DONT-EXEC-PENDING is non-nil."
   (interactive (list (if current-prefix-arg
                          (mh-read-range "Rescan" mh-current-folder t nil t
                                         mh-interpret-number-as-range-flag)
@@ -1139,10 +1210,11 @@
 (defun mh-write-msg-to-file (message file no-header)
   "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]."
+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]."
   (interactive
    (list (mh-get-msg-num t)
          (let ((default-dir (if (eq 'write (car mh-last-destination-write))
@@ -1178,13 +1250,14 @@
 (defun mh-undo (range)
   "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."
+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."
   (interactive (list (mh-interactive-range "Undo")))
   (cond ((numberp range)
          (let ((original-position (point)))
@@ -1210,8 +1283,8 @@
 
 (defun mh-folder-line-matches-show-buffer-p ()
   "Return t if the message under point in folder-mode is in the show buffer.
-Return nil in any other circumstance (no message under point, no show buffer,
-the message in the show buffer doesn't match."
+Return nil in any other circumstance (no message under point, no
+show buffer, the message in the show buffer doesn't match."
   (and (eq major-mode 'mh-folder-mode)
        (mh-get-msg-num nil)
        mh-show-buffer
@@ -1227,9 +1300,9 @@
 
 (defmacro mh-macro-expansion-time-gnus-version ()
   "Return Gnus version available at macro expansion time.
-The macro evaluates the Gnus version at macro expansion time. If MH-E was
-compiled then macro expansion happens at compile time."
-  gnus-version)
+The macro evaluates the Gnus version at macro expansion time. If
+MH-E was compiled then macro expansion happens at compile time."
+gnus-version)
 
 (defun mh-run-time-gnus-version ()
   "Return Gnus version available at run time."
@@ -1271,9 +1344,9 @@
 
 (defun mh-parse-flist-output-line (line &optional current-folder)
   "Parse LINE to generate folder name, unseen messages and total messages.
-If CURRENT-FOLDER is non-nil then it contains the current folder name and it is
-used to avoid problems in corner cases involving folders whose names end with a
-'+' character."
+If CURRENT-FOLDER is non-nil then it contains the current folder
+name and it is used to avoid problems in corner cases involving
+folders whose names end with a '+' character."
   (with-temp-buffer
     (insert line)
     (goto-char (point-max))
@@ -1328,27 +1401,31 @@
 (defun mh-visit-folder (folder &optional range index-data)
   "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.
+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."
+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."
   (interactive (let ((folder-name (mh-prompt-for-folder "Visit" mh-inbox t)))
                  (list folder-name
                        (mh-read-range "Scan" folder-name t nil
@@ -1387,10 +1464,11 @@
 
 (defun mh-update-sequences ()
   "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\"."
+
+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\"."
   (interactive)
   ;; mh-update-sequences is the opposite of mh-read-folder-sequences,
   ;; which updates MH-E's state from MH.
@@ -1420,10 +1498,9 @@
 (defun mh-delete-a-msg (message)
   "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."
+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."
   (save-excursion
     (if (numberp message)
         (mh-goto-msg message nil t)
@@ -1441,10 +1518,9 @@
 (defun mh-refile-a-msg (message folder)
   "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."
+The hook `mh-refile-msg-hook' is called after a message is marked to
+be refiled."
   (save-excursion
     (if (numberp message)
         (mh-goto-msg message nil t)
@@ -1471,9 +1547,9 @@
 
 (defun mh-next-msg (&optional wait-after-complaining-flag)
   "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."
+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."
   (if (eq mh-next-direction 'forward)
       (mh-next-undeleted-msg 1 wait-after-complaining-flag)
     (mh-previous-undeleted-msg 1 wait-after-complaining-flag)))
@@ -1481,8 +1557,8 @@
 (defun mh-next-unread-msg (&optional count)
   "Display next unread message.
 
-This command can be given a prefix argument COUNT to specify how many unread
-messages to skip."
+This command can be given a prefix argument COUNT to specify how
+many unread messages to skip."
   (interactive "p")
   (unless (> count 0)
     (error "The function mh-next-unread-msg expects positive argument"))
@@ -1659,9 +1735,9 @@
 
 (defmacro mh-write-file-functions-compat ()
   "Return `write-file-functions' if it exists.
-Otherwise return `local-write-file-hooks'. This macro exists purely for
-compatibility. The former symbol is used in Emacs 21.4 onward while the latter
-is used in previous versions and XEmacs."
+Otherwise return `local-write-file-hooks'. This macro exists
+purely for compatibility. The former symbol is used in Emacs 21.4
+onward while the latter is used in previous versions and XEmacs."
   (if (boundp 'write-file-functions)
       ''write-file-functions            ;Emacs 21.4
     ''local-write-file-hooks))          ;<Emacs 21.4, XEmacs
@@ -1685,36 +1761,40 @@
 (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.
+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):
+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.
+    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.
+    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'
@@ -1725,12 +1805,12 @@
 `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.
+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
@@ -1835,10 +1915,10 @@
                                   desktop-buffer-name
                                   desktop-buffer-misc)
   "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."
+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."
   (mh-find-path)
   (mh-visit-folder desktop-buffer-name)
   (current-buffer))
@@ -1851,13 +1931,14 @@
 (defun mh-scan-folder (folder range &optional dont-exec-pending)
   "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."
+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."
   (when (stringp range)
     (setq range (delete "" (split-string range "[ \t\n]"))))
   (cond ((null (get-buffer folder))
@@ -1880,11 +1961,12 @@
   "Return the column for notations given message number WIDTH.
 Note that columns in Emacs start with 0.
 
-If `mh-scan-format-file' is set to \"Use MH-E scan Format\" this means that
-either `mh-scan-format-mh' or `mh-scan-format-nmh' are in use. This function
-therefore assumes that the first column is empty (to provide room for the
-cursor), the following WIDTH columns contain the message number, and the
-column for notations comes after that."
+If `mh-scan-format-file' is set to \"Use MH-E scan Format\" this
+means that either `mh-scan-format-mh' or `mh-scan-format-nmh' are
+in use. This function therefore assumes that the first column is
+empty (to provide room for the cursor), the following WIDTH
+columns contain the message number, and the column for notations
+comes after that."
   (if (eq mh-scan-format-file t)
       (max (1+ width) 2)
     (error "%s %s" "Can't call mh-msg-num-width-to-column"
@@ -1943,9 +2025,9 @@
 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.
+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.
@@ -2066,8 +2148,9 @@
 
 (defun mh-make-folder-mode-line (&optional ignored)
   "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'."
+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'."
   (save-excursion
     (save-window-excursion
       (mh-first-msg)
@@ -2107,8 +2190,8 @@
 
 (defun mh-add-sequence-notation (msg internal-seq-flag)
   "Add sequence notation to the MSG on the current line.
-If INTERNAL-SEQ-FLAG is non-nil, then refontify the scan line if font-lock is
-turned on."
+If INTERNAL-SEQ-FLAG is non-nil, then refontify the scan line if
+font-lock is turned on."
   (with-mh-folder-updating (t)
     (save-excursion
       (beginning-of-line)
@@ -2129,10 +2212,11 @@
 
 (defun mh-remove-sequence-notation (msg internal-seq-flag &optional all)
   "Remove sequence notation from the MSG on the current line.
-If INTERNAL-SEQ-FLAG is non-nil, then `font-lock' was used to highlight the
-sequence. In that case, no notation needs to be removed. Otherwise the effect
-of inserting `mh-note-seq' needs to be reversed.
-If ALL is non-nil, then all sequence marks on the scan line are removed."
+If INTERNAL-SEQ-FLAG is non-nil, then `font-lock' was used to
+highlight the sequence. In that case, no notation needs to be removed.
+Otherwise the effect of inserting `mh-note-seq' needs to be reversed.
+If ALL is non-nil, then all sequence marks on the scan line are
+removed."
   (with-mh-folder-updating (t)
     ;; This takes care of internal sequences...
     (mh-notate nil nil mh-cmd-note)
@@ -2172,8 +2256,8 @@
 
 (defun mh-goto-cur-msg (&optional minimal-changes-flag)
   "Position the cursor at the current message.
-When optional argument MINIMAL-CHANGES-FLAG is non-nil, the function doesn't
-recenter the folder buffer."
+When optional argument MINIMAL-CHANGES-FLAG is non-nil, the
+function doesn't recenter the folder buffer."
   (let ((cur-msg (car (mh-seq-to-msgs 'cur))))
     (cond ((and cur-msg
                 (mh-goto-msg cur-msg t t))
@@ -2187,7 +2271,8 @@
 
 (defun mh-process-or-undo-commands (folder)
   "If FOLDER has outstanding commands, then either process or discard them.
-Called by functions like `mh-sort-folder', so also invalidate show buffer."
+Called by functions like `mh-sort-folder', so also invalidate
+show buffer."
   (set-buffer folder)
   (if (mh-outstanding-commands-p)
       (if (or mh-do-not-confirm-flag
@@ -2202,9 +2287,9 @@
 (defun mh-process-commands (folder)
   "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."
+This function runs `mh-before-commands-processed-hook' before the
+commands are processed and `mh-after-commands-processed-hook'
+after the commands are processed."
   (message "Processing deletes and refiles for %s..." folder)
   (set-buffer folder)
   (with-mh-folder-updating (nil)
@@ -2334,8 +2419,8 @@
 (defun mh-coalesce-msg-list (messages)
   "Given a list of MESSAGES, return a list of message number ranges.
 This is the inverse of `mh-read-msg-list', which expands ranges.
-Message lists passed to MH programs should be processed by this function
-to avoid exceeding system command line argument limits."
+Message lists passed to MH programs should be processed by this
+function to avoid exceeding system command line argument limits."
   (let ((msgs (sort (copy-sequence messages) 'mh-greaterp))
         (range-high nil)
         (prev -1)
@@ -2433,8 +2518,9 @@
 (defun mh-notate-user-sequences (&optional range)
   "Mark user-defined sequences in RANGE.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use; if nil all messages are notated."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use; if nil all messages are
+notated."
   (unless range
     (setq range (cons (point-min) (point-max))))
   (let ((seqs mh-seq-list)
@@ -2464,10 +2550,11 @@
 (defun mh-delete-msg-from-seq (range sequence &optional internal-flag)
   "Delete RANGE from SEQUENCE.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
-
-In a program, non-nil INTERNAL-FLAG means do not inform MH of the change."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use.
+
+In a program, non-nil INTERNAL-FLAG means do not inform MH of the
+change."
   (interactive (list (mh-interactive-range "Delete")
                      (mh-read-seq-default "Delete from" t)
                      nil))
@@ -2495,15 +2582,16 @@
 (defun mh-catchup (range)
   "Delete RANGE from the \"unseen\" sequence.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use."
   (interactive (list (mh-interactive-range "Catchup"
                                            (cons (point-min) (point-max)))))
   (mh-delete-msg-from-seq range mh-unseen-seq))
 
 (defun mh-delete-a-msg-from-seq (msg sequence internal-flag)
   "Delete MSG from SEQUENCE.
-If INTERNAL-FLAG is non-nil, then do not inform MH of the change."
+If INTERNAL-FLAG is non-nil, then do not inform MH of the
+change."
   (let ((entry (mh-find-seq sequence)))
     (when (and entry (memq msg (mh-seq-msgs entry)))
       (if (not internal-flag)
@@ -2530,7 +2618,8 @@
 
 (defun mh-seq-containing-msg (msg &optional include-internal-flag)
   "Return a list of the sequences containing MSG.
-If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences in list."
+If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences
+in list."
   (let ((l mh-seq-list)
         (seqs ()))
     (while l
--- a/lisp/mh-e/mh-funcs.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-funcs.el	Fri Dec 23 07:40:40 2005 +0000
@@ -57,17 +57,19 @@
 (defun mh-burst-digest ()
   "Break up digest into separate messages\\<mh-folder-mode-map>.
 
-This command uses the MH command \"burst\" to break out each message in the
-digest into its own message. Using this command, you can quickly delete
-unwanted messages, like this: Once the digest is split up, toggle out of
-MH-Folder Show mode with \\[mh-toggle-showing] so that the scan lines fill the
-screen and messages aren't displayed. Then use \\[mh-delete-msg] to quickly
-delete messages that you don't want to read (based on the \"Subject:\" header
-field). You can also burst the digest to reply directly to the people who
-posted the messages in the digest. One problem you may encounter is that the
-\"From:\" header fields are preceded with a \">\" so that your reply can't
-create the \"To:\" field correctly. In this case, you must correct the \"To:\"
-field yourself."
+This command uses the MH command \"burst\" to break out each
+message in the digest into its own message. Using this command,
+you can quickly delete unwanted messages, like this: Once the
+digest is split up, toggle out of MH-Folder Show mode with
+\\[mh-toggle-showing] so that the scan lines fill the screen and
+messages aren't displayed. Then use \\[mh-delete-msg] to quickly
+delete messages that you don't want to read (based on the
+\"Subject:\" header field). You can also burst the digest to
+reply directly to the people who posted the messages in the
+digest. One problem you may encounter is that the \"From:\"
+header fields are preceded with a \">\" so that your reply can't
+create the \"To:\" field correctly. In this case, you must
+correct the \"To:\" field yourself."
   (interactive)
   (let ((digest (mh-get-msg-num t)))
     (mh-process-or-undo-commands mh-current-folder)
@@ -85,15 +87,15 @@
 (defun mh-copy-msg (range folder)
   "Copy RANGE to FOLDER\\<mh-folder-mode-map>.
 
-If you wish to copy a message to another folder, you can use this command
-\(see the \"-link\" argument to \"refile\"). Like the command
-\\[mh-refile-msg], this command prompts you for the name of the target folder
-and you can specify a range. Note that unlike the command \\[mh-refile-msg],
-the copy takes place immediately. The original copy remains in the current
-folder.
+If you wish to copy a message to another folder, you can use this
+command \(see the \"-link\" argument to \"refile\"). Like the
+command \\[mh-refile-msg], this command prompts you for the name
+of the target folder and you can specify a range. Note that
+unlike the command \\[mh-refile-msg], the copy takes place
+immediately. The original copy remains in the current folder.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use."
   (interactive (list (mh-interactive-range "Copy")
                      (mh-prompt-for-folder "Copy to" "" t)))
   (let ((msg-list (let ((result ()))
@@ -108,13 +110,13 @@
 (defun mh-kill-folder ()
   "Remove folder.
 
-Remove all of the messages (files) within the current folder, and then
-remove the folder (directory) itself.
+Remove all of the messages (files) within the current folder, and
+then remove the folder (directory) itself.
 
-Run the abnormal hook `mh-kill-folder-suppress-prompt-hooks'. The hook
-functions are called with no arguments and should return a non-nil
-value to suppress the normal prompt when you remove a folder. This is
-useful for folders that are easily regenerated."
+Run the abnormal hook `mh-kill-folder-suppress-prompt-hooks'. The
+hook functions are called with no arguments and should return a
+non-nil value to suppress the normal prompt when you remove a
+folder. This is useful for folders that are easily regenerated."
   (interactive)
   (if (or (run-hook-with-args-until-success
            'mh-kill-folder-suppress-prompt-hooks)
@@ -172,14 +174,15 @@
 (defun mh-pack-folder (range)
   "Pack folder\\<mh-folder-mode-map>.
 
-This command packs the folder, removing gaps from the numbering sequence. If
-you don't want to rescan the entire folder afterward, this command will accept
-a RANGE. Check the documentation of `mh-interactive-range' to see how RANGE is
-read in interactive use.
+This command packs the folder, removing gaps from the numbering
+sequence. If you don't want to rescan the entire folder
+afterward, 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, which are lost."
+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, which are lost."
   (interactive (list (if current-prefix-arg
                          (mh-read-range "Scan" mh-current-folder t nil t
                                         mh-interpret-number-as-range-flag)
@@ -210,9 +213,10 @@
 (defun mh-pipe-msg (command include-header)
   "Pipe message through shell command COMMAND.
 
-You are prompted for the Unix command through which you wish to run your
-message. If you give an argument INCLUDE-HEADER to this command, the message
-header is included in the text passed to the command."
+You are prompted for the Unix command through which you wish to
+run your message. If you give an argument INCLUDE-HEADER to this
+command, the message header is included in the text passed to the
+command."
   (interactive
    (list (read-string "Shell command on message: ") current-prefix-arg))
   (let ((msg-file-to-pipe (mh-msg-filename (mh-get-msg-num t)))
@@ -263,9 +267,11 @@
 ;;;###mh-autoload
 (defun mh-sort-folder (&optional extra-args)
   "Sort the messages in the current folder by date.
+
 Calls the MH program sortm to do the work.
-The arguments in the list `mh-sortm-args' are passed to sortm if the optional
-argument EXTRA-ARGS is given."
+
+The arguments in the list `mh-sortm-args' are passed to sortm if
+the optional argument EXTRA-ARGS is given."
   (interactive "P")
   (mh-process-or-undo-commands mh-current-folder)
   (setq mh-next-direction 'forward)
@@ -299,10 +305,11 @@
 (defun mh-store-msg (directory)
   "Unpack message created with `uudecode' or `shar'.
 
-The default DIRECTORY for extraction is the current directory; however, you
-have a chance to specify a different extraction directory. The next time you
-use this command, the default directory is the last directory you used. If you
-would like to change the initial default directory, customize the option
+The default DIRECTORY for extraction is the current directory;
+however, you have a chance to specify a different extraction
+directory. The next time you use this command, the default
+directory is the last directory you used. If you would like to
+change the initial default directory, customize the option
 `mh-store-default-directory'."
   (interactive (list (let ((udir (or mh-store-default-directory
                                      default-directory)))
@@ -318,9 +325,11 @@
 ;;;###mh-autoload
 (defun mh-store-buffer (directory)
   "Store the file(s) contained in the current buffer into DIRECTORY.
+
 The buffer can contain a shar file or uuencoded file.
-Default directory is the last directory used, or initially the value of
-`mh-store-default-directory' or the current directory."
+
+Default directory is the last directory used, or initially the
+value of `mh-store-default-directory' or the current directory."
   (interactive (list (let ((udir (or mh-store-default-directory
                                      default-directory)))
                        (read-file-name "Store buffer in directory: "
--- a/lisp/mh-e/mh-gnus.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-gnus.el	Fri Dec 23 07:40:40 2005 +0000
@@ -41,9 +41,9 @@
 
 (defmacro mh-defun-compat (function arg-list &rest body)
   "This is a macro to define functions which are not defined.
-It is used for Gnus utility functions which were added recently. If FUNCTION
-is not defined then it is defined to have argument list, ARG-LIST and body,
-BODY."
+It is used for Gnus utility functions which were added recently.
+If FUNCTION is not defined then it is defined to have argument
+list, ARG-LIST and body, BODY."
   (let ((defined-p (fboundp function)))
     (unless defined-p
       `(defun ,function ,arg-list ,@body))))
@@ -51,9 +51,9 @@
 
 (defmacro mh-defmacro-compat (function arg-list &rest body)
   "This is a macro to define functions which are not defined.
-It is used for Gnus utility functions which were added recently. If FUNCTION
-is not defined then it is defined to have argument list, ARG-LIST and body,
-BODY."
+It is used for Gnus utility functions which were added recently.
+If FUNCTION is not defined then it is defined to have argument
+list, ARG-LIST and body, BODY."
   (let ((defined-p (fboundp function)))
     (unless defined-p
       `(defmacro ,function ,arg-list ,@body))))
--- a/lisp/mh-e/mh-identity.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-identity.el	Fri Dec 23 07:40:40 2005 +0000
@@ -47,14 +47,15 @@
 
 (defvar mh-identity-pgg-default-user-id nil
   "Holds the GPG key ID to be used by pgg.el.
-This is normally set as part of an Identity in `mh-identity-list'.")
+This is normally set as part of an Identity in
+`mh-identity-list'.")
 (make-variable-buffer-local 'mh-identity-pgg-default-user-id)
 
 ;;;###mh-autoload
 (defun mh-identity-make-menu ()
   "Build the Identity menu.
-This should be called any time `mh-identity-list' or `mh-auto-fields-list'
-change."
+This should be called any time `mh-identity-list' or
+`mh-auto-fields-list' change."
   (easy-menu-define mh-identity-menu mh-letter-mode-map
     "MH-E identity menu"
     (append
@@ -87,9 +88,9 @@
 ;;;###mh-autoload
 (defun mh-identity-list-set (symbol value)
   "Update the `mh-identity-list' variable, and rebuild the menu.
-Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set
-in customization). This is called after 'customize is used to alter
-`mh-identity-list'."
+Sets the default for SYMBOL (for example, `mh-identity-list') to
+VALUE (as set in customization). This is called after 'customize
+is used to alter `mh-identity-list'."
   (set-default symbol value)
   (mh-identity-make-menu))
 
@@ -120,10 +121,10 @@
 
 (defun mh-identity-field-handler (field)
   "Return the handler for header FIELD or nil if none set.
-The field name is downcased. If the FIELD begins with the character
-`:', then it must have a special handler defined in
-`mh-identity-handlers', else return an error since it is not a valid
-header field."
+The field name is downcased. If the FIELD begins with the
+character `:', then it must have a special handler defined in
+`mh-identity-handlers', else return an error since it is not a
+valid header field."
   (or (cdr (mh-assoc-ignore-case field mh-identity-handlers))
       (and (eq (aref field 0) ?:)
            (error "Field %s - unknown mh-identity-handler" field))
@@ -169,8 +170,8 @@
 (defun mh-identity-handler-gpg-identity (field action &optional value)
   "Process header FIELD \":pgg-default-user-id\".
 The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
-The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE
-when action 'add is selected."
+The buffer-local variable `mh-identity-pgg-default-user-id' is set to
+VALUE when action 'add is selected."
   (cond
    ((or (equal action 'remove)
         (not value)
@@ -182,7 +183,8 @@
 ;;;###mh-autoload
 (defun mh-identity-handler-signature (field action &optional value)
   "Process header FIELD \":signature\".
-The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
+The ACTION is one of 'remove or 'add. If 'add, the VALUE is
+added."
   (cond
    ((equal action 'remove)
     (when (and (markerp mh-identity-signature-start)
@@ -212,7 +214,8 @@
 ;;;###mh-autoload
 (defun mh-identity-handler-attribution-verb (field action &optional value)
   "Process header FIELD \":attribution-verb\".
-The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
+The ACTION is one of 'remove or 'add. If 'add, the VALUE is
+added."
   (when (and (markerp mh-identity-attribution-verb-start)
              (markerp mh-identity-attribution-verb-end))
     (delete-region mh-identity-attribution-verb-start
@@ -241,9 +244,9 @@
 
 (defun mh-identity-handler-default (field action top &optional value)
   "Process header FIELD.
-The ACTION is one of 'remove or 'add. If TOP is non-nil, add the field and its
-VALUE at the top of the header, else add it at the bottom of the header. If
-action is 'add, the VALUE is added."
+The ACTION is one of 'remove or 'add. If TOP is non-nil, add the
+field and its VALUE at the top of the header, else add it at the
+bottom of the header. If action is 'add, the VALUE is added."
   (let ((field-colon (if (string-match "^.*:$" field)
                          field
                        (concat field ":"))))
@@ -269,15 +272,17 @@
 ;;;###mh-autoload
 (defun mh-identity-handler-top (field action &optional value)
   "Process header FIELD.
-The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
-If the field wasn't present, it is added to the top of the header."
+The ACTION is one of 'remove or 'add. If 'add, the VALUE is
+added. If the field wasn't present, it is added to the top of the
+header."
   (mh-identity-handler-default field action t value))
 
 ;;;###mh-autoload
 (defun mh-identity-handler-bottom (field action &optional value)
   "Process header FIELD.
-The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
-If the field wasn't present, it is added to the bottom of the header."
+The ACTION is one of 'remove or 'add. If 'add, the VALUE is
+added. If the field wasn't present, it is added to the bottom of
+the header."
   (mh-identity-handler-default field action nil value))
 
 (provide 'mh-identity)
--- a/lisp/mh-e/mh-index.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-index.el	Fri Dec 23 07:40:40 2005 +0000
@@ -158,9 +158,10 @@
 
 (defun mh-index-execute (cmd &rest args)
   "Partial imitation of xargs.
-The current buffer contains a list of strings, one on each line. The function
-will execute CMD with ARGS and pass the first `mh-index-max-cmdline-args'
-strings to it. This is repeated till all the strings have been used."
+The current buffer contains a list of strings, one on each line.
+The function will execute CMD with ARGS and pass the first
+`mh-index-max-cmdline-args' strings to it. This is repeated till
+all the strings have been used."
   (goto-char (point-min))
   (let ((current-buffer (current-buffer)))
     (with-temp-buffer
@@ -183,12 +184,14 @@
 
 (defun mh-index-update-single-msg (msg checksum origin-map)
   "Update various maps for one message.
-MSG is a index folder message, CHECKSUM its MD5 hash and ORIGIN-MAP, if
-non-nil, a hashtable containing which maps each message in the index folder to
-the folder and message that it was copied from. The function updates the hash
-tables `mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'.
+MSG is a index folder message, CHECKSUM its MD5 hash and
+ORIGIN-MAP, if non-nil, a hashtable containing which maps each
+message in the index folder to the folder and message that it was
+copied from. The function updates the hash tables
+`mh-index-msg-checksum-map' and `mh-index-checksum-origin-map'.
 
-This function should only be called in the appropriate index folder buffer."
+This function should only be called in the appropriate index
+folder buffer."
   (cond ((and origin-map (gethash checksum mh-index-checksum-origin-map))
          (let* ((intermediate (gethash msg origin-map))
                 (ofolder (car intermediate))
@@ -208,10 +211,11 @@
 ;;;###mh-autoload
 (defun mh-index-update-maps (folder &optional origin-map)
   "Annotate all as yet unannotated messages in FOLDER with their MD5 hash.
-As a side effect msg -> checksum map is updated. Optional argument ORIGIN-MAP
-is a hashtable which maps each message in the index folder to the original
-folder and message from whence it was copied. If present the
-checksum -> (origin-folder, origin-index) map is updated too."
+As a side effect msg -> checksum map is updated. Optional
+argument ORIGIN-MAP is a hashtable which maps each message in the
+index folder to the original folder and message from whence it
+was copied. If present the checksum -> (origin-folder,
+origin-index) map is updated too."
   (clrhash mh-index-msg-checksum-map)
   (save-excursion
     ;; Clear temp buffer
@@ -266,8 +270,9 @@
 
 (defun mh-unpropagated-sequences ()
   "Return a list of sequences that aren't propagated to the source folders.
-It is just the sequences in the variable `mh-unpropagated-sequences' in
-addition to the Previous-Sequence (see mh-profile 5)."
+It is just the sequences in the variable
+`mh-unpropagated-sequences' in addition to the
+Previous-Sequence (see mh-profile 5)."
   (if mh-previous-seq
       (cons mh-previous-seq mh-unpropagated-sequences)
     mh-unpropagated-sequences))
@@ -275,8 +280,8 @@
 ;;;###mh-autoload
 (defun mh-create-sequence-map (seq-list)
   "Return a map from msg number to list of sequences in which it is present.
-SEQ-LIST is an assoc list whose keys are sequence names and whose cdr is the
-list of messages in that sequence."
+SEQ-LIST is an assoc list whose keys are sequence names and whose
+cdr is the list of messages in that sequence."
   (loop with map = (make-hash-table)
         for seq in seq-list
         when (and (not (memq (car seq) (mh-unpropagated-sequences)))
@@ -316,10 +321,11 @@
 
 (defun mh-index-generate-pretty-name (string)
   "Given STRING generate a name which is suitable for use as a folder name.
-White space from the beginning and end are removed. All spaces in the name are
-replaced with underscores and all / are replaced with $. If STRING is longer
-than 20 it is truncated too. STRING could be a list of strings in which case
-they are concatenated to construct the base name."
+White space from the beginning and end are removed. All spaces in
+the name are replaced with underscores and all / are replaced
+with $. If STRING is longer than 20 it is truncated too. STRING
+could be a list of strings in which case they are concatenated to
+construct the base name."
   (with-temp-buffer
     (if (stringp string)
         (insert string)
@@ -352,60 +358,66 @@
 (defun* mh-index-search (redo-search-flag folder search-regexp
                         &optional window-config)
   "Perform an indexed search in an MH mail folder.
+
 Use a prefix argument to repeat the search.
 
-Unlike regular searches, the prompt for the folder to search can be `all' to
-search all folders; in addition, the search works recursively on the listed
-folder. The search criteria are entered in an MH-Pick buffer as described in
-`mh-search-folder'.
+Unlike regular searches, the prompt for the folder to search can be
+`all' to search all folders; in addition, the search works recursively
+on the listed folder. The search criteria are entered in an MH-Pick
+buffer as described in `mh-search-folder'.
 
-To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another
-difference from the regular searches is that because the search operates on
-more than one folder, the messages that are found are put in a temporary
-sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This
-buffer is special because it displays messages from multiple folders; each set
-of messages from a given folder has a heading with the folder name.
+To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search].
+Another difference from the regular searches is that because the
+search operates on more than one folder, the messages that are found
+are put in a temporary sub-folder of `+mhe-index' and are displayed in
+an MH-Folder buffer. This buffer is special because it displays
+messages from multiple folders; each set of messages from a given
+folder has a heading with the folder name.
 
-In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can
-be used to visit the folder of the message at point. Initially, only the
-messages that matched the search criteria are displayed in the folder. While
-the temporary buffer has its own set of message numbers, the actual messages
-numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder]
-command is useful to find the actual message number of an interesting message,
-or to view surrounding messages with the \\[mh-rescan-folder] command.
+In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder]
+command can be used to visit the folder of the message at point.
+Initially, only the messages that matched the search criteria are
+displayed in the folder. While the temporary buffer has its own set of
+message numbers, the actual messages numbers are shown in the visited
+folder. Thus, the \\[mh-index-visit-folder] command is useful to find
+the actual message number of an interesting message, or to view
+surrounding messages with the \\[mh-rescan-folder] command.
 
-Because this folder is temporary, you'll probably get in the habit of killing
-it when you're done with \\[mh-kill-folder].
+Because this folder is temporary, you'll probably get in the habit of
+killing it when you're done with \\[mh-kill-folder].
 
-If you have run the \\[mh-search-folder] command, but change your mind while
-entering the search criteria and actually want to run an indexed search, then
-you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the
-MH-Pick buffer.
+If you have run the \\[mh-search-folder] command, but change your mind
+while entering the search criteria and actually want to run an indexed
+search, then you can use the
+\\<mh-pick-mode-map>\\[mh-index-do-search] command in the MH-Pick
+buffer.
 
-The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined
-by the `mh-index-program' option. The default value is \"Auto-detect\" which
-means that MH-E will automatically choose one of \"swish++\", \"swish-e\",
-\"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example,
-you have both \"swish++\" and \"mairix\" installed and you want to use
-\"mairix\", then you can set this option to \"mairix\".
+The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command
+defined by the `mh-index-program' option. The default value is
+\"Auto-detect\" which means that MH-E will automatically choose one of
+\"swish++\", \"swish-e\", \"mairix\", \"namazu\", \"pick\" and
+\"grep\" in that order. If, for example, you have both \"swish++\" and
+\"mairix\" installed and you want to use \"mairix\", then you can set
+this option to \"mairix\".
 
                                 *NOTE*
 
-     The \"pick\" and \"grep\" commands do not perform a recursive search on
-     the given folder.
+     The \"pick\" and \"grep\" commands do not perform a
+     recursive search on the given folder.
 
-This command uses an \"X-MHE-Checksum:\" header field to cache the MD5
-checksum of a message. This means that if an incoming message already contains
-an \"X-MHE-Checksum:\" field, that message might not be found by this command.
-The following \"procmail\" recipe avoids this problem by renaming the existing
+This command uses an \"X-MHE-Checksum:\" header field to cache
+the MD5 checksum of a message. This means that if an incoming
+message already contains an \"X-MHE-Checksum:\" field, that
+message might not be found by this command. The following
+\"procmail\" recipe avoids this problem by renaming the existing
 header field:
 
      :0 wf
      | formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\"
 
-The documentation for the following commands describe how to set up the
-various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands
-do not require additional configuration.
+The documentation for the following commands describe how to set
+up the various indexing programs to use with MH-E. The \"pick\"
+and \"grep\" commands do not require additional configuration.
 
     - `mh-swish++-execute-search'
     - `mh-swish-execute-search'
@@ -414,12 +426,14 @@
     - `mh-pick-execute-search'
     - `mh-grep-execute-search'
 
-In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was
-generated by a index search, then the search is repeated. Otherwise, FOLDER is
-searched with SEARCH-REGEXP and the results are presented in an MH-E folder.
-If FOLDER is \"+\" then mail in all folders are searched. Optional argument
-WINDOW-CONFIG stores the window configuration that will be restored after the
-user quits the folder containing the index search results."
+In a program, if REDO-SEARCH-FLAG is non-nil and the current
+folder buffer was generated by a index search, then the search is
+repeated. Otherwise, FOLDER is searched with SEARCH-REGEXP and
+the results are presented in an MH-E folder. If FOLDER is \"+\"
+then mail in all folders are searched. Optional argument
+WINDOW-CONFIG stores the window configuration that will be
+restored after the user quits the folder containing the index
+search results."
   (interactive
    (list current-prefix-arg
          (progn
@@ -585,7 +599,8 @@
 
 (defun mh-index-write-hashtable (table proc)
   "Write TABLE to `current-buffer'.
-PROC is used to serialize the values corresponding to the hash table keys."
+PROC is used to serialize the values corresponding to the hash
+table keys."
   (pp (loop for x being the hash-keys of table
             collect (cons x (funcall proc (gethash x table))))
       (current-buffer))
@@ -619,8 +634,9 @@
 ;;;###mh-autoload
 (defun mh-index-parse-search-regexp (input-string)
   "Construct parse tree for INPUT-STRING.
-All occurrences of &, |, ! and ~ in INPUT-STRING are replaced by AND, OR and
-NOT as appropriate. Then the resulting string is parsed."
+All occurrences of &, |, ! and ~ in INPUT-STRING are replaced by
+AND, OR and NOT as appropriate. Then the resulting string is
+parsed."
   (let (input)
     (with-temp-buffer
       (insert input-string)
@@ -720,9 +736,10 @@
 ;;;###mh-autoload
 (defun mh-index-next-folder (&optional backward-flag)
   "Jump to the next folder marker.
-The function is only applicable to folders displaying index search results.
-With non-nil optional argument BACKWARD-FLAG, jump to the previous group of
-results."
+The function is only applicable to folders displaying index search
+results.
+With non-nil optional argument BACKWARD-FLAG, jump to the previous
+group of results."
   (interactive "P")
   (if (null mh-index-data)
       (message "Only applicable in an MH-E index search buffer")
@@ -764,12 +781,12 @@
 (defun mh-index-new-folder (name search-regexp)
   "Return a folder name based on NAME for search results of SEARCH-REGEXP.
 
-If folder NAME already exists and was generated for the same SEARCH-REGEXP
-then it is reused.
+If folder NAME already exists and was generated for the same
+SEARCH-REGEXP then it is reused.
 
-Otherwise if the folder NAME was generated from a different search then check
-if NAME<2> can be used. Otherwise try NAME<3>. This is repeated till we find a
-new folder name.
+Otherwise if the folder NAME was generated from a different
+search then check if NAME<2> can be used. Otherwise try NAME<3>.
+This is repeated till we find a new folder name.
 
 If the folder returned doesn't exist then it is created."
   (unless (mh-folder-name-p name)
@@ -794,7 +811,8 @@
 
 (defun mh-index-folder-search-regexp (folder)
   "If FOLDER was created by a index search, return the search regexp.
-Return nil if FOLDER doesn't exist or the .mhe_index file is garbled."
+Return nil if FOLDER doesn't exist or the .mhe_index file is
+garbled."
   (ignore-errors
     (with-temp-buffer
       (insert-file-contents
@@ -844,8 +862,8 @@
 ;;;###mh-autoload
 (defun mh-index-group-by-folder ()
   "Partition the messages based on source folder.
-Returns an alist with the the folder names in the car and the cdr being the
-list of messages originally from that folder."
+Returns an alist with the the folder names in the car and the cdr
+being the list of messages originally from that folder."
   (save-excursion
     (goto-char (point-min))
     (let ((result-table (make-hash-table :test #'equal)))
@@ -909,9 +927,9 @@
 
 (defun mh-index-matching-source-msgs (msgs &optional delete-from-index-data)
   "Return a table of original messages and folders for messages in MSGS.
-If optional argument DELETE-FROM-INDEX-DATA is non-nil, then each of the
-messages, whose counter-part is found in some source folder, is removed from
-`mh-index-data'."
+If optional argument DELETE-FROM-INDEX-DATA is non-nil, then each
+of the messages, whose counter-part is found in some source
+folder, is removed from `mh-index-data'."
   (let ((table (make-hash-table :test #'equal)))
     (dolist (msg msgs)
       (let* ((checksum (gethash msg mh-index-msg-checksum-map))
@@ -926,9 +944,10 @@
 ;;;###mh-autoload
 (defun mh-index-execute-commands ()
   "Delete/refile the actual messages.
-The copies in the searched folder are then deleted/refiled to get the desired
-result. Before deleting the messages we make sure that the message being
-deleted is identical to the one that the user has marked in the index buffer."
+The copies in the searched folder are then deleted/refiled to get
+the desired result. Before deleting the messages we make sure
+that the message being deleted is identical to the one that the
+user has marked in the index buffer."
   (save-excursion
     (let ((folders ())
           (mh-speed-flists-inhibit-flag t))
@@ -967,8 +986,8 @@
 ;;;###mh-autoload
 (defun mh-index-add-to-sequence (seq msgs)
   "Add to SEQ the messages in the list MSGS.
-This function updates the source folder sequences. Also makes an attempt to
-update the source folder buffer if we have it open."
+This function updates the source folder sequences. Also makes an
+attempt to update the source folder buffer if we have it open."
   ;; Don't need to do anything for cur
   (save-excursion
     (when (and (not (memq seq (mh-unpropagated-sequences)))
@@ -993,8 +1012,8 @@
 ;;;###mh-autoload
 (defun mh-index-delete-from-sequence (seq msgs)
   "Delete from SEQ the messages in MSGS.
-This function updates the source folder sequences. Also makes an attempt to
-update the source folder buffer if present."
+This function updates the source folder sequences. Also makes an
+attempt to update the source folder buffer if present."
   (save-excursion
     (when (and (not (memq seq (mh-unpropagated-sequences)))
                (mh-valid-seq-p seq))
@@ -1025,12 +1044,12 @@
 (defun mh-pick-execute-search (folder-path search-regexp)
   "Execute pick.
 
-Unlike the other index search programs \"pick\" only searches messages present
-in the folder itself and does not descend into any sub-folders that may be
-present.
+Unlike the other index search programs \"pick\" only searches
+messages present in the folder itself and does not descend into
+any sub-folders that may be present.
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
-to search."
+In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP
+is used to search."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (setq mh-index-pick-folder
@@ -1061,12 +1080,12 @@
 (defun mh-grep-execute-search (folder-path search-regexp)
   "Execute grep and read the results.
 
-Unlike the other index search programs \"grep\" only searches messages present
-in the folder itself and does not descend into any sub-folders that may be
-present.
+Unlike the other index search programs \"grep\" only searches
+messages present in the folder itself and does not descend into
+any sub-folders that may be present.
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
-to search."
+In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP
+is used to search."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (call-process mh-grep-binary nil '(t nil) nil
@@ -1075,9 +1094,9 @@
 
 (defun mh-grep-next-result ()
   "Read the next result.
-Parse it and return the message folder, message index and the match. If no
-other matches left then return nil. If the current record is invalid return
-'error."
+Parse it and return the message folder, message index and the
+match. If no other matches left then return nil. If the current
+record is invalid return 'error."
   (prog1
       (block nil
         (when (eobp)
@@ -1118,11 +1137,12 @@
 (defun mh-mairix-execute-search (folder-path search-regexp-list)
   "Execute mairix and read the results.
 
-In the examples below, replace \"/home/user/Mail\" with the path to your MH
-directory.
+In the examples below, replace \"/home/user/Mail\" with the path
+to your MH directory.
 
-First create the directory \"/home/user/Mail/.mairix\". Then create the file
-\"/home/user/Mail/.mairix/config\" with the following contents:
+First create the directory \"/home/user/Mail/.mairix\". Then
+create the file \"/home/user/Mail/.mairix/config\" with the
+following contents:
 
      base=/home/user/Mail
 
@@ -1133,13 +1153,13 @@
      vfolder_format=raw
      database=/home/user/Mail/mairix/database
 
-Use the following command line to generate the mairix index. Run this daily
-from cron:
+Use the following command line to generate the mairix index. Run
+this daily from cron:
 
      mairix -f /home/user/Mail/.mairix/config
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used
-to search."
+In a program, FOLDER-PATH is the directory in which
+SEARCH-REGEXP-LIST is used to search."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (unless mh-mairix-binary
@@ -1258,9 +1278,10 @@
 
 (defun mh-flists-execute (&rest args)
   "Execute flists.
-Search for messages belonging to `mh-flists-sequence' in the folders
-specified by `mh-flists-search-folders'. If `mh-recursive-folders-flag' is t,
-then the folders are searched recursively. All parameters ARGS are ignored."
+Search for messages belonging to `mh-flists-sequence' in the
+folders specified by `mh-flists-search-folders'. If
+`mh-recursive-folders-flag' is t, then the folders are searched
+recursively. All parameters ARGS are ignored."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (unless (executable-find "sh")
@@ -1286,8 +1307,9 @@
 (defun mh-index-sequenced-messages (folders sequence)
   "Display messages from FOLDERS in SEQUENCE.
 All messages in the sequence you provide from the folders in
-`mh-new-messages-folders' are listed. With a prefix argument, enter a
-space-separated list of folders, or nothing to search all folders."
+`mh-new-messages-folders' are listed. With a prefix argument,
+enter a space-separated list of folders, or nothing to search all
+folders."
   (interactive
    (list (if current-prefix-arg
              (split-string (read-string "Search folder(s) (default all): "))
@@ -1330,13 +1352,14 @@
 (defun mh-index-new-messages (folders)
   "Display unseen messages.
 
-If you use a program such as `procmail' to use `rcvstore' to file your
-incoming mail automatically, you can display new, unseen, messages using this
-command. All messages in the `unseen' sequence from the folders in
-`mh-new-messages-folders' are listed.
+If you use a program such as `procmail' to use `rcvstore' to file
+your incoming mail automatically, you can display new, unseen,
+messages using this command. All messages in the `unseen'
+sequence from the folders in `mh-new-messages-folders' are
+listed.
 
-With a prefix argument, enter a space-separated list of FOLDERS, or nothing to
-search all folders."
+With a prefix argument, enter a space-separated list of FOLDERS,
+or nothing to search all folders."
   (interactive
    (list (if current-prefix-arg
              (split-string (read-string "Search folder(s) (default all): "))
@@ -1347,11 +1370,11 @@
 (defun mh-index-ticked-messages (folders)
   "Display ticked messages.
 
-All messages in `mh-tick-seq' from the folders in `mh-ticked-messages-folders'
-are listed.
+All messages in `mh-tick-seq' from the folders in
+`mh-ticked-messages-folders' are listed.
 
-With a prefix argument, enter a space-separated list of FOLDERS, or nothing to
-search all folders."
+With a prefix argument, enter a space-separated list of FOLDERS,
+or nothing to search all folders."
   (interactive
    (list (if current-prefix-arg
              (split-string (read-string "Search folder(s) (default all): "))
@@ -1370,11 +1393,12 @@
 (defun mh-swish-execute-search (folder-path search-regexp)
   "Execute swish-e and read the results.
 
-In the examples below, replace \"/home/user/Mail\" with the path to your
-MH directory.
+In the examples below, replace \"/home/user/Mail\" with the path
+to your MH directory.
 
-First create the directory \"/home/user/Mail/.swish\". Then create the file
-\"/home/user/Mail/.swish/config\" with the following contents:
+First create the directory \"/home/user/Mail/.swish\". Then
+create the file \"/home/user/Mail/.swish/config\" with the
+following contents:
 
      DefaultContents TXT*
      IndexDir /home/user/Mail
@@ -1397,22 +1421,22 @@
      FileRules pathname contains /home/user/Mail/.swish
      FileRules pathname contains /home/user/Mail/mhe-index
 
-This configuration does not index the folders that hold the results of your
-searches in \"+mhe-index\" since they tend to be ephemeral and the original
-messages are indexed anyway.
+This configuration does not index the folders that hold the
+results of your searches in \"+mhe-index\" since they tend to be
+ephemeral and the original messages are indexed anyway.
 
-If there are any directories you would like to ignore, append lines like the
-following to \"config\":
+If there are any directories you would like to ignore, append
+lines like the following to \"config\":
 
      FileRules pathname contains /home/user/Mail/scripts
 
-Use the following command line to generate the swish index. Run this daily
-from cron:
+Use the following command line to generate the swish index. Run
+this daily from cron:
 
          swish-e -c /home/user/Mail/.swish/config
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
-search."
+In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP
+is used to search."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (unless mh-swish-binary
@@ -1472,11 +1496,12 @@
 (defun mh-swish++-execute-search (folder-path search-regexp)
   "Execute swish++ and read the results.
 
-In the examples below, replace \"/home/user/Mail\" with the path to your MH
-directory.
+In the examples below, replace \"/home/user/Mail\" with the path to
+your MH directory.
 
-First create the directory \"/home/user/Mail/.swish++\". Then create the file
-\"/home/user/Mail/.swish++/swish++.conf\" with the following contents:
+First create the directory \"/home/user/Mail/.swish++\". Then create
+the file \"/home/user/Mail/.swish++/swish++.conf\" with the following
+contents:
 
      IncludeMeta         Bcc Cc Comments Content-Description From Keywords
      IncludeMeta         Newsgroups Resent-To Subject To
@@ -1484,23 +1509,23 @@
      IncludeFile         Mail    *
      IndexFile           /home/user/Mail/.swish++/swish++.index
 
-Use the following command line to generate the swish index. Run this daily
-from cron:
+Use the following command line to generate the swish index. Run
+this daily from cron:
 
      find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
                           -o -path /home/user/Mail/.swish++ -prune \\
                           -o -name \"[0-9]*\" -print \\
          | index -c /home/user/Mail/.swish++/swish++.conf -
 
-This command does not index the folders that hold the results of your searches
-in \"+mhe-index\" since they tend to be ephemeral and the original messages
-are indexed anyway.
+This command does not index the folders that hold the results of your
+searches in \"+mhe-index\" since they tend to be ephemeral and the
+original messages are indexed anyway.
 
-On some systems (Debian GNU/Linux, for example), use \"index++\" instead of
-\"index\".
+On some systems (Debian GNU/Linux, for example), use \"index++\"
+instead of \"index\".
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
-search."
+In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is
+used to search."
   (set-buffer (get-buffer-create mh-index-temp-buffer))
   (erase-buffer)
   (unless mh-swish++-binary
@@ -1554,29 +1579,30 @@
 (defun mh-namazu-execute-search (folder-path search-regexp)
   "Execute namazu and read the results.
 
-In the examples below, replace \"/home/user/Mail\" with the path to your MH
-directory.
+In the examples below, replace \"/home/user/Mail\" with the path to
+your MH directory.
 
-First create the directory \"/home/user/Mail/.namazu\". Then create the file
-\"/home/user/Mail/.namazu/mknmzrc\" with the following contents:
+First create the directory \"/home/user/Mail/.namazu\". Then create
+the file \"/home/user/Mail/.namazu/mknmzrc\" with the following
+contents:
 
      package conf;  # Don't remove this line!
      $ADDRESS = 'user@localhost';
      $ALLOW_FILE = \"[0-9]*\";
      $EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
 
-This configuration does not index the folders that hold the results of your
-searches in \"+mhe-index\" since they tend to be ephemeral and the original
-messages are indexed anyway.
+This configuration does not index the folders that hold the results of
+your searches in \"+mhe-index\" since they tend to be ephemeral and
+the original messages are indexed anyway.
 
-Use the following command line to generate the namazu index. Run this daily
-from cron:
+Use the following command line to generate the namazu index. Run this
+daily from cron:
 
      mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
               /home/user/Mail
 
-In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
-search."
+In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP
+is used to search."
   (let ((namazu-index-directory
          (format "%s%s" mh-user-path mh-namazu-directory)))
     (unless (file-exists-p namazu-index-directory)
@@ -1623,10 +1649,10 @@
 ;;;###mh-autoload
 (defun mh-index-choose ()
   "Choose an indexing function.
-The side-effects of this function are that the variables `mh-indexer',
-`mh-index-execute-search-function', and `mh-index-next-result-function' are
-set according to the first indexer in `mh-indexer-choices' present on the
-system."
+The side-effects of this function are that the variables
+`mh-indexer', `mh-index-execute-search-function', and
+`mh-index-next-result-function' are set according to the first
+indexer in `mh-indexer-choices' present on the system."
   (block nil
     ;; The following favors the user's preference; otherwise, the last
     ;; automatically chosen indexer is used for efficiency rather than going
--- a/lisp/mh-e/mh-init.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-init.el	Fri Dec 23 07:40:40 2005 +0000
@@ -81,8 +81,8 @@
 (defun mh-variants ()
   "Return a list of installed variants of MH on the system.
 This function looks for MH in `mh-sys-path', `mh-path' and
-`exec-path'. The format of the list of variants that is returned is described
-by the variable `mh-variants'."
+`exec-path'. The format of the list of variants that is returned
+is described by the variable `mh-variants'."
   (if mh-variants
       mh-variants
     (let ((list-unique))
@@ -100,14 +100,16 @@
 
 (defvar mh-variant-in-use nil
   "The MH variant currently in use; a string with variant and version number.
-This differs from `mh-variant' when the latter is set to `autodetect'.")
+This differs from `mh-variant' when the latter is set to
+`autodetect'.")
 
 ;;;###mh-autoload
 (defun mh-variant-set (variant)
   "Set the MH variant to VARIANT.
-Sets `mh-progs', `mh-lib', `mh-lib-progs' and `mh-flists-present-flag'.
-If the VARIANT is `autodetect', then first try nmh, then MH and finally
-GNU mailutils."
+Sets `mh-progs', `mh-lib', `mh-lib-progs' and
+`mh-flists-present-flag'.
+If the VARIANT is `autodetect', then first try nmh, then MH and
+finally GNU mailutils."
   (interactive
    (list (completing-read
           "MH Variant: "
@@ -138,7 +140,8 @@
 (defun mh-variant-set-variant (variant)
   "Setup the system variables for the MH variant named VARIANT.
 If VARIANT is a string, use that key in the variable `mh-variants'.
-If VARIANT is a symbol, select the first entry that matches that variant."
+If VARIANT is a symbol, select the first entry that matches that
+variant."
   (cond
    ((stringp variant)                   ;e.g. "nmh 1.1-RC1"
     (when (assoc variant mh-variants)
@@ -193,7 +196,7 @@
     "/usr/bin/mu-mh/")                  ; GNU mailutils - packaged
   "List of directories to search for variants of the MH variant.
 The list `exec-path' is searched in addition to this list.
-There's no need for users to modify this list.  Instead add extra
+There's no need for users to modify this list. Instead add extra
 directories to the customizable variable `mh-path'.")
 
 (defun mh-variant-mh-info (dir)
@@ -302,10 +305,11 @@
 ;;;###mh-autoload
 (defun mh-image-load-path ()
   "Ensure that the MH-E images are accessible by `find-image'.
-Images for MH-E are found in ../../etc/images relative to the files in
-`lisp/mh-e'. If `image-load-path' exists (since Emacs 22), then the images
-directory is added to it if isn't already there. Otherwise, the images
-directory is added to the `load-path' if it isn't already there."
+Images for MH-E are found in ../../etc/images relative to the
+files in `lisp/mh-e'. If `image-load-path' exists (since Emacs
+22), then the images directory is added to it if isn't already
+there. Otherwise, the images directory is added to the
+`load-path' if it isn't already there."
   (unless mh-image-load-path-called-flag
     (let (mh-library-name mh-image-load-path)
       ;; First, find mh-e in the load-path.
@@ -332,10 +336,11 @@
   "Convert SPEC for defface if necessary to run on older platforms.
 See `defface' for the spec definition.
 
-When `mh-min-colors-defined-flag' is nil, this function finds a display with a
-single \"class\" requirement with a \"color\" item, renames the requirement to
-\"tty\" and moves it to the beginning of the list. It then strips any
-\"min-colors\" requirements."
+When `mh-min-colors-defined-flag' is nil, this function finds a
+display with a single \"class\" requirement with a \"color\"
+item, renames the requirement to \"tty\" and moves it to the
+beginning of the list. It then strips any \"min-colors\"
+requirements."
   (when (not mh-min-colors-defined-flag)
     ;; Insert ((class tty)) display with ((class color)) attributes.
     (let ((attributes (cdr (assoc '((class color)) spec))))
--- a/lisp/mh-e/mh-junk.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-junk.el	Fri Dec 23 07:40:40 2005 +0000
@@ -41,14 +41,15 @@
 (defun mh-junk-blacklist (range)
   "Blacklist RANGE as spam.
 
-This command trains the spam program in use (see the option `mh-junk-program')
-with the content of RANGE and then handles the message(s) as specified by the
-option `mh-junk-disposition'.
+This command trains the spam program in use (see the option
+`mh-junk-program') with the content of RANGE and then handles the
+message(s) as specified by the option `mh-junk-disposition'.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how RANGE is
+read in interactive use.
 
-For more information about using your particular spam fighting program, see:
+For more information about using your particular spam fighting
+program, see:
 
   - `mh-spamassassin-blacklist'
   - `mh-bogofilter-blacklist'
@@ -80,12 +81,12 @@
 (defun mh-junk-whitelist (range)
   "Whitelist RANGE as ham.
 
-This command reclassifies the RANGE as ham if it were incorrectly classified
-as spam (see the option `mh-junk-program'). It then refiles the message into
-the \"+inbox\" folder.
+This command reclassifies the RANGE as ham if it were incorrectly
+classified as spam (see the option `mh-junk-program'). It then
+refiles the message into the \"+inbox\" folder.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use."
   (interactive (list (mh-interactive-range "Whitelist")))
   (let ((whitelist-func (nth 2 (assoc mh-junk-choice mh-junk-function-alist))))
     (unless whitelist-func
@@ -107,8 +108,8 @@
 (defun mh-spamassassin-blacklist (msg)
   "Blacklist MSG with SpamAssassin.
 
-SpamAssassin is one of the more popular spam filtering programs. Get it from
-your local distribution or from http://spamassassin.org/.
+SpamAssassin is one of the more popular spam filtering programs. Get
+it from your local distribution or from http://spamassassin.org/.
 
 To use SpamAssassin, add the following recipes to `.procmailrc':
 
@@ -129,52 +130,56 @@
 
 If you don't use `spamc', use `spamassassin -P -a'.
 
-Note that one of the recipes above throws away messages with a score greater
-than or equal to 10. Here's how you can determine a value that works best for
-you.
+Note that one of the recipes above throws away messages with a score
+greater than or equal to 10. Here's how you can determine a value that
+works best for you.
 
-First, run `spamassassin -t' on every mail message in your archive and use
-Gnumeric to verify that the average plus the standard deviation of good mail
-is under 5, the SpamAssassin default for \"spam\".
+First, run `spamassassin -t' on every mail message in your archive and
+use Gnumeric to verify that the average plus the standard deviation of
+good mail is under 5, the SpamAssassin default for \"spam\".
 
-Using Gnumeric, sort the messages by score and view the messages with the
-highest score. Determine the score which encompasses all of your interesting
-messages and add a couple of points to be conservative. Add that many dots to
-the `X-Spam-Level:' header field above to send messages with that score down
-the drain.
+Using Gnumeric, sort the messages by score and view the messages with
+the highest score. Determine the score which encompasses all of your
+interesting messages and add a couple of points to be conservative.
+Add that many dots to the `X-Spam-Level:' header field above to send
+messages with that score down the drain.
 
-In the example above, messages with a score of 5-9 are set aside in the
-`+spam' folder for later review. The major weakness of rules-based filters is
-a plethora of false positives so it is worthwhile to check.
+In the example above, messages with a score of 5-9 are set aside in
+the `+spam' folder for later review. The major weakness of rules-based
+filters is a plethora of false positives so it is worthwhile to check.
 
-If SpamAssassin classifies a message incorrectly, or is unsure, you can use
-the MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist].
+If SpamAssassin classifies a message incorrectly, or is unsure, you
+can use the MH-E commands \\[mh-junk-blacklist] and
+\\[mh-junk-whitelist].
 
 The \\[mh-junk-blacklist] command adds a `blacklist_from' entry to
-`~/spamassassin/user_prefs', deletes the message, and sends the message to the
-Razor, so that others might not see this spam. If the `sa-learn' command is
-available, the message is also recategorized as spam.
+`~/spamassassin/user_prefs', deletes the message, and sends the
+message to the Razor, so that others might not see this spam. If the
+`sa-learn' command is available, the message is also recategorized as
+spam.
 
 The \\[mh-junk-whitelist] command adds a `whitelist_from' rule to the
-`~/.spamassassin/user_prefs' file. If the `sa-learn' command is available, the
-message is also recategorized as ham.
+`~/.spamassassin/user_prefs' file. If the `sa-learn' command is
+available, the message is also recategorized as ham.
 
-Over time, you'll observe that the same host or domain occurs repeatedly in
-the `blacklist_from' entries, so you might think that you could avoid future
-spam by blacklisting all mail from a particular domain. The utility function
-`mh-spamassassin-identify-spammers' helps you do precisely that. This function
-displays a frequency count of the hosts and domains in the `blacklist_from'
-entries from the last blank line in `~/.spamassassin/user_prefs' to the end of
-the file. This information can be used so that you can replace multiple
+Over time, you'll observe that the same host or domain occurs
+repeatedly in the `blacklist_from' entries, so you might think that
+you could avoid future spam by blacklisting all mail from a particular
+domain. The utility function `mh-spamassassin-identify-spammers' helps
+you do precisely that. This function displays a frequency count of the
+hosts and domains in the `blacklist_from' entries from the last blank
+line in `~/.spamassassin/user_prefs' to the end of the file. This
+information can be used so that you can replace multiple
 `blacklist_from' entries with a single wildcard entry such as:
 
     blacklist_from *@*amazingoffersdirect2u.com
 
-In versions of SpamAssassin (2.50 and on) that support a Bayesian classifier,
-\\[mh-junk-blacklist] uses the `sa-learn' program to recategorize the message
-as spam. Neither MH-E, nor SpamAssassin, rebuilds the database after adding
-words, so you will need to run `sa-learn --rebuild' periodically. This can be
-done by adding the following to your crontab:
+In versions of SpamAssassin (2.50 and on) that support a Bayesian
+classifier, \\[mh-junk-blacklist] uses the `sa-learn' program to
+recategorize the message as spam. Neither MH-E, nor SpamAssassin,
+rebuilds the database after adding words, so you will need to run
+`sa-learn --rebuild' periodically. This can be done by adding the
+following to your crontab:
 
     0 * * * *	sa-learn --rebuild > /dev/null 2>&1"
   (unless mh-spamassassin-executable
@@ -210,9 +215,9 @@
 (defun mh-spamassassin-whitelist (msg)
   "Whitelist MSG with SpamAssassin.
 
-The \\[mh-junk-whitelist] command adds a `whitelist_from' rule to the
-`~/.spamassassin/user_prefs' file. If the `sa-learn' command is available, the
-message is also recategorized as ham.
+The \\[mh-junk-whitelist] command adds a `whitelist_from' rule to
+the `~/.spamassassin/user_prefs' file. If the `sa-learn' command
+is available, the message is also recategorized as ham.
 
 See `mh-spamassassin-blacklist' for more information."
   (unless mh-spamassassin-executable
@@ -263,11 +268,11 @@
 (defun mh-spamassassin-identify-spammers ()
   "Identify spammers who are repeat offenders.
 
-This function displays a frequency count of the hosts and domains in the
-`blacklist_from' entries from the last blank line in
-`~/.spamassassin/user_prefs' to the end of the file. This information can be
-used so that you can replace multiple `blacklist_from' entries with a single
-wildcard entry such as:
+This function displays a frequency count of the hosts and domains
+in the `blacklist_from' entries from the last blank line in
+`~/.spamassassin/user_prefs' to the end of the file. This
+information can be used so that you can replace multiple
+`blacklist_from' entries with a single wildcard entry such as:
 
     blacklist_from *@*amazingoffersdirect2u.com"
   (interactive)
@@ -312,8 +317,8 @@
 (defun mh-bogofilter-blacklist (msg)
   "Blacklist MSG with bogofilter.
 
-Bogofilter is a Bayesian spam filtering program. Get it from your local
-distribution or from http://bogofilter.sourceforge.net/.
+Bogofilter is a Bayesian spam filtering program. Get it from your
+local distribution or from http://bogofilter.sourceforge.net/.
 
 Bogofilter is taught by running:
 
@@ -324,9 +329,9 @@
     bogofilter -s < spam-message
 
 on every spam message. This is called a full training; three other
-training methods are described in the FAQ that is distributed with bogofilter.
-Note that most Bayesian filters need 1000 to 5000 of each type of message to
-start doing a good job.
+training methods are described in the FAQ that is distributed with
+bogofilter. Note that most Bayesian filters need 1000 to 5000 of each
+type of message to start doing a good job.
 
 To use bogofilter, add the following recipes to `.procmailrc':
 
@@ -344,9 +349,9 @@
     * ^X-Bogosity: Unsure, tests=bogofilter
     spam/unsure/.
 
-If bogofilter classifies a message incorrectly, or is unsure, you can use the
-MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist] to update
-bogofilter's training.
+If bogofilter classifies a message incorrectly, or is unsure, you can
+use the MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist]
+to update bogofilter's training.
 
 The \"Bogofilter FAQ\" suggests that you run the following
 occasionally to shrink the database:
@@ -399,9 +404,9 @@
     *^X-SpamProbe: SPAM
     spam/.
 
-If SpamProbe classifies a message incorrectly, you can use the MH-E commands
-\\[mh-junk-blacklist] and \\[mh-junk-whitelist] to update SpamProbe's
-training."
+If SpamProbe classifies a message incorrectly, you can use the
+MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist] to
+update SpamProbe's training."
   (unless mh-spamprobe-executable
     (error "Unable to find the spamprobe executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
--- a/lisp/mh-e/mh-mime.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-mime.el	Fri Dec 23 07:40:40 2005 +0000
@@ -55,12 +55,15 @@
 ;;;###mh-autoload
 (defun mh-compose-insertion (&optional inline)
   "Add tag to include a file such as an image or sound.
-You are prompted for the filename containing the object, the media type if it
-cannot be determined automatically, and a content description. If you're using
-MH-style directives, you will also be prompted for additional attributes.
 
-The option `mh-compose-insertion' controls what type of tags are inserted.
-Optional argument INLINE means make it an inline attachment."
+You are prompted for the filename containing the object, the
+media type if it cannot be determined automatically, and a
+content description. If you're using MH-style directives, you
+will also be prompted for additional attributes.
+
+The option `mh-compose-insertion' controls what type of tags are
+inserted. Optional argument INLINE means make it an inline
+attachment."
   (interactive "P")
   (if (equal mh-compose-insertion 'mml)
       (if inline
@@ -71,8 +74,10 @@
 ;;;###mh-autoload
 (defun mh-compose-forward (&optional description folder messages)
   "Add tag to forward a message.
-You are prompted for a content DESCRIPTION, the name of the FOLDER in which
-the messages to forward are located, and the MESSAGES' numbers.
+
+You are prompted for a content DESCRIPTION, the name of the
+FOLDER in which the messages to forward are located, and the
+MESSAGES' numbers.
 
 The option `mh-compose-insertion' controls what type of tags are inserted."
   (interactive (let*
@@ -117,9 +122,9 @@
 
 (defvar mh-mh-to-mime-args nil
   "Extra arguments for \\[mh-mh-to-mime] to pass to the \"mhbuild\" command.
-The arguments are passed to \"mhbuild\" if \\[mh-mh-to-mime] is given a prefix
-argument. Normally default arguments to \"mhbuild\" are specified in the MH
-profile.")
+The arguments are passed to \"mhbuild\" if \\[mh-mh-to-mime] is
+given a prefix argument. Normally default arguments to
+\"mhbuild\" are specified in the MH profile.")
 
 (defvar mh-media-type-regexp
   (concat (regexp-opt '("text" "image" "audio" "video" "application"
@@ -151,12 +156,14 @@
     ("text/plain" "\.vcf" "text/x-vcard"))
   "Substitutions to make for Content-Type returned from file command.
 The first element is the Content-Type returned by the file command.
-The second element is a regexp matching the file name, usually the extension.
+The second element is a regexp matching the file name, usually the
+extension.
 The third element is the Content-Type to replace with.")
 
 (defun mh-file-mime-type-substitute (content-type filename)
   "Return possibly changed CONTENT-TYPE on the FILENAME.
-Substitutions are made from the `mh-file-mime-type-substitutions' variable."
+Substitutions are made from the `mh-file-mime-type-substitutions'
+variable."
   (let ((subst mh-file-mime-type-substitutions)
         (type) (match) (answer content-type)
         (case-fold-search t))
@@ -225,9 +232,10 @@
 
 (defun mh-minibuffer-read-type (filename &optional default)
   "Return the content type associated with the given FILENAME.
-If the \"file\" command exists and recognizes the given file, then its value
-is returned\; otherwise, the user is prompted for a type (see
-`mailcap-mime-types' and for Emacs 20, `mh-mime-content-types').
+If the \"file\" command exists and recognizes the given file,
+then its value is returned\; otherwise, the user is prompted for
+a type (see `mailcap-mime-types' and for Emacs 20,
+`mh-mime-content-types').
 Optional argument DEFAULT is returned if a type isn't entered."
   (mailcap-parse-mimetypes)
   (let* ((default (or default
@@ -272,9 +280,10 @@
 ;;;###mh-autoload
 (defun mh-mh-attach-file (filename type description attributes)
   "Add a tag to insert a MIME message part from a file.
-You are prompted for the FILENAME containing the object, the media TYPE if it
-cannot be determined automatically, and a content DESCRIPTION. In addition,
-you are also prompted for additional ATTRIBUTES.
+You are prompted for the FILENAME containing the object, the
+media TYPE if it cannot be determined automatically, and a
+content DESCRIPTION. In addition, you are also prompted for
+additional ATTRIBUTES.
 
 See also \\[mh-mh-to-mime]."
   (interactive (let ((filename (mml-minibuffer-read-file "Attach file: ")))
@@ -291,9 +300,9 @@
 (defun mh-mh-compose-type (filename type
                                      &optional description attributes comment)
   "Insert an MH-style directive to insert a file.
-The file specified by FILENAME is encoded as TYPE. An optional DESCRIPTION is
-used as the Content-Description field, optional set of ATTRIBUTES and an
-optional COMMENT can also be included."
+The file specified by FILENAME is encoded as TYPE. An optional
+DESCRIPTION is used as the Content-Description field, optional
+set of ATTRIBUTES and an optional COMMENT can also be included."
   (beginning-of-line)
   (insert "#" type)
   (and attributes
@@ -309,8 +318,8 @@
 ;;;###mh-autoload
 (defun mh-mh-compose-anon-ftp (host filename type description)
   "Add tag to include anonymous ftp reference to a file.
-You can even have your message initiate an \"ftp\" transfer when the
-recipient reads the message. You are prompted for the remote
+You can even have your message initiate an \"ftp\" transfer when
+the recipient reads the message. You are prompted for the remote
 HOST and FILENAME, the media TYPE, and the content DESCRIPTION.
 
 See also \\[mh-mh-to-mime]."
@@ -325,10 +334,10 @@
 ;;;###mh-autoload
 (defun mh-mh-compose-external-compressed-tar (host filename description)
   "Add tag to include anonymous ftp reference to a compressed tar file.
-In addition to retrieving the file via anonymous \"ftp\" as per the
-\\[mh-mh-compose-anon-ftp] command, the file will also be uncompressed and
-untarred. You are prompted for the remote HOST and FILENAME and the content
-DESCRIPTION.
+In addition to retrieving the file via anonymous \"ftp\" as per
+the \\[mh-mh-compose-anon-ftp] command, the file will also be
+uncompressed and untarred. You are prompted for the remote HOST
+and FILENAME and the content DESCRIPTION.
 
 See also \\[mh-mh-to-mime]."
   (interactive (list
@@ -347,11 +356,12 @@
                                                 attributes parameters
                                                 comment)
   "Add tag to refer to a remote file.
-This command is a general utility for referencing external files. In fact, all
-of the other commands that insert directives to access external files call
-this command. You are prompted for the ACCESS-TYPE, remote HOST and FILENAME,
-and content TYPE. If you provide a prefix argument, you are also prompted for
-a content DESCRIPTION, ATTRIBUTES, PARAMETERS, and a COMMENT.
+This command is a general utility for referencing external files.
+In fact, all of the other commands that insert directives to
+access external files call this command. You are prompted for the
+ACCESS-TYPE, remote HOST and FILENAME, and content TYPE. If you
+provide a prefix argument, you are also prompted for a content
+DESCRIPTION, ATTRIBUTES, PARAMETERS, and a COMMENT.
 
 See also \\[mh-mh-to-mime]."
   (interactive (list
@@ -386,8 +396,9 @@
 ;;;###mh-autoload
 (defun mh-mh-forward-message (&optional description folder messages)
   "Add tag to forward a message.
-You are prompted for a content DESCRIPTION, the name of the FOLDER in which
-the messages to forward are located, and the MESSAGES' numbers.
+You are prompted for a content DESCRIPTION, the name of the
+FOLDER in which the messages to forward are located, and the
+MESSAGES' numbers.
 
 See also \\[mh-mh-to-mime]."
   (interactive (list
@@ -420,22 +431,24 @@
 (defun mh-mh-to-mime (&optional extra-args)
   "Compose MIME message from MH-style directives.
 
-Typically, you send a message with attachments just like any other message.
-However, you may take a sneak preview of the MIME encoding if you wish by
-running this command.
+Typically, you send a message with attachments just like any other
+message. However, you may take a sneak preview of the MIME encoding if
+you wish by running this command.
 
-If you wish to pass additional arguments to \"mhbuild\" (\"mhn\") to affect
-how it builds your message, use the `mh-mh-to-mime-args' option. For example,
-you can build a consistency check into the message by setting
-`mh-mh-to-mime-args' to \"-check\". The recipient of your message can then run
-\"mhbuild -check\" on the message--\"mhbuild\" (\"mhn\") will complain if the
-message has been corrupted on the way. This command only consults this option
-when given a prefix argument EXTRA-ARGS.
+If you wish to pass additional arguments to \"mhbuild\" (\"mhn\") to
+affect how it builds your message, use the `mh-mh-to-mime-args'
+option. For example, you can build a consistency check into the
+message by setting `mh-mh-to-mime-args' to \"-check\". The recipient
+of your message can then run \"mhbuild -check\" on the
+message--\"mhbuild\" (\"mhn\") will complain if the message has been
+corrupted on the way. This command only consults this option when
+given a prefix argument EXTRA-ARGS.
 
 The hook `mh-mh-to-mime-hook' is called after the message has been
 formatted.
 
-The effects of this command can be undone by running \\[mh-mh-to-mime-undo]."
+The effects of this command can be undone by running
+\\[mh-mh-to-mime-undo]."
   (interactive "*P")
   (mh-mh-quote-unescaped-sharp)
   (save-buffer)
@@ -457,9 +470,9 @@
 
 (defun mh-mh-quote-unescaped-sharp ()
   "Quote `#' characters that haven't been quoted for \"mhbuild\".
-If the `#' character is present in the first column, but it isn't part of a
-MH-style directive then \"mhbuild\" gives an error. This function will quote
-all such characters."
+If the `#' character is present in the first column, but it isn't
+part of a MH-style directive then \"mhbuild\" gives an error.
+This function will quote all such characters."
   (save-excursion
     (goto-char (point-min))
     (while (re-search-forward "^#" nil t)
@@ -471,7 +484,8 @@
 ;;;###mh-autoload
 (defun mh-mh-to-mime-undo (noconfirm)
   "Undo effects of \\[mh-mh-to-mime].
-Optional non-nil argument NOCONFIRM means don't ask for confirmation."
+Optional non-nil argument NOCONFIRM means don't ask for
+confirmation."
   (interactive "*P")
   (if (null buffer-file-name)
       (error "Buffer does not seem to be associated with any file"))
@@ -499,8 +513,8 @@
 ;;;###mh-autoload
 (defun mh-mh-directive-present-p (&optional begin end)
   "Check if the text between BEGIN and END might be a MH-style directive.
-The optional argument BEGIN defaults to the beginning of the buffer, while END
-defaults to the the end of the buffer."
+The optional argument BEGIN defaults to the beginning of the
+buffer, while END defaults to the the end of the buffer."
   (unless begin (setq begin (point-min)))
   (unless end (setq end (point-max)))
   (save-excursion
@@ -525,9 +539,10 @@
 ;;;###mh-autoload
 (defun mh-mml-to-mime ()
   "Compose MIME message from MML tags.
-Typically, you send a message with attachments just like any other message.
-However, you may take a sneak preview of the MIME encoding if you wish by
-running this command.
+
+Typically, you send a message with attachments just like any
+other message. However, you may take a sneak preview of the MIME
+encoding if you wish by running this command.
 
 This action can be undone by running \\[undo]."
   (interactive)
@@ -548,8 +563,9 @@
 ;;;###mh-autoload
 (defun mh-mml-forward-message (description folder message)
   "Forward a message as attachment.
-The function will prompt the user for a DESCRIPTION, a FOLDER and MESSAGE
-number."
+
+The function will prompt the user for a DESCRIPTION, a FOLDER and
+MESSAGE number."
   (let ((msg (if (and (equal message "") (numberp mh-sent-from-msg))
                  mh-sent-from-msg
                (car (read-from-string message)))))
@@ -582,9 +598,10 @@
 ;;;###mh-autoload
 (defun mh-mml-attach-file (&optional disposition)
   "Add a tag to insert a MIME message part from a file.
-You are prompted for the filename containing the object, the media type if it
-cannot be determined automatically, a content description and the DISPOSITION
-of the attachment.
+
+You are prompted for the filename containing the object, the
+media type if it cannot be determined automatically, a content
+description and the DISPOSITION of the attachment.
 
 This is basically `mml-attach-file' from Gnus, modified such that a prefix
 argument yields an `inline' disposition and Content-Type is determined
@@ -601,6 +618,7 @@
 
 (defun mh-secure-message (method mode &optional identity)
   "Add tag to encrypt or sign message.
+
 METHOD should be one of: \"pgpmime\", \"pgp\", \"smime\".
 MODE should be one of: \"sign\", \"encrypt\", \"signencrypt\", \"none\".
 IDENTITY is optionally the default-user-id to use."
@@ -635,30 +653,33 @@
 ;;;###mh-autoload
 (defun mh-mml-secure-message-sign (method)
   "Add tag to sign the message.
-A proper multipart message is created for you when you send the message. Use
-the \\[mh-mml-unsecure-message] command to remove this tag. Use a prefix
-argument METHOD to be prompted for one of the possible security methods
-\(see `mh-mml-method-default')."
+
+A proper multipart message is created for you when you send the
+message. Use the \\[mh-mml-unsecure-message] command to remove
+this tag. Use a prefix argument METHOD to be prompted for one of
+the possible security methods \(see `mh-mml-method-default')."
   (interactive (list (mh-mml-query-cryptographic-method)))
   (mh-secure-message method "sign" mh-identity-pgg-default-user-id))
 
 ;;;###mh-autoload
 (defun mh-mml-secure-message-encrypt (method)
   "Add tag to encrypt the message.
-A proper multipart message is created for you when you send the message. Use
-the \\[mh-mml-unsecure-message] command to remove this tag. Use a prefix
-argument METHOD to be prompted for one of the possible security methods
-\(see `mh-mml-method-default')."
+
+A proper multipart message is created for you when you send the
+message. Use the \\[mh-mml-unsecure-message] command to remove
+this tag. Use a prefix argument METHOD to be prompted for one of
+the possible security methods \(see `mh-mml-method-default')."
   (interactive (list (mh-mml-query-cryptographic-method)))
   (mh-secure-message method "encrypt" mh-identity-pgg-default-user-id))
 
 ;;;###mh-autoload
 (defun mh-mml-secure-message-signencrypt (method)
   "Add tag to encrypt and sign the message.
-A proper multipart message is created for you when you send the message. Use
-the \\[mh-mml-unsecure-message] command to remove this tag. Use a prefix
-argument METHOD to be prompted for one of the possible security methods
-\(see `mh-mml-method-default')."
+
+A proper multipart message is created for you when you send the
+message. Use the \\[mh-mml-unsecure-message] command to remove
+this tag. Use a prefix argument METHOD to be prompted for one of
+the possible security methods \(see `mh-mml-method-default')."
   (interactive (list (mh-mml-query-cryptographic-method)))
   (mh-secure-message method "signencrypt" mh-identity-pgg-default-user-id))
 
@@ -695,10 +716,11 @@
 
 (defun mh-handle-set-external-undisplayer (folder handle function)
   "Replacement for `mm-handle-set-external-undisplayer'.
-This is only called in recent versions of Gnus. The MIME handles are stored
-in data structures corresponding to MH-E folder buffer FOLDER instead of in
-Gnus (as in the original). The MIME part, HANDLE is associated with the
-undisplayer FUNCTION."
+
+This is only called in recent versions of Gnus. The MIME handles
+are stored in data structures corresponding to MH-E folder buffer
+FOLDER instead of in Gnus (as in the original). The MIME part,
+HANDLE is associated with the undisplayer FUNCTION."
   (if (mm-keep-viewer-alive-p handle)
       (let ((new-handle (copy-sequence handle)))
         (mm-handle-set-undisplayer new-handle function)
@@ -716,7 +738,8 @@
 ;;;###mh-autoload
 (defun mh-add-missing-mime-version-header ()
   "Some mail programs don't put a MIME-Version header.
-I have seen this only in spam, so maybe we shouldn't fix this ;-)"
+I have seen this only in spam, so maybe we shouldn't fix
+this ;-)"
   (save-excursion
     (goto-char (point-min))
     (re-search-forward "\n\n" nil t)
@@ -729,7 +752,8 @@
 
 (defun mh-small-show-buffer-p ()
   "Check if show buffer is small.
-This is used to decide if smileys and graphical emphasis will be displayed."
+This is used to decide if smileys and graphical emphasis will be
+displayed."
   (let ((max nil))
     (when (and (boundp 'font-lock-maximum-size) font-lock-maximum-size)
       (cond ((numberp font-lock-maximum-size)
@@ -803,12 +827,13 @@
 (defun mh-mime-save-parts (prompt)
   "Save attachments.
 
-You can save all of the attachments at once with this command. The attachments
-are saved in the directory specified by the option
-`mh-mime-save-parts-default-directory' unless you use a prefix argument PROMPT
-in which case you are prompted for the directory. These directories may be
-superseded by MH profile components, since this function calls on
-\"mhstore\" (\"mhn\") to do the work."
+You can save all of the attachments at once with this command.
+The attachments are saved in the directory specified by the
+option `mh-mime-save-parts-default-directory' unless you use a
+prefix argument PROMPT in which case you are prompted for the
+directory. These directories may be superseded by MH profile
+components, since this function calls on \"mhstore\" (\"mhn\") to
+do the work."
   (interactive "P")
   (let ((msg (if (eq major-mode 'mh-show-mode)
                  (mh-show-buffer-message-number)
@@ -900,9 +925,9 @@
 ;;;###mh-autoload
 (defun mh-mime-display (&optional pre-dissected-handles)
   "Display (and possibly decode) MIME handles.
-Optional argument, PRE-DISSECTED-HANDLES is a list of MIME handles. If
-present they are displayed otherwise the buffer is parsed and then
-displayed."
+Optional argument, PRE-DISSECTED-HANDLES is a list of MIME
+handles. If present they are displayed otherwise the buffer is
+parsed and then displayed."
   (let ((handles ())
         (folder mh-show-folder-buffer)
         (raw-message-data (buffer-string)))
@@ -974,8 +999,8 @@
 
 (defun mh-mime-maybe-display-alternatives (alternatives)
   "Show buttons for ALTERNATIVES.
-If `mh-mime-display-alternatives-flag' is non-nil then display buttons for
-alternative parts that are usually suppressed."
+If `mh-mime-display-alternatives-flag' is non-nil then display
+buttons for alternative parts that are usually suppressed."
   (when (and mh-display-buttons-for-alternatives-flag alternatives)
     (insert "\n----------------------------------------------------\n")
     (insert "Alternatives:\n")
@@ -990,9 +1015,9 @@
 
 (defun mh-mime-part-index (handle)
   "Generate the button number for MIME part, HANDLE.
-Notice that a hash table is used to display the same number when buttons need
-to be displayed multiple times (for instance when nested messages are
-opened)."
+Notice that a hash table is used to display the same number when
+buttons need to be displayed multiple times (for instance when
+nested messages are opened)."
   (or (gethash handle (mh-mime-part-index-hash (mh-buffer-data)))
       (setf (gethash handle (mh-mime-part-index-hash (mh-buffer-data)))
             (incf (mh-mime-parts-count (mh-buffer-data))))))
@@ -1075,8 +1100,8 @@
 
 (defun mh-signature-highlight (&optional handle)
   "Highlight message signature in HANDLE.
-The optional argument, HANDLE is a MIME handle if the function is being used
-to highlight the signature in a MIME part."
+The optional argument, HANDLE is a MIME handle if the function is
+being used to highlight the signature in a MIME part."
   (let ((regexp
          (cond ((not handle) "^-- $")
                ((not (and (equal (mm-handle-media-supertype handle) "text")
@@ -1101,8 +1126,8 @@
 
 (defun mh-insert-mime-button (handle index displayed)
   "Insert MIME button for HANDLE.
-INDEX is the part number that will be DISPLAYED. It is also used by commands
-like \"K v\" which operate on individual MIME parts."
+INDEX is the part number that will be DISPLAYED. It is also used
+by commands like \"K v\" which operate on individual MIME parts."
   ;; The button could be displayed by a previous decode. In that case
   ;; undisplay it if we need a hidden button.
   (when (and (mm-handle-displayed-p handle) (not displayed))
@@ -1214,8 +1239,8 @@
 (defun mh-press-button ()
   "View contents of button.
 
-This command is a toggle so if you use it again on the same attachment, the
-attachment is hidden."
+This command is a toggle so if you use it again on the same
+attachment, the attachment is hidden."
   (interactive)
   (let ((mm-inline-media-tests mh-mm-inline-media-tests)
         (data (get-text-property (point) 'mh-data))
@@ -1233,9 +1258,10 @@
 ;;;###mh-autoload
 (defun mh-push-button (event)
   "Click MIME button for EVENT.
-If the MIME part is visible then it is removed. Otherwise the part is
-displayed. This function is called when the mouse is used to click the MIME
-button."
+
+If the MIME part is visible then it is removed. Otherwise the
+part is displayed. This function is called when the mouse is used
+to click the MIME button."
   (interactive "e")
   (mh-do-at-event-location event
     (let ((folder mh-show-folder-buffer)
@@ -1289,21 +1315,24 @@
 (defun mh-display-with-external-viewer (part-index)
   "View attachment externally.
 
-If Emacs does not know how to view an attachment, you could save it into a
-file and then run some program to open it. It is easier, however, to launch
-the program directly from MH-E with this command. While you'll most likely use
-this to view spreadsheets and documents, it is also useful to use your browser
-to view HTML attachments with higher fidelity than what Emacs can provide.
+If Emacs does not know how to view an attachment, you could save
+it into a file and then run some program to open it. It is
+easier, however, to launch the program directly from MH-E with
+this command. While you'll most likely use this to view
+spreadsheets and documents, it is also useful to use your browser
+to view HTML attachments with higher fidelity than what Emacs can
+provide.
 
-This command displays the attachment associated with the button under the
-cursor. If the cursor is not located over a button, then the cursor first
-moves to the next button, wrapping to the beginning of the message if
-necessary. You can provide a numeric prefix argument PART-INDEX to view the
-attachment labeled with that number.
+This command displays the attachment associated with the button
+under the cursor. If the cursor is not located over a button,
+then the cursor first moves to the next button, wrapping to the
+beginning of the message if necessary. You can provide a numeric
+prefix argument PART-INDEX to view the attachment labeled with
+that number.
 
-This command tries to provide a reasonable default for the viewer by calling
-the Emacs function `mailcap-mime-info'. This function usually reads the file
-\"/etc/mailcap\"."
+This command tries to provide a reasonable default for the viewer
+by calling the Emacs function `mailcap-mime-info'. This function
+usually reads the file \"/etc/mailcap\"."
   (interactive "P")
   (when (consp part-index) (setq part-index (car part-index)))
   (mh-folder-mime-action
@@ -1458,8 +1487,8 @@
 
 (defun mh-mm-inline-message (handle)
   "Display message, HANDLE.
-The function decodes the message and displays it. It avoids decoding the same
-message multiple times."
+The function decodes the message and displays it. It avoids
+decoding the same message multiple times."
   (let ((b (point))
         (clean-message-header mh-clean-message-header-flag)
         (invisible-headers mh-invisible-header-fields-compiled)
--- a/lisp/mh-e/mh-pick.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-pick.el	Fri Dec 23 07:40:40 2005 +0000
@@ -55,12 +55,12 @@
   "Search FOLDER for messages matching a pattern.
 
 With this command, you can search a folder for messages to or from a
-particular person or about a particular subject. In fact, you can also search
-for messages containing selected strings in any arbitrary header field or any
-string found within the messages.
+particular person or about a particular subject. In fact, you can also
+search for messages containing selected strings in any arbitrary
+header field or any string found within the messages.
 
-You are first prompted for the name of the folder to search and then placed in
-the following buffer in MH-Pick mode:
+You are first prompted for the name of the folder to search and then
+placed in the following buffer in MH-Pick mode:
 
      From:
      To:
@@ -69,24 +69,26 @@
      Subject:
      --------
 
-Edit this template by entering your search criteria in an appropriate header
-field that is already there, or create a new field yourself. If the string
-you're looking for could be anywhere in a message, then place the string
-underneath the row of dashes. The \\[mh-search-folder] command uses the MH
-command \"pick\" to do the real work.
+Edit this template by entering your search criteria in an appropriate
+header field that is already there, or create a new field yourself. If
+the string you're looking for could be anywhere in a message, then
+place the string underneath the row of dashes. The
+\\[mh-search-folder] command uses the MH command \"pick\" to do the
+real work.
 
-There are no semantics associated with the search criteria--they are simply
-treated as strings. Case is ignored when all lowercase is used, and regular
-expressions (a la \"ed\") are available. It is all right to specify several
-search criteria. What happens then is that a logical _and_ of the various
-fields is performed. If you prefer a logical _or_ operation, run
-\\[mh-search-folder] multiple times.
+There are no semantics associated with the search criteria--they are
+simply treated as strings. Case is ignored when all lowercase is used,
+and regular expressions (a la \"ed\") are available. It is all right
+to specify several search criteria. What happens then is that a
+logical _and_ of the various fields is performed. If you prefer a
+logical _or_ operation, run \\[mh-search-folder] multiple times.
 
-As an example, let's say that we want to find messages from Ginnean about
-horseback riding in the Kosciusko National Park (Australia) during January,
-1994. Normally we would start with a broad search and narrow it down if
-necessary to produce a manageable amount of data, but we'll cut to the chase
-and create a fairly restrictive set of criteria as follows:
+As an example, let's say that we want to find messages from Ginnean
+about horseback riding in the Kosciusko National Park (Australia)
+during January, 1994. Normally we would start with a broad search and
+narrow it down if necessary to produce a manageable amount of data,
+but we'll cut to the chase and create a fairly restrictive set of
+criteria as follows:
 
      From: ginnean
      To:
@@ -98,29 +100,32 @@
 As with MH-Letter mode, MH-Pick provides commands like
 \\<mh-pick-mode-map>\\[mh-to-field] to help you fill in the blanks.
 
-To perform the search, type \\[mh-do-search]. The selected messages are placed
-in the \"search\" sequence, which you can use later in forwarding, printing,
-or narrowing your field of view. Subsequent searches are appended to the
-\"search\" sequence. If, however, you wish to start with a clean slate, first
-delete the \"search\" sequence.
-
-If you're searching in a folder that is already displayed in an MH-Folder
-buffer, only those messages contained in the buffer are used for the search.
-Therefore, if you want to search in all messages, first kill the folder's
-buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder
-with \\[mh-rescan-folder].
+To perform the search, type \\[mh-do-search]. The selected messages
+are placed in the \"search\" sequence, which you can use later in
+forwarding, printing, or narrowing your field of view. Subsequent
+searches are appended to the \"search\" sequence. If, however, you
+wish to start with a clean slate, first delete the \"search\"
+sequence.
 
-If you find that you do the same thing over and over when editing the search
-template, you may wish to bind some shortcuts to keys. This can be done with
-the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is
-run on a new pattern.
+If you're searching in a folder that is already displayed in an
+MH-Folder buffer, only those messages contained in the buffer are used
+for the search. Therefore, if you want to search in all messages,
+first kill the folder's buffer with
+\\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder with
+\\[mh-rescan-folder].
 
-If you have run the \\[mh-index-search] command, but change your mind while
-entering the search criteria and actually want to run a regular search, then
-you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command.
+If you find that you do the same thing over and over when editing the
+search template, you may wish to bind some shortcuts to keys. This can
+be done with the variable `mh-pick-mode-hook', which is called when
+\\[mh-search-folder] is run on a new pattern.
 
-In a program, argument WINDOW-CONFIG is the current window configuration and
-is used when the search folder is dismissed."
+If you have run the \\[mh-index-search] command, but change your mind
+while entering the search criteria and actually want to run a regular
+search, then you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search]
+command.
+
+In a program, argument WINDOW-CONFIG is the current window
+configuration and is used when the search folder is dismissed."
   (interactive (list (mh-prompt-for-folder "Search" mh-current-folder nil nil t)
                      (current-window-configuration)))
   (let ((pick-folder (if (equal folder "+") mh-current-folder folder)))
@@ -182,26 +187,26 @@
      "where <field> is the first letter of the desired field."))
   "Key binding cheat sheet.
 
-This is an associative array which is used to show the most common commands.
-The key is a prefix char. The value is one or more strings which are
-concatenated together and displayed in the minibuffer if ? is pressed after
-the prefix character. The special key nil is used to display the
-non-prefixed commands.
+This is an associative array which is used to show the most common
+commands. The key is a prefix char. The value is one or more strings
+which are concatenated together and displayed in the minibuffer if ?
+is pressed after the prefix character. The special key nil is used to
+display the non-prefixed commands.
 
-The substitutions described in `substitute-command-keys' are performed as
-well.")
+The substitutions described in `substitute-command-keys' are performed
+as well.")
 
 (put 'mh-pick-mode 'mode-class 'special)
 
 (define-derived-mode mh-pick-mode fundamental-mode "MH-Pick"
   "Mode for creating search templates in MH-E.\\<mh-pick-mode-map>
 
-After each field name, enter the pattern to search for.  If a field's
-value does not matter for the search, leave it empty.  To search the
+After each field name, enter the pattern to search for. If a field's
+value does not matter for the search, leave it empty. To search the
 entire message, supply the pattern in the \"body\" of the template.
-Each non-empty field must be matched for a message to be selected.
-To effect a logical \"or\", use \\[mh-search-folder] multiple times.
-When you have finished, type  \\[mh-pick-do-search]  to do the search.
+Each non-empty field must be matched for a message to be selected. To
+effect a logical \"or\", use \\[mh-search-folder] multiple times. When
+you have finished, type \\[mh-pick-do-search] to do the search.
 
 The hook `mh-pick-mode-hook' is called upon entry to this mode.
 
@@ -216,8 +221,10 @@
 ;;;###mh-autoload
 (defun mh-pick-do-search ()
   "Find messages that match the qualifications in the current pattern buffer.
-Messages are searched for in the folder named in `mh-searching-folder'.
-Add the messages found to the sequence named `search'."
+
+Messages are searched for in the folder named in
+`mh-searching-folder'. Add the messages found to the sequence
+named `search'."
   (interactive)
   (let ((pattern-list (mh-pick-parse-search-buffer))
         (folder mh-searching-folder)
@@ -251,9 +258,11 @@
 ;;;###mh-autoload
 (defun mh-do-search ()
   "Use the default searching function.
-If \\[mh-search-folder] was used to create the search pattern then pick is used
-to search the folder. Otherwise if \\[mh-index-search] was used then the
-indexing program specified in `mh-index-program' is used."
+
+If \\[mh-search-folder] was used to create the search pattern
+then pick is used to search the folder. Otherwise if
+\\[mh-index-search] was used then the indexing program specified
+in `mh-index-program' is used."
   (interactive)
   (if (symbolp mh-searching-function)
       (funcall mh-searching-function)
@@ -261,8 +270,8 @@
 
 (defun mh-seq-from-command (folder seq command)
   "In FOLDER, make a sequence named SEQ by executing COMMAND.
-COMMAND is a list.  The first element is a program name
-and the subsequent elements are its arguments, all strings."
+COMMAND is a list. The first element is a program name and the
+subsequent elements are its arguments, all strings."
   (let ((msg)
         (msgs ())
         (case-fold-search t))
@@ -279,9 +288,9 @@
 
 (defun mh-pick-parse-search-buffer ()
   "Parse the search buffer contents.
-The function returns a alist. The car of each element is either the header name
-to search in or nil to search the whole message. The cdr of the element is the
-pattern to search."
+The function returns a alist. The car of each element is either
+the header name to search in or nil to search the whole message.
+The cdr of the element is the pattern to search."
   (save-excursion
     (let ((pattern-list ())
           (in-body-flag nil)
--- a/lisp/mh-e/mh-print.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-print.el	Fri Dec 23 07:40:40 2005 +0000
@@ -47,8 +47,8 @@
    black-white - Print colors on black/white printer.
 		 See also `ps-black-white-faces'.
 
-Any other value is treated as t. This variable is initialized from
-`ps-print-color-p'.")
+Any other value is treated as t. This variable is initialized
+from `ps-print-color-p'.")
 
 (defvar mh-ps-print-func 'ps-spool-buffer-with-faces
   "Function to use to spool a buffer.
@@ -108,20 +108,22 @@
 (defun mh-ps-print-msg (range)
   "Print RANGE\\<mh-folder-mode-map>.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how RANGE is
+read in interactive use.
 
-This command will print inline text attachments but will not decrypt messages.
-However, when a message is displayed in an MH-Show buffer, then that buffer is
-used verbatim for printing with the caveat that only text attachments, if
-opened inline, are printed. Therefore, encrypted messages can be printed by
-showing and decrypting them first.
+This command will print inline text attachments but will not decrypt
+messages. However, when a message is displayed in an MH-Show buffer,
+then that buffer is used verbatim for printing with the caveat that
+only text attachments, if opened inline, are printed. Therefore,
+encrypted messages can be printed by showing and decrypting them
+first.
 
-MH-E uses the \"ps-print\" package to do the printing, so you can customize
-the printing further by going to the `ps-print' customization group. This
-command does not use the options `mh-lpr-command-format' or
-`mh-print-background-flag'. See also the commands \\[mh-ps-print-toggle-color]
-and \\[mh-ps-print-toggle-faces]."
+MH-E uses the \"ps-print\" package to do the printing, so you can
+customize the printing further by going to the `ps-print'
+customization group. This command does not use the options
+`mh-lpr-command-format' or `mh-print-background-flag'. See also the
+commands \\[mh-ps-print-toggle-color] and
+\\[mh-ps-print-toggle-faces]."
   (interactive (list (mh-interactive-range "Print")))
   (mh-ps-print-range range nil))
 
@@ -129,20 +131,22 @@
 (defun mh-ps-print-msg-file (range file)
   "Print RANGE to FILE\\<mh-folder-mode-map>.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how RANGE is
+read in interactive use.
 
-This command will print inline text attachments but will not decrypt messages.
-However, when a message is displayed in an MH-Show buffer, then that buffer is
-used verbatim for printing with the caveat that only text attachments, if
-opened inline, are printed. Therefore, encrypted messages can be printed by
-showing and decrypting them first.
+This command will print inline text attachments but will not decrypt
+messages. However, when a message is displayed in an MH-Show buffer,
+then that buffer is used verbatim for printing with the caveat that
+only text attachments, if opened inline, are printed. Therefore,
+encrypted messages can be printed by showing and decrypting them
+first.
 
-MH-E uses the \"ps-print\" package to do the printing, so you can customize
-the printing further by going to the `ps-print' customization group. This
-command does not use the options `mh-lpr-command-format' or
-`mh-print-background-flag'. See also the commands \\[mh-ps-print-toggle-color]
-and \\[mh-ps-print-toggle-faces]."
+MH-E uses the \"ps-print\" package to do the printing, so you can
+customize the printing further by going to the `ps-print'
+customization group. This command does not use the options
+`mh-lpr-command-format' or `mh-print-background-flag'. See also the
+commands \\[mh-ps-print-toggle-color] and
+\\[mh-ps-print-toggle-faces]."
   (interactive (list (mh-interactive-range "Print") (mh-ps-print-preprint 1)))
   (mh-ps-print-range range file))
 
@@ -150,8 +154,8 @@
 (defun mh-ps-print-toggle-faces ()
  "Toggle whether printing is done with faces or not.
 
-When faces are enabled, the printed message will look very similar to the
-message in the MH-Show buffer."
+When faces are enabled, the printed message will look very
+similar to the message in the MH-Show buffer."
  (interactive)
  (if (eq mh-ps-print-func 'ps-spool-buffer-with-faces)
      (progn
@@ -164,13 +168,13 @@
 (defun mh-ps-print-toggle-color ()
   "Toggle whether color is used in printing messages.
 
-Colors are emulated on black-and-white printers with shades of gray. This
-might produce illegible output, even if your screen colors only use shades of
-gray. If this is the case, try using this command to toggle between color, no
-color, and a black and white representation of the colors and see which works
-best. You change this setting permanently by customizing the option
+Colors are emulated on black-and-white printers with shades of
+gray. This might produce illegible output, even if your screen
+colors only use shades of gray. If this is the case, try using
+this command to toggle between color, no color, and a black and
+white representation of the colors and see which works best. You
+change this setting permanently by customizing the option
 `ps-print-color-p'."
-
  (interactive)
  (if (eq mh-ps-print-color-option nil)
      (progn
@@ -188,11 +192,12 @@
 (defun mh-print-msg (range)
   "Print RANGE the old fashioned way\\<mh-folder-mode-map>.
 
-The message is formatted with \"mhl\" (see option `mh-mhl-format-file') and
-printed with the \"lpr\" command (see option `mh-lpr-command-format').
+The message is formatted with \"mhl\" (see option
+`mh-mhl-format-file') and printed with the \"lpr\" command (see
+option `mh-lpr-command-format').
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use.
 
 Consider using \\[mh-ps-print-msg] instead."
   (interactive (list (mh-interactive-range "Print")))
--- a/lisp/mh-e/mh-seq.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-seq.el	Fri Dec 23 07:40:40 2005 +0000
@@ -122,16 +122,18 @@
   "Map of message index to various parts of the scan line.")
 (defvar mh-thread-scan-line-map-stack nil
   "Old map of message index to various parts of the scan line.
-This is the original map that is stored when the folder is narrowed.")
+This is the original map that is stored when the folder is
+narrowed.")
 (defvar mh-thread-subject-container-hash nil
   "Hashtable used to group messages by subject.")
 (defvar mh-thread-duplicates nil
   "Hashtable used to associate messages with the same message identifier.")
 (defvar mh-thread-history ()
   "Variable to remember the transformations to the thread tree.
-When new messages are added, these transformations are rewound, then the
-links are added from the newly seen messages. Finally the transformations are
-redone to get the new thread tree. This makes incremental threading easier.")
+When new messages are added, these transformations are rewound,
+then the links are added from the newly seen messages. Finally
+the transformations are redone to get the new thread tree. This
+makes incremental threading easier.")
 (defvar mh-thread-body-width nil
   "Width of scan substring that contains subject and body of message.")
 
@@ -150,9 +152,10 @@
 (defun mh-delete-seq (sequence)
   "Delete SEQUENCE.
 
-You are prompted for the sequence to delete. Note that this deletes only the
-sequence, not the messages in the sequence. If you want to delete the
-messages, use \"\\[universal-argument] \\[mh-delete-msg]\"."
+You are prompted for the sequence to delete. Note that this
+deletes only the sequence, not the messages in the sequence. If
+you want to delete the messages, use \"\\[universal-argument]
+\\[mh-delete-msg]\"."
   (interactive (list (mh-read-seq-default "Delete" t)))
   (let ((msg-list (mh-seq-to-msgs sequence))
         (internal-flag (mh-internal-seq sequence))
@@ -216,8 +219,8 @@
 ;;;###mh-autoload
 (defun mh-msg-is-in-seq (message)
   "Display the sequences in which the current message appears.
-Use a prefix argument to display the sequences in which another MESSAGE
-appears."
+Use a prefix argument to display the sequences in which another
+MESSAGE appears."
   (interactive "P")
   (if (not message)
       (setq message (mh-get-msg-num t)))
@@ -243,11 +246,13 @@
 (defun mh-narrow-to-seq (sequence)
   "Restrict display to messages in SEQUENCE.
 
-You are prompted for the name of the sequence. What this command does is show
-only those messages that are in the selected sequence in the MH-Folder buffer.
-In addition, it limits further MH-E searches to just those messages.
+You are prompted for the name of the sequence. What this command
+does is show only those messages that are in the selected
+sequence in the MH-Folder buffer. In addition, it limits further
+MH-E searches to just those messages.
 
-When you want to widen the view to all your messages again, use \\[mh-widen]."
+When you want to widen the view to all your messages again, use
+\\[mh-widen]."
   (interactive (list (mh-read-seq "Narrow to" t)))
   (with-mh-folder-updating (t)
     (cond ((mh-seq-to-msgs sequence)
@@ -283,14 +288,17 @@
 (defun mh-put-msg-in-seq (range sequence)
   "Add RANGE to SEQUENCE\\<mh-folder-mode-map>.
 
-To place a message in a sequence, use this command to do it manually, or use
-the MH command \"pick\" or the MH-E version of \"pick\", \\[mh-search-folder],
-which create a sequence automatically.
+To place a message in a sequence, use this command to do it
+manually, or use the MH command \"pick\" or the MH-E version of
+\"pick\", \\[mh-search-folder], which create a sequence
+automatically.
 
-Give this command a RANGE and you can add all the messages in a sequence to
-another sequence (for example, \"\\[universal-argument] \\[mh-put-msg-in-seq]
-SourceSequence RET DestSequence RET\"). Check the documentation of
-`mh-interactive-range' to see how RANGE is read in interactive use."
+Give this command a RANGE and you can add all the messages in a
+sequence to another sequence (for example,
+\"\\[universal-argument] \\[mh-put-msg-in-seq] SourceSequence RET
+DestSequence RET\"). Check the documentation of
+`mh-interactive-range' to see how RANGE is read in interactive
+use."
   (interactive (list (mh-interactive-range "Add messages from")
                      (mh-read-seq-default "Add to" nil)))
   (unless (mh-valid-seq-p sequence)
@@ -321,7 +329,8 @@
 ;;;###mh-autoload
 (defun mh-widen (&optional all-flag)
   "Remove last restriction.
-If optional prefix argument ALL-FLAG is non-nil, remove all limits."
+If optional prefix argument ALL-FLAG is non-nil, remove all
+limits."
   (interactive "P")
   (let ((msg (mh-get-msg-num nil)))
     (when mh-folder-view-stack
@@ -368,8 +377,8 @@
 ;;;###mh-autoload
 (defun mh-notate-deleted-and-refiled ()
   "Notate messages marked for deletion or refiling.
-Messages to be deleted are given by `mh-delete-list' while messages to be
-refiled are present in `mh-refile-list'."
+Messages to be deleted are given by `mh-delete-list' while
+messages to be refiled are present in `mh-refile-list'."
   (let ((refiled-hash (make-hash-table))
         (deleted-hash (make-hash-table)))
     (dolist (msg mh-delete-list)
@@ -395,17 +404,18 @@
 ;;;###mh-autoload
 (defun mh-read-seq-default (prompt not-empty)
   "Read and return sequence name with default narrowed or previous sequence.
-PROMPT is the prompt to use when reading. If NOT-EMPTY is non-nil then a
-non-empty sequence is read."
+PROMPT is the prompt to use when reading. If NOT-EMPTY is non-nil
+then a non-empty sequence is read."
   (mh-read-seq prompt not-empty
                (or mh-last-seq-used
                    (car (mh-seq-containing-msg (mh-get-msg-num nil) nil)))))
 
 (defun mh-read-seq (prompt not-empty &optional default)
   "Read and return a sequence name.
-Prompt with PROMPT, raise an error if the sequence is empty and the NOT-EMPTY
-flag is non-nil, and supply an optional DEFAULT sequence. A reply of '%'
-defaults to the first sequence containing the current message."
+Prompt with PROMPT, raise an error if the sequence is empty and
+the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT
+sequence. A reply of '%' defaults to the first sequence
+containing the current message."
   (let* ((input (completing-read (format "%s %s %s" prompt "sequence:"
                                          (if default
                                              (format "[%s] " default)
@@ -459,35 +469,40 @@
                              expand-flag ask-flag number-as-range-flag)
   "Read a message range with PROMPT.
 
-If FOLDER is non-nil then a range is read from that folder, otherwise use
-`mh-current-folder'.
+If FOLDER is non-nil then a range is read from that folder, otherwise
+use `mh-current-folder'.
 
-If DEFAULT is a string then use that as default range to return. If DEFAULT is
-nil then ask user with default answer a range based on the sequences that seem
-relevant. Finally if DEFAULT is t, try to avoid prompting the user. Unseen
-messages, if present, are returned. If the folder has fewer than
-`mh-large-folder' messages then \"all\" messages are returned. Finally as a
-last resort prompt the user.
+If DEFAULT is a string then use that as default range to return. If
+DEFAULT is nil then ask user with default answer a range based on the
+sequences that seem relevant. Finally if DEFAULT is t, try to avoid
+prompting the user. Unseen messages, if present, are returned. If the
+folder has fewer than `mh-large-folder' messages then \"all\" messages
+are returned. Finally as a last resort prompt the user.
 
-If EXPAND-FLAG is non-nil then a list of message numbers corresponding to the
-input is returned. If this list is empty then an error is raised. If
-EXPAND-FLAG is nil just return the input string. In this case we don't check
-if the range is empty.
+If EXPAND-FLAG is non-nil then a list of message numbers corresponding
+to the input is returned. If this list is empty then an error is
+raised. If EXPAND-FLAG is nil just return the input string. In this
+case we don't check if the range is empty.
 
 If ASK-FLAG is non-nil, then the user is always queried for a range of
-messages. If ASK-FLAG is nil, then the function checks if the unseen sequence
-is non-empty. If that is the case, `mh-unseen-seq', or the list of messages in
-it depending on the value of EXPAND, is returned. Otherwise if the folder has
-fewer than `mh-large-folder' messages then the list of messages corresponding
-to \"all\" is returned. If neither of the above holds then as a last resort
-the user is queried for a range of messages.
+messages. If ASK-FLAG is nil, then the function checks if the unseen
+sequence is non-empty. If that is the case, `mh-unseen-seq', or the
+list of messages in it depending on the value of EXPAND, is returned.
+Otherwise if the folder has fewer than `mh-large-folder' messages then
+the list of messages corresponding to \"all\" is returned. If neither
+of the above holds then as a last resort the user is queried for a
+range of messages.
 
-If NUMBER-AS-RANGE-FLAG is non-nil, then if a number, N is read as input, it
-is interpreted as the range \"last:N\".
+If NUMBER-AS-RANGE-FLAG is non-nil, then if a number, N is read as
+input, it is interpreted as the range \"last:N\".
 
-This function replaces the existing function `mh-read-msg-range'. Calls to:
+This function replaces the existing function `mh-read-msg-range'.
+Calls to:
+
   (mh-read-msg-range folder flag)
+
 should be replaced with:
+
   (mh-read-range \"Suitable prompt\" folder t nil flag
                  mh-interpret-number-as-range-flag)"
   (setq default (or default mh-last-seq-used
@@ -565,8 +580,9 @@
 ;;;###mh-autoload
 (defun mh-notate-cur ()
   "Mark the MH sequence cur.
-In addition to notating the current message with `mh-note-cur' the function
-uses `overlay-arrow-position' to put a marker in the fringe."
+In addition to notating the current message with `mh-note-cur'
+the function uses `overlay-arrow-position' to put a marker in the
+fringe."
   (let ((cur (car (mh-seq-to-msgs 'cur))))
     (when (and cur (mh-goto-msg cur t t))
       (beginning-of-line)
@@ -617,8 +633,9 @@
 ;;;###mh-autoload
 (defmacro mh-iterate-on-messages-in-region (var begin end &rest body)
   "Iterate over region.
-VAR is bound to the message on the current line as we loop starting from BEGIN
-till END. In each step BODY is executed.
+
+VAR is bound to the message on the current line as we loop
+starting from BEGIN till END. In each step BODY is executed.
 
 If VAR is nil then the loop is executed without any binding."
   (unless (symbolp var)
@@ -639,13 +656,14 @@
 (defmacro mh-iterate-on-range (var range &rest body)
   "Iterate an operation over a region or sequence.
 
-VAR is bound to each message in turn in a loop over RANGE, which can be a
-message number, a list of message numbers, a sequence, a region in a cons
-cell, or a MH range (something like last:20) in a string. In each iteration,
-BODY is executed.
+VAR is bound to each message in turn in a loop over RANGE, which
+can be a message number, a list of message numbers, a sequence, a
+region in a cons cell, or a MH range (something like last:20) in
+a string. In each iteration, BODY is executed.
 
-The parameter RANGE is usually created with `mh-interactive-range'
-in order to provide a uniform interface to MH-E functions."
+The parameter RANGE is usually created with
+`mh-interactive-range' in order to provide a uniform interface to
+MH-E functions."
   (unless (symbolp var)
     (error "Can not bind the non-symbol %s" var))
   (let ((binding-needed-flag var)
@@ -680,8 +698,8 @@
 (defun mh-range-to-msg-list (range)
   "Return a list of messages for RANGE.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use."
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use."
   (let (msg-list)
     (mh-iterate-on-range msg range
       (push msg msg-list))
@@ -692,21 +710,21 @@
   "Return interactive specification for message, sequence, range or region.
 By convention, the name of this argument is RANGE.
 
-If variable `transient-mark-mode' is non-nil and the mark is active, then this
-function returns a cons-cell of the region.
+If variable `transient-mark-mode' is non-nil and the mark is active,
+then this function returns a cons-cell of the region.
 
-If optional prefix argument is provided, then prompt for message range with
-RANGE-PROMPT. A list of messages in that range is returned.
+If optional prefix argument is provided, then prompt for message range
+with RANGE-PROMPT. A list of messages in that range is returned.
 
-If a MH range is given, say something like last:20, then a list containing
-the messages in that range is returned.
+If a MH range is given, say something like last:20, then a list
+containing the messages in that range is returned.
 
 If DEFAULT non-nil then it is returned.
 
 Otherwise, the message number at point is returned.
 
-This function is usually used with `mh-iterate-on-range' in order to provide
-a uniform interface to MH-E functions."
+This function is usually used with `mh-iterate-on-range' in order to
+provide a uniform interface to MH-E functions."
   (cond ((mh-mark-active-p t) (cons (region-beginning) (region-end)))
         (current-prefix-arg (mh-read-range range-prompt nil nil t t))
         (default default)
@@ -720,13 +738,17 @@
 ;;  41 for the max size of the subject part. Avoiding this would be desirable.
 (defun mh-subject-to-sequence (all)
   "Put all following messages with same subject in sequence 'subject.
-If arg ALL is t, move to beginning of folder buffer to collect all messages.
+If arg ALL is t, move to beginning of folder buffer to collect all
+messages.
 If arg ALL is nil, collect only messages fron current one on forward.
 
 Return number of messages put in the sequence:
 
  nil -> there was no subject line.
- 0   -> there were no later messages with the same subject (sequence not made)
+
+ 0   -> there were no later messages with the same
+        subject (sequence not made)
+
  >1  -> the total number of messages including current one."
   (if (memq 'unthread mh-view-ops)
       (mh-subject-to-sequence-threaded all)
@@ -734,14 +756,17 @@
 
 (defun mh-subject-to-sequence-unthreaded (all)
   "Put all following messages with same subject in sequence 'subject.
-This function only works with an unthreaded folder. If arg ALL is t, move to
-beginning of folder buffer to collect all messages. If arg ALL is nil, collect
-only messages fron current one on forward.
+
+This function only works with an unthreaded folder. If arg ALL is
+t, move to beginning of folder buffer to collect all messages. If
+arg ALL is nil, collect only messages fron current one on
+forward.
 
 Return number of messages put in the sequence:
 
  nil -> there was no subject line.
- 0   -> there were no later messages with the same subject (sequence not made)
+ 0   -> there were no later messages with the same
+        subject (sequence not made)
  >1  -> the total number of messages including current one."
   (if (not (eq major-mode 'mh-folder-mode))
       (error "Not in a folder buffer"))
@@ -782,12 +807,14 @@
 
 (defun mh-subject-to-sequence-threaded (all)
   "Put all messages with the same subject in the 'subject sequence.
-This function works when the folder is threaded. In this situation the subject
-could get truncated and so the normal matching doesn't work.
 
-The parameter ALL is non-nil then all the messages in the buffer are
-considered, otherwise only the messages after the current one are taken into
-account."
+This function works when the folder is threaded. In this
+situation the subject could get truncated and so the normal
+matching doesn't work.
+
+The parameter ALL is non-nil then all the messages in the buffer
+are considered, otherwise only the messages after the current one
+are taken into account."
   (let* ((cur (mh-get-msg-num nil))
          (subject (mh-thread-find-msg-subject cur))
          region msgs)
@@ -824,9 +851,9 @@
 
 (defun mh-pick-args-list (s)
   "Form list by grouping elements in string S suitable for pick arguments.
-For example, the string \"-subject a b c -from Joe User <user@domain.com>\"
-is converted to (\"-subject\" \"a b c\" \"-from\"
-\"Joe User <user@domain.com>\""
+For example, the string \"-subject a b c -from Joe User
+<user@domain.com>\" is converted to (\"-subject\" \"a b c\"
+\"-from\" \"Joe User <user@domain.com>\""
   (let ((full-list (split-string s))
         current-arg collection arg-list)
     (while full-list
@@ -935,8 +962,8 @@
 (defun mh-narrow-to-range (range)
   "Limit to RANGE.
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use.
 
 Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
   (interactive (list (mh-interactive-range "Narrow to")))
@@ -949,10 +976,11 @@
 (defun mh-delete-subject ()
   "Delete messages with same subject\\<mh-folder-mode-map>.
 
-To delete messages faster, you can use this command to delete all the messages
-with the same subject as the current message. This command puts these messages
-in a sequence named \"subject\". You can undo this action by using \\[mh-undo]
-with a prefix argument and then specifying the \"subject\" sequence."
+To delete messages faster, you can use this command to delete all
+the messages with the same subject as the current message. This
+command puts these messages in a sequence named \"subject\". You
+can undo this action by using \\[mh-undo] with a prefix argument
+and then specifying the \"subject\" sequence."
   (interactive)
   (let ((count (mh-subject-to-sequence nil)))
     (cond
@@ -969,13 +997,14 @@
 (defun mh-delete-subject-or-thread ()
   "Delete messages with same subject or thread\\<mh-folder-mode-map>.
 
-To delete messages faster, you can use this command to delete all the messages
-with the same subject as the current message. This command puts these messages
-in a sequence named \"subject\". You can undo this action by using \\[mh-undo]
-with a prefix argument and then specifying the \"subject\" sequence.
+To delete messages faster, you can use this command to delete all
+the messages with the same subject as the current message. This
+command puts these messages in a sequence named \"subject\". You
+can undo this action by using \\[mh-undo] with a prefix argument
+and then specifying the \"subject\" sequence.
 
-However, if the buffer is displaying a threaded view of the folder then this
-command behaves like \\[mh-thread-delete]."
+However, if the buffer is displaying a threaded view of the
+folder then this command behaves like \\[mh-thread-delete]."
   (interactive)
   (if (memq 'unthread mh-view-ops)
       (mh-thread-delete)
@@ -1005,8 +1034,8 @@
 
 (defsubst mh-thread-id-container (id)
   "Given ID, return the corresponding container in `mh-thread-id-table'.
-If no container exists then a suitable container is created and the id-table
-is updated."
+If no container exists then a suitable container is created and
+the id-table is updated."
   (when (not id)
     (error "1"))
   (or (gethash id mh-thread-id-table)
@@ -1027,9 +1056,9 @@
 
 (defsubst mh-thread-add-link (parent child &optional at-end-p)
   "Add links so that PARENT becomes a parent of CHILD.
-Doesn't make any changes if CHILD is already an ancestor of PARENT. If
-optional argument AT-END-P is non-nil, the CHILD is added to the end of the
-children list of PARENT."
+Doesn't make any changes if CHILD is already an ancestor of
+PARENT. If optional argument AT-END-P is non-nil, the CHILD is
+added to the end of the children list of PARENT."
   (let ((parent-container (cond ((null parent) nil)
                                 ((mh-thread-container-p parent) parent)
                                 (t (mh-thread-id-container parent))))
@@ -1053,8 +1082,8 @@
 
 (defun mh-thread-ancestor-p (ancestor successor)
   "Return t if ANCESTOR is really an ancestor of SUCCESSOR and nil otherwise.
-In the limit, the function returns t if ANCESTOR and SUCCESSOR are the same
-containers."
+In the limit, the function returns t if ANCESTOR and SUCCESSOR
+are the same containers."
   (block nil
     (while successor
       (when (eq ancestor successor) (return t))
@@ -1063,7 +1092,8 @@
 
 (defsubst mh-thread-get-message-container (message)
   "Return container which has MESSAGE in it.
-If there is no container present then a new container is allocated."
+If there is no container present then a new container is
+allocated."
   (let* ((id (mh-message-id message))
          (container (gethash id mh-thread-id-table)))
     (cond (container (setf (mh-container-message container) message)
@@ -1073,8 +1103,8 @@
 
 (defsubst mh-thread-get-message (id subject-re-p subject refs)
   "Return appropriate message.
-Otherwise update message already present to have the proper ID, SUBJECT-RE-P,
-SUBJECT and REFS fields."
+Otherwise update message already present to have the proper ID,
+SUBJECT-RE-P, SUBJECT and REFS fields."
   (let* ((container (gethash id mh-thread-id-table))
          (message (if container (mh-container-message container) nil)))
     (cond (message
@@ -1103,9 +1133,10 @@
 
 (defsubst mh-thread-prune-subject (subject)
   "Prune leading Re:'s, Fwd:'s etc. and trailing (fwd)'s from SUBJECT.
-If the result after pruning is not the empty string then it is canonicalized
-so that subjects can be tested for equality with eq. This is done so that all
-the messages without a subject are not put into a single thread."
+If the result after pruning is not the empty string then it is
+canonicalized so that subjects can be tested for equality with
+eq. This is done so that all the messages without a subject are
+not put into a single thread."
   (let ((case-fold-search t)
         (subject-pruned-flag nil))
     ;; Prune subject leader
@@ -1128,7 +1159,8 @@
 
 (defun mh-thread-container-subject (container)
   "Return the subject of CONTAINER.
-If CONTAINER is empty return the subject info of one of its children."
+If CONTAINER is empty return the subject info of one of its
+children."
   (cond ((and (mh-container-message container)
               (mh-message-id (mh-container-message container)))
          (mh-message-subject (mh-container-message container)))
@@ -1233,8 +1265,8 @@
 
 (defsubst mh-thread-group-by-subject (roots)
   "Group the set of message containers, ROOTS based on subject.
-Bug: Check for and make sure that something without Re: is made the parent in
-preference to something that has it."
+Bug: Check for and make sure that something without Re: is made
+the parent in preference to something that has it."
   (clrhash mh-thread-subject-container-hash)
   (let ((results ()))
     (dolist (root roots)
@@ -1251,9 +1283,9 @@
 
 (defun mh-thread-process-in-reply-to (reply-to-header)
   "Extract message id's from REPLY-TO-HEADER.
-Ideally this should have some regexp which will try to guess if a string
-between < and > is a message id and not an email address. For now it will
-take the last string inside angles."
+Ideally this should have some regexp which will try to guess if a
+string between < and > is a message id and not an email address.
+For now it will take the last string inside angles."
   (let ((end (mh-search-from-end ?> reply-to-header)))
     (when (numberp end)
       (let ((begin (mh-search-from-end ?< (substring reply-to-header 0 end))))
@@ -1279,9 +1311,9 @@
 
 (defsubst mh-thread-update-id-index-maps (id index)
   "Message with id, ID is the message in INDEX.
-The function also checks for duplicate messages (that is multiple messages
-with the same ID). These messages are put in the `mh-thread-duplicates' hash
-table."
+The function also checks for duplicate messages (that is multiple
+messages with the same ID). These messages are put in the
+`mh-thread-duplicates' hash table."
   (let ((old-index (gethash id mh-thread-id-index-map)))
     (when old-index (push old-index (gethash id mh-thread-duplicates)))
     (setf (gethash id mh-thread-id-index-map) index)
@@ -1383,9 +1415,9 @@
 
 (defun mh-thread-generate-scan-lines (tree level)
   "Generate scan lines.
-TREE is the hierarchical tree of messages, SCAN-LINE-MAP maps message indices
-to the corresponding scan lines and LEVEL used to determine indentation of
-the message."
+TREE is the hierarchical tree of messages, SCAN-LINE-MAP maps
+message indices to the corresponding scan lines and LEVEL used to
+determine indentation of the message."
   (cond ((null tree) nil)
         ((mh-thread-container-p tree)
          (let* ((message (mh-container-message tree))
@@ -1436,8 +1468,9 @@
 ;; the scan which generates the threading info. For now this will have to do.
 (defun mh-thread-parse-scan-line (&optional string)
   "Parse a scan line.
-If optional argument STRING is given then that is assumed to be the scan line.
-Otherwise uses the line at point as the scan line to parse."
+If optional argument STRING is given then that is assumed to be
+the scan line. Otherwise uses the line at point as the scan line
+to parse."
   (let* ((string (or string
                      (buffer-substring-no-properties (line-beginning-position)
                                                      (line-end-position))))
@@ -1583,7 +1616,8 @@
 (defun mh-thread-next-sibling (&optional previous-flag)
   "Display next sibling.
 
-With non-nil optional argument PREVIOUS-FLAG jump to the previous sibling."
+With non-nil optional argument PREVIOUS-FLAG jump to the previous
+sibling."
   (interactive)
   (cond ((not (memq 'unthread mh-view-ops))
          (error "Folder isn't threaded"))
@@ -1632,9 +1666,10 @@
 (defun mh-thread-ancestor (&optional thread-root-flag)
   "Display ancestor of current message.
 
-If you do not care for the way a particular thread has turned, you can move up
-the chain of messages with this command. This command can also take a prefix
-argument THREAD-ROOT-FLAG to jump to the message that started everything."
+If you do not care for the way a particular thread has turned,
+you can move up the chain of messages with this command. This
+command can also take a prefix argument THREAD-ROOT-FLAG to jump
+to the message that started everything."
   (interactive "P")
   (beginning-of-line)
   (cond ((not (memq 'unthread mh-view-ops))
@@ -1652,8 +1687,9 @@
 
 (defun mh-thread-find-children ()
   "Return a region containing the current message and its children.
-The result is returned as a list of two elements. The first is the point at the
-start of the region and the second is the point at the end."
+The result is returned as a list of two elements. The first is
+the point at the start of the region and the second is the point
+at the end."
   (beginning-of-line)
   (if (eobp)
       nil
@@ -1744,10 +1780,11 @@
 (defun mh-narrow-to-tick ()
   "Limit to ticked messages.
 
-What this command does is show only those messages that are in the \"tick\"
-sequence (which you can customize via the `mh-tick-seq' option) in the
-MH-Folder buffer. In addition, it limits further MH-E searches to just those
-messages. When you want to widen the view to all your messages again, use
+What this command does is show only those messages that are in
+the \"tick\" sequence (which you can customize via the
+`mh-tick-seq' option) in the MH-Folder buffer. In addition, it
+limits further MH-E searches to just those messages. When you
+want to widen the view to all your messages again, use
 \\[mh-widen]."
   (interactive)
   (cond ((not mh-tick-seq)
--- a/lisp/mh-e/mh-speed.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-speed.el	Fri Dec 23 07:40:40 2005 +0000
@@ -62,7 +62,8 @@
 ;;;###mh-autoload
 (defun mh-folder-speedbar-buttons (buffer)
   "Interface function to create MH-E speedbar buffer.
-BUFFER is the MH-E buffer for which the speedbar buffer is to be created."
+BUFFER is the MH-E buffer for which the speedbar buffer is to be
+created."
   (unless (get-text-property (point-min) 'mh-level)
     (erase-buffer)
     (clrhash mh-speed-folder-map)
@@ -125,11 +126,13 @@
 
 (defun mh-speed-update-current-folder (force)
   "Update speedbar highlighting of the current folder.
-The function tries to be smart so that work done is minimized. The currently
-highlighted folder is cached and no highlighting happens unless it changes.
+The function tries to be smart so that work done is minimized.
+The currently highlighted folder is cached and no highlighting
+happens unless it changes.
 Also highlighting is suspended while the speedbar frame is selected.
-Otherwise you get the disconcerting behavior of folders popping open on their
-own when you are trying to navigate around in the speedbar buffer.
+Otherwise you get the disconcerting behavior of folders popping open
+on their own when you are trying to navigate around in the speedbar
+buffer.
 
 The update is always carried out if FORCE is non-nil."
   (let* ((lastf (selected-frame))
@@ -237,7 +240,8 @@
 
 (defun mh-speed-extract-folder-name (buffer)
   "Given an MH-E BUFFER find the folder that should be highlighted.
-Do the right thing for the different kinds of buffers that MH-E uses."
+Do the right thing for the different kinds of buffers that MH-E
+uses."
   (save-excursion
     (set-buffer buffer)
     (cond ((eq major-mode 'mh-folder-mode)
@@ -353,8 +357,8 @@
 
 (defmacro mh-process-kill-without-query (process)
   "PROCESS can be killed without query on Emacs exit.
-Avoid using `process-kill-without-query' if possible since it is now
-obsolete."
+Avoid using `process-kill-without-query' if possible since it is
+now obsolete."
   (if (fboundp 'set-process-query-on-exit-flag)
       `(set-process-query-on-exit-flag ,process nil)
     `(process-kill-without-query ,process)))
@@ -364,8 +368,8 @@
   "Execute flists -recurse and update message counts.
 If FORCE is non-nil the timer is reset.
 
-Any number of optional FOLDERS can be specified. If specified, flists is run
-only for that one folder."
+Any number of optional FOLDERS can be specified. If specified,
+flists is run only for that one folder."
   (interactive (list t))
   (when force
     (when mh-speed-flists-timer
@@ -412,8 +416,8 @@
 ;; Copied from mh-make-folder-list-filter...
 (defun mh-speed-parse-flists-output (process output)
   "Parse the incremental results from flists.
-PROCESS is the flists process and OUTPUT is the results that must be handled
-next."
+PROCESS is the flists process and OUTPUT is the results that must
+be handled next."
   (let ((prevailing-match-data (match-data))
         (position 0)
         line-end line folder unseen total)
@@ -506,8 +510,9 @@
 (defun mh-speed-refresh ()
   "Regenerates the list of folders in the speedbar.
 
-Run this command if you've added or deleted a folder, or want to update the
-unseen message count before the next automatic update."
+Run this command if you've added or deleted a folder, or want to
+update the unseen message count before the next automatic
+update."
   (interactive)
   (mh-speed-flists t)
   (mh-speed-invalidate-map ""))
--- a/lisp/mh-e/mh-utils.el	Fri Dec 23 05:40:21 2005 +0000
+++ b/lisp/mh-e/mh-utils.el	Fri Dec 23 07:40:40 2005 +0000
@@ -79,8 +79,8 @@
 
 (defun mh-search-from-end (char string)
   "Return the position of last occurrence of CHAR in STRING.
-If CHAR is not present in STRING then return nil. The function is used in lieu
-of `search' in the CL package."
+If CHAR is not present in STRING then return nil. The function is
+used in lieu of `search' in the CL package."
   (loop for index from (1- (length string)) downto 0
         when (equal (aref string index) char) return index
         finally return nil))
@@ -94,59 +94,73 @@
 
 (defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)"
   "This regular expression extracts the message number.
-It must match from the beginning of the line. Note that the message number
-must be placed in a parenthesized expression as in the default of
-\"^ *\\\\([0-9]+\\\\)\".")
+
+It must match from the beginning of the line. Note that the
+message number must be placed in a parenthesized expression as in
+the default of \"^ *\\\\([0-9]+\\\\)\".")
 
 (defvar mh-scan-msg-overflow-regexp "^[?0-9][0-9]"
   "This regular expression matches overflowed message numbers.")
 
 (defvar mh-scan-msg-format-regexp "%\\([0-9]*\\)(msg)"
   "This regular expression finds the message number width in a scan format.
-Note that the message number must be placed in a parenthesized expression as
-in the default of \"%\\\\([0-9]*\\\\)(msg)\". This variable is only consulted
-if `mh-scan-format-file' is set to \"Use MH-E scan Format\".")
+
+Note that the message number must be placed in a parenthesized
+expression as in the default of \"%\\\\([0-9]*\\\\)(msg)\". This
+variable is only consulted if `mh-scan-format-file' is set to
+\"Use MH-E scan Format\".")
 
 (defvar mh-scan-msg-format-string "%d"
   "This is a format string for width of the message number in a scan format.
-Use `0%d' for zero-filled message numbers. This variable is only consulted if
-`mh-scan-format-file' is set to \"Use MH-E scan Format\".")
+
+Use `0%d' for zero-filled message numbers. This variable is only
+consulted if `mh-scan-format-file' is set to \"Use MH-E scan
+Format\".")
 
 (defvar mh-scan-msg-search-regexp "^[^0-9]*%d[^0-9]"
   "This regular expression matches a particular message.
-It is a format string; use `%d' to represent the location of the message
-number within the expression as in the default of \"^[^0-9]*%d[^0-9]\".")
+
+It is a format string; use `%d' to represent the location of the
+message number within the expression as in the default of
+\"^[^0-9]*%d[^0-9]\".")
 
 (defvar mh-cmd-note 4
   "Column for notations.
-This variable should be set with the function `mh-set-cmd-note'. This variable
-may be updated dynamically if `mh-adaptive-cmd-note-flag' is on.
+
+This variable should be set with the function `mh-set-cmd-note'.
+This variable may be updated dynamically if
+`mh-adaptive-cmd-note-flag' is on.
 
 Note that columns in Emacs start with 0.")
 (make-variable-buffer-local 'mh-cmd-note)
 
 (defvar mh-note-seq ?%
   "Messages in a user-defined sequence are marked by this character.
-Messages in the `search' sequence are marked by this character as well.")
+
+Messages in the `search' sequence are marked by this character as
+well.")
 
 
 
 (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.")
+
+First argument is folder name. Second is message number.")
 
 
 
 (defvar mh-mail-header-separator "--------"
   "*Line used by MH to separate headers from text in messages being composed.
-This variable should not be used directly in programs. Programs should use
-`mail-header-separator' instead. `mail-header-separator' is initialized to
-`mh-mail-header-separator' in `mh-letter-mode'; in other contexts, you may
-have to perform this initialization yourself.
 
-Do not make this a regular expression as it may be the argument to `insert'
-and it is passed through `regexp-quote' before being used by functions like
-`re-search-forward'.")
+This variable should not be used directly in programs. Programs
+should use `mail-header-separator' instead.
+`mail-header-separator' is initialized to
+`mh-mail-header-separator' in `mh-letter-mode'; in other
+contexts, you may have to perform this initialization yourself.
+
+Do not make this a regular expression as it may be the argument
+to `insert' and it is passed through `regexp-quote' before being
+used by functions like `re-search-forward'.")
 
 (defvar mh-signature-separator-regexp "^-- $"
   "This regular expression matches the signature separator.
@@ -154,11 +168,12 @@
 
 (defvar mh-signature-separator "-- \n"
   "Text of a signature separator.
-A signature separator is used to separate the body of a message from the
-signature. This can be used by user agents such as MH-E to render the
-signature differently or to suppress the inclusion of the signature in a
-reply.
-Use `mh-signature-separator-regexp' when searching for a separator.")
+
+A signature separator is used to separate the body of a message
+from the signature. This can be used by user agents such as MH-E
+to render the signature differently or to suppress the inclusion
+of the signature in a reply. Use `mh-signature-separator-regexp'
+when searching for a separator.")
 
 (defun mh-signature-separator-p ()
   "Return non-nil if buffer includes \"^-- $\"."
@@ -288,8 +303,9 @@
 
 (defun mh-goto-address-find-address-at-point ()
   "Find e-mail address around or before point.
-Then search backwards to beginning of line for the start of an e-mail
-address.  If no e-mail address found, return nil."
+
+Then search backwards to beginning of line for the start of an
+e-mail address. If no e-mail address found, return nil."
   (re-search-backward "[^-_A-z0-9.@]" (line-beginning-position) 'lim)
   (if (or (looking-at mh-address-mail-regexp)	; already at start
 	  (and (re-search-forward mh-address-mail-regexp
@@ -299,8 +315,10 @@
 
 (defun mh-mail-header-end ()
   "Substitute for `mail-header-end' that doesn't widen the buffer.
-In MH-E we frequently need to find the end of headers in nested messages, where
-the buffer has been narrowed. This function works in this situation."
+
+In MH-E we frequently need to find the end of headers in nested
+messages, where the buffer has been narrowed. This function works
+in this situation."
   (save-excursion
     ;; XXX: The following replaces a call to rfc822-goto-eoh. Occasionally,
     ;; mail headers that MH-E has to read contains lines of the form:
@@ -423,10 +441,11 @@
 (defun mh-show-font-lock-fontify-region (beg end loudly)
   "Limit font-lock in `mh-show-mode' to the header.
 
-Used when the option `mh-highlight-citation-style' is set to \"Gnus\", leaving
-the body to be dealt with by Gnus highlighting. The region between BEG and END
-is given over to be fontified and LOUDLY controls if a user sees a message
-about the fontification operation."
+Used when the option `mh-highlight-citation-style' is set to
+\"Gnus\", leaving the body to be dealt with by Gnus highlighting.
+The region between BEG and END is given over to be fontified and
+LOUDLY controls if a user sees a message about the fontification
+operation."
   (let ((header-end (mh-mail-header-end)))
     (cond
      ((and (< beg header-end)(< end header-end))
@@ -469,28 +488,27 @@
 
 ;;; Internal bookkeeping variables:
 
-;; Cached value of the `Path:' component in the user's MH profile.
-;; User's mail folder directory.
-(defvar mh-user-path nil)
+(defvar mh-user-path nil
+  "Cached value of the \"Path:\" MH profile component.
+User's mail folder directory.")
 
-;; An mh-draft-folder of nil means do not use a draft folder.
-;; Cached value of the `Draft-Folder:' component in the user's MH profile.
-;; Name of folder containing draft messages.
-(defvar mh-draft-folder nil)
+(defvar mh-draft-folder nil
+  "Cached value of the \"Draft-Folder:\" MH profile component.
+Name of folder containing draft messages.
+Nil means do not use a draft folder.")
 
-;; Cached value of the `Unseen-Sequence:' component in the user's MH profile.
-;; Name of the Unseen sequence.
-(defvar mh-unseen-seq nil)
+(defvar mh-unseen-seq nil
+  "Cached value of the \"Unseen-Sequence:\" MH profile component.
+Name of the Unseen sequence.")
 
-;; Cached value of the `Previous-Sequence:' component in the user's MH
-;; profile.
-;; Name of the Previous sequence.
-(defvar mh-previous-seq nil)
+(defvar mh-previous-seq nil
+  "Cached value of the \"Previous-Sequence:\" MH profile component.
+Name of the Previous sequence.")
 
-;; Cached value of the `Inbox:' component in the user's MH profile,
-;; or "+inbox" if no such component.
-;; Name of the Inbox folder.
-(defvar mh-inbox nil)
+(defvar mh-inbox nil
+  "Cached value of the \"Inbox:\" MH profile component.
+Set to \"+inbox\" if no such component.
+Name of the Inbox folder.")
 
 ;; The names of ephemeral buffers have a " *mh-" prefix (so that they are
 ;; hidden and can be programmatically removed in mh-quit), and the variable
@@ -511,33 +529,33 @@
 (defconst mh-recipients-buffer "*MH-E Recipients*") ;killed when draft sent
 (defconst mh-sequences-buffer "*MH-E Sequences*") ;sequences list
 
-;; Number of lines to keep in mh-log-buffer.
-(defvar mh-log-buffer-lines 100)
+(defvar mh-log-buffer-lines 100
+  "Number of lines to keep in `mh-log-buffer'.")
 
-;; Window configuration before MH-E command.
-(defvar mh-previous-window-config nil)
+(defvar mh-previous-window-config nil
+  "Window configuration before MH-E command.")
 
-;;Non-nil means next SPC or whatever goes to next undeleted message.
-(defvar mh-page-to-next-msg-flag nil)
+(defvar mh-page-to-next-msg-flag nil
+  "Non-nil means next SPC or whatever goes to next undeleted message.")
 
 
 
 ;;; Internal variables local to a folder.
 
-;; Name of current folder, a string.
-(defvar mh-current-folder nil)
+(defvar mh-current-folder nil
+  "Name of current folder, a string.")
 
-;; Buffer that displays message for this folder.
-(defvar mh-show-buffer nil)
+(defvar mh-show-buffer nil
+  "Buffer that displays message for this folder.")
 
-;; Full path of directory for this folder.
-(defvar mh-folder-filename nil)
+(defvar mh-folder-filename nil
+  "Full path of directory for this folder.")
 
-;;Number of msgs in buffer.
-(defvar mh-msg-count nil)
+(defvar mh-msg-count nil
+  "Number of msgs in buffer.")
 
-;; If non-nil, show the message in a separate window.
-(defvar mh-showing-mode nil)
+(defvar mh-showing-mode nil
+  "If non-nil, show the message in a separate window.")
 
 (defvar mh-show-mode-map (make-sparse-keymap)
   "Keymap used by the show buffer.")
@@ -594,8 +612,8 @@
   "Format is (with-mh-folder-updating (SAVE-MODIFICATION-FLAG) &body BODY).
 Execute BODY, which can modify the folder buffer without having to
 worry about file locking or the read-only flag, and return its result.
-If SAVE-MODIFICATION-FLAG is non-nil, the buffer's modification
-flag is unchanged, otherwise it is cleared."
+If SAVE-MODIFICATION-FLAG is non-nil, the buffer's modification flag
+is unchanged, otherwise it is cleared."
   (setq save-modification-flag (car save-modification-flag)) ; CL style
   `(prog1
        (let ((mh-folder-updating-mod-flag (buffer-modified-p))
@@ -627,8 +645,9 @@
 
 (defmacro mh-do-at-event-location (event &rest body)
   "Switch to the location of EVENT and execute BODY.
-After BODY has been executed return to original window. The modification flag
-of the buffer in the event window is preserved."
+After BODY has been executed return to original window. The
+modification flag of the buffer in the event window is
+preserved."
   (let ((event-window (make-symbol "event-window"))
         (event-position (make-symbol "event-position"))
         (original-window (make-symbol "original-window"))
@@ -672,9 +691,12 @@
 
 (defun mh-recenter (arg)
   "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."
   (cond ((not (eq (get-buffer-window (current-buffer)) (selected-window)))
          nil)
@@ -718,8 +740,8 @@
 
 (defun mh-get-msg-num (error-if-no-message)
   "Return the message number of the displayed message.
-If the argument ERROR-IF-NO-MESSAGE is non-nil, then complain if the cursor is
-not pointing to a message."
+If the argument ERROR-IF-NO-MESSAGE is non-nil, then complain if
+the cursor is not pointing to a message."
   (save-excursion
     (beginning-of-line)
     (cond ((looking-at mh-scan-msg-number-regexp)
@@ -731,7 +753,8 @@
 
 (defun mh-folder-name-p (name)
   "Return non-nil if NAME is the name of a folder.
-A name (a string or symbol) can be a folder name if it begins with \"+\"."
+A name (a string or symbol) can be a folder name if it begins
+with \"+\"."
   (if (symbolp name)
       (eq (aref (symbol-name name) 0) ?+)
     (and (> (length name) 0)
@@ -761,8 +784,8 @@
 (defmacro mh-defun-show-buffer (function original-function
                                          &optional dont-return)
   "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer.
-If the buffer we start in is still visible and DONT-RETURN is nil then switch
-to it after that."
+If the buffer we start in is still visible and DONT-RETURN is nil
+then switch to it after that."
   `(defun ,function ()
      ,(format "Calls %s from the message's folder.\n%s\nSee `%s' for more info.\n"
               original-function
@@ -1208,8 +1231,8 @@
 
 (defun mh-face-display-function ()
   "Display a Face, X-Face, or X-Image-URL header field.
-If more than one of these are present, then the first one found in this order
-is used."
+If more than one of these are present, then the first one found
+in this order is used."
   (save-restriction
     (goto-char (point-min))
     (re-search-forward "\n\n" (point-max) t)
@@ -1375,9 +1398,9 @@
 
 (defun mh-picon-file-contents (file)
   "Return details about FILE.
-A list of consisting of a symbol for the type of the file and the file
-contents as a string is returned. If FILE is nil, then both elements of the
-list are nil."
+A list of consisting of a symbol for the type of the file and the
+file contents as a string is returned. If FILE is nil, then both
+elements of the list are nil."
   (if (stringp file)
       (with-temp-buffer
         (let ((type (and (string-match ".*\\.\\(...\\)$" file)
@@ -1388,8 +1411,9 @@
 
 (defun mh-picon-generate-path (host-list user directory)
   "Generate the image file path.
-HOST-LIST is the parsed host address of the email address, USER the username
-and DIRECTORY is the directory relative to which the path is generated."
+HOST-LIST is the parsed host address of the email address, USER
+the username and DIRECTORY is the directory relative to which the
+path is generated."
   (loop with acc = ""
         for elem in host-list
         do (setq acc (format "%s/%s" elem acc))
@@ -1460,9 +1484,9 @@
 
 (defun mh-x-image-url-fetch-image (url cache-file marker sentinel)
   "Fetch and display the image specified by URL.
-After the image is fetched, it is stored in CACHE-FILE. It will be displayed
-in a buffer and position specified by MARKER. The actual display is carried
-out by the SENTINEL function."
+After the image is fetched, it is stored in CACHE-FILE. It will
+be displayed in a buffer and position specified by MARKER. The
+actual display is carried out by the SENTINEL function."
   (if mh-wget-executable
       (let ((buffer (get-buffer-create (generate-new-buffer-name
                                         mh-temp-fetch-buffer)))
@@ -1576,18 +1600,18 @@
 (defun mh-show (&optional message redisplay-flag)
   "Display message\\<mh-folder-mode-map>.
 
-If the message under the cursor is already displayed, this command scrolls to
-the beginning of the message. MH-E normally hides a lot of the superfluous
-header fields that mailers add to a message, but if you wish to see all of
-them, use the command \\[mh-header-display].
+If the message under the cursor is already displayed, this command
+scrolls to the beginning of the message. MH-E normally hides a lot of
+the superfluous header fields that mailers add to a message, but if
+you wish to see all of them, use the command \\[mh-header-display].
 
 From a program, optional argument MESSAGE can be used to display an
-alternative message. The optional argument REDISPLAY-FLAG forces the redisplay
-of the message even if the show buffer was already displaying the correct
-message.
+alternative message. The optional argument REDISPLAY-FLAG forces the
+redisplay of the message even if the show buffer was already
+displaying the correct message.
 
-See the \"mh-show\" customization group for a litany of options that control
-what displayed messages look like."
+See the \"mh-show\" customization group for a litany of options that
+control what displayed messages look like."
   (interactive (list nil t))
   (when (or redisplay-flag
             (and mh-showing-with-headers
@@ -1656,10 +1680,11 @@
 (defun mh-modify (&optional message)
   "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.
+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 instead if it is non-nil."
   (interactive)
@@ -1793,13 +1818,14 @@
 
 (defun mh-clean-msg-header (start invisible-headers visible-headers)
   "Flush extraneous lines in message header.
+
 Header is cleaned from START to the end of the message header.
-INVISIBLE-HEADERS contains a regular expression specifying lines to delete
-from the header. VISIBLE-HEADERS contains a regular expression specifying the
-lines to display. INVISIBLE-HEADERS is ignored if VISIBLE-HEADERS is non-nil.
-
-Note that MH-E no longer supports the `mh-visible-headers' variable, so
-this function could be trimmed of this feature too."
+INVISIBLE-HEADERS contains a regular expression specifying lines
+to delete from the header. VISIBLE-HEADERS contains a regular
+expression specifying the lines to display. INVISIBLE-HEADERS is
+ignored if VISIBLE-HEADERS is non-nil."
+  ;; XXX Note that MH-E no longer supports the `mh-visible-headers'
+  ;; variable, so this function could be trimmed of this feature too."
   (let ((case-fold-search t)
         (buffer-read-only nil)
         (after-change-functions nil))   ;Work around emacs-20 font-lock bug
@@ -1870,10 +1896,11 @@
 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."
+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."
   (interactive "NGo to message: ")
   (setq number (prefix-numeric-value number))
   (let ((point (point))
@@ -1910,12 +1937,14 @@
 This function sets `mh-user-path' from your \"Path:\" MH profile
 component (but defaults to \"Mail\" if one isn't present),
 `mh-draft-folder' from \"Draft-Folder:\", `mh-unseen-seq' from
-\"Unseen-Sequence:\", `mh-previous-seq' from \"Previous-Sequence:\",
-and `mh-inbox' from \"Inbox:\" (defaults to \"+inbox\").
+\"Unseen-Sequence:\", `mh-previous-seq' from
+\"Previous-Sequence:\", and `mh-inbox' from \"Inbox:\" (defaults
+to \"+inbox\").
 
-The hook `mh-find-path-hook' is run after these variables have been
-set. This hook can be used the change the value of these variables if
-you need to run with different values between MH and MH-E."
+The hook `mh-find-path-hook' is run after these variables have
+been set. This hook can be used the change the value of these
+variables if you need to run with different values between MH and
+MH-E."
   (mh-variants)
   (unless mh-find-path-run
     (setq mh-find-path-run t)
@@ -1970,8 +1999,8 @@
 
 (defun mh-install (profile error-val)
   "Initialize the MH environment.
-This is called if we fail to read the PROFILE file. ERROR-VAL is the error
-that made this call necessary."
+This is called if we fail to read the PROFILE file. ERROR-VAL is
+the error that made this call necessary."
   (if (or (getenv "MH")
           (file-exists-p profile)
           mh-no-install)
@@ -2007,9 +2036,9 @@
 (defun mh-update-scan-format (fmt width)
   "Return a scan format with the (msg) width in the FMT replaced with WIDTH.
 
-The message number width portion of the format is discovered using
-`mh-scan-msg-format-regexp'. Its replacement is controlled with
-`mh-scan-msg-format-string'."
+The message number width portion of the format is discovered
+using `mh-scan-msg-format-regexp'. Its replacement is controlled
+with `mh-scan-msg-format-string'."
   (or (and
        (string-match mh-scan-msg-format-regexp fmt)
        (let ((begin (match-beginning 1))
@@ -2038,12 +2067,13 @@
 
 (defun mh-add-msgs-to-seq (msgs seq &optional internal-flag dont-annotate-flag)
   "Add MSGS to SEQ.
-Remove duplicates and keep sequence sorted. If optional INTERNAL-FLAG is
-non-nil, do not mark the message in the scan listing or inform MH of the
-addition.
 
-If DONT-ANNOTATE-FLAG is non-nil then the annotations in the folder buffer are
-not updated."
+Remove duplicates and keep sequence sorted. If optional
+INTERNAL-FLAG is non-nil, do not mark the message in the scan
+listing or inform MH of the addition.
+
+If DONT-ANNOTATE-FLAG is non-nil then the annotations in the
+folder buffer are not updated."
   (let ((entry (mh-find-seq seq))
         (internal-seq-flag (mh-internal-seq seq)))
     (if (and msgs (atom msgs)) (setq msgs (list msgs)))
@@ -2085,8 +2115,8 @@
 
 (defun mh-collect-folder-names-filter (process output)
   "Read folder names.
-PROCESS is the flists process that was run to collect folder names and the
-function is called when OUTPUT is available."
+PROCESS is the flists process that was run to collect folder
+names and the function is called when OUTPUT is available."
   (let ((position 0)
 	(prevailing-match-data (match-data))
 	line-end folder)
@@ -2124,16 +2154,18 @@
 (defun mh-normalize-folder-name (folder &optional empty-string-okay
                                         dont-remove-trailing-slash)
   "Normalizes FOLDER name.
-Makes sure that two '/' characters never occur next to each other. Also all
-occurrences of \"..\" and \".\" are suitably processed. So \"+inbox/../news\"
-will be normalized to \"+news\".
+
+Makes sure that two '/' characters never occur next to each
+other. Also all occurrences of \"..\" and \".\" are suitably
+processed. So \"+inbox/../news\" will be normalized to \"+news\".
 
-If optional argument EMPTY-STRING-OKAY is nil then a '+' is added at the
-front if FOLDER lacks one. If non-nil and FOLDER is the empty string then
-nothing is added.
+If optional argument EMPTY-STRING-OKAY is nil then a '+' is added
+at the front if FOLDER lacks one. If non-nil and FOLDER is the
+empty string then nothing is added.
 
-If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a trailing '/'
-if present is retained (if present), otherwise it is removed."
+If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a
+trailing '/' if present is retained (if present), otherwise it is
+removed."
   (when (stringp folder)
     ;; Replace two or more consecutive '/' characters with a single '/'
     (while (string-match "//" folder)
@@ -2176,11 +2208,12 @@
 
 (defun mh-sub-folders (folder &optional add-trailing-slash-flag)
   "Find the subfolders of FOLDER.
-The function avoids running folders unnecessarily by caching the results of
-the actual folders call.
+The function avoids running folders unnecessarily by caching the
+results of the actual folders call.
 
-If optional argument ADD-TRAILING-SLASH-FLAG is non-nil then a slash is added
-to each of the sub-folder names that may have nested folders within them."
+If optional argument ADD-TRAILING-SLASH-FLAG is non-nil then a
+slash is added to each of the sub-folder names that may have
+nested folders within them."
   (let* ((folder (mh-normalize-folder-name folder))
          (match (gethash folder mh-sub-folders-cache 'no-result))
          (sub-folders (cond ((eq match 'no-result)
@@ -2195,8 +2228,8 @@
 
 (defun mh-sub-folders-actual (folder)
   "Execute the command folders to return the sub-folders of FOLDER.
-Filters out the folder names that start with \".\" so that directories that
-aren't usually mail folders are hidden."
+Filters out the folder names that start with \".\" so that
+directories that aren't usually mail folders are hidden."
   (let ((arg-list `(,(expand-file-name "folders" mh-progs)
                     nil (t nil) nil "-noheader" "-norecurse" "-nototal"
                     ,@(if (stringp folder) (list folder) ())))
@@ -2243,13 +2276,15 @@
 
 (defun mh-remove-from-sub-folders-cache (folder)
   "Remove FOLDER and its parent from `mh-sub-folders-cache'.
-FOLDER should be unconditionally removed from the cache. Also the last ancestor
-of FOLDER present in the cache must be removed as well.
+FOLDER should be unconditionally removed from the cache. Also the
+last ancestor of FOLDER present in the cache must be removed as
+well.
 
-To see why this is needed assume we have a folder +foo which has a single
-sub-folder qux. Now we create the folder +foo/bar/baz. Here we will need to
-invalidate the cached sub-folders of +foo, otherwise completion on +foo won't
-tell us about the option +foo/bar!"
+To see why this is needed assume we have a folder +foo which has
+a single sub-folder qux. Now we create the folder +foo/bar/baz.
+Here we will need to invalidate the cached sub-folders of +foo,
+otherwise completion on +foo won't tell us about the option
++foo/bar!"
   (remhash folder mh-sub-folders-cache)
   (block ancestor-found
     (let ((parent folder)
@@ -2270,8 +2305,9 @@
 
 (defvar mh-allow-root-folder-flag nil
   "Non-nil means \"+\" is an acceptable folder name.
-This variable is used to communicate with `mh-folder-completion-function'. That
-function can have exactly three arguments so we bind this variable to t or nil.
+This variable is used to communicate with
+`mh-folder-completion-function'. That function can have exactly
+three arguments so we bind this variable to t or nil.
 
 This variable should never be set.")
 
@@ -2288,9 +2324,9 @@
 
 (defun mh-folder-completion-function (name predicate flag)
   "Programmable completion for folder names.
-NAME is the partial folder name that has been input. PREDICATE if non-nil is a
-function that is used to filter the possible choices and FLAG determines
-whether the completion is over."
+NAME is the partial folder name that has been input. PREDICATE if
+non-nil is a function that is used to filter the possible choices
+and FLAG determines whether the completion is over."
   (let* ((orig-name name)
          (name (mh-normalize-folder-name name nil t))
          (last-slash (mh-search-from-end ?/ name))
@@ -2325,8 +2361,8 @@
 
 (defun mh-folder-completing-read (prompt default allow-root-folder-flag)
   "Read folder name with PROMPT and default result DEFAULT.
-If ALLOW-ROOT-FOLDER-FLAG is non-nil then \"+\" is allowed to be a folder name
-corresponding to `mh-user-path'."
+If ALLOW-ROOT-FOLDER-FLAG is non-nil then \"+\" is allowed to be
+a folder name corresponding to `mh-user-path'."
   (mh-normalize-folder-name
    (let ((minibuffer-completing-file-name t)
          (completion-root-regexp "^[+/]")
@@ -2339,12 +2375,13 @@
 (defun mh-prompt-for-folder (prompt default can-create
                              &optional default-string allow-root-folder-flag)
   "Prompt for a folder name with PROMPT.
-Returns the folder's name as a string. DEFAULT is used if the folder exists
-and the user types return. If the CAN-CREATE flag is t, then a folder is
-created if it doesn't already exist. If optional argument DEFAULT-STRING is
-non-nil, use it in the prompt instead of DEFAULT. If ALLOW-ROOT-FOLDER-FLAG is
-non-nil then the function will accept the folder +, which means all folders
-when used in searching."
+Returns the folder's name as a string. DEFAULT is used if the
+folder exists and the user types return. If the CAN-CREATE flag
+is t, then a folder is created if it doesn't already exist. If
+optional argument DEFAULT-STRING is non-nil, use it in the prompt
+instead of DEFAULT. If ALLOW-ROOT-FOLDER-FLAG is non-nil then the
+function will accept the folder +, which means all folders when
+used in searching."
   (if (null default)
       (setq default ""))
   (let* ((default-string (cond (default-string (format " (default %s)" default-string))
@@ -2397,9 +2434,10 @@
 
 (defun mh-truncate-log-buffer ()
   "If `mh-log-buffer' is too big then truncate it.
-If the number of lines in `mh-log-buffer' exceeds `mh-log-buffer-lines' then
-keep only the last `mh-log-buffer-lines'. As a side effect the point is set to
-the end of the log buffer.
+If the number of lines in `mh-log-buffer' exceeds
+`mh-log-buffer-lines' then keep only the last
+`mh-log-buffer-lines'. As a side effect the point is set to the
+end of the log buffer.
 
 The function returns the size of the final size of the log buffer."
   (with-current-buffer (get-buffer-create mh-log-buffer)
@@ -2419,9 +2457,9 @@
 
 (defun mh-exec-cmd (command &rest args)
   "Execute mh-command COMMAND with ARGS.
-The side effects are what is desired.
-Any output is assumed to be an error and is shown to the user.
-The output is not read or parsed by MH-E."
+The side effects are what is desired. Any output is assumed to be
+an error and is shown to the user. The output is not read or
+parsed by MH-E."
   (save-excursion
     (set-buffer (get-buffer-create mh-log-buffer))
     (let* ((initial-size (mh-truncate-log-buffer))
@@ -2458,9 +2496,9 @@
 (defun mh-exec-cmd-daemon (command filter &rest args)
   "Execute MH command COMMAND in the background.
 
-If FILTER is non-nil then it is used to process the output otherwise the
-default filter `mh-process-daemon' is used. See `set-process-filter' for more
-details of FILTER.
+If FILTER is non-nil then it is used to process the output
+otherwise the default filter `mh-process-daemon' is used. See
+`set-process-filter' for more details of FILTER.
 
 ARGS are passed to COMMAND as command line arguments."
   (save-excursion
@@ -2480,9 +2518,9 @@
 ENV is nil or a string of space-separated \"var=value\" elements.
 Signals an error if process does not complete successfully.
 
-If FILTER is non-nil then it is used to process the output otherwise the
-default filter `mh-process-daemon' is used. See `set-process-filter' for more
-details of FILTER.
+If FILTER is non-nil then it is used to process the output
+otherwise the default filter `mh-process-daemon' is used. See
+`set-process-filter' for more details of FILTER.
 
 ARGS are passed to COMMAND as command line arguments."
   (let ((process-environment process-environment))
@@ -2492,17 +2530,20 @@
 
 (defun mh-process-daemon (process output)
   "PROCESS daemon that puts OUTPUT into a temporary buffer.
-Any output from the process is displayed in an asynchronous pop-up window."
+Any output from the process is displayed in an asynchronous
+pop-up window."
   (set-buffer (get-buffer-create mh-log-buffer))
   (insert-before-markers output)
   (display-buffer mh-log-buffer))
 
 (defun mh-exec-cmd-quiet (raise-error command &rest args)
   "Signal RAISE-ERROR if COMMAND with ARGS fails.
-Execute MH command COMMAND with ARGS.  ARGS is a list of strings.
-Return at start of mh-temp buffer, where output can be parsed and used.
-Returns value of `call-process', which is 0 for success, unless RAISE-ERROR is
-non-nil, in which case an error is signaled if `call-process' returns non-0."
+Execute MH command COMMAND with ARGS. ARGS is a list of strings.
+Return at start of mh-temp buffer, where output can be parsed and
+used.
+Returns value of `call-process', which is 0 for success, unless
+RAISE-ERROR is non-nil, in which case an error is signaled if
+`call-process' returns non-0."
   (set-buffer (get-buffer-create mh-temp-buffer))
   (erase-buffer)
   (let ((value
@@ -2522,8 +2563,8 @@
 
 (defun mh-exchange-point-and-mark-preserving-active-mark ()
   "Put the mark where point is now, and point where the mark is now.
-This command works even when the mark is not active, and preserves whether the
-mark is active or not."
+This command works even when the mark is not active, and
+preserves whether the mark is active or not."
   (interactive nil)
   (let ((is-active (and (boundp 'mark-active) mark-active)))
     (let ((omark (mark t)))
@@ -2537,7 +2578,8 @@
 
 (defun mh-exec-cmd-output (command display &rest args)
   "Execute MH command COMMAND with DISPLAY flag and ARGS.
-Put the output into buffer after point.  Set mark after inserted text.
+Put the output into buffer after point.
+Set mark after inserted text.
 Output is expected to be shown to user, not parsed by MH-E."
   (push-mark (point) t)
   (apply 'call-process
@@ -2553,7 +2595,8 @@
 
 (defun mh-exec-lib-cmd-output (command &rest args)
   "Execute MH library command COMMAND with ARGS.
-Put the output into buffer after point.  Set mark after inserted text."
+Put the output into buffer after point.
+Set mark after inserted text."
   (apply 'mh-exec-cmd-output (expand-file-name command mh-lib-progs) nil args))
 
 (defun mh-handle-process-error (command status)
@@ -2605,11 +2648,13 @@
   "Replace REGEXP with NEWTEXT everywhere in STRING and return result.
 NEWTEXT is taken literally---no \\DIGIT escapes will be recognized.
 
-The function body was copied from `dired-replace-in-string' in dired.el.
-Emacs21 has `replace-regexp-in-string' while XEmacs has `replace-in-string'.
-Neither is present in Emacs20. The file gnus-util.el in Gnus 5.10.1 and above
-has `gnus-replace-in-string'. We should use that when we decide to not support
-older versions of Gnus."
+The function body was copied from `dired-replace-in-string' in
+dired.el.
+Emacs21 has `replace-regexp-in-string' while XEmacs has
+`replace-in-string'.
+Neither is present in Emacs20. The file gnus-util.el in Gnus 5.10.1
+and above has `gnus-replace-in-string'. We should use that when we
+decide to not support older versions of Gnus."
   (let ((result "") (start 0) mb me)
     (while (string-match regexp string start)
       (setq mb (match-beginning 0)