• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/mh-e/

Lines Matching +defs:mh +defs:alias +defs:expand +defs:aliases +defs:flag

0 ;;; mh-e.el --- GNU Emacs interface to the MH mail system
39 ;; http://rand-mh.sourceforge.net/.
41 ;; N.B. MH must have been compiled with the MHE compiler flag or several
46 ;; M-x mh-rmail to read mail. Type C-h m there for a list of commands.
47 ;; C-u M-x mh-rmail to visit any folder.
48 ;; M-x mh-smail to send mail. From within the mail reader, "s" works, too.
51 ;; (global-set-key "\C-cr" 'mh-rmail)
52 ;; (global-set-key "\C-xm" 'mh-smail)
53 ;; (global-set-key "\C-x4m" 'mh-smail-other-window)
55 ;; If Emacs can't find mh-rmail or mh-smail, add the following to ~/.emacs:
56 ;; (require 'mh-autoloads)
59 ;; (require 'mh-cus-load)
62 ;; mh-e-users@lists.sourceforge.net
63 ;; mh-e-announce@lists.sourceforge.net
64 ;; mh-e-devel@lists.sourceforge.net
72 ;; Include the output of M-x mh-version in the bug report unless
88 ;; SourceForge Crew <http://mh-e.sourceforge.net/>, 2001.
92 ;; Provide functions to the rest of MH-E. However, mh-e.el must not
93 ;; use any definitions in files that require mh-e from mh-loaddefs,
95 (require 'mh-loaddefs)
97 (mh-require-cl)
99 (require 'mh-buffers)
100 (require 'mh-compat)
103 (defvar mh-xemacs-flag (featurep 'xemacs)
106 (mh-do-in-xemacs
107 (require 'mh-xemacs))
109 (mh-font-lock-add-keywords
114 "\\(def\\(un\\|macro\\)-mh\\)\\|"
116 "\\(def\\(custom\\|face\\)-mh\\)\\|"
118 "\\(defgroup-mh\\)"
137 (defconst mh-version "8.0.3" "Version number of MH-E.")
141 (defvar mh-sys-path
143 "/usr/local/bin/mh/"
144 "/usr/local/mh/"
145 "/usr/bin/mh/" ; Ultrix 4.2, Linux
146 "/usr/new/mh/" ; Ultrix < 4.2
147 "/usr/contrib/mh/bin/" ; BSDI
150 "/usr/local/bin/mu-mh/" ; GNU mailutils - default
151 "/usr/bin/mu-mh/") ; GNU mailutils - packaged
155 directories to the customizable variable `mh-path'.")
157 (defvar mh-variants nil
160 Use the function `mh-variants' instead.")
162 (defvar mh-variant-in-use nil
164 This differs from `mh-variant' when the latter is set to
167 (defvar mh-progs nil
171 (put 'mh-progs 'risky-local-variable t)
173 (defvar mh-lib nil
178 (put 'mh-lib 'risky-local-variable t)
180 (defvar mh-lib-progs nil
185 (put 'mh-lib-progs 'risky-local-variable t)
189 (defvar mh-draft-folder nil
194 (defvar mh-inbox nil
199 (defvar mh-user-path nil
205 (defvar mh-folder-mode-map (make-keymap)
208 (defvar mh-folder-seq-tool-bar-map nil
211 (defvar mh-folder-tool-bar-map nil
214 (defvar mh-inc-spool-map (make-sparse-keymap)
215 "Keymap for MH-E's mh-inc-spool commands.")
217 (defvar mh-letter-mode-map (copy-keymap text-mode-map)
220 (defvar mh-letter-tool-bar-map nil
223 (defvar mh-search-mode-map (make-sparse-keymap)
226 (defvar mh-show-mode-map (make-sparse-keymap)
229 (defvar mh-show-seq-tool-bar-map nil
232 (defvar mh-show-tool-bar-map nil
237 (defvar mh-arrow-marker nil
240 (defvar mh-colors-available-flag nil
243 (defvar mh-current-folder nil
246 (defvar mh-delete-list nil
249 `mh-before-commands-processed-hook'.")
251 (defvar mh-folder-view-stack nil
254 (defvar mh-index-data nil
257 (defvar mh-index-previous-search nil)
259 (defvar mh-index-msg-checksum-map nil)
261 (defvar mh-index-checksum-origin-map nil)
263 (defvar mh-index-sequence-search-flag nil)
265 (defvar mh-mode-line-annotation nil
268 (defvar mh-next-direction 'forward
271 (defvar mh-previous-window-config nil
274 (defvar mh-refile-list nil
275 "List of folder names in `mh-seq-list'.
277 `mh-before-commands-processed-hook'.")
279 (defvar mh-seen-list nil
282 (defvar mh-seq-list nil
286 (defvar mh-sequence-notation-history nil
287 "Remember original notation that is overwritten by `mh-note-seq'.")
289 (defvar mh-show-buffer nil
292 (defvar mh-showing-mode nil
295 (defvar mh-view-ops nil
301 (defvar mh-globals-hash (make-hash-table)
304 (defvar mh-show-folder-buffer nil
309 (defvar mh-folders-changed nil
312 `mh-current-folder'. This variable can be used by
313 `mh-after-commands-processed-hook'.")
315 (defvar mh-mail-header-separator "--------"
321 `mh-mail-header-separator' in `mh-letter-mode'; in other
328 (defvar mh-sent-from-folder nil
331 (defvar mh-sent-from-msg nil
336 (defvar mh-unseen-seq nil
340 (defvar mh-previous-seq nil
346 (defvar mh-flists-present-flag nil
349 (defvar mh-index-data-file ".mhe_index"
352 (defvar mh-letter-header-field-regexp "^\\([A-Za-z][A-Za-z0-9-]*\\):")
354 (defvar mh-page-to-next-msg-flag nil
357 (defvar mh-pgp-support-flag (not (not (locate-library "mml2015")))
360 (defvar mh-signature-separator "-- \n"
366 of the signature in a reply. Use `mh-signature-separator-regexp'
369 (defvar mh-signature-separator-regexp "^-- $"
371 See `mh-signature-separator'.")
373 (defvar mh-thread-scan-line-map nil
375 (make-variable-buffer-local 'mh-thread-scan-line-map)
377 (defvar mh-thread-scan-line-map-stack nil
381 (make-variable-buffer-local 'mh-thread-scan-line-map-stack)
383 (defvar mh-x-mailer-string nil
395 (defmacro mh-macro-expansion-time-gnus-version ()
401 (defun mh-run-time-gnus-version ()
407 (defun mh-version ()
410 (set-buffer (get-buffer-create mh-info-buffer))
413 (insert "MH-E " mh-version "\n\n")
416 (let* ((compiled-mhe (byte-code-function-p (symbol-function 'mh-version)))
418 (mh-macro-expansion-time-gnus-version)
422 " Gnus (run-time):\t" (mh-run-time-gnus-version) "\n\n"))
426 (if mh-variant-in-use
427 (insert mh-variant-in-use "\n"
428 " mh-progs:\t" mh-progs "\n"
429 " mh-lib:\t" mh-lib "\n"
430 " mh-lib-progs:\t" mh-lib-progs "\n\n")
437 (display-buffer mh-info-buffer))
444 (defun mh-list-to-string (l)
446 (nreverse (mh-list-to-string-1 l)))
448 (defun mh-list-to-string-1 (l)
461 (setq new-list (nconc (mh-list-to-string-1 element) new-list)))
471 (defvar mh-index-max-cmdline-args 500
474 (defun mh-xargs (cmd &rest args)
478 `mh-index-max-cmdline-args' strings to it. This is repeated till
488 (while (and (not (eobp)) (< count mh-index-max-cmdline-args))
490 (mh-line-end-position))
500 (defun mh-quote-for-shell (string)
509 (defun mh-exec-cmd (command &rest args)
510 "Execute mh-command COMMAND with ARGS.
515 (set-buffer (get-buffer-create mh-log-buffer))
516 (let* ((initial-size (mh-truncate-log-buffer))
518 (args (mh-list-to-string args)))
519 (apply 'call-process (expand-file-name command mh-progs) nil t nil args)
527 (switch-to-buffer-other-window mh-log-buffer)
530 (defun mh-exec-cmd-error (env command &rest args)
531 "In environment ENV, execute mh-command COMMAND with ARGS.
535 (set-buffer (get-buffer-create mh-temp-buffer))
543 (mh-handle-process-error
544 command (apply #'call-process (expand-file-name command mh-progs)
545 nil t nil (mh-list-to-string args))))))
547 (defun mh-exec-cmd-daemon (command filter &rest args)
551 otherwise the default filter `mh-process-daemon' is used. See
556 (set-buffer (get-buffer-create mh-log-buffer))
557 (mh-truncate-log-buffer))
561 (expand-file-name command mh-progs)
562 (mh-list-to-string args))))
563 (set-process-filter process (or filter 'mh-process-daemon))
566 (defun mh-exec-cmd-env-daemon (env command filter &rest args)
567 "In ennvironment ENV, execute mh-command COMMAND in the background.
573 otherwise the default filter `mh-process-daemon' is used. See
580 (apply #'mh-exec-cmd-daemon command filter args)))
582 (defun mh-process-daemon (process output)
586 (with-current-buffer (get-buffer-create mh-log-buffer)
588 (display-buffer mh-log-buffer)))
590 (defun mh-exec-cmd-quiet (raise-error command &rest args)
593 Return at start of mh-temp buffer, where output can be parsed and
598 (set-buffer (get-buffer-create mh-temp-buffer))
602 (expand-file-name command mh-progs) nil t nil
606 (mh-handle-process-error command value)
609 (defun mh-exec-cmd-output (command display &rest args)
610 "Execute MH command COMMAND with DISPLAY flag and ARGS.
616 (expand-file-name command mh-progs) nil t display
617 (mh-list-to-string args))
624 (mh-exchange-point-and-mark-preserving-active-mark))
629 (defun mh-exchange-point-and-mark-preserving-active-mark ()
644 (defun mh-exec-lib-cmd-output (command &rest args)
648 (apply 'mh-exec-cmd-output (expand-file-name command mh-lib-progs) nil args))
650 (defun mh-handle-process-error (command status)
660 (set-buffer (get-buffer-create mh-log-buffer))
661 (mh-truncate-log-buffer)
664 command mh-log-buffer)))
676 (defmacro mh-strip-package-version (args)
689 (defmacro defgroup-mh (symbol members doc &rest args)
696 `(defgroup ,symbol ,members ,doc ,@(mh-strip-package-version args)))
697 (put 'defgroup-mh 'lisp-indent-function 'defun)
699 (defmacro defcustom-mh (symbol value doc &rest args)
706 `(defcustom ,symbol ,value ,doc ,@(mh-strip-package-version args)))
707 (put 'defcustom-mh 'lisp-indent-function 'defun)
709 (defmacro defface-mh (face spec doc &rest args)
716 `(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
717 (put 'defface-mh 'lisp-indent-function 'defun)
724 (defcustom-mh mh-path nil
726 See `mh-variant'."
727 :group 'mh-e
731 (defun mh-variants ()
733 This function looks for MH in `mh-sys-path', `mh-path' and
735 is described by the variable `mh-variants'."
736 (if mh-variants
737 mh-variants
741 (loop for dir in (append mh-path mh-sys-path exec-path) do
746 (let ((variant (mh-variant-info dir)))
748 (add-to-list 'mh-variants variant)))))
749 mh-variants)))
751 (defun mh-variant-info (dir)
754 (let ((tmp-buffer (get-buffer-create mh-temp-buffer)))
757 ((mh-variant-mh-info dir))
758 ((mh-variant-nmh-info dir))
759 ((mh-variant-mu-mh-info dir))))))
761 (defun mh-variant-mh-info (dir)
773 (let ((mhparam (expand-file-name "mhparam" dir)))
774 (when (mh-file-command-p mhparam)
786 (variant mh)
787 (mh-lib-progs ,libdir)
788 (mh-lib ,libdir)
789 (mh-progs ,dir)
792 (defun mh-variant-mu-mh-info (dir)
797 (let ((mhparam (expand-file-name "mhparam" dir)))
798 (when (mh-file-command-p mhparam)
805 (mh-progs dir))
807 (variant mu-mh)
808 (mh-lib-progs ,(mh-profile-component "libdir"))
809 (mh-lib ,(mh-profile-component "etcdir"))
810 (mh-progs ,dir)
812 (expand-file-name "flists" dir)))))))))
814 (defun mh-variant-nmh-info (dir)
818 (let ((mhparam (expand-file-name "mhparam" dir)))
819 (when (mh-file-command-p mhparam)
825 (mh-progs dir))
828 (mh-lib-progs ,(mh-profile-component "libdir"))
829 (mh-lib ,(mh-profile-component "etcdir"))
830 (mh-progs ,dir)
832 (expand-file-name "flists" dir)))))))))
834 (defun mh-file-command-p (file)
838 (defun mh-variant-set-variant (variant)
841 function `mh-variants'.
846 (when (assoc variant (mh-variants))
847 (let* ((alist (cdr (assoc variant (mh-variants))))
848 (lib-progs (cadr (assoc 'mh-lib-progs alist)))
849 (lib (cadr (assoc 'mh-lib alist)))
850 (progs (cadr (assoc 'mh-progs alist)))
852 ;;(set-default mh-variant variant)
853 (setq mh-x-mailer-string nil
854 mh-flists-present-flag flists
855 mh-lib-progs lib-progs
856 mh-lib lib
857 mh-progs progs
858 mh-variant-in-use variant))))
860 (loop for variant-list in (mh-variants)
864 (lib-progs (cadr (assoc 'mh-lib-progs alist)))
865 (lib (cadr (assoc 'mh-lib alist)))
866 (progs (cadr (assoc 'mh-progs alist)))
868 ;;(set-default mh-variant flavor)
869 (setq mh-x-mailer-string nil
870 mh-flists-present-flag flists
871 mh-lib-progs lib-progs
872 mh-lib lib
873 mh-progs progs
874 mh-variant-in-use version)
877 (defun mh-variant-p (&rest variants)
879 Currently known variants are 'MH, 'nmh, and 'mu-mh."
881 (cadr (assoc 'variant (assoc mh-variant-in-use (mh-variants))))))
884 (defun mh-profile-component (component)
889 (mh-exec-cmd-quiet nil "mhparam" "-component" component)
890 (mh-profile-component-value component)))
892 (defun mh-profile-component-value (component)
905 (defun mh-variant-set (variant)
907 Sets `mh-progs', `mh-lib', `mh-lib-progs' and
908 `mh-flists-present-flag'.
914 (mapcar (lambda (x) (list (car x))) (mh-variants))
916 (let ((valid-list (mapcar (lambda (x) (car x)) (mh-variants))))
921 ((mh-variant-set-variant 'nmh)
922 (message "%s installed as MH variant" mh-variant-in-use))
923 ((mh-variant-set-variant 'mh)
924 (message "%s installed as MH variant" mh-variant-in-use))
925 ((mh-variant-set-variant 'mu-mh)
926 (message "%s installed as MH variant" mh-variant-in-use))
930 (when (not (mh-variant-set-variant variant))
932 (mh-variant-set 'autodetect)))
936 (mh-variants) " or "))))))
938 (defcustom-mh mh-variant 'autodetect
944 `mh-path' (which you can customize), `mh-sys-path', and
946 customize `mh-path' and add the directory in which the command
948 and mailutils installed (for example) and `mh-variant-in-use' was
952 When this variable is changed, MH-E resets `mh-progs', `mh-lib',
953 `mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use'
959 ,@(mapcar (lambda (x) `(const ,(car x))) (mh-variants)))
961 (set-default symbol value) ;Done in mh-variant-set-variant!
962 (mh-variant-set value))
963 :group 'mh-e
982 ;; the groups mh-faces and mh-hooks which are last .
993 ;; All hooks must be placed in the mh-hook group; in addition, add
995 ;; described. Since the mh-hook group appears near the end of this
1000 ;; All faces must be placed in the mh-faces group; in addition, add
1002 ;; described. Since the mh-faces group appears near the end of this
1005 (defun mh-customize (&optional delete-other-windows-flag)
1010 (customize-group 'mh-e)
1011 (when delete-other-windows-flag
1025 (defgroup-mh mh-e nil
1029 :link '(custom-manual "(mh-e)Top")
1033 (defgroup-mh mh-alias nil
1035 :link '(custom-manual "(mh-e)Aliases")
1036 :prefix "mh-alias-"
1037 :group 'mh-e
1040 (defgroup-mh mh-folder nil
1042 :prefix "mh-"
1043 :link '(custom-manual "(mh-e)Folders")
1044 :group 'mh-e
1047 (defgroup-mh mh-folder-selection nil
1049 :prefix "mh-"
1050 :link '(custom-manual "(mh-e)Folder Selection")
1051 :group 'mh-e
1054 (defgroup-mh mh-identity nil
1056 :link '(custom-manual "(mh-e)Identities")
1057 :prefix "mh-identity-"
1058 :group 'mh-e
1061 (defgroup-mh mh-inc nil
1063 :prefix "mh-inc-"
1064 :link '(custom-manual "(mh-e)Incorporating Mail")
1065 :group 'mh-e
1068 (defgroup-mh mh-junk nil
1070 :link '(custom-manual "(mh-e)Junk")
1071 :prefix "mh-junk-"
1072 :group 'mh-e
1075 (defgroup-mh mh-letter nil
1077 :prefix "mh-"
1078 :link '(custom-manual "(mh-e)Editing Drafts")
1079 :group 'mh-e
1082 (defgroup-mh mh-ranges nil
1084 :prefix "mh-"
1085 :link '(custom-manual "(mh-e)Ranges")
1086 :group 'mh-e
1089 (defgroup-mh mh-scan-line-formats nil
1091 :link '(custom-manual "(mh-e)Scan Line Formats")
1092 :prefix "mh-"
1093 :group 'mh-e
1096 (defgroup-mh mh-search nil
1098 :link '(custom-manual "(mh-e)Searching")
1099 :prefix "mh-search-"
1100 :group 'mh-e
1103 (defgroup-mh mh-sending-mail nil
1105 :prefix "mh-"
1106 :link '(custom-manual "(mh-e)Sending Mail")
1107 :group 'mh-e
1110 (defgroup-mh mh-sequences nil
1112 :prefix "mh-"
1113 :link '(custom-manual "(mh-e)Sequences")
1114 :group 'mh-e
1117 (defgroup-mh mh-show nil
1119 :prefix "mh-"
1120 :link '(custom-manual "(mh-e)Reading Mail")
1121 :group 'mh-e
1124 (defgroup-mh mh-speedbar nil
1126 :prefix "mh-speed-"
1127 :link '(custom-manual "(mh-e)Speedbar")
1128 :group 'mh-e
1131 (defgroup-mh mh-thread nil
1133 :prefix "mh-thread-"
1134 :link '(custom-manual "(mh-e)Threading")
1135 :group 'mh-e
1138 (defgroup-mh mh-tool-bar nil
1140 :link '(custom-manual "(mh-e)Tool Bar")
1141 :prefix "mh-"
1142 :group 'mh-e
1145 (defgroup-mh mh-hooks nil
1147 :link '(custom-manual "(mh-e)Top")
1148 :prefix "mh-"
1149 :group 'mh-e
1152 (defgroup-mh mh-faces nil
1154 :link '(custom-manual "(mh-e)Top")
1155 :prefix "mh-"
1157 :group 'mh-e
1165 ;; See Variant Support, above, for mh-e group.
1167 ;;; Aliases (:group 'mh-alias)
1169 (defcustom-mh mh-alias-completion-ignore-case-flag t
1170 "*Non-nil means don't consider case significant in MH alias completion.
1172 As MH ignores case in the aliases, so too does MH-E. However, you
1174 used to segregate completion of your aliases. You might use
1177 :group 'mh-alias
1180 (defcustom-mh mh-alias-expand-aliases-flag nil
1181 "*Non-nil means to expand aliases entered in the minibuffer.
1183 In other words, aliases entered in the minibuffer will be
1187 :group 'mh-alias
1190 (defcustom-mh mh-alias-flash-on-comma t
1194 entering aliases or addresses. The default setting flashes the
1196 does not display a warning if the alias is not found."
1200 :group 'mh-alias
1203 (defcustom-mh mh-alias-insert-file nil
1204 "*Filename used to store a new MH-E alias.
1210 name, MH-E will prompt for one of them when MH-E adds an alias."
1214 :group 'mh-alias
1217 (defcustom-mh mh-alias-insertion-location 'sorted
1218 "Specifies where new aliases are entered in alias files.
1221 your alias file in other ways, then adding aliases to the \"Top\"
1222 or \"Bottom\" of your alias file might be more appropriate."
1226 :group 'mh-alias
1229 (defcustom-mh mh-alias-local-users t
1230 "*Non-nil means local users are added to alias completion.
1235 These aliases have the form \"local.first.last\" if a real name is
1236 present in the password file. Otherwise, the alias will have the
1240 the loading of local aliases slows MH-E down noticeably, then
1247 :group 'mh-alias
1250 (defcustom-mh mh-alias-local-users-prefix "local."
1259 aliases:
1265 This option has no effect if variable `mh-alias-local-users' is
1269 :group 'mh-alias
1272 (defcustom-mh mh-alias-passwd-gecos-comma-separator-flag t
1275 In the example in `mh-alias-local-users-prefix', commas are used
1281 :group 'mh-alias
1284 ;;; Organizing Your Mail with Folders (:group 'mh-folder)
1286 (defcustom-mh mh-new-messages-folders t
1294 See also `mh-recursive-folders-flag'."
1298 :group 'mh-folder
1301 (defcustom-mh mh-ticked-messages-folders t
1302 "Folders searched for `mh-tick-seq'.
1309 See also `mh-recursive-folders-flag'."
1313 :group 'mh-folder
1316 (defcustom-mh mh-large-folder 200
1321 visited. Even when `mh-show-threads-flag' is non-nil, the folder
1325 :group 'mh-folder
1328 (defcustom-mh mh-recenter-summary-flag nil
1334 :group 'mh-folder
1337 (defcustom-mh mh-recursive-folders-flag nil
1340 :group 'mh-folder
1343 (defcustom-mh mh-sortm-args nil
1344 "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>.
1347 \\[mh-sort-folder]. Normally default arguments to \"sortm\" are
1352 :group 'mh-folder
1355 ;;; Folder Selection (:group 'mh-folder-selection)
1357 (defcustom-mh mh-default-folder-for-message-function nil
1366 :group 'mh-folder-selection
1369 (defcustom-mh mh-default-folder-list nil
1373 list is used as the default for `mh-refile-msg' and similar
1379 See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
1384 :group 'mh-folder-selection
1387 (defcustom-mh mh-default-folder-must-exist-flag t
1392 mail from various people for whom you have an alias, but file
1395 See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
1398 :group 'mh-folder-selection
1401 (defcustom-mh mh-default-folder-prefix ""
1402 "*Prefix used for folder names generated from aliases.
1405 See `mh-prompt-for-refile-folder' and `mh-folder-from-address'
1408 :group 'mh-folder-selection
1411 ;;; Identities (:group 'mh-identity)
1414 (unless (fboundp 'mh-identity-make-menu-no-autoload)
1415 (defun mh-identity-make-menu-no-autoload ()
1417 Real definition will take effect when mh-identity is loaded."
1420 (defcustom-mh mh-identity-list nil
1438 `mh-extract-from-attribution-verb'. Set your signature with the
1440 `mh-signature-file-name', a file, or a function. Specify a different
1445 \\[mh-insert-identity]. To clear the fields and signature added by the
1452 the option `mh-identity-default' to the current identity setting. You
1453 can also customize the `mh-identity-default' option in the usual
1475 (const :tag "mh-signature-file-name"
1485 (mh-identity-make-menu-no-autoload))
1486 :group 'mh-identity
1489 (defcustom-mh mh-auto-fields-list nil
1499 configured in `mh-identity-list'. All of the information for that
1516 \\[mh-insert-auto-fields] command or choose the \"Identity -> Insert
1521 by turning off the option `mh-auto-fields-prompt-flag'.
1523 You should avoid using the same header field in `mh-auto-fields-list'
1524 and `mh-identity-list' definitions that may apply to the same message
1537 (mapcar 'car mh-identity-list))))
1547 :group 'mh-identity
1550 (defcustom-mh mh-auto-fields-prompt-flag t
1552 See `mh-auto-fields-list'."
1554 :group 'mh-identity
1557 (defcustom-mh mh-identity-default nil
1558 "Default identity to use when `mh-letter-mode' is called.
1559 See `mh-identity-list'."
1564 (mapcar 'car mh-identity-list))))
1565 :group 'mh-identity
1568 (defcustom-mh mh-identity-handlers
1569 '(("From" . mh-identity-handler-top)
1570 (":default" . mh-identity-handler-bottom)
1571 (":attribution-verb" . mh-identity-handler-attribution-verb)
1572 (":signature" . mh-identity-handler-signature)
1573 (":pgg-default-user-id" . mh-identity-handler-gpg-identity))
1574 "Handler functions for fields in `mh-identity-list'.
1577 and attributions in `mh-identity-list' are added. To customize
1578 `mh-identity-handlers', replace the name of an existing handler
1585 `mh-identity-list'. The special fields \":attribution-verb\",
1587 `mh-identity-list' choices \"Attribution Verb\", \"Signature\", and
1599 :group 'mh-identity
1602 ;;; Incorporating Your Mail (:group 'mh-inc)
1604 (defcustom-mh mh-inc-prog "inc"
1609 to be in the `mh-progs' directory. You may also link a file to
1613 :group 'mh-inc
1617 (unless (fboundp 'mh-inc-spool-make-no-autoload)
1618 (defun mh-inc-spool-make-no-autoload ()
1620 Real definition will take effect when mh-inc is loaded."
1623 (defcustom-mh mh-inc-spool-list nil
1626 You can use the `mh-inc-spool-list' variable to direct MH-E to
1631 Suppose you are subscribed to the \"mh-e-devel\" mailing list and
1632 you use \"procmail\" to filter this mail into \"~/mail/mh-e\" with
1637 * ^From mh-e-devel-admin@stop.mail-abuse.org
1638 mh-e
1640 In order to incorporate \"~/mail/mh-e\" into \"+mh-e\" with an
1641 \"I m\" (mh-inc-spool-mh-e) command, customize this option, and click
1642 on the \"INS\" button. Enter a \"Spool File\" of \"~/mail/mh-e\", a
1643 \"Folder\" of \"mh-e\", and a \"Key Binding\" of \"m\".
1648 box ~/mail/mh-e
1649 title mh-e
1653 command emacsclient --eval '(mh-inc-spool-mh-e)'
1662 (mh-inc-spool-make-no-autoload))
1663 :group 'mh-inc
1666 ;;; Dealing with Junk Mail (:group 'mh-junk)
1668 (defvar mh-junk-choice nil
1672 (defvar mh-junk-function-alist
1673 '((spamassassin mh-spamassassin-blacklist mh-spamassassin-whitelist)
1674 (bogofilter mh-bogofilter-blacklist mh-bogofilter-whitelist)
1675 (spamprobe mh-spamprobe-blacklist mh-spamprobe-whitelist))
1682 (defun mh-junk-choose (symbol value)
1686 `mh-junk-program' and VALUE bound to the new value of
1687 `mh-junk-program'. The function sets the variable
1688 `mh-junk-choice' in addition to `mh-junk-program'."
1690 (setq mh-junk-choice
1692 (loop for element in mh-junk-function-alist
1696 (defcustom-mh mh-junk-background nil
1711 :group 'mh-junk
1714 (defcustom-mh mh-junk-disposition nil
1718 :group 'mh-junk
1721 (defcustom-mh mh-junk-program nil
1733 :set 'mh-junk-choose
1734 :group 'mh-junk
1737 ;;; Editing a Draft (:group 'mh-letter)
1739 (defcustom-mh mh-compose-insertion (if (locate-library "mml") 'mml 'mh)
1749 (const :tag "MH" mh))
1750 :group 'mh-letter
1753 (defcustom-mh mh-compose-skipped-header-fields
1758 :group 'mh-letter
1761 (defcustom-mh mh-compose-space-does-completion-flag nil
1762 "*Non-nil means \\<mh-letter-mode-map>\\[mh-letter-complete-or-space] does completion in message header."
1764 :group 'mh-letter
1767 (defcustom-mh mh-delete-yanked-msg-window-flag nil
1771 yanking it with \\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make
1774 :group 'mh-letter
1777 (defcustom-mh mh-extract-from-attribution-verb "wrote:"
1778 "*Verb to use for attribution when a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg].
1788 :group 'mh-letter
1791 (defcustom-mh mh-ins-buf-prefix "> "
1801 flavors of `mh-yank-behavior' or you have added a
1804 :group 'mh-letter
1807 (defcustom-mh mh-letter-complete-function 'ispell-complete-word
1811 \\<mh-letter-mode-map>\\[mh-letter-complete] runs this function,
1814 :group 'mh-letter
1817 (defcustom-mh mh-letter-fill-column 72
1823 :group 'mh-letter
1826 (defcustom-mh mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none")
1846 :group 'mh-letter
1849 (defcustom-mh mh-signature-file-name "~/.signature"
1860 useful to do this include `mh-signature-separator' (when inserting a
1861 signature separator) and `mh-signature-separator-regexp' (for finding
1862 said separator). The function `mh-signature-separator-p', which
1866 \\<mh-letter-mode-map>\\[mh-insert-signature] or with the option
1867 `mh-identity-list'."
1869 :group 'mh-letter
1872 (defcustom-mh mh-signature-separator-flag t
1880 :group 'mh-letter
1883 (defcustom-mh mh-x-face-file "~/.face"
1906 `mh-x-face-file' to nil, or simply ensure that the file defined by
1909 :group 'mh-letter
1912 (defcustom-mh mh-yank-behavior 'attribution
1913 "*Controls which part of a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg].
1926 `mh-extract-from-attribution-verb'. This is the default.
1933 \\[mh-yank-cur-msg] at all. Note that this automatic action is
1936 the option `mh-delete-yanked-msg-window-flag' as well so that the
1939 If the show buffer has a region, the option `mh-yank-behavior' is
1944 `mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not
1954 :group 'mh-letter
1957 ;;; Ranges (:group 'mh-ranges)
1959 (defcustom-mh mh-interpret-number-as-range-flag t
1967 :group 'mh-ranges
1970 ;;; Scan Line Formats (:group 'mh-scan-line-formats)
1973 (unless (fboundp 'mh-adaptive-cmd-note-flag-check)
1974 (defun mh-adaptive-cmd-note-flag-check (symbol value)
1979 (defcustom-mh mh-adaptive-cmd-note-flag t
1986 `mh-scan-format-file' is set to \"Use MH-E scan Format\".
1989 call `mh-set-cmd-note' with the width specified by your format file
1990 \(see `mh-scan-format-file'). For example, the default width is 4, so
1991 you would use \"(mh-set-cmd-note 4)\"."
1993 :group 'mh-scan-line-formats
1994 :set 'mh-adaptive-cmd-note-flag-check
1997 (defun mh-scan-format-file-check (symbol value)
1999 Throw an error if user tries to set `mh-scan-format-file' to
2000 anything but t when `mh-adaptive-cmd-note-flag' is on. Otherwise,
2003 mh-adaptive-cmd-note-flag)
2004 (error "%s %s" "You must turn off `mh-adaptive-cmd-note-flag'"
2008 (defcustom-mh mh-scan-format-file t
2013 `mh-scan-format-mh' or `mh-scan-format-nmh' depending on whether MH or
2015 turn on the `mh-adaptive-cmd-note-flag' option.
2025 are involved to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to
2027 `mh-set-cmd-note' if your notations are not in column 4 (columns in
2032 :group 'mh-scan-line-formats
2033 :set 'mh-scan-format-file-check
2036 (defun mh-adaptive-cmd-note-flag-check (symbol value)
2039 `mh-adaptive-cmd-note-flag' when `mh-scan-format-file' isn't t.
2042 (not (eq mh-scan-format-file t)))
2043 (error "%s %s" "Can't turn on unless `mh-scan-format-file'"
2047 (defcustom-mh mh-scan-prog "scan"
2052 absolute pathname, it is assumed to be in the `mh-progs'
2054 \"mh-profile(5)\") to produce a different type of listing."
2056 :group 'mh-scan-line-formats
2058 (make-variable-buffer-local 'mh-scan-prog)
2060 ;;; Searching (:group 'mh-search)
2062 (defcustom-mh mh-search-program nil
2072 MH-E can be found in the documentation of `mh-search'."
2080 :group 'mh-search
2083 ;;; Sending Mail (:group 'mh-sending-mail)
2085 (defcustom-mh mh-compose-forward-as-mime-flag t
2098 :group 'mh-sending-mail
2101 (defcustom-mh mh-compose-letter-function nil
2110 :group 'mh-sending-mail
2113 (defcustom-mh mh-compose-prompt-flag nil
2116 :group 'mh-sending-mail
2119 (defcustom-mh mh-forward-subject-format "%s: %s"
2126 :group 'mh-sending-mail
2129 (defcustom-mh mh-insert-x-mailer-flag t
2136 :group 'mh-sending-mail
2139 (defcustom-mh mh-redist-full-contents-flag nil
2148 :group 'mh-sending-mail
2151 (defcustom-mh mh-reply-default-reply-to nil
2164 :group 'mh-sending-mail
2167 (defcustom-mh mh-reply-show-message-flag t
2173 See also `mh-reply'."
2175 :group 'mh-sending-mail
2178 ;;; Sequences (:group 'mh-sequences)
2180 ;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to
2182 ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX
2184 (defcustom-mh mh-refile-preserves-sequences-flag t
2192 :group 'mh-sequences
2195 (defcustom-mh mh-tick-seq 'tick
2204 :group 'mh-sequences
2207 (defcustom-mh mh-update-sequences-after-mh-show-flag t
2208 "*Non-nil means flush MH sequences to disk after message is shown\\<mh-folder-mode-map>.
2213 and the sequence listed by the option `mh-tick-seq' which is
2216 \\[mh-execute-commands], \\[mh-quit], or \\[mh-update-sequences]
2219 :group 'mh-sequences
2222 ;;; Reading Your Mail (:group 'mh-show)
2224 (defcustom-mh mh-bury-show-buffer-flag t
2232 :group 'mh-show
2235 (defcustom-mh mh-clean-message-header-flag t
2238 See also `mh-invisible-header-fields-default' and
2239 `mh-invisible-header-fields'."
2241 :group 'mh-show
2244 (defcustom-mh mh-decode-mime-flag (not (not (locate-library "mm-decode")))
2245 "*Non-nil means attachments are handled\\<mh-folder-mode-map>.
2253 \\[mh-toggle-mh-decode-mime-flag] to view the raw message.
2257 `mh-graphical-smileys-flag' and `mh-graphical-emphasis-flag'."
2259 :group 'mh-show
2262 (defcustom-mh mh-display-buttons-for-alternatives-flag nil
2271 :group 'mh-show
2274 (defcustom-mh mh-display-buttons-for-inline-parts-flag nil
2275 "*Non-nil means display buttons for all inline attachments\\<mh-folder-mode-map>.
2287 can use the command \\[mh-toggle-mime-buttons] to toggle the
2294 :group 'mh-show
2297 (defcustom-mh mh-do-not-confirm-flag nil
2300 Commands such as `mh-pack-folder' prompt to confirm whether to
2306 :group 'mh-show
2309 (defcustom-mh mh-fetch-x-image-url nil
2335 field too. See Info node `(mh-e)Picture'.
2337 This setting only has effect if the option `mh-show-use-xface-flag' is
2342 :group 'mh-show
2345 (defcustom-mh mh-graphical-smileys-flag t
2354 This option is disabled if the option `mh-decode-mime-flag' is
2357 :group 'mh-show
2360 (defcustom-mh mh-graphical-emphasis-flag t
2371 This option is disabled if the option `mh-decode-mime-flag' is
2374 :group 'mh-show
2377 (defcustom-mh mh-highlight-citation-style 'gnus
2390 :group 'mh-show
2394 (defvar mh-invisible-header-fields-internal
2589 `mh-invisible-header-fields-default' and add entries to hide in
2590 `mh-invisible-header-fields'.")
2593 (unless (fboundp 'mh-invisible-headers)
2594 (defun mh-invisible-headers ()
2599 (defvar mh-delay-invisible-header-generation-flag t
2601 Because the function `mh-invisible-headers' uses both
2602 `mh-invisible-header-fields' and `mh-invisible-header-fields', it
2605 (defcustom-mh mh-invisible-header-fields nil
2609 `mh-invisible-header-fields-default' can be added to this option
2617 See also `mh-clean-message-header-flag'."
2622 (mh-invisible-headers))
2623 :group 'mh-show
2626 (defcustom-mh mh-invisible-header-fields-default nil
2633 be added to the option `mh-invisible-header-fields'.
2635 See also `mh-clean-message-header-flag'."
2637 mh-invisible-header-fields-internal))
2640 (mh-invisible-headers))
2641 :group 'mh-show
2644 (defvar mh-invisible-header-fields-compiled nil
2647 `mh-invisible-header-fields-default' checking for fields normally
2649 `mh-invisible-header-fields'.")
2651 (defun mh-invisible-headers ()
2652 "Make or remake the variable `mh-invisible-header-fields-compiled'.
2653 Done using `mh-invisible-header-fields-internal' as input, from
2654 which entries from `mh-invisible-header-fields-default' are
2655 removed and entries from `mh-invisible-header-fields' are added."
2656 (let ((fields mh-invisible-header-fields-internal))
2657 (when mh-invisible-header-fields-default
2658 ;; Remove entries from `mh-invisible-header-fields-default'
2661 unless (member x mh-invisible-header-fields-default)
2663 (when (and (boundp 'mh-invisible-header-fields)
2664 mh-invisible-header-fields)
2665 (dolist (x mh-invisible-header-fields)
2668 (setq mh-invisible-header-fields-compiled
2674 (setq mh-invisible-header-fields-compiled nil))))
2677 (mh-invisible-headers)
2679 (defcustom-mh mh-lpr-command-format "lpr -J '%s'"
2680 "*Command used to print\\<mh-folder-mode-map>.
2683 actual printing for the \\[mh-print-msg] command. The string can
2690 This options is not used by the commands \\[mh-ps-print-msg] or
2691 \\[mh-ps-print-msg-file]."
2693 :group 'mh-show
2696 (defcustom-mh mh-max-inline-image-height nil
2704 the options `mh-max-inline-image-width' and
2705 `mh-max-inline-image-height' from their default value of zero to
2709 :group 'mh-show
2712 (defcustom-mh mh-max-inline-image-width nil
2720 the options `mh-max-inline-image-width' and
2721 `mh-max-inline-image-height' from their default value of zero to
2725 :group 'mh-show
2728 (defcustom-mh mh-mhl-format-file nil
2749 :group 'mh-show
2752 (defcustom-mh mh-mime-save-parts-default-directory t
2753 "Default directory to use for \\<mh-folder-mode-map>\\[mh-mime-save-parts].
2765 :group 'mh-show
2768 (defcustom-mh mh-print-background-flag nil
2769 "*Non-nil means messages should be printed in the background\\<mh-folder-mode-map>.
2778 This option is not used by the commands \\[mh-ps-print-msg] or
2779 \\[mh-ps-print-msg-file]."
2781 :group 'mh-show
2784 (defcustom-mh mh-show-maximum-size 0
2791 :group 'mh-show
2794 (defcustom-mh mh-show-use-xface-flag (>= emacs-major-version 21)
2804 The option `mh-show-use-xface-flag' is used to turn this feature on
2828 The option `mh-fetch-x-image-url' controls the fetching of the
2831 :group 'mh-show
2834 (defcustom-mh mh-store-default-directory nil
2835 "*Default directory for \\<mh-folder-mode-map>\\[mh-store-msg].
2843 :group 'mh-show
2846 (defcustom-mh mh-summary-height nil
2856 :group 'mh-show
2859 ;;; The Speedbar (:group 'mh-speedbar)
2861 (defcustom-mh mh-speed-update-interval 60
2865 :group 'mh-speedbar
2868 ;;; Threading (:group 'mh-thread)
2870 (defcustom-mh mh-show-threads-flag nil
2876 threaded is less than `mh-large-folder'."
2878 :group 'mh-thread
2881 ;;; The Tool Bar (:group 'mh-tool-bar)
2883 ;; mh-tool-bar-folder-buttons and mh-tool-bar-letter-buttons defined
2884 ;; dynamically in mh-tool-bar.el.
2886 (defcustom-mh mh-tool-bar-search-function 'mh-search
2889 By default, this is set to `mh-search'. You can also choose
2892 :type '(choice (const mh-search)
2894 :group 'mh-tool-bar
2898 (mh-do-in-xemacs
2899 (defcustom-mh mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag
2907 :group 'mh-tool-bar
2910 (not mh-xemacs-has-tool-bar-flag))
2915 (defcustom-mh mh-xemacs-tool-bar-position nil
2930 :group 'mh-tool-bar
2936 ;;; Hooks (:group 'mh-hooks + group where hook described)
2938 (defcustom-mh mh-after-commands-processed-hook nil
2939 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding refile and delete requests.
2942 `mh-folders-changed', which lists which folders were affected by
2944 folder, which is also available in `mh-current-folder'."
2946 :group 'mh-hooks
2947 :group 'mh-folder
2950 (defcustom-mh mh-alias-reloaded-hook nil
2951 "Hook run by `mh-alias-reload' after loading aliases."
2953 :group 'mh-hooks
2954 :group 'mh-alias
2957 (defcustom-mh mh-before-commands-processed-hook nil
2958 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding refile and delete requests.
2960 Variables that are useful in this hook include `mh-delete-list'
2961 and `mh-refile-list' which can be used to see which changes will
2962 be made to the current folder, `mh-current-folder'."
2964 :group 'mh-hooks
2965 :group 'mh-folder
2968 (defcustom-mh mh-before-quit-hook nil
2969 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] before quitting MH-E.
2973 abort the quit or call `mh-execute-commands', for example.
2975 See also `mh-quit-hook'."
2977 :group 'mh-hooks
2978 :group 'mh-folder
2981 (defcustom-mh mh-before-send-letter-hook nil
2982 "Hook run at the beginning of the \\<mh-letter-mode-map>\\[mh-send-letter] command.
2988 :group 'mh-hooks
2989 :group 'mh-letter
2992 (defcustom-mh mh-delete-msg-hook nil
2993 "Hook run by \\<mh-letter-mode-map>\\[mh-delete-msg] after marking each message for deletion.
2998 :group 'mh-hooks
2999 :group 'mh-show
3002 (defcustom-mh mh-find-path-hook nil
3003 "Hook run by `mh-find-path' after reading the user's MH profile.
3006 `mh-find-path' sets if you need to run with different values
3009 :group 'mh-hooks
3010 :group 'mh-e
3013 (defcustom-mh mh-folder-mode-hook nil
3014 "Hook run by `mh-folder-mode' when visiting a new folder."
3016 :group 'mh-hooks
3017 :group 'mh-folder
3020 (defcustom-mh mh-forward-hook nil
3021 "Hook run by `mh-forward' on a forwarded letter."
3023 :group 'mh-hooks
3024 :group 'mh-sending-mail
3027 (defcustom-mh mh-inc-folder-hook nil
3028 "Hook run by \\<mh-folder-mode-map>\\[mh-inc-folder] after incorporating mail into a folder."
3030 :group 'mh-hooks
3031 :group 'mh-inc
3034 (defcustom-mh mh-insert-signature-hook nil
3035 "Hook run by \\<mh-letter-mode-map>\\[mh-insert-signature] after signature has been inserted.
3039 `mh-signature-file-name'."
3041 :group 'mh-hooks
3042 :group 'mh-letter
3045 (defcustom-mh mh-kill-folder-suppress-prompt-hooks '(mh-search-p)
3046 "Abnormal hook run at the beginning of \\<mh-folder-mode-map>\\[mh-kill-folder].
3052 The default value of `mh-search-p' suppresses the prompt on
3056 which returns t on \"+inbox\" and you hit \\[mh-kill-folder] by
3059 :group 'mh-hooks
3060 :group 'mh-folder
3063 (defcustom-mh mh-letter-mode-hook nil
3064 "Hook run by `mh-letter-mode' on a new letter.
3072 :group 'mh-hooks
3073 :group 'mh-sending-mail
3076 (defcustom-mh mh-mh-to-mime-hook nil
3077 "Hook run on the formatted letter by \\<mh-letter-mode-map>\\[mh-mh-to-mime]."
3079 :group 'mh-hooks
3080 :group 'mh-letter
3083 (defcustom-mh mh-search-mode-hook nil
3084 "Hook run upon entry to `mh-search-mode'\\<mh-folder-mode-map>.
3089 \\[mh-search] is run on a new pattern."
3091 :group 'mh-hooks
3092 :group 'mh-search
3095 (defcustom-mh mh-quit-hook nil
3096 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] after quitting MH-E.
3101 See also `mh-before-quit-hook'."
3103 :group 'mh-hooks
3104 :group 'mh-folder
3107 (defcustom-mh mh-refile-msg-hook nil
3108 "Hook run by \\<mh-folder-mode-map>\\[mh-refile-msg] after marking each message for refiling."
3110 :group 'mh-hooks
3111 :group 'mh-folder
3114 (defcustom-mh mh-show-hook nil
3115 "Hook run after \\<mh-folder-mode-map>\\[mh-show] shows a message.
3119 `mh-show-mode-hook' is too early. See `mh-show-mode-hook'."
3121 :group 'mh-hooks
3122 :group 'mh-show
3125 (defcustom-mh mh-show-mode-hook nil
3126 "Hook run upon entry to `mh-show-mode'.
3130 message's content. See `mh-show-hook'."
3132 :group 'mh-hooks
3133 :group 'mh-show
3136 (defcustom-mh mh-unseen-updated-hook nil
3139 The variable `mh-seen-list' can be used by this hook to obtain
3143 :group 'mh-hooks
3144 :group 'mh-sequences
3150 ;;; Faces (:group 'mh-faces + group where faces described)
3153 (add-to-list 'facemenu-unlisted-faces "^mh-"))
3156 ;; 1. Add entry to variable mh-face-data.
3157 ;; 2. Create face using defface-mh (which removes min-color spec and
3159 ;; accessing face data with function mh-face-data.
3160 ;; 3. Add inherit argument to function mh-face-data if applicable.
3161 (defvar mh-face-data
3162 '((mh-folder-followup
3169 (mh-folder-msg-number
3178 (mh-folder-refiled
3191 (mh-folder-subject
3198 (mh-folder-tick
3205 (mh-folder-to
3218 (mh-letter-header-field
3225 (mh-search-folder
3232 (mh-show-cc
3245 (mh-show-date
3258 (mh-show-from
3265 (mh-show-header
3278 (mh-show-pgg-bad ((t (:bold t :foreground "DeepPink1"))))
3279 (mh-show-pgg-good ((t (:bold t :foreground "LimeGreen"))))
3280 (mh-show-pgg-unknown ((t (:bold t :foreground "DarkGoldenrod2"))))
3281 (mh-show-signature ((t (:italic t))))
3282 (mh-show-to
3292 (mh-speedbar-folder
3297 (mh-speedbar-selected-folder
3305 Used by function `mh-face-data' which returns spec that is
3306 consumed by `defface-mh'.")
3310 (defvar mh-inherit-face-flag (assq :inherit custom-face-attributes)
3315 (defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag)
3319 (defun mh-face-data (face &optional inherit)
3325 FACE from the variable `mh-face-data'. This isn't a perfect
3330 Furthermore, when `mh-min-colors-defined-flag' is nil, this
3336 (if (and inherit mh-inherit-face-flag)
3338 (or (cadr (assq face mh-face-data))
3339 (error "Could not find %s in mh-face-data" face)))))
3341 (if mh-min-colors-defined-flag
3343 (let ((cells (mh-display-color-cells))
3359 (defface-mh mh-folder-address
3360 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
3362 :group 'mh-faces
3363 :group 'mh-folder
3366 (defface-mh mh-folder-body
3367 (mh-face-data 'mh-folder-msg-number
3369 (:inherit mh-folder-msg-number))
3371 (:inherit mh-folder-msg-number :italic t))))
3373 :group 'mh-faces
3374 :group 'mh-folder
3377 (defface-mh mh-folder-cur-msg-number
3378 (mh-face-data 'mh-folder-msg-number
3379 '((t (:inherit mh-folder-msg-number :bold t))))
3381 :group 'mh-faces
3382 :group 'mh-folder
3385 (defface-mh mh-folder-date
3386 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number))))
3388 :group 'mh-faces
3389 :group 'mh-folder
3392 (defface-mh mh-folder-deleted
3393 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number))))
3395 :group 'mh-faces
3396 :group 'mh-folder
3399 (defface-mh mh-folder-followup (mh-face-data 'mh-folder-followup)
3401 :group 'mh-faces
3402 :group 'mh-folder
3405 (defface-mh mh-folder-msg-number (mh-face-data 'mh-folder-msg-number)
3407 :group 'mh-faces
3408 :group 'mh-folder
3411 (defface-mh mh-folder-refiled (mh-face-data 'mh-folder-refiled)
3413 :group 'mh-faces
3414 :group 'mh-folder
3417 (defface-mh mh-folder-sent-to-me-hint
3418 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-date))))
3421 format `mh-scan-format-nmh' and the regular expression
3422 `mh-scan-sent-to-me-sender-regexp'."
3423 :group 'mh-faces
3424 :group 'mh-folder
3427 (defface-mh mh-folder-sent-to-me-sender
3428 (mh-face-data 'mh-folder-followup '((t (:inherit mh-folder-followup))))
3431 format `mh-scan-format-nmh' and the regular expression
3432 `mh-scan-sent-to-me-sender-regexp'."
3433 :group 'mh-faces
3434 :group 'mh-folder
3437 (defface-mh mh-folder-subject (mh-face-data 'mh-folder-subject)
3439 :group 'mh-faces
3440 :group 'mh-folder
3443 (defface-mh mh-folder-tick (mh-face-data 'mh-folder-tick)
3445 :group 'mh-faces
3446 :group 'mh-folder
3449 (defface-mh mh-folder-to (mh-face-data 'mh-folder-to)
3451 :group 'mh-faces
3452 :group 'mh-folder
3455 (defface-mh mh-letter-header-field (mh-face-data 'mh-letter-header-field)
3457 :group 'mh-faces
3458 :group 'mh-letter
3461 (defface-mh mh-search-folder (mh-face-data 'mh-search-folder)
3463 :group 'mh-faces
3464 :group 'mh-search
3467 (defface-mh mh-show-cc (mh-face-data 'mh-show-cc)
3469 :group 'mh-faces
3470 :group 'mh-show
3473 (defface-mh mh-show-date (mh-face-data 'mh-show-date)
3475 :group 'mh-faces
3476 :group 'mh-show
3479 (defface-mh mh-show-from (mh-face-data 'mh-show-from)
3481 :group 'mh-faces
3482 :group 'mh-show
3485 (defface-mh mh-show-header (mh-face-data 'mh-show-header)
3487 :group 'mh-faces
3488 :group 'mh-show
3491 (defface-mh mh-show-pgg-bad (mh-face-data 'mh-show-pgg-bad)
3493 :group 'mh-faces
3494 :group 'mh-show
3497 (defface-mh mh-show-pgg-good (mh-face-data 'mh-show-pgg-good)
3499 :group 'mh-faces
3500 :group 'mh-show
3503 (defface-mh mh-show-pgg-unknown (mh-face-data 'mh-show-pgg-unknown)
3505 :group 'mh-faces
3506 :group 'mh-show
3509 (defface-mh mh-show-signature (mh-face-data 'mh-show-signature)
3511 :group 'mh-faces
3512 :group 'mh-show
3515 (defface-mh mh-show-subject
3516 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
3518 :group 'mh-faces
3519 :group 'mh-show
3522 (defface-mh mh-show-to (mh-face-data 'mh-show-to)
3524 :group 'mh-faces
3525 :group 'mh-show
3528 (defface-mh mh-show-xface
3529 (mh-face-data 'mh-show-from '((t (:inherit (mh-show-from highlight)))))
3532 :group 'mh-faces
3533 :group 'mh-show
3536 (defface-mh mh-speedbar-folder (mh-face-data 'mh-speedbar-folder)
3538 :group 'mh-faces
3539 :group 'mh-speedbar
3542 (defface-mh mh-speedbar-folder-with-unseen-messages
3543 (mh-face-data 'mh-speedbar-folder
3544 '((t (:inherit mh-speedbar-folder :bold t))))
3546 :group 'mh-faces
3547 :group 'mh-speedbar
3550 (defface-mh mh-speedbar-selected-folder
3551 (mh-face-data 'mh-speedbar-selected-folder)
3553 :group 'mh-faces
3554 :group 'mh-speedbar
3557 (defface-mh mh-speedbar-selected-folder-with-unseen-messages
3558 (mh-face-data 'mh-speedbar-selected-folder
3559 '((t (:inherit mh-speedbar-selected-folder :bold t))))
3561 :group 'mh-faces
3562 :group 'mh-speedbar
3565 (provide 'mh-e)
3573 ;;; mh-e.el ends here