]> code.delx.au - gnu-emacs/blobdiff - lisp/mh-e/mh-e.el
(mh-alias-local-users): Boolean docstrings should start with "Non-nil
[gnu-emacs] / lisp / mh-e / mh-e.el
index 6bf9458b4598805441933482063952e29e712866..e1e9648e31dd07596bb3ab25c7b0d0dd0e25d68e 100644 (file)
@@ -6,7 +6,7 @@
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
-;; Version: 7.93+cvs
+;; Version: 8.0.2
 ;; Keywords: mail
 
 ;; This file is part of GNU Emacs.
 
 ;;; Commentary:
 
+;; MH-E is an Emacs interface to the MH mail system.
+
+;; MH-E is supported by GNU Emacs 21 and 22, as well as XEmacs 21
+;; (except for versions 21.5.9-21.5.16). It is compatible with MH
+;; versions 6.8.4 and higher, all versions of nmh, and GNU mailutils
+;; 0.4 and higher.
+
+;; MH (Message Handler) is a powerful mail reader. See
+;; http://rand-mh.sourceforge.net/.
+
+;; N.B. MH must have been compiled with the MHE compiler flag or several
+;; features necessary for MH-E will be missing from MH commands, specifically
+;; the -build switch to repl and forw.
+
 ;; How to use:
 ;;   M-x mh-rmail to read mail.  Type C-h m there for a list of commands.
 ;;   C-u M-x mh-rmail to visit any folder.
 ;; If you want to customize MH-E before explicitly loading it, add this:
 ;;   (require 'mh-cus-load)
 
-;; MH (Message Handler) is a powerful mail reader.
-
-;; The MH newsgroup is comp.mail.mh; the mailing list is mh-users@ics.uci.edu
-;; (send to mh-users-request to be added). See the monthly Frequently Asked
-;; Questions posting there for information on getting MH and MH-E:
-;;   http://www.faqs.org/faqs/mail/mh-faq/part1/preamble.html
-
-;; N.B. MH must have been compiled with the MHE compiler flag or several
-;; features necessary for MH-E will be missing from MH commands, specifically
-;; the -build switch to repl and forw.
-
-;; MH-E is an Emacs interface to the MH mail system.
-
-;; MH-E is supported in GNU Emacs 21 and 22 as well as XEmacs 21
-;; (except for versions 21.5.9-21.5.16), with MH 6.8.4 on, nmh 1.0.4
-;; on, and GNU mailutils 0.4 on.
-
 ;; Mailing Lists:
 ;;   mh-e-users@lists.sourceforge.net
 ;;   mh-e-announce@lists.sourceforge.net
@@ -99,6 +96,9 @@
 
 (mh-require-cl)
 
+(require 'mh-buffers)
+(require 'mh-compat)
+
 (eval-and-compile
   (defvar mh-xemacs-flag (featurep 'xemacs)
     "Non-nil means the current Emacs is XEmacs."))
 (mh-do-in-xemacs
   (require 'mh-xemacs))
 
-(require 'mh-buffers)
-(require 'mh-compat)
-
 (mh-font-lock-add-keywords
  'emacs-lisp-mode
  (eval-when-compile
    `((,(concat "(\\("
                ;; Function declarations (use font-lock-function-name-face).
-               "\\(mh-def\\(un\\|macro\\)-compat\\)\\|"
+               "\\(def\\(un\\|macro\\)-mh\\)\\|"
                ;; Variable declarations (use font-lock-variable-name-face).
-               "\\(mh-def\\(custom\\|face\\)\\)\\|"
+               "\\(def\\(custom\\|face\\)-mh\\)\\|"
                ;; Group declarations (use font-lock-type-face).
-               "\\(mh-defgroup\\)"
+               "\\(defgroup-mh\\)"
                "\\)\\>"
                ;; Any whitespace and defined object.
                "[ \t'\(]*"
 ;; Try to keep variables local to a single file. Provide accessors if
 ;; variables are shared. Use this section as a last resort.
 
-(defconst mh-version "7.93+cvs" "Version number of MH-E.")
+(defconst mh-version "8.0.2" "Version number of MH-E.")
 
 ;; Variants
 
@@ -191,7 +188,7 @@ This directory contains, among other things, the mhl program.")
 (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.")
+Do not use a draft folder if nil.")
 
 (defvar mh-inbox nil
   "Cached value of the \"Inbox:\" MH profile component.
@@ -684,7 +681,7 @@ ARGS is returned unchanged."
                       (t t))
              collect keyword))))
 
-(defmacro mh-defgroup (symbol members doc &rest args)
+(defmacro defgroup-mh (symbol members doc &rest args)
   "Declare SYMBOL as a customization group containing MEMBERS.
 See documentation for `defgroup' for a description of the arguments
 SYMBOL, MEMBERS, DOC and ARGS.
@@ -692,9 +689,9 @@ This macro is used by Emacs versions that lack the :package-version
 keyword, introduced in Emacs 22."
   (declare (doc-string 3))
   `(defgroup ,symbol ,members ,doc ,@(mh-strip-package-version args)))
-(put 'mh-defgroup 'lisp-indent-function 'defun)
+(put 'defgroup-mh 'lisp-indent-function 'defun)
 
-(defmacro mh-defcustom (symbol value doc &rest args)
+(defmacro defcustom-mh (symbol value doc &rest args)
   "Declare SYMBOL as a customizable variable that defaults to VALUE.
 See documentation for `defcustom' for a description of the arguments
 SYMBOL, VALUE, DOC and ARGS.
@@ -702,9 +699,9 @@ This macro is used by Emacs versions that lack the :package-version
 keyword, introduced in Emacs 22."
   (declare (doc-string 3))
   `(defcustom ,symbol ,value ,doc ,@(mh-strip-package-version args)))
-(put 'mh-defcustom 'lisp-indent-function 'defun)
+(put 'defcustom-mh 'lisp-indent-function 'defun)
 
-(defmacro mh-defface (face spec doc &rest args)
+(defmacro defface-mh (face spec doc &rest args)
   "Declare FACE as a customizable face that defaults to SPEC.
 See documentation for `defface' for a description of the arguments
 FACE, SPEC, DOC and ARGS.
@@ -712,13 +709,13 @@ This macro is used by Emacs versions that lack the :package-version
 keyword, introduced in Emacs 22."
   (declare (doc-string 3))
   `(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
-(put 'mh-defface 'lisp-indent-function 'defun)
+(put 'defface-mh 'lisp-indent-function 'defun)
 
 \f
 
 ;;; Variant Support
 
-(mh-defcustom mh-path nil
+(defcustom-mh mh-path nil
   "*Additional list of directories to search for MH.
 See `mh-variant'."
   :group 'mh-e
@@ -932,7 +929,7 @@ finally GNU mailutils."
                (mapconcat '(lambda (x) (format "%s" (car x)))
                           (mh-variants) " or "))))))
 
-(mh-defcustom mh-variant 'autodetect
+(defcustom-mh mh-variant 'autodetect
   "*Specifies the variant used by MH-E.
 
 The default setting of this option is \"Auto-detect\" which means
@@ -1017,7 +1014,7 @@ windows in the frame are removed."
 
 ;;; MH-E Customization Groups
 
-(mh-defgroup mh-e nil
+(defgroup-mh mh-e nil
   "Emacs interface to the MH mail system.
 MH is the Rand Mail Handler. Other implementations include nmh
 and GNU mailutils."
@@ -1025,126 +1022,126 @@ and GNU mailutils."
   :group 'mail
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-alias nil
+(defgroup-mh mh-alias nil
   "Aliases."
   :link '(custom-manual "(mh-e)Aliases")
   :prefix "mh-alias-"
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-folder nil
+(defgroup-mh mh-folder nil
   "Organizing your mail with folders."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Folders")
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-folder-selection nil
+(defgroup-mh mh-folder-selection nil
   "Folder selection."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Folder Selection")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-identity nil
+(defgroup-mh mh-identity nil
   "Identities."
   :link '(custom-manual "(mh-e)Identities")
   :prefix "mh-identity-"
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-inc nil
+(defgroup-mh mh-inc nil
   "Incorporating your mail."
   :prefix "mh-inc-"
   :link '(custom-manual "(mh-e)Incorporating Mail")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-junk nil
+(defgroup-mh mh-junk nil
   "Dealing with junk mail."
   :link '(custom-manual "(mh-e)Junk")
   :prefix "mh-junk-"
   :group 'mh-e
   :package-version '(MH-E . "7.3"))
 
-(mh-defgroup mh-letter nil
+(defgroup-mh mh-letter nil
   "Editing a draft."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Editing Drafts")
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-ranges nil
+(defgroup-mh mh-ranges nil
   "Ranges."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Ranges")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-scan-line-formats nil
+(defgroup-mh mh-scan-line-formats nil
   "Scan line formats."
   :link '(custom-manual "(mh-e)Scan Line Formats")
   :prefix "mh-"
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-search nil
+(defgroup-mh mh-search nil
   "Searching."
   :link '(custom-manual "(mh-e)Searching")
   :prefix "mh-search-"
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-sending-mail nil
+(defgroup-mh mh-sending-mail nil
   "Sending mail."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Sending Mail")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-sequences nil
+(defgroup-mh mh-sequences nil
   "Sequences."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Sequences")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-show nil
+(defgroup-mh mh-show nil
   "Reading your mail."
   :prefix "mh-"
   :link '(custom-manual "(mh-e)Reading Mail")
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-speedbar nil
+(defgroup-mh mh-speedbar nil
   "The speedbar."
   :prefix "mh-speed-"
   :link '(custom-manual "(mh-e)Speedbar")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-thread nil
+(defgroup-mh mh-thread nil
   "Threading."
   :prefix "mh-thread-"
   :link '(custom-manual "(mh-e)Threading")
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-tool-bar nil
+(defgroup-mh mh-tool-bar nil
   "The tool bar"
   :link '(custom-manual "(mh-e)Tool Bar")
   :prefix "mh-"
   :group 'mh-e
   :package-version '(MH-E . "8.0"))
 
-(mh-defgroup mh-hooks nil
+(defgroup-mh mh-hooks nil
   "MH-E hooks."
   :link '(custom-manual "(mh-e)Top")
   :prefix "mh-"
   :group 'mh-e
   :package-version '(MH-E . "7.1"))
 
-(mh-defgroup mh-faces nil
+(defgroup-mh mh-faces nil
   "Faces used in MH-E."
   :link '(custom-manual "(mh-e)Top")
   :prefix "mh-"
@@ -1160,7 +1157,7 @@ and GNU mailutils."
 
 ;;; Aliases (:group 'mh-alias)
 
-(mh-defcustom mh-alias-completion-ignore-case-flag t
+(defcustom-mh 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
@@ -1171,7 +1168,7 @@ lowercase for mailing lists and uppercase for people."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-expand-aliases-flag nil
+(defcustom-mh 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
@@ -1181,7 +1178,7 @@ this expansion is not performed."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-flash-on-comma t
+(defcustom-mh 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
@@ -1194,7 +1191,7 @@ does not display a warning if the alias is not found."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-insert-file nil
+(defcustom-mh mh-alias-insert-file nil
   "*Filename used to store a new MH-E alias.
 
 The default setting of this option is \"Use Aliasfile Profile
@@ -1208,7 +1205,7 @@ name, MH-E will prompt for one of them when MH-E adds an alias."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-insertion-location 'sorted
+(defcustom-mh 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
@@ -1220,8 +1217,8 @@ or \"Bottom\" of your alias file might be more appropriate."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-local-users t
-  "*If on, local users are added to alias completion.
+(defcustom-mh mh-alias-local-users t
+  "*Non-nil means 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
@@ -1241,7 +1238,7 @@ NIS password file."
   :group 'mh-alias
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-alias-local-users-prefix "local."
+(defcustom-mh mh-alias-local-users-prefix "local."
   "*String prefixed to the real names of users from the password file.
 This option can also be set to \"Use Login\".
 
@@ -1263,7 +1260,7 @@ turned off."
   :group 'mh-alias
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-alias-passwd-gecos-comma-separator-flag t
+(defcustom-mh 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
@@ -1277,7 +1274,7 @@ whose contents may contain commas, you can turn this option off."
 
 ;;; Organizing Your Mail with Folders (:group 'mh-folder)
 
-(mh-defcustom mh-new-messages-folders t
+(defcustom-mh mh-new-messages-folders t
   "Folders searched for the \"unseen\" sequence.
 
 Set this option to \"Inbox\" to search the \"+inbox\" folder or
@@ -1292,7 +1289,7 @@ See also `mh-recursive-folders-flag'."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-ticked-messages-folders t
+(defcustom-mh mh-ticked-messages-folders t
   "Folders searched for `mh-tick-seq'.
 
 Set this option to \"Inbox\" to search the \"+inbox\" folder or
@@ -1307,7 +1304,7 @@ See also `mh-recursive-folders-flag'."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-large-folder 200
+(defcustom-mh 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
@@ -1319,7 +1316,7 @@ folders are treated as if they are small."
   :group 'mh-folder
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-recenter-summary-flag nil
+(defcustom-mh 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
@@ -1328,13 +1325,13 @@ show window is toggled off."
   :group 'mh-folder
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-recursive-folders-flag nil
+(defcustom-mh mh-recursive-folders-flag nil
   "*Non-nil means that commands which operate on folders do so recursively."
   :type 'boolean
   :group 'mh-folder
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-sortm-args nil
+(defcustom-mh mh-sortm-args nil
   "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>.
 
 This option is consulted when a prefix argument is used with
@@ -1348,7 +1345,7 @@ an alternate view. For example, \"'(\"-nolimit\" \"-textfield\"
 
 ;;; Folder Selection (:group 'mh-folder-selection)
 
-(mh-defcustom mh-default-folder-for-message-function nil
+(defcustom-mh mh-default-folder-for-message-function nil
   "Function to select a default folder for refiling or \"Fcc:\".
 
 When this function is called, the current buffer contains the message
@@ -1360,7 +1357,7 @@ the default, or an empty string to suppress the default entirely."
   :group 'mh-folder-selection
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-default-folder-list nil
+(defcustom-mh mh-default-folder-list nil
   "*List of addresses and folders.
 
 The folder name associated with the first address found in this
@@ -1378,7 +1375,7 @@ for more information."
   :group 'mh-folder-selection
   :package-version '(MH-E . "7.2"))
 
-(mh-defcustom mh-default-folder-must-exist-flag t
+(defcustom-mh 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
@@ -1392,7 +1389,7 @@ for more information."
   :group 'mh-folder-selection
   :package-version '(MH-E . "7.2"))
 
-(mh-defcustom mh-default-folder-prefix ""
+(defcustom-mh mh-default-folder-prefix ""
   "*Prefix used for folder names generated from aliases.
 The prefix is used to prevent clutter in your mail directory.
 
@@ -1411,7 +1408,7 @@ for more information."
 Real definition will take effect when mh-identity is loaded."
       nil)))
 
-(mh-defcustom mh-identity-list nil
+(defcustom-mh mh-identity-list nil
   "*List of identities.
 
 To customize this option, click on the \"INS\" button and enter a label
@@ -1480,7 +1477,7 @@ fashion."
   :group 'mh-identity
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-auto-fields-list nil
+(defcustom-mh 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
@@ -1541,14 +1538,14 @@ as the result is undefined."
   :group 'mh-identity
   :package-version '(MH-E . "7.3"))
 
-(mh-defcustom mh-auto-fields-prompt-flag t
+(defcustom-mh mh-auto-fields-prompt-flag t
   "*Non-nil means to prompt before sending if fields inserted.
 See `mh-auto-fields-list'."
   :type 'boolean
   :group 'mh-identity
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-identity-default nil
+(defcustom-mh mh-identity-default nil
   "Default identity to use when `mh-letter-mode' is called.
 See `mh-identity-list'."
   :type (append
@@ -1559,7 +1556,7 @@ See `mh-identity-list'."
   :group 'mh-identity
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-identity-handlers
+(defcustom-mh mh-identity-handlers
   '(("From" . mh-identity-handler-top)
     (":default" . mh-identity-handler-bottom)
     (":attribution-verb" . mh-identity-handler-attribution-verb)
@@ -1595,7 +1592,7 @@ containing the VALUE for the field is given."
 
 ;;; Incorporating Your Mail (:group 'mh-inc)
 
-(mh-defcustom mh-inc-prog "inc"
+(defcustom-mh mh-inc-prog "inc"
   "*Program to incorporate new mail into a folder.
 
 This program generates a one-line summary for each of the new
@@ -1614,7 +1611,7 @@ several scan line format variables appropriately."
 Real definition will take effect when mh-inc is loaded."
       nil)))
 
-(mh-defcustom mh-inc-spool-list nil
+(defcustom-mh mh-inc-spool-list nil
   "*Alternate spool files.
 
 You can use the `mh-inc-spool-list' variable to direct MH-E to
@@ -1687,26 +1684,32 @@ The function is always called with SYMBOL bound to
                   until (executable-find (symbol-name (car element)))
                   finally return (car element)))))
 
-(mh-defcustom mh-junk-background nil
+(defcustom-mh 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."
+you might try turning on this option.
+
+Note that this option is used as the \"display\" argument in the
+call to `call-process'. Therefore, turning on this option means
+setting its value to \"0\". You can also set its value to t to
+direct the programs' output to the \"*MH-E Log*\" buffer; this
+may be useful for debugging."
   :type '(choice (const :tag "Off" nil)
                  (const :tag "On" 0))
   :group 'mh-junk
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-junk-disposition nil
+(defcustom-mh mh-junk-disposition nil
   "Disposition of junk mail."
   :type '(choice (const :tag "Delete Spam" nil)
                  (string :tag "Spam Folder"))
   :group 'mh-junk
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-junk-program nil
+(defcustom-mh mh-junk-program nil
   "Spam program that MH-E should use.
 
 The default setting of this option is \"Auto-detect\" which means
@@ -1724,7 +1727,7 @@ bogofilter, then you can set this option to \"Bogofilter\"."
 
 ;;; Editing a Draft (:group 'mh-letter)
 
-(mh-defcustom mh-compose-insertion (if (locate-library "mml") 'mml 'mh)
+(defcustom-mh 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
@@ -1738,7 +1741,7 @@ MH-style directives are preferred."
   :group 'mh-letter
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-compose-skipped-header-fields
+(defcustom-mh mh-compose-skipped-header-fields
   '("From" "Organization" "References" "In-Reply-To"
     "X-Face" "Face" "X-Image-URL" "X-Mailer")
   "List of header fields to skip over when navigating in draft."
@@ -1746,13 +1749,13 @@ MH-style directives are preferred."
   :group 'mh-letter
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-compose-space-does-completion-flag nil
+(defcustom-mh mh-compose-space-does-completion-flag nil
   "*Non-nil means \\<mh-letter-mode-map>\\[mh-letter-complete-or-space] does completion in message header."
   :type 'boolean
   :group 'mh-letter
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-delete-yanked-msg-window-flag nil
+(defcustom-mh 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
@@ -1762,7 +1765,7 @@ more room on your screen for your reply."
   :group 'mh-letter
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-extract-from-attribution-verb "wrote:"
+(defcustom-mh 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
@@ -1776,7 +1779,7 @@ followed by the content of this option. This option can be set to
   :group 'mh-letter
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-ins-buf-prefix "> "
+(defcustom-mh 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
@@ -1792,7 +1795,7 @@ flavors of `mh-yank-behavior' or you have added a
   :group 'mh-letter
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-letter-complete-function 'ispell-complete-word
+(defcustom-mh mh-letter-complete-function 'ispell-complete-word
   "*Function to call when completing outside of address or folder fields.
 
 In the body of the message,
@@ -1802,7 +1805,7 @@ which is set to \"ispell-complete-word\" by default."
   :group 'mh-letter
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-letter-fill-column 72
+(defcustom-mh 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
@@ -1811,7 +1814,7 @@ message without line wrapping."
   :group 'mh-letter
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none")
+(defcustom-mh 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
@@ -1834,7 +1837,7 @@ you write!"
   :group 'mh-letter
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-signature-file-name "~/.signature"
+(defcustom-mh mh-signature-file-name "~/.signature"
   "*Source of user's signature.
 
 By default, the text of your signature is taken from the file
@@ -1857,7 +1860,7 @@ The signature is inserted into your message with the command
   :group 'mh-letter
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-signature-separator-flag t
+(defcustom-mh 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
@@ -1868,7 +1871,7 @@ replying or yanking a letter into a draft."
   :group 'mh-letter
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-x-face-file "~/.face"
+(defcustom-mh 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:\"
@@ -1897,7 +1900,7 @@ this option doesn't exist."
   :group 'mh-letter
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-yank-behavior 'attribution
+(defcustom-mh 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
@@ -1944,7 +1947,7 @@ inserted."
 
 ;;; Ranges (:group 'mh-ranges)
 
-(mh-defcustom mh-interpret-number-as-range-flag t
+(defcustom-mh 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
@@ -1964,7 +1967,7 @@ message 200, then use the range \"200:200\"."
 Real definition, below, uses variables that aren't defined yet."
       (set-default symbol value))))
 
-(mh-defcustom mh-adaptive-cmd-note-flag t
+(defcustom-mh 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,
@@ -1993,7 +1996,7 @@ set SYMBOL to VALUE."
              "unless you use \"Use MH-E scan Format\"")
     (set-default symbol value)))
 
-(mh-defcustom mh-scan-format-file t
+(defcustom-mh 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
@@ -2032,7 +2035,7 @@ Otherwise, set SYMBOL to VALUE."
              "is set to \"Use MH-E scan Format\"")
     (set-default symbol value)))
 
-(mh-defcustom mh-scan-prog "scan"
+(defcustom-mh mh-scan-prog "scan"
   "*Program used to scan messages.
 
 The name of the program that generates a listing of one line per
@@ -2047,7 +2050,7 @@ directory. You may link another program to `scan' (see
 
 ;;; Searching (:group 'mh-search)
 
-(mh-defcustom mh-search-program nil
+(defcustom-mh mh-search-program nil
   "Search program that MH-E shall use.
 
 The default setting of this option is \"Auto-detect\" which means
@@ -2070,7 +2073,7 @@ MH-E can be found in the documentation of `mh-search'."
 
 ;;; Sending Mail (:group 'mh-sending-mail)
 
-(mh-defcustom mh-compose-forward-as-mime-flag t
+(defcustom-mh 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
@@ -2086,7 +2089,7 @@ regardless of the settings of this option."
   :group 'mh-sending-mail
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-compose-letter-function nil
+(defcustom-mh mh-compose-letter-function nil
   "Invoked when starting a new draft.
 
 However, it is the last function called before you edit your
@@ -2098,13 +2101,13 @@ fields."
   :group 'mh-sending-mail
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-compose-prompt-flag nil
+(defcustom-mh mh-compose-prompt-flag nil
   "*Non-nil means prompt for header fields when composing a new draft."
   :type 'boolean
   :group 'mh-sending-mail
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-forward-subject-format "%s: %s"
+(defcustom-mh mh-forward-subject-format "%s: %s"
   "*Format string for forwarded message subject.
 
 This option is a string which includes two escapes (\"%s\"). The
@@ -2114,7 +2117,7 @@ and the second one is replaced with the original \"Subject:\"."
   :group 'mh-sending-mail
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-insert-x-mailer-flag t
+(defcustom-mh 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
@@ -2124,7 +2127,7 @@ can turn this option off."
   :group 'mh-sending-mail
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-redist-full-contents-flag nil
+(defcustom-mh 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
@@ -2136,7 +2139,7 @@ has been redistributed before, turn off this option."
   :group 'mh-sending-mail
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-reply-default-reply-to nil
+(defcustom-mh 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
@@ -2152,7 +2155,7 @@ this option to \"cc\". Other choices include \"from\", \"to\", or
   :group 'mh-sending-mail
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-reply-show-message-flag t
+(defcustom-mh 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
@@ -2169,7 +2172,7 @@ See also `mh-reply'."
 ;; the docstring: "Additional sequences that should not to be preserved can be
 ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX
 
-(mh-defcustom mh-refile-preserves-sequences-flag t
+(defcustom-mh 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:\"
@@ -2180,7 +2183,7 @@ desired, then turn off this option."
   :group 'mh-sequences
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-tick-seq 'tick
+(defcustom-mh mh-tick-seq 'tick
   "The name of the MH sequence for ticked messages.
 
 You can customize this option if you already use the \"tick\"
@@ -2192,7 +2195,7 @@ there isn't much advantage to that."
   :group 'mh-sequences
   :package-version '(MH-E . "7.3"))
 
-(mh-defcustom mh-update-sequences-after-mh-show-flag t
+(defcustom-mh mh-update-sequences-after-mh-show-flag t
   "*Non-nil means flush MH sequences to disk after message is shown\\<mh-folder-mode-map>.
 
 Three sequences are maintained internally by MH-E and pushed out
@@ -2209,7 +2212,7 @@ commands."
 
 ;;; Reading Your Mail (:group 'mh-show)
 
-(mh-defcustom mh-bury-show-buffer-flag t
+(defcustom-mh 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
@@ -2220,7 +2223,7 @@ running \\[electric-buffer-list] to see what I mean."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-clean-message-header-flag t
+(defcustom-mh mh-clean-message-header-flag t
   "*Non-nil means remove extraneous header fields.
 
 See also `mh-invisible-header-fields-default' and
@@ -2229,7 +2232,7 @@ See also `mh-invisible-header-fields-default' and
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-decode-mime-flag (not (not (locate-library "mm-decode")))
+(defcustom-mh 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'
@@ -2247,7 +2250,7 @@ messages and other graphical widgets. See the options
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-display-buttons-for-alternatives-flag nil
+(defcustom-mh 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
@@ -2259,7 +2262,7 @@ inline and buttons are shown for each of the other alternatives."
   :group 'mh-show
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-display-buttons-for-inline-parts-flag nil
+(defcustom-mh 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
@@ -2282,7 +2285,7 @@ text (including HTML) and images."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-do-not-confirm-flag nil
+(defcustom-mh 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
@@ -2294,7 +2297,7 @@ retracted--without question."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-fetch-x-image-url nil
+(defcustom-mh 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
@@ -2330,7 +2333,7 @@ turned on."
   :group 'mh-show
   :package-version '(MH-E . "7.3"))
 
-(mh-defcustom mh-graphical-smileys-flag t
+(defcustom-mh mh-graphical-smileys-flag t
   "*Non-nil means graphical smileys are displayed.
 
 It is a long standing custom to inject body language using a
@@ -2345,7 +2348,7 @@ turned off."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-graphical-emphasis-flag t
+(defcustom-mh mh-graphical-emphasis-flag t
   "*Non-nil means graphical emphasis is displayed.
 
 A few typesetting features are indicated in ASCII text with
@@ -2362,7 +2365,7 @@ turned off."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-highlight-citation-style 'gnus
+(defcustom-mh mh-highlight-citation-style 'gnus
   "Style for highlighting citations.
 
 If the sender of the message has cited other messages in his
@@ -2526,6 +2529,7 @@ of citations entirely, choose \"None\"."
     "X-Originating-IP:"                 ; Hotmail
     "X-Postfilter:"
     "X-Priority:"                       ; MS Outlook
+    "X-Provags-ID:"
     "X-Qotd-"                           ; User added
     "X-RM"
     "X-Received-Date:"
@@ -2589,7 +2593,7 @@ Because the function `mh-invisible-headers' uses both
 `mh-invisible-header-fields' and `mh-invisible-header-fields', it
 cannot be run until both variables have been initialized.")
 
-(mh-defcustom mh-invisible-header-fields nil
+(defcustom-mh mh-invisible-header-fields nil
   "*Additional header fields to hide.
 
 Header fields that you would like to hide that aren't listed in
@@ -2610,7 +2614,7 @@ See also `mh-clean-message-header-flag'."
   :group 'mh-show
   :package-version '(MH-E . "7.1"))
 
-(mh-defcustom mh-invisible-header-fields-default nil
+(defcustom-mh mh-invisible-header-fields-default nil
   "*List of hidden header fields.
 
 The header fields listed in this option are hidden, although you
@@ -2663,7 +2667,7 @@ removed and entries from `mh-invisible-header-fields' are added."
 ;; Compile invisible header fields.
 (mh-invisible-headers)
 
-(mh-defcustom mh-lpr-command-format "lpr -J '%s'"
+(defcustom-mh 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
@@ -2680,7 +2684,7 @@ This options is not used by the commands \\[mh-ps-print-msg] or
   :group 'mh-show
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-max-inline-image-height nil
+(defcustom-mh 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
@@ -2696,7 +2700,7 @@ these numbers."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-max-inline-image-width nil
+(defcustom-mh 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
@@ -2712,7 +2716,7 @@ these numbers."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-mhl-format-file nil
+(defcustom-mh 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
@@ -2736,7 +2740,7 @@ file."
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-mime-save-parts-default-directory t
+(defcustom-mh 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
@@ -2752,7 +2756,7 @@ directory's name."
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-print-background-flag nil
+(defcustom-mh 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
@@ -2768,7 +2772,7 @@ This option is not used by the commands \\[mh-ps-print-msg] or
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-show-maximum-size 0
+(defcustom-mh mh-show-maximum-size 0
   "*Maximum size of message (in bytes) to display automatically.
 
 This option provides an opportunity to skip over large messages
@@ -2778,7 +2782,7 @@ message are shown regardless of size."
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-show-use-xface-flag (>= emacs-major-version 21)
+(defcustom-mh 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
@@ -2818,7 +2822,7 @@ The option `mh-fetch-x-image-url' controls the fetching of the
   :group 'mh-show
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-store-default-directory nil
+(defcustom-mh 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,
@@ -2830,7 +2834,7 @@ the content of these messages."
   :group 'mh-show
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-summary-height nil
+(defcustom-mh 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
@@ -2845,7 +2849,7 @@ lines you'd like to see."
 
 ;;; The Speedbar (:group 'mh-speedbar)
 
-(mh-defcustom mh-speed-update-interval 60
+(defcustom-mh mh-speed-update-interval 60
   "Time between speedbar updates in seconds.
 Set to 0 to disable automatic update."
   :type 'integer
@@ -2854,7 +2858,7 @@ Set to 0 to disable automatic update."
 
 ;;; Threading (:group 'mh-thread)
 
-(mh-defcustom mh-show-threads-flag nil
+(defcustom-mh 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
@@ -2870,7 +2874,7 @@ threaded is less than `mh-large-folder'."
 ;; mh-tool-bar-folder-buttons and mh-tool-bar-letter-buttons defined
 ;; dynamically in mh-tool-bar.el.
 
-(mh-defcustom mh-tool-bar-search-function 'mh-search
+(defcustom-mh mh-tool-bar-search-function 'mh-search
   "*Function called by the tool bar search button.
 
 By default, this is set to `mh-search'. You can also choose
@@ -2883,7 +2887,7 @@ of your own choosing."
 
 ;; XEmacs has a couple of extra customizations...
 (mh-do-in-xemacs
-  (mh-defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag
+  (defcustom-mh 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
@@ -2899,7 +2903,7 @@ won't be able to turn on this option."
            (set-default symbol value))
     :package-version '(MH-E . "7.3"))
 
-  (mh-defcustom mh-xemacs-tool-bar-position nil
+  (defcustom-mh mh-xemacs-tool-bar-position nil
     "*Tool bar location.
 
 This option controls the placement of the tool bar along the four
@@ -2921,7 +2925,7 @@ default tool bar."
 
 ;;; Hooks (:group 'mh-hooks + group where hook described)
 
-(mh-defcustom mh-after-commands-processed-hook nil
+(defcustom-mh mh-after-commands-processed-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding refile and delete requests.
 
 Variables that are useful in this hook include
@@ -2933,14 +2937,14 @@ folder, which is also available in `mh-current-folder'."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-alias-reloaded-hook nil
+(defcustom-mh mh-alias-reloaded-hook nil
   "Hook run by `mh-alias-reload' after loading aliases."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-alias
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-before-commands-processed-hook nil
+(defcustom-mh mh-before-commands-processed-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding refile and delete requests.
 
 Variables that are useful in this hook include `mh-delete-list'
@@ -2951,7 +2955,7 @@ be made to the current folder, `mh-current-folder'."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-before-quit-hook nil
+(defcustom-mh 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
@@ -2964,7 +2968,7 @@ See also `mh-quit-hook'."
   :group 'mh-folder
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-before-send-letter-hook nil
+(defcustom-mh 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
@@ -2975,7 +2979,7 @@ before sending, add the `ispell-message' function."
   :group 'mh-letter
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-delete-msg-hook nil
+(defcustom-mh 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
@@ -2985,7 +2989,7 @@ kept statistics on his mail usage."
   :group 'mh-show
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-find-path-hook nil
+(defcustom-mh mh-find-path-hook nil
   "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
@@ -2996,28 +3000,28 @@ between MH and MH-E."
   :group 'mh-e
   :package-version '(MH-E . "7.0"))
 
-(mh-defcustom mh-folder-mode-hook nil
+(defcustom-mh mh-folder-mode-hook nil
   "Hook run by `mh-folder-mode' when visiting a new folder."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-forward-hook nil
+(defcustom-mh mh-forward-hook nil
   "Hook run by `mh-forward' on a forwarded letter."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-sending-mail
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-inc-folder-hook nil
+(defcustom-mh mh-inc-folder-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-inc-folder] after incorporating mail into a folder."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-inc
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-insert-signature-hook nil
+(defcustom-mh 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
@@ -3028,7 +3032,7 @@ function used to insert the signature with
   :group 'mh-letter
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-kill-folder-suppress-prompt-hooks '(mh-search-p)
+(defcustom-mh mh-kill-folder-suppress-prompt-hooks '(mh-search-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
@@ -3046,7 +3050,7 @@ accident in the \"+inbox\" folder, you will not be happy."
   :group 'mh-folder
   :package-version '(MH-E . "7.4"))
 
-(mh-defcustom mh-letter-mode-hook nil
+(defcustom-mh 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
@@ -3059,14 +3063,14 @@ go."
   :group 'mh-sending-mail
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-mh-to-mime-hook nil
+(defcustom-mh mh-mh-to-mime-hook nil
   "Hook run on the formatted letter by \\<mh-letter-mode-map>\\[mh-mh-to-mime]."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-letter
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-search-mode-hook nil
+(defcustom-mh mh-search-mode-hook nil
   "Hook run upon entry to `mh-search-mode'\\<mh-folder-mode-map>.
 
 If you find that you do the same thing over and over when editing
@@ -3078,7 +3082,7 @@ This can be done with this hook which is called when
   :group 'mh-search
   :package-version '(MH-E . "8.0"))
 
-(mh-defcustom mh-quit-hook nil
+(defcustom-mh 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
@@ -3090,14 +3094,14 @@ See also `mh-before-quit-hook'."
   :group 'mh-folder
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-refile-msg-hook nil
+(defcustom-mh mh-refile-msg-hook nil
   "Hook run by \\<mh-folder-mode-map>\\[mh-refile-msg] after marking each message for refiling."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-show-hook nil
+(defcustom-mh 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
@@ -3108,7 +3112,7 @@ used to affect the behavior of MH-E in general or when
   :group 'mh-show
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-show-mode-hook nil
+(defcustom-mh 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
@@ -3119,7 +3123,7 @@ message's content. See `mh-show-hook'."
   :group 'mh-show
   :package-version '(MH-E . "6.0"))
 
-(mh-defcustom mh-unseen-updated-hook nil
+(defcustom-mh 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
@@ -3139,7 +3143,7 @@ sequence."
 
 ;; To add a new face:
 ;; 1. Add entry to variable mh-face-data.
-;; 2. Create face using mh-defface (which removes min-color spec and
+;; 2. Create face using defface-mh (which removes min-color spec and
 ;;    :package-version keyword where these are not supported),
 ;;    accessing face data with function mh-face-data.
 ;; 3. Add inherit argument to function mh-face-data if applicable.
@@ -3288,7 +3292,7 @@ sequence."
        (:underline t)))))
   "MH-E face data.
 Used by function `mh-face-data' which returns spec that is
-consumed by `mh-defface'.")
+consumed by `defface-mh'.")
 
 (require 'cus-face)
 
@@ -3341,14 +3345,14 @@ specified colors."
                   (setq new-spec (cons entry new-spec)))))
         new-spec))))
 
-(mh-defface mh-folder-address
+(defface-mh mh-folder-address
   (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
   "Recipient face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-body
+(defface-mh mh-folder-body
   (mh-face-data 'mh-folder-msg-number
                 '((((class color))
                    (:inherit mh-folder-msg-number))
@@ -3359,7 +3363,7 @@ specified colors."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-cur-msg-number
+(defface-mh mh-folder-cur-msg-number
   (mh-face-data 'mh-folder-msg-number
                 '((t (:inherit mh-folder-msg-number :bold t))))
   "Current message number face."
@@ -3367,39 +3371,39 @@ specified colors."
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-date
+(defface-mh mh-folder-date
   (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number))))
   "Date face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-deleted
+(defface-mh mh-folder-deleted
   (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number))))
   "Deleted message face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-followup (mh-face-data 'mh-folder-followup)
+(defface-mh mh-folder-followup (mh-face-data 'mh-folder-followup)
   "\"Re:\" face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-msg-number (mh-face-data 'mh-folder-msg-number)
+(defface-mh mh-folder-msg-number (mh-face-data 'mh-folder-msg-number)
   "Message number face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-refiled (mh-face-data 'mh-folder-refiled)
+(defface-mh mh-folder-refiled (mh-face-data 'mh-folder-refiled)
   "Refiled message face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-sent-to-me-hint
+(defface-mh mh-folder-sent-to-me-hint
   (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-date))))
   "Fontification hint face in messages sent directly to us.
 The detection of messages sent to us is governed by the scan
@@ -3409,7 +3413,7 @@ format `mh-scan-format-nmh' and the regular expression
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-sent-to-me-sender
+(defface-mh mh-folder-sent-to-me-sender
   (mh-face-data 'mh-folder-followup '((t (:inherit mh-folder-followup))))
   "Sender face in messages sent directly to us.
 The detection of messages sent to us is governed by the scan
@@ -3419,98 +3423,98 @@ format `mh-scan-format-nmh' and the regular expression
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-subject (mh-face-data 'mh-folder-subject)
+(defface-mh mh-folder-subject (mh-face-data 'mh-folder-subject)
   "Subject face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-tick (mh-face-data 'mh-folder-tick)
+(defface-mh mh-folder-tick (mh-face-data 'mh-folder-tick)
   "Ticked message face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-folder-to (mh-face-data 'mh-folder-to)
+(defface-mh mh-folder-to (mh-face-data 'mh-folder-to)
   "\"To:\" face."
   :group 'mh-faces
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-letter-header-field (mh-face-data 'mh-letter-header-field)
+(defface-mh mh-letter-header-field (mh-face-data 'mh-letter-header-field)
   "Editable header field value face in draft buffers."
   :group 'mh-faces
   :group 'mh-letter
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-search-folder (mh-face-data 'mh-search-folder)
+(defface-mh mh-search-folder (mh-face-data 'mh-search-folder)
   "Folder heading face in MH-Folder buffers created by searches."
   :group 'mh-faces
   :group 'mh-search
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-cc (mh-face-data 'mh-show-cc)
+(defface-mh mh-show-cc (mh-face-data 'mh-show-cc)
   "Face used to highlight \"cc:\" header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-date (mh-face-data 'mh-show-date)
+(defface-mh mh-show-date (mh-face-data 'mh-show-date)
   "Face used to highlight \"Date:\" header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-from (mh-face-data 'mh-show-from)
+(defface-mh mh-show-from (mh-face-data 'mh-show-from)
   "Face used to highlight \"From:\" header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-header (mh-face-data 'mh-show-header)
+(defface-mh mh-show-header (mh-face-data 'mh-show-header)
   "Face used to deemphasize less interesting header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-pgg-bad (mh-face-data 'mh-show-pgg-bad)
+(defface-mh mh-show-pgg-bad (mh-face-data 'mh-show-pgg-bad)
   "Bad PGG signature face."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-pgg-good (mh-face-data 'mh-show-pgg-good)
+(defface-mh mh-show-pgg-good (mh-face-data 'mh-show-pgg-good)
   "Good PGG signature face."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-pgg-unknown (mh-face-data 'mh-show-pgg-unknown)
+(defface-mh mh-show-pgg-unknown (mh-face-data 'mh-show-pgg-unknown)
   "Unknown or untrusted PGG signature face."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-signature (mh-face-data 'mh-show-signature)
+(defface-mh mh-show-signature (mh-face-data 'mh-show-signature)
   "Signature face."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-subject
+(defface-mh mh-show-subject
   (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
   "Face used to highlight \"Subject:\" header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-to (mh-face-data 'mh-show-to)
+(defface-mh mh-show-to (mh-face-data 'mh-show-to)
   "Face used to highlight \"To:\" header fields."
   :group 'mh-faces
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-show-xface
+(defface-mh mh-show-xface
   (mh-face-data 'mh-show-from '((t (:inherit (mh-show-from highlight)))))
 "X-Face image face.
 The background and foreground are used in the image."
@@ -3518,13 +3522,13 @@ The background and foreground are used in the image."
   :group 'mh-show
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-speedbar-folder (mh-face-data 'mh-speedbar-folder)
+(defface-mh mh-speedbar-folder (mh-face-data 'mh-speedbar-folder)
   "Basic folder face."
   :group 'mh-faces
   :group 'mh-speedbar
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-speedbar-folder-with-unseen-messages
+(defface-mh mh-speedbar-folder-with-unseen-messages
   (mh-face-data 'mh-speedbar-folder
                 '((t (:inherit mh-speedbar-folder :bold t))))
   "Folder face when folder contains unread messages."
@@ -3532,14 +3536,14 @@ The background and foreground are used in the image."
   :group 'mh-speedbar
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-speedbar-selected-folder
+(defface-mh mh-speedbar-selected-folder
   (mh-face-data 'mh-speedbar-selected-folder)
   "Selected folder face."
   :group 'mh-faces
   :group 'mh-speedbar
   :package-version '(MH-E . "8.0"))
 
-(mh-defface mh-speedbar-selected-folder-with-unseen-messages
+(defface-mh mh-speedbar-selected-folder-with-unseen-messages
   (mh-face-data 'mh-speedbar-selected-folder
                 '((t (:inherit mh-speedbar-selected-folder :bold t))))
   "Selected folder face when folder contains unread messages."
@@ -3547,16 +3551,6 @@ The background and foreground are used in the image."
   :group 'mh-speedbar
   :package-version '(MH-E . "8.0"))
 
-;; Get rid of temporary functions and data structures.
-(fmakunbound 'mh-defcustom)
-(fmakunbound 'mh-defface)
-(fmakunbound 'mh-defgroup)
-(fmakunbound 'mh-face-data)
-(fmakunbound 'mh-strip-package-version)
-(makunbound 'mh-face-data)
-(makunbound 'mh-inherit-face-flag)
-(makunbound 'mh-min-colors-defined-flag)
-
 (provide 'mh-e)
 
 ;; Local Variables: