Mercurial > emacs
annotate lisp/mh-e/mh-e.el @ 69598:15befdcdc4e9
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 20 Mar 2006 06:26:23 +0000 |
parents | e9f5e5650ade |
children | 2c0452875544 e3bacb89536a |
rev | line source |
---|---|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1 ;;; mh-e.el --- GNU Emacs interface to the MH mail system |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2 |
62847
aa8c2e12ee24
Upgraded to MH-E version 7.84.
Bill Wohler <wohler@newt.com>
parents:
62465
diff
changeset
|
3 ;; Copyright (C) 1985, 1986, 1987, 1988, |
aa8c2e12ee24
Upgraded to MH-E version 7.84.
Bill Wohler <wohler@newt.com>
parents:
62465
diff
changeset
|
4 ;; 1990, 1992, 1993, 1994, 1995, 1997, 1999, |
67988
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67969
diff
changeset
|
5 ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
6 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
7 ;; Author: Bill Wohler <wohler@newt.com> |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
8 ;; Maintainer: Bill Wohler <wohler@newt.com> |
69305
7b2c4c12503a
(Version, mh-version): Add +cvs to version.
Bill Wohler <wohler@newt.com>
parents:
69287
diff
changeset
|
9 ;; Version: 7.93+cvs |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
10 ;; Keywords: mail |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
11 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
12 ;; This file is part of GNU Emacs. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
13 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
14 ;; GNU Emacs is free software; you can redistribute it and/or modify |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
15 ;; it under the terms of the GNU General Public License as published by |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
16 ;; the Free Software Foundation; either version 2, or (at your option) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
17 ;; any later version. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
18 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
19 ;; GNU Emacs is distributed in the hope that it will be useful, |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
22 ;; GNU General Public License for more details. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
23 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
24 ;; You should have received a copy of the GNU General Public License |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64085 | 26 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
27 ;; Boston, MA 02110-1301, USA. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
28 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
29 ;;; Commentary: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
30 |
68465 | 31 ;; How to use: |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
32 ;; M-x mh-rmail to read mail. Type C-h m there for a list of commands. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
33 ;; C-u M-x mh-rmail to visit any folder. |
68465 | 34 ;; M-x mh-smail to send mail. From within the mail reader, "s" works, too. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
35 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
36 ;; Your .emacs might benefit from these bindings: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
37 ;; (global-set-key "\C-cr" 'mh-rmail) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
38 ;; (global-set-key "\C-xm" 'mh-smail) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
39 ;; (global-set-key "\C-x4m" 'mh-smail-other-window) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
40 |
68465 | 41 ;; If Emacs can't find mh-rmail or mh-smail, add the following to ~/.emacs: |
42 ;; (require 'mh-autoloads) | |
43 | |
44 ;; If you want to customize MH-E before explicitly loading it, add this: | |
45 ;; (require 'mh-cus-load) | |
46 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
47 ;; MH (Message Handler) is a powerful mail reader. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
48 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
49 ;; The MH newsgroup is comp.mail.mh; the mailing list is mh-users@ics.uci.edu |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
50 ;; (send to mh-users-request to be added). See the monthly Frequently Asked |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
51 ;; Questions posting there for information on getting MH and MH-E: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
52 ;; http://www.faqs.org/faqs/mail/mh-faq/part1/preamble.html |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
53 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
54 ;; N.B. MH must have been compiled with the MHE compiler flag or several |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
55 ;; features necessary for MH-E will be missing from MH commands, specifically |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
56 ;; the -build switch to repl and forw. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
57 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
58 ;; MH-E is an Emacs interface to the MH mail system. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
59 |
68096
57c4e7929f99
* mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68014
diff
changeset
|
60 ;; MH-E is supported in GNU Emacs 21 and 22 as well as XEmacs 21 |
57c4e7929f99
* mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68014
diff
changeset
|
61 ;; (except for versions 21.5.9-21.5.16), with MH 6.8.4 on, nmh 1.0.4 |
57c4e7929f99
* mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68014
diff
changeset
|
62 ;; on, and GNU mailutils 0.4 on. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
63 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
64 ;; Mailing Lists: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
65 ;; mh-e-users@lists.sourceforge.net |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
66 ;; mh-e-announce@lists.sourceforge.net |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
67 ;; mh-e-devel@lists.sourceforge.net |
68465 | 68 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
69 ;; Subscribe by sending a "subscribe" message to |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
70 ;; <list>-request@lists.sourceforge.net, or by using the web interface at |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
71 ;; https://sourceforge.net/mail/?group_id=13357 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
72 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
73 ;; Bug Reports: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
74 ;; https://sourceforge.net/tracker/?group_id=13357&atid=113357 |
68465 | 75 ;; Include the output of M-x mh-version in the bug report unless |
76 ;; you're 110% sure we won't ask for it. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
77 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
78 ;; Feature Requests: |
68465 | 79 ;; https://sourceforge.net/tracker/?group_id=13357&atid=363357 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
80 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
81 ;; Support: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
82 ;; https://sourceforge.net/tracker/?group_id=13357&atid=213357 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
83 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
84 ;;; Change Log: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
85 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
86 ;; Original version for Gosling emacs by Brian Reid, Stanford, 1982. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
87 ;; Modified by James Larus, BBN, July 1984 and UCB, 1984 & 1985. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
88 ;; Rewritten for GNU Emacs, James Larus, 1985. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
89 ;; Modified by Stephen Gildea, 1988. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
90 ;; Maintenance picked up by Bill Wohler and the |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
91 ;; SourceForge Crew <http://mh-e.sourceforge.net/>, 2001. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
92 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
93 ;;; Code: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
94 |
68465 | 95 ;; Provide functions to the rest of MH-E. However, mh-e.el must not |
96 ;; use any definitions in files that require mh-e from mh-loaddefs, | |
97 ;; for if it does it will introduce a require loop. | |
98 (require 'mh-loaddefs) | |
99 | |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
55151
diff
changeset
|
100 (mh-require-cl) |
68096
57c4e7929f99
* mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68014
diff
changeset
|
101 |
68465 | 102 (eval-and-compile |
103 (defvar mh-xemacs-flag (featurep 'xemacs) | |
69186
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
69074
diff
changeset
|
104 "Non-nil means the current Emacs is XEmacs.")) |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68484
diff
changeset
|
105 |
68465 | 106 (mh-do-in-xemacs |
107 (require 'mh-xemacs)) | |
108 | |
68135
03bac2d0a4aa
* Makefile (MH_E_SRC): Add mh-buffers.el.
Bill Wohler <wohler@newt.com>
parents:
68112
diff
changeset
|
109 (require 'mh-buffers) |
68465 | 110 (require 'mh-compat) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
111 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
112 |
67681 | 113 |
68465 | 114 ;;; Global Variables |
115 | |
116 ;; Try to keep variables local to a single file. Provide accessors if | |
117 ;; variables are shared. Use this section as a last resort. | |
118 | |
69305
7b2c4c12503a
(Version, mh-version): Add +cvs to version.
Bill Wohler <wohler@newt.com>
parents:
69287
diff
changeset
|
119 (defconst mh-version "7.93+cvs" "Version number of MH-E.") |
68465 | 120 |
121 ;; Variants | |
122 | |
123 (defvar mh-sys-path | |
124 '("/usr/local/nmh/bin" ; nmh default | |
125 "/usr/local/bin/mh/" | |
126 "/usr/local/mh/" | |
127 "/usr/bin/mh/" ; Ultrix 4.2, Linux | |
128 "/usr/new/mh/" ; Ultrix < 4.2 | |
129 "/usr/contrib/mh/bin/" ; BSDI | |
130 "/usr/pkg/bin/" ; NetBSD | |
131 "/usr/local/bin/" | |
132 "/usr/local/bin/mu-mh/" ; GNU mailutils - default | |
133 "/usr/bin/mu-mh/") ; GNU mailutils - packaged | |
134 "List of directories to search for variants of the MH variant. | |
135 The list `exec-path' is searched in addition to this list. | |
136 There's no need for users to modify this list. Instead add extra | |
137 directories to the customizable variable `mh-path'.") | |
138 | |
139 (defvar mh-variants nil | |
140 "List describing known MH variants. | |
141 Do not access this variable directly as it may not have yet been initialized. | |
142 Use the function `mh-variants' instead.") | |
143 | |
144 (defvar mh-variant-in-use nil | |
145 "The MH variant currently in use; a string with variant and version number. | |
146 This differs from `mh-variant' when the latter is set to | |
147 \"autodetect\".") | |
148 | |
149 (defvar mh-progs nil | |
150 "Directory containing MH commands, such as inc, repl, and rmm.") | |
151 | |
152 ;;;###autoload | |
153 (put 'mh-progs 'risky-local-variable t) | |
154 | |
155 (defvar mh-lib nil | |
156 "Directory containing the MH library. | |
157 This directory contains, among other things, the components file.") | |
158 | |
159 ;;;###autoload | |
160 (put 'mh-lib 'risky-local-variable t) | |
161 | |
162 (defvar mh-lib-progs nil | |
163 "Directory containing MH helper programs. | |
164 This directory contains, among other things, the mhl program.") | |
165 | |
166 ;;;###autoload | |
167 (put 'mh-lib-progs 'risky-local-variable t) | |
168 | |
169 ;; Profile Components | |
170 | |
171 (defvar mh-draft-folder nil | |
172 "Cached value of the \"Draft-Folder:\" MH profile component. | |
173 Name of folder containing draft messages. | |
174 Nil means do not use a draft folder.") | |
175 | |
176 (defvar mh-inbox nil | |
177 "Cached value of the \"Inbox:\" MH profile component. | |
178 Set to \"+inbox\" if no such component. | |
179 Name of the Inbox folder.") | |
180 | |
181 (defvar mh-user-path nil | |
182 "Cached value of the \"Path:\" MH profile component. | |
183 User's mail folder directory.") | |
184 | |
185 ;; Maps declared here so that they can be used in docstrings. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
186 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
187 (defvar mh-folder-mode-map (make-keymap) |
68465 | 188 "Keymap for MH-Folder mode.") |
189 | |
190 (defvar mh-folder-seq-tool-bar-map nil | |
191 "Keymap for MH-Folder tool bar.") | |
192 | |
193 (defvar mh-folder-tool-bar-map nil | |
194 "Keymap for MH-Folder tool bar.") | |
195 | |
196 (defvar mh-inc-spool-map (make-sparse-keymap) | |
197 "Keymap for MH-E's mh-inc-spool commands.") | |
198 | |
199 (defvar mh-letter-mode-map (copy-keymap text-mode-map) | |
200 "Keymap for MH-Letter mode.") | |
201 | |
202 (defvar mh-letter-tool-bar-map nil | |
203 "Keymap for MH-Letter tool bar.") | |
204 | |
205 (defvar mh-search-mode-map (make-sparse-keymap) | |
206 "Keymap for MH-Search mode.") | |
207 | |
208 (defvar mh-show-mode-map (make-sparse-keymap) | |
209 "Keymap MH-Show mode.") | |
210 | |
211 (defvar mh-show-seq-tool-bar-map nil | |
212 "Keymap for MH-Show tool bar.") | |
213 | |
214 (defvar mh-show-tool-bar-map nil | |
215 "Keymap for MH-Show tool bar.") | |
216 | |
217 ;; MH-Folder Locals (alphabetical) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
218 |
67756
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
219 (defvar mh-arrow-marker nil |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
220 "Marker for arrow display in fringe.") |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
221 |
68465 | 222 (defvar mh-colors-available-flag nil |
223 "Non-nil means colors are available.") | |
224 | |
225 (defvar mh-current-folder nil | |
226 "Name of current folder, a string.") | |
227 | |
67756
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
228 (defvar mh-delete-list nil |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
229 "List of message numbers to delete. |
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67756
diff
changeset
|
230 This variable can be used by |
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67756
diff
changeset
|
231 `mh-before-commands-processed-hook'.") |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
232 |
68465 | 233 (defvar mh-folder-view-stack nil |
67756
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
234 "Stack of previous folder views.") |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
235 |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
236 (defvar mh-index-data nil |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
237 "Info about index search results.") |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
238 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
239 (defvar mh-index-previous-search nil) |
68465 | 240 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
241 (defvar mh-index-msg-checksum-map nil) |
68465 | 242 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
243 (defvar mh-index-checksum-origin-map nil) |
68465 | 244 |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
55151
diff
changeset
|
245 (defvar mh-index-sequence-search-flag nil) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
246 |
67756
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
247 (defvar mh-mode-line-annotation nil |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
248 "Message range displayed in buffer.") |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
55151
diff
changeset
|
249 |
68465 | 250 (defvar mh-next-direction 'forward |
251 "Direction to move to next message.") | |
252 | |
253 (defvar mh-previous-window-config nil | |
254 "Window configuration before MH-E command.") | |
255 | |
256 (defvar mh-refile-list nil | |
257 "List of folder names in `mh-seq-list'. | |
258 This variable can be used by | |
259 `mh-before-commands-processed-hook'.") | |
260 | |
261 (defvar mh-seen-list nil | |
262 "List of displayed messages to be removed from the \"Unseen\" sequence.") | |
263 | |
264 (defvar mh-seq-list nil | |
265 "Alist of this folder's sequences. | |
266 Elements have the form (SEQUENCE . MESSAGES).") | |
267 | |
67756
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
268 (defvar mh-sequence-notation-history nil |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
269 "Remember original notation that is overwritten by `mh-note-seq'.") |
7ff92ad99326
* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
Bill Wohler <wohler@newt.com>
parents:
67689
diff
changeset
|
270 |
68465 | 271 (defvar mh-show-buffer nil |
272 "Buffer that displays message for this folder.") | |
273 | |
274 (defvar mh-showing-mode nil | |
275 "If non-nil, show the message in a separate window.") | |
276 | |
277 (defvar mh-view-ops nil | |
278 "Stack of operations that change the folder view. | |
279 These operations include narrowing or threading.") | |
280 | |
281 ;; MH-Show Locals (alphabetical) | |
282 | |
283 (defvar mh-globals-hash (make-hash-table) | |
284 "Keeps track of MIME data on a per buffer basis.") | |
285 | |
286 (defvar mh-show-folder-buffer nil | |
287 "Keeps track of folder whose message is being displayed.") | |
288 | |
289 ;; MH-Letter Locals | |
290 | |
291 (defvar mh-folders-changed nil | |
292 "Lists which folders were affected by deletes and refiles. | |
293 This list will always include the current folder | |
294 `mh-current-folder'. This variable can be used by | |
295 `mh-after-commands-processed-hook'.") | |
296 | |
297 (defvar mh-mail-header-separator "--------" | |
298 "*Line used by MH to separate headers from text in messages being composed. | |
299 | |
300 This variable should not be used directly in programs. Programs | |
301 should use `mail-header-separator' instead. | |
302 `mail-header-separator' is initialized to | |
303 `mh-mail-header-separator' in `mh-letter-mode'; in other | |
304 contexts, you may have to perform this initialization yourself. | |
305 | |
306 Do not make this a regular expression as it may be the argument | |
307 to `insert' and it is passed through `regexp-quote' before being | |
308 used by functions like `re-search-forward'.") | |
309 | |
310 (defvar mh-sent-from-folder nil | |
311 "Folder of msg assoc with this letter.") | |
312 | |
313 (defvar mh-sent-from-msg nil | |
314 "Number of msg assoc with this letter.") | |
315 | |
316 ;; Sequences | |
317 | |
318 (defvar mh-unseen-seq nil | |
319 "Cached value of the \"Unseen-Sequence:\" MH profile component. | |
320 Name of the Unseen sequence.") | |
321 | |
322 (defvar mh-previous-seq nil | |
323 "Cached value of the \"Previous-Sequence:\" MH profile component. | |
324 Name of the Previous sequence.") | |
325 | |
326 ;; Etc. (alphabetical) | |
327 | |
328 (defvar mh-flists-present-flag nil | |
329 "Non-nil means that we have \"flists\".") | |
330 | |
331 (defvar mh-index-data-file ".mhe_index" | |
332 "MH-E specific file where index seach info is stored.") | |
333 | |
334 (defvar mh-letter-header-field-regexp "^\\([A-Za-z][A-Za-z0-9-]*\\):") | |
335 | |
336 (defvar mh-page-to-next-msg-flag nil | |
337 "Non-nil means next SPC or whatever goes to next undeleted message.") | |
338 | |
339 (defvar mh-pgp-support-flag (not (not (locate-library "mml2015"))) | |
340 "Non-nil means PGP support is available.") | |
341 | |
342 (defvar mh-signature-separator "-- \n" | |
343 "Text of a signature separator. | |
344 | |
345 A signature separator is used to separate the body of a message | |
346 from the signature. This can be used by user agents such as MH-E | |
347 to render the signature differently or to suppress the inclusion | |
348 of the signature in a reply. Use `mh-signature-separator-regexp' | |
349 when searching for a separator.") | |
350 | |
351 (defvar mh-signature-separator-regexp "^-- $" | |
352 "This regular expression matches the signature separator. | |
353 See `mh-signature-separator'.") | |
354 | |
355 (defvar mh-thread-scan-line-map nil | |
356 "Map of message index to various parts of the scan line.") | |
357 (make-variable-buffer-local 'mh-thread-scan-line-map) | |
358 | |
359 (defvar mh-thread-scan-line-map-stack nil | |
360 "Old map of message index to various parts of the scan line. | |
361 This is the original map that is stored when the folder is | |
362 narrowed.") | |
363 (make-variable-buffer-local 'mh-thread-scan-line-map-stack) | |
364 | |
365 (defvar mh-x-mailer-string nil | |
366 "*String containing the contents of the X-Mailer header field. | |
367 If nil, this variable is initialized to show the version of MH-E, | |
368 Emacs, and MH the first time a message is composed.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
369 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
370 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
371 |
68465 | 372 ;;; MH-E Entry Points |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
373 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
374 (eval-when-compile (require 'gnus)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
375 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
376 (defmacro mh-macro-expansion-time-gnus-version () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
377 "Return Gnus version available at macro expansion time. |
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67756
diff
changeset
|
378 The macro evaluates the Gnus version at macro expansion time. If |
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67756
diff
changeset
|
379 MH-E was compiled then macro expansion happens at compile time." |
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67756
diff
changeset
|
380 gnus-version) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
381 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
382 (defun mh-run-time-gnus-version () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
383 "Return Gnus version available at run time." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
384 (require 'gnus) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
385 gnus-version) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
386 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
387 ;;;###autoload |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
388 (defun mh-version () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
389 "Display version information about MH-E and the MH mail handling system." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
390 (interactive) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
391 (set-buffer (get-buffer-create mh-info-buffer)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
392 (erase-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
393 ;; MH-E version. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
394 (insert "MH-E " mh-version "\n\n") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
395 ;; MH-E compilation details. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
396 (insert "MH-E compilation details:\n") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
397 (let* ((compiled-mhe (byte-code-function-p (symbol-function 'mh-version))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
398 (gnus-compiled-version (if compiled-mhe |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
399 (mh-macro-expansion-time-gnus-version) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
400 "N/A"))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
401 (insert " Byte compiled:\t\t" (if compiled-mhe "yes" "no") "\n" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
402 " Gnus (compile-time):\t" gnus-compiled-version "\n" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
403 " Gnus (run-time):\t" (mh-run-time-gnus-version) "\n\n")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
404 ;; Emacs version. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
405 (insert (emacs-version) "\n\n") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
406 ;; MH version. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
407 (if mh-variant-in-use |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
408 (insert mh-variant-in-use "\n" |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
409 " mh-progs:\t" mh-progs "\n" |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
410 " mh-lib:\t" mh-lib "\n" |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
411 " mh-lib-progs:\t" mh-lib-progs "\n\n") |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
412 (insert "No MH variant detected\n")) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
413 ;; Linux version. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
414 (condition-case () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
415 (call-process "uname" nil t nil "-a") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
416 (file-error)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
417 (goto-char (point-min)) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
418 (display-buffer mh-info-buffer)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
419 |
68465 | 420 |
421 | |
422 ;;; Support Routines | |
423 | |
424 (defun mh-list-to-string (l) | |
425 "Flatten the list L and make every element of the new list into a string." | |
426 (nreverse (mh-list-to-string-1 l))) | |
427 | |
428 (defun mh-list-to-string-1 (l) | |
429 "Flatten the list L and make every element of the new list into a string." | |
69519
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
430 (let (new-list) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
431 (dolist (element l) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
432 (cond ((null element)) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
433 ((symbolp element) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
434 (push (symbol-name element) new-list)) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
435 ((numberp element) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
436 (push (int-to-string element) new-list)) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
437 ((equal element "")) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
438 ((stringp element) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
439 (push element new-list)) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
440 ((listp element) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
441 (setq new-list (nconc (mh-list-to-string-1 element) new-list))) |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
442 (t |
e9f5e5650ade
(mh-list-to-string-1): Use dolist.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
443 (error "Bad element: %s" element)))) |
68465 | 444 new-list)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
445 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
446 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
447 |
68465 | 448 ;;; MH-E Process Support |
449 | |
450 (defvar mh-index-max-cmdline-args 500 | |
451 "Maximum number of command line args.") | |
452 | |
453 (defun mh-xargs (cmd &rest args) | |
454 "Partial imitation of xargs. | |
455 The current buffer contains a list of strings, one on each line. | |
456 The function will execute CMD with ARGS and pass the first | |
457 `mh-index-max-cmdline-args' strings to it. This is repeated till | |
458 all the strings have been used." | |
459 (goto-char (point-min)) | |
460 (let ((current-buffer (current-buffer))) | |
461 (with-temp-buffer | |
462 (let ((out (current-buffer))) | |
463 (set-buffer current-buffer) | |
464 (while (not (eobp)) | |
465 (let ((arg-list (reverse args)) | |
466 (count 0)) | |
467 (while (and (not (eobp)) (< count mh-index-max-cmdline-args)) | |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68484
diff
changeset
|
468 (push (buffer-substring-no-properties (point) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68484
diff
changeset
|
469 (mh-line-end-position)) |
68465 | 470 arg-list) |
471 (incf count) | |
472 (forward-line)) | |
473 (apply #'call-process cmd nil (list out nil) nil | |
474 (nreverse arg-list)))) | |
475 (erase-buffer) | |
476 (insert-buffer-substring out))))) | |
477 | |
478 ;; XXX This should be applied anywhere MH-E calls out to /bin/sh. | |
479 (defun mh-quote-for-shell (string) | |
480 "Quote STRING for /bin/sh. | |
481 Adds double-quotes around entire string and quotes the characters | |
482 \\, `, and $ with a backslash." | |
483 (concat "\"" | |
484 (loop for x across string | |
485 concat (format (if (memq x '(?\\ ?` ?$)) "\\%c" "%c") x)) | |
486 "\"")) | |
487 | |
488 (defun mh-exec-cmd (command &rest args) | |
489 "Execute mh-command COMMAND with ARGS. | |
490 The side effects are what is desired. Any output is assumed to be | |
491 an error and is shown to the user. The output is not read or | |
492 parsed by MH-E." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
493 (save-excursion |
68465 | 494 (set-buffer (get-buffer-create mh-log-buffer)) |
495 (let* ((initial-size (mh-truncate-log-buffer)) | |
496 (start (point)) | |
497 (args (mh-list-to-string args))) | |
498 (apply 'call-process (expand-file-name command mh-progs) nil t nil args) | |
499 (when (> (buffer-size) initial-size) | |
500 (save-excursion | |
501 (goto-char start) | |
502 (insert "Errors when executing: " command) | |
503 (loop for arg in args do (insert " " arg)) | |
504 (insert "\n")) | |
505 (save-window-excursion | |
506 (switch-to-buffer-other-window mh-log-buffer) | |
507 (sit-for 5)))))) | |
508 | |
509 (defun mh-exec-cmd-error (env command &rest args) | |
510 "In environment ENV, execute mh-command COMMAND with ARGS. | |
511 ENV is nil or a string of space-separated \"var=value\" elements. | |
512 Signals an error if process does not complete successfully." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
513 (save-excursion |
68465 | 514 (set-buffer (get-buffer-create mh-temp-buffer)) |
515 (erase-buffer) | |
516 (let ((process-environment process-environment)) | |
517 ;; XXX: We should purge the list that split-string returns of empty | |
518 ;; strings. This can happen in XEmacs if leading or trailing spaces | |
519 ;; are present. | |
520 (dolist (elem (if (stringp env) (split-string env " ") ())) | |
521 (push elem process-environment)) | |
522 (mh-handle-process-error | |
523 command (apply #'call-process (expand-file-name command mh-progs) | |
524 nil t nil (mh-list-to-string args)))))) | |
525 | |
526 (defun mh-exec-cmd-daemon (command filter &rest args) | |
527 "Execute MH command COMMAND in the background. | |
528 | |
529 If FILTER is non-nil then it is used to process the output | |
530 otherwise the default filter `mh-process-daemon' is used. See | |
531 `set-process-filter' for more details of FILTER. | |
532 | |
533 ARGS are passed to COMMAND as command line arguments." | |
534 (save-excursion | |
535 (set-buffer (get-buffer-create mh-log-buffer)) | |
536 (mh-truncate-log-buffer)) | |
537 (let* ((process-connection-type nil) | |
538 (process (apply 'start-process | |
539 command nil | |
540 (expand-file-name command mh-progs) | |
541 (mh-list-to-string args)))) | |
542 (set-process-filter process (or filter 'mh-process-daemon)) | |
543 process)) | |
544 | |
545 (defun mh-exec-cmd-env-daemon (env command filter &rest args) | |
546 "In ennvironment ENV, execute mh-command COMMAND in the background. | |
547 | |
548 ENV is nil or a string of space-separated \"var=value\" elements. | |
549 Signals an error if process does not complete successfully. | |
550 | |
551 If FILTER is non-nil then it is used to process the output | |
552 otherwise the default filter `mh-process-daemon' is used. See | |
553 `set-process-filter' for more details of FILTER. | |
554 | |
555 ARGS are passed to COMMAND as command line arguments." | |
556 (let ((process-environment process-environment)) | |
557 (dolist (elem (if (stringp env) (split-string env " ") ())) | |
558 (push elem process-environment)) | |
559 (apply #'mh-exec-cmd-daemon command filter args))) | |
560 | |
561 (defun mh-process-daemon (process output) | |
562 "PROCESS daemon that puts OUTPUT into a temporary buffer. | |
563 Any output from the process is displayed in an asynchronous | |
564 pop-up window." | |
565 (with-current-buffer (get-buffer-create mh-log-buffer) | |
566 (insert-before-markers output) | |
567 (display-buffer mh-log-buffer))) | |
568 | |
569 (defun mh-exec-cmd-quiet (raise-error command &rest args) | |
570 "Signal RAISE-ERROR if COMMAND with ARGS fails. | |
571 Execute MH command COMMAND with ARGS. ARGS is a list of strings. | |
572 Return at start of mh-temp buffer, where output can be parsed and | |
573 used. | |
574 Returns value of `call-process', which is 0 for success, unless | |
575 RAISE-ERROR is non-nil, in which case an error is signaled if | |
576 `call-process' returns non-0." | |
577 (set-buffer (get-buffer-create mh-temp-buffer)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
578 (erase-buffer) |
68465 | 579 (let ((value |
580 (apply 'call-process | |
581 (expand-file-name command mh-progs) nil t nil | |
582 args))) | |
583 (goto-char (point-min)) | |
584 (if raise-error | |
585 (mh-handle-process-error command value) | |
586 value))) | |
587 | |
588 (defun mh-exec-cmd-output (command display &rest args) | |
589 "Execute MH command COMMAND with DISPLAY flag and ARGS. | |
590 Put the output into buffer after point. | |
591 Set mark after inserted text. | |
592 Output is expected to be shown to user, not parsed by MH-E." | |
593 (push-mark (point) t) | |
594 (apply 'call-process | |
595 (expand-file-name command mh-progs) nil t display | |
596 (mh-list-to-string args)) | |
597 | |
598 ;; The following is used instead of 'exchange-point-and-mark because the | |
599 ;; latter activates the current region (between point and mark), which | |
600 ;; turns on highlighting. So prior to this bug fix, doing "inc" would | |
601 ;; highlight a region containing the new messages, which is undesirable. | |
602 ;; The bug wasn't seen in emacs21 but still occurred in XEmacs21.4. | |
603 (mh-exchange-point-and-mark-preserving-active-mark)) | |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56407
diff
changeset
|
604 |
68102
dbf20754c3a7
Use consistent verbiage with compiler defvars.
Bill Wohler <wohler@newt.com>
parents:
68096
diff
changeset
|
605 ;; Shush compiler. |
68465 | 606 (eval-when-compile (mh-do-in-xemacs (defvar mark-active))) |
607 | |
608 (defun mh-exchange-point-and-mark-preserving-active-mark () | |
609 "Put the mark where point is now, and point where the mark is now. | |
610 This command works even when the mark is not active, and | |
611 preserves whether the mark is active or not." | |
612 (interactive nil) | |
613 (let ((is-active (and (boundp 'mark-active) mark-active))) | |
614 (let ((omark (mark t))) | |
615 (if (null omark) | |
616 (error "No mark set in this buffer")) | |
617 (set-mark (point)) | |
618 (goto-char omark) | |
619 (if (boundp 'mark-active) | |
620 (setq mark-active is-active)) | |
621 nil))) | |
622 | |
623 (defun mh-exec-lib-cmd-output (command &rest args) | |
624 "Execute MH library command COMMAND with ARGS. | |
625 Put the output into buffer after point. | |
626 Set mark after inserted text." | |
627 (apply 'mh-exec-cmd-output (expand-file-name command mh-lib-progs) nil args)) | |
628 | |
629 (defun mh-handle-process-error (command status) | |
630 "Raise error if COMMAND returned non-zero STATUS, otherwise return STATUS." | |
631 (if (equal status 0) | |
632 status | |
633 (goto-char (point-min)) | |
634 (insert (if (integerp status) | |
635 (format "%s: exit code %d\n" command status) | |
636 (format "%s: %s\n" command status))) | |
637 (save-excursion | |
638 (let ((error-message (buffer-substring (point-min) (point-max)))) | |
639 (set-buffer (get-buffer-create mh-log-buffer)) | |
640 (mh-truncate-log-buffer) | |
641 (insert error-message))) | |
642 (error "%s failed, check buffer %s for error message" | |
643 command mh-log-buffer))) | |
644 | |
645 | |
646 | |
647 ;;; Variant Support | |
648 | |
649 (defcustom mh-path nil | |
650 "*Additional list of directories to search for MH. | |
651 See `mh-variant'." | |
652 :group 'mh-e | |
653 :type '(repeat (directory))) | |
654 | |
655 (defun mh-variants () | |
656 "Return a list of installed variants of MH on the system. | |
657 This function looks for MH in `mh-sys-path', `mh-path' and | |
658 `exec-path'. The format of the list of variants that is returned | |
659 is described by the variable `mh-variants'." | |
660 (if mh-variants | |
661 mh-variants | |
662 (let ((list-unique)) | |
663 ;; Make a unique list of directories, keeping the given order. | |
664 ;; We don't want the same MH variant to be listed multiple times. | |
665 (loop for dir in (append mh-path mh-sys-path exec-path) do | |
666 (setq dir (file-chase-links (directory-file-name dir))) | |
667 (add-to-list 'list-unique dir)) | |
668 (loop for dir in (nreverse list-unique) do | |
669 (when (and dir (file-directory-p dir) (file-readable-p dir)) | |
670 (let ((variant (mh-variant-info dir))) | |
671 (if variant | |
672 (add-to-list 'mh-variants variant))))) | |
673 mh-variants))) | |
674 | |
675 (defun mh-variant-info (dir) | |
676 "Return MH variant found in DIR, or nil if none present." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
677 (save-excursion |
68465 | 678 (let ((tmp-buffer (get-buffer-create mh-temp-buffer))) |
679 (set-buffer tmp-buffer) | |
680 (cond | |
681 ((mh-variant-mh-info dir)) | |
682 ((mh-variant-nmh-info dir)) | |
683 ((mh-variant-mu-mh-info dir)))))) | |
684 | |
685 (defun mh-variant-mh-info (dir) | |
686 "Return info for MH variant in DIR assuming a temporary buffer is setup." | |
687 ;; MH does not have the -version option. | |
688 ;; Its version number is included in the output of "-help" as: | |
689 ;; | |
690 ;; version: MH 6.8.4 #2[UCI] (burrito) of Fri Jan 15 20:01:39 EST 1999 | |
691 ;; options: [ATHENA] [BIND] [DUMB] [LIBLOCKFILE] [LOCALE] [MAILGROUP] [MHE] | |
692 ;; [MHRC] [MIME] [MORE='"/usr/bin/sensible-pager"'] [NLINK_HACK] | |
693 ;; [NORUSERPASS] [OVERHEAD] [POP] [POPSERVICE='"pop-3"'] [RENAME] | |
694 ;; [RFC1342] [RPATHS] [RPOP] [SENDMTS] [SMTP] [SOCKETS] | |
695 ;; [SPRINTFTYPE=int] [SVR4] [SYS5] [SYS5DIR] [TERMINFO] | |
696 ;; [TYPESIG=void] [UNISTD] [UTK] [VSPRINTF] | |
697 (let ((mhparam (expand-file-name "mhparam" dir))) | |
698 (when (mh-file-command-p mhparam) | |
699 (erase-buffer) | |
700 (call-process mhparam nil '(t nil) nil "-help") | |
701 (goto-char (point-min)) | |
702 (when (search-forward-regexp "version: MH \\(\\S +\\)" nil t) | |
703 (let ((version (format "MH %s" (match-string 1)))) | |
704 (erase-buffer) | |
705 (call-process mhparam nil '(t nil) nil "libdir") | |
706 (goto-char (point-min)) | |
707 (when (search-forward-regexp "^.*$" nil t) | |
708 (let ((libdir (match-string 0))) | |
709 `(,version | |
710 (variant mh) | |
711 (mh-lib-progs ,libdir) | |
712 (mh-lib ,libdir) | |
713 (mh-progs ,dir) | |
714 (flists nil))))))))) | |
715 | |
716 (defun mh-variant-mu-mh-info (dir) | |
717 "Return info for GNU mailutils variant in DIR. | |
718 This assumes that a temporary buffer is setup." | |
719 ;; 'mhparam -version' output: | |
720 ;; mhparam (GNU mailutils 0.3.2) | |
721 (let ((mhparam (expand-file-name "mhparam" dir))) | |
722 (when (mh-file-command-p mhparam) | |
723 (erase-buffer) | |
724 (call-process mhparam nil '(t nil) nil "-version") | |
725 (goto-char (point-min)) | |
726 (when (search-forward-regexp "mhparam (\\(GNU [Mm]ailutils \\S +\\))" | |
727 nil t) | |
728 (let ((version (match-string 1)) | |
729 (mh-progs dir)) | |
730 `(,version | |
731 (variant mu-mh) | |
732 (mh-lib-progs ,(mh-profile-component "libdir")) | |
733 (mh-lib ,(mh-profile-component "etcdir")) | |
734 (mh-progs ,dir) | |
735 (flists ,(file-exists-p | |
736 (expand-file-name "flists" dir))))))))) | |
737 | |
738 (defun mh-variant-nmh-info (dir) | |
739 "Return info for nmh variant in DIR assuming a temporary buffer is setup." | |
740 ;; `mhparam -version' outputs: | |
741 ;; mhparam -- nmh-1.1-RC1 [compiled on chaak at Fri Jun 20 11:03:28 PDT 2003] | |
742 (let ((mhparam (expand-file-name "mhparam" dir))) | |
743 (when (mh-file-command-p mhparam) | |
744 (erase-buffer) | |
745 (call-process mhparam nil '(t nil) nil "-version") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
746 (goto-char (point-min)) |
68465 | 747 (when (search-forward-regexp "mhparam -- nmh-\\(\\S +\\)" nil t) |
748 (let ((version (format "nmh %s" (match-string 1))) | |
749 (mh-progs dir)) | |
750 `(,version | |
751 (variant nmh) | |
752 (mh-lib-progs ,(mh-profile-component "libdir")) | |
753 (mh-lib ,(mh-profile-component "etcdir")) | |
754 (mh-progs ,dir) | |
755 (flists ,(file-exists-p | |
756 (expand-file-name "flists" dir))))))))) | |
757 | |
758 (defun mh-file-command-p (file) | |
759 "Return t if file FILE is the name of a executable regular file." | |
760 (and (file-regular-p file) (file-executable-p file))) | |
761 | |
762 (defun mh-variant-set-variant (variant) | |
763 "Setup the system variables for the MH variant named VARIANT. | |
764 If VARIANT is a string, use that key in the alist returned by the | |
765 function `mh-variants'. | |
766 If VARIANT is a symbol, select the first entry that matches that | |
767 variant." | |
768 (cond | |
769 ((stringp variant) ;e.g. "nmh 1.1-RC1" | |
770 (when (assoc variant (mh-variants)) | |
771 (let* ((alist (cdr (assoc variant (mh-variants)))) | |
772 (lib-progs (cadr (assoc 'mh-lib-progs alist))) | |
773 (lib (cadr (assoc 'mh-lib alist))) | |
774 (progs (cadr (assoc 'mh-progs alist))) | |
775 (flists (cadr (assoc 'flists alist)))) | |
776 ;;(set-default mh-variant variant) | |
777 (setq mh-x-mailer-string nil | |
778 mh-flists-present-flag flists | |
779 mh-lib-progs lib-progs | |
780 mh-lib lib | |
781 mh-progs progs | |
782 mh-variant-in-use variant)))) | |
783 ((symbolp variant) ;e.g. 'nmh (pick the first match) | |
784 (loop for variant-list in (mh-variants) | |
785 when (eq variant (cadr (assoc 'variant (cdr variant-list)))) | |
786 return (let* ((version (car variant-list)) | |
787 (alist (cdr variant-list)) | |
788 (lib-progs (cadr (assoc 'mh-lib-progs alist))) | |
789 (lib (cadr (assoc 'mh-lib alist))) | |
790 (progs (cadr (assoc 'mh-progs alist))) | |
791 (flists (cadr (assoc 'flists alist)))) | |
792 ;;(set-default mh-variant flavor) | |
793 (setq mh-x-mailer-string nil | |
794 mh-flists-present-flag flists | |
795 mh-lib-progs lib-progs | |
796 mh-lib lib | |
797 mh-progs progs | |
798 mh-variant-in-use version) | |
799 t))))) | |
800 | |
801 (defun mh-variant-p (&rest variants) | |
802 "Return t if variant is any of VARIANTS. | |
803 Currently known variants are 'MH, 'nmh, and 'mu-mh." | |
804 (let ((variant-in-use | |
805 (cadr (assoc 'variant (assoc mh-variant-in-use (mh-variants)))))) | |
806 (not (null (member variant-in-use variants))))) | |
807 | |
808 (defun mh-profile-component (component) | |
809 "Return COMPONENT value from mhparam, or nil if unset." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
810 (save-excursion |
69357
1f70898570ca
(mh-profile-component): Drop `s' from mhparam -components for
Bill Wohler <wohler@newt.com>
parents:
69305
diff
changeset
|
811 ;; MH and nmh use -components, Mailutils uses -component. Since MH |
1f70898570ca
(mh-profile-component): Drop `s' from mhparam -components for
Bill Wohler <wohler@newt.com>
parents:
69305
diff
changeset
|
812 ;; and nmh work with an unambiguous prefix, the `s' is dropped here. |
1f70898570ca
(mh-profile-component): Drop `s' from mhparam -components for
Bill Wohler <wohler@newt.com>
parents:
69305
diff
changeset
|
813 (mh-exec-cmd-quiet nil "mhparam" "-component" component) |
68465 | 814 (mh-profile-component-value component))) |
815 | |
816 (defun mh-profile-component-value (component) | |
817 "Find and return the value of COMPONENT in the current buffer. | |
818 Returns nil if the component is not in the buffer." | |
819 (let ((case-fold-search t)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
820 (goto-char (point-min)) |
68465 | 821 (cond ((not (re-search-forward (format "^%s:" component) nil t)) nil) |
822 ((looking-at "[\t ]*$") nil) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
823 (t |
68465 | 824 (re-search-forward "[\t ]*\\([^\t \n].*\\)$" nil t) |
825 (let ((start (match-beginning 1))) | |
826 (end-of-line) | |
827 (buffer-substring start (point))))))) | |
828 | |
829 (defun mh-variant-set (variant) | |
830 "Set the MH variant to VARIANT. | |
831 Sets `mh-progs', `mh-lib', `mh-lib-progs' and | |
832 `mh-flists-present-flag'. | |
833 If the VARIANT is \"autodetect\", then first try nmh, then MH and | |
834 finally GNU mailutils." | |
835 (interactive | |
836 (list (completing-read | |
837 "MH variant: " | |
838 (mapcar (lambda (x) (list (car x))) (mh-variants)) | |
839 nil t))) | |
840 (let ((valid-list (mapcar (lambda (x) (car x)) (mh-variants)))) | |
841 (cond | |
842 ((eq variant 'none)) | |
843 ((eq variant 'autodetect) | |
844 (cond | |
845 ((mh-variant-set-variant 'nmh) | |
846 (message "%s installed as MH variant" mh-variant-in-use)) | |
847 ((mh-variant-set-variant 'mh) | |
848 (message "%s installed as MH variant" mh-variant-in-use)) | |
849 ((mh-variant-set-variant 'mu-mh) | |
850 (message "%s installed as MH variant" mh-variant-in-use)) | |
851 (t | |
852 (message "No MH variant found on the system")))) | |
853 ((member variant valid-list) | |
854 (when (not (mh-variant-set-variant variant)) | |
855 (message "Warning: %s variant not found. Autodetecting..." variant) | |
856 (mh-variant-set 'autodetect))) | |
857 (t | |
858 (message "Unknown variant; use %s" | |
859 (mapconcat '(lambda (x) (format "%s" (car x))) | |
860 (mh-variants) " or ")))))) | |
861 | |
862 (defcustom mh-variant 'autodetect | |
863 "*Specifies the variant used by MH-E. | |
864 | |
865 The default setting of this option is \"Auto-detect\" which means | |
866 that MH-E will automatically choose the first of nmh, MH, or GNU | |
867 mailutils that it finds in the directories listed in | |
868 `mh-path' (which you can customize), `mh-sys-path', and | |
69196
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
869 `exec-path'. If MH-E can't find MH at all, you may have to |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
870 customize `mh-path' and add the directory in which the command |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
871 \"mhparam\" is located. If, on the other hand, you have both nmh |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
872 and mailutils installed (for example) and `mh-variant-in-use' was |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
873 initialized to nmh but you want to use mailutils, then you can |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
874 set this option to \"mailutils\". |
68465 | 875 |
876 When this variable is changed, MH-E resets `mh-progs', `mh-lib', | |
877 `mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use' | |
69196
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
878 accordingly. Prior to version 8, it was often necessary to set |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
879 some of these variables in \"~/.emacs\"; now it is no longer |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
880 necessary and can actually cause problems." |
68465 | 881 :type `(radio |
882 (const :tag "Auto-detect" autodetect) | |
883 ,@(mapcar (lambda (x) `(const ,(car x))) (mh-variants))) | |
884 :set (lambda (symbol value) | |
885 (set-default symbol value) ;Done in mh-variant-set-variant! | |
886 (mh-variant-set value)) | |
887 :group 'mh-e) | |
888 | |
889 | |
890 | |
891 ;;; MH-E Customization | |
892 | |
893 ;; All of the defgroups, defcustoms, and deffaces in MH-E are found | |
894 ;; here. This makes it possible to customize modules that aren't | |
895 ;; loaded yet. It also makes it easier to organize the customization | |
896 ;; groups. | |
897 | |
898 ;; This section contains the following sub-sections: | |
899 | |
900 ;; 1. MH-E Customization Groups | |
901 | |
902 ;; These are the customization group definitions. Every group has a | |
903 ;; associated manual node. The ordering is alphabetical, except for | |
904 ;; the groups mh-faces and mh-hooks which are last . | |
905 | |
906 ;; 2. MH-E Customization | |
907 | |
908 ;; These are the actual customization variables. There is a | |
909 ;; sub-section for each group in the MH-E Customization Groups | |
910 ;; section, in the same order, separated by page breaks. Within | |
911 ;; each section, variables are sorted alphabetically. | |
912 | |
913 ;; 3. Hooks | |
914 | |
915 ;; All hooks must be placed in the mh-hook group; in addition, add | |
916 ;; the group associated with the manual node in which the hook is | |
917 ;; described. Since the mh-hook group appears near the end of this | |
918 ;; section, the hooks will appear at the end of these other groups. | |
919 | |
920 ;; 4. Faces | |
921 | |
922 ;; All faces must be placed in the mh-faces group; in addition, add | |
923 ;; the group associated with the manual node in which the face is | |
924 ;; described. Since the mh-faces group appears near the end of this | |
925 ;; section, the faces will appear at the end of these other groups. | |
926 | |
927 (defun mh-customize (&optional delete-other-windows-flag) | |
928 "Customize MH-E variables. | |
929 If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other | |
930 windows in the frame are removed." | |
931 (interactive "P") | |
932 (customize-group 'mh-e) | |
933 (when delete-other-windows-flag | |
934 (delete-other-windows))) | |
935 | |
936 | |
937 | |
938 ;;; MH-E Customization Groups | |
939 | |
940 (defgroup mh-e nil | |
941 "Emacs interface to the MH mail system. | |
942 MH is the Rand Mail Handler. Other implementations include nmh | |
943 and GNU mailutils." | |
944 :link '(custom-manual "(mh-e)Top") | |
945 :group 'mail) | |
946 | |
947 (defgroup mh-alias nil | |
948 "Aliases." | |
949 :link '(custom-manual "(mh-e)Aliases") | |
950 :prefix "mh-alias-" | |
951 :group 'mh-e) | |
952 | |
953 (defgroup mh-folder nil | |
954 "Organizing your mail with folders." | |
955 :prefix "mh-" | |
956 :link '(custom-manual "(mh-e)Folders") | |
957 :group 'mh-e) | |
958 | |
959 (defgroup mh-folder-selection nil | |
960 "Folder selection." | |
961 :prefix "mh-" | |
962 :link '(custom-manual "(mh-e)Folder Selection") | |
963 :group 'mh-e) | |
964 | |
965 (defgroup mh-identity nil | |
966 "Identities." | |
967 :link '(custom-manual "(mh-e)Identities") | |
968 :prefix "mh-identity-" | |
969 :group 'mh-e) | |
970 | |
971 (defgroup mh-inc nil | |
972 "Incorporating your mail." | |
973 :prefix "mh-inc-" | |
974 :link '(custom-manual "(mh-e)Incorporating Mail") | |
975 :group 'mh-e) | |
976 | |
977 (defgroup mh-junk nil | |
978 "Dealing with junk mail." | |
979 :link '(custom-manual "(mh-e)Junk") | |
980 :prefix "mh-junk-" | |
981 :group 'mh-e) | |
982 | |
983 (defgroup mh-letter nil | |
984 "Editing a draft." | |
985 :prefix "mh-" | |
986 :link '(custom-manual "(mh-e)Editing Drafts") | |
987 :group 'mh-e) | |
988 | |
989 (defgroup mh-ranges nil | |
990 "Ranges." | |
991 :prefix "mh-" | |
992 :link '(custom-manual "(mh-e)Ranges") | |
993 :group 'mh-e) | |
994 | |
995 (defgroup mh-scan-line-formats nil | |
996 "Scan line formats." | |
997 :link '(custom-manual "(mh-e)Scan Line Formats") | |
998 :prefix "mh-" | |
999 :group 'mh-e) | |
1000 | |
1001 (defgroup mh-search nil | |
1002 "Searching." | |
1003 :link '(custom-manual "(mh-e)Searching") | |
1004 :prefix "mh-search-" | |
1005 :group 'mh-e) | |
1006 | |
1007 (defgroup mh-sending-mail nil | |
1008 "Sending mail." | |
1009 :prefix "mh-" | |
1010 :link '(custom-manual "(mh-e)Sending Mail") | |
1011 :group 'mh-e) | |
1012 | |
1013 (defgroup mh-sequences nil | |
1014 "Sequences." | |
1015 :prefix "mh-" | |
1016 :link '(custom-manual "(mh-e)Sequences") | |
1017 :group 'mh-e) | |
1018 | |
1019 (defgroup mh-show nil | |
1020 "Reading your mail." | |
1021 :prefix "mh-" | |
1022 :link '(custom-manual "(mh-e)Reading Mail") | |
1023 :group 'mh-e) | |
1024 | |
1025 (defgroup mh-speedbar nil | |
1026 "The speedbar." | |
1027 :prefix "mh-speed-" | |
1028 :link '(custom-manual "(mh-e)Speedbar") | |
1029 :group 'mh-e) | |
1030 | |
1031 (defgroup mh-thread nil | |
1032 "Threading." | |
1033 :prefix "mh-thread-" | |
1034 :link '(custom-manual "(mh-e)Threading") | |
1035 :group 'mh-e) | |
1036 | |
1037 (defgroup mh-tool-bar nil | |
1038 "The tool bar" | |
1039 :link '(custom-manual "(mh-e)Tool Bar") | |
1040 :prefix "mh-" | |
1041 :group 'mh-e) | |
1042 | |
1043 (defgroup mh-hooks nil | |
1044 "MH-E hooks." | |
1045 :link '(custom-manual "(mh-e)Top") | |
1046 :prefix "mh-" | |
1047 :group 'mh-e) | |
1048 | |
1049 (defgroup mh-faces nil | |
1050 "Faces used in MH-E." | |
1051 :link '(custom-manual "(mh-e)Top") | |
1052 :prefix "mh-" | |
1053 :group 'faces | |
1054 :group 'mh-e) | |
1055 | |
1056 | |
1057 | |
1058 ;;; Emacs Interface to the MH Mail System (:group mh-e) | |
1059 | |
1060 ;; See Variant Support, above. | |
1061 | |
1062 ;;; Aliases (:group 'mh-alias) | |
1063 | |
1064 (defcustom mh-alias-completion-ignore-case-flag t | |
1065 "*Non-nil means don't consider case significant in MH alias completion. | |
1066 | |
1067 As MH ignores case in the aliases, so too does MH-E. However, you | |
1068 may turn off this option to make case significant which can be | |
1069 used to segregate completion of your aliases. You might use | |
1070 lowercase for mailing lists and uppercase for people." | |
1071 :type 'boolean | |
1072 :group 'mh-alias) | |
1073 | |
1074 (defcustom mh-alias-expand-aliases-flag nil | |
1075 "*Non-nil means to expand aliases entered in the minibuffer. | |
1076 | |
1077 In other words, aliases entered in the minibuffer will be | |
1078 expanded to the full address in the message draft. By default, | |
1079 this expansion is not performed." | |
1080 :type 'boolean | |
1081 :group 'mh-alias) | |
1082 | |
1083 (defcustom mh-alias-flash-on-comma t | |
1084 "*Specify whether to flash address or warn on translation. | |
1085 | |
1086 This option controls the behavior when a [comma] is pressed while | |
1087 entering aliases or addresses. The default setting flashes the | |
1088 address associated with an address in the minibuffer briefly, but | |
1089 does not display a warning if the alias is not found." | |
1090 :type '(choice (const :tag "Flash but Don't Warn If No Alias" t) | |
1091 (const :tag "Flash and Warn If No Alias" 1) | |
1092 (const :tag "Don't Flash Nor Warn If No Alias" nil)) | |
1093 :group 'mh-alias) | |
1094 | |
1095 (defcustom mh-alias-insert-file nil | |
1096 "*Filename used to store a new MH-E alias. | |
1097 | |
1098 The default setting of this option is \"Use Aliasfile Profile | |
1099 Component\". This option can also hold the name of a file or a | |
1100 list a file names. If this option is set to a list of file names, | |
1101 or the \"Aliasfile:\" profile component contains more than one file | |
1102 name, MH-E will prompt for one of them when MH-E adds an alias." | |
1103 :type '(choice (const :tag "Use Aliasfile Profile Component" nil) | |
1104 (file :tag "Alias File") | |
1105 (repeat :tag "List of Alias Files" file)) | |
1106 :group 'mh-alias) | |
1107 | |
1108 (defcustom mh-alias-insertion-location 'sorted | |
1109 "Specifies where new aliases are entered in alias files. | |
1110 | |
1111 This option is set to \"Alphabetical\" by default. If you organize | |
1112 your alias file in other ways, then adding aliases to the \"Top\" | |
1113 or \"Bottom\" of your alias file might be more appropriate." | |
1114 :type '(choice (const :tag "Alphabetical" sorted) | |
1115 (const :tag "Top" top) | |
1116 (const :tag "Bottom" bottom)) | |
1117 :group 'mh-alias) | |
1118 | |
1119 (defcustom mh-alias-local-users t | |
1120 "*If on, local users are added to alias completion. | |
1121 | |
1122 Aliases are created from \"/etc/passwd\" entries with a user ID | |
1123 larger than a magical number, typically 200. This can be a handy | |
1124 tool on a machine where you and co-workers exchange messages. | |
1125 These aliases have the form \"local.first.last\" if a real name is | |
1126 present in the password file. Otherwise, the alias will have the | |
1127 form \"local.login\". | |
1128 | |
1129 If you're on a system with thousands of users you don't know, and | |
1130 the loading of local aliases slows MH-E down noticeably, then | |
1131 turn this option off. | |
1132 | |
1133 This option also takes a string which is executed to generate the | |
1134 password file. For example, use \"ypcat passwd\" to obtain the | |
1135 NIS password file." | |
1136 :type '(choice (boolean) (string)) | |
1137 :group 'mh-alias) | |
1138 | |
1139 (defcustom mh-alias-local-users-prefix "local." | |
1140 "*String prefixed to the real names of users from the password file. | |
1141 This option can also be set to \"Use Login\". | |
1142 | |
1143 For example, consider the following password file entry: | |
1144 | |
1145 psg:x:1000:1000:Peter S Galbraith,,,:/home/psg:/bin/tcsh | |
1146 | |
1147 The following settings of this option will produce the associated | |
1148 aliases: | |
1149 | |
1150 \"local.\" local.peter.galbraith | |
1151 \"\" peter.galbraith | |
1152 Use Login psg | |
1153 | |
1154 This option has no effect if variable `mh-alias-local-users' is | |
1155 turned off." | |
1156 :type '(choice (const :tag "Use Login" nil) | |
1157 (string)) | |
1158 :group 'mh-alias) | |
1159 | |
1160 (defcustom mh-alias-passwd-gecos-comma-separator-flag t | |
1161 "*Non-nil means the gecos field in the password file uses a comma separator. | |
1162 | |
1163 In the example in `mh-alias-local-users-prefix', commas are used | |
1164 to separate different values within the so-called gecos field. | |
1165 This is a fairly common usage. However, in the rare case that the | |
1166 gecos field in your password file is not separated by commas and | |
1167 whose contents may contain commas, you can turn this option off." | |
1168 :type 'boolean | |
1169 :group 'mh-alias) | |
1170 | |
1171 | |
1172 | |
1173 ;;; Organizing Your Mail with Folders (:group 'mh-folder) | |
1174 | |
1175 (defcustom mh-new-messages-folders t | |
1176 "Folders searched for the \"unseen\" sequence. | |
1177 | |
1178 Set this option to \"Inbox\" to search the \"+inbox\" folder or | |
1179 \"All\" to search all of the top level folders. Otherwise, list | |
1180 the folders that should be searched with the \"Choose Folders\" | |
1181 menu item. | |
1182 | |
1183 See also `mh-recursive-folders-flag'." | |
1184 :type '(choice (const :tag "Inbox" t) | |
1185 (const :tag "All" nil) | |
1186 (repeat :tag "Choose Folders" (string :tag "Folder"))) | |
1187 :group 'mh-folder) | |
1188 | |
1189 (defcustom mh-ticked-messages-folders t | |
1190 "Folders searched for `mh-tick-seq'. | |
1191 | |
1192 Set this option to \"Inbox\" to search the \"+inbox\" folder or | |
1193 \"All\" to search all of the top level folders. Otherwise, list | |
1194 the folders that should be searched with the \"Choose Folders\" | |
1195 menu item. | |
1196 | |
1197 See also `mh-recursive-folders-flag'." | |
1198 :type '(choice (const :tag "Inbox" t) | |
1199 (const :tag "All" nil) | |
1200 (repeat :tag "Choose Folders" (string :tag "Folder"))) | |
1201 :group 'mh-folder) | |
1202 | |
1203 (defcustom mh-large-folder 200 | |
1204 "The number of messages that indicates a large folder. | |
1205 | |
1206 If a folder is deemed to be large, that is the number of messages | |
1207 in it exceed this value, then confirmation is needed when it is | |
1208 visited. Even when `mh-show-threads-flag' is non-nil, the folder | |
1209 is not automatically threaded, if it is large. If set to nil all | |
1210 folders are treated as if they are small." | |
1211 :type '(choice (const :tag "No Limit") integer) | |
1212 :group 'mh-folder) | |
1213 | |
1214 (defcustom mh-recenter-summary-flag nil | |
1215 "*Non-nil means to recenter the summary window. | |
1216 | |
1217 If this option is turned on, recenter the summary window when the | |
1218 show window is toggled off." | |
1219 :type 'boolean | |
1220 :group 'mh-folder) | |
1221 | |
1222 (defcustom mh-recursive-folders-flag nil | |
1223 "*Non-nil means that commands which operate on folders do so recursively." | |
1224 :type 'boolean | |
1225 :group 'mh-folder) | |
1226 | |
1227 (defcustom mh-sortm-args nil | |
1228 "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>. | |
1229 | |
1230 This option is consulted when a prefix argument is used with | |
1231 \\[mh-sort-folder]. Normally default arguments to \"sortm\" are | |
1232 specified in the MH profile. This option may be used to provide | |
1233 an alternate view. For example, \"'(\"-nolimit\" \"-textfield\" | |
1234 \"subject\")\" is a useful setting." | |
1235 :type 'string | |
1236 :group 'mh-folder) | |
1237 | |
1238 | |
1239 | |
1240 ;;; Folder Selection (:group 'mh-folder-selection) | |
1241 | |
1242 (defcustom mh-default-folder-for-message-function nil | |
1243 "Function to select a default folder for refiling or \"Fcc:\". | |
1244 | |
69196
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
1245 When this function is called, the current buffer contains the message |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
1246 being refiled and point is at the start of the message. This function |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
1247 should return the default folder as a string with a leading \"+\" |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
1248 sign. It can also return nil so that the last folder name is used as |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
1249 the default, or an empty string to suppress the default entirely." |
68465 | 1250 :type 'function |
1251 :group 'mh-folder-selection) | |
1252 | |
1253 (defcustom mh-default-folder-list nil | |
1254 "*List of addresses and folders. | |
1255 | |
1256 The folder name associated with the first address found in this | |
1257 list is used as the default for `mh-refile-msg' and similar | |
1258 functions. Each element in this list contains a \"Check Recipient\" | |
1259 item. If this item is turned on, then the address is checked | |
1260 against the recipient instead of the sender. This is useful for | |
1261 mailing lists. | |
1262 | |
1263 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' | |
1264 for more information." | |
1265 :type '(repeat (list (regexp :tag "Address") | |
1266 (string :tag "Folder") | |
1267 (boolean :tag "Check Recipient"))) | |
1268 :group 'mh-folder-selection) | |
1269 | |
1270 (defcustom mh-default-folder-must-exist-flag t | |
1271 "*Non-nil means guessed folder name must exist to be used. | |
1272 | |
1273 If the derived folder does not exist, and this option is on, then | |
1274 the last folder name used is suggested. This is useful if you get | |
1275 mail from various people for whom you have an alias, but file | |
1276 them all in the same project folder. | |
1277 | |
1278 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' | |
1279 for more information." | |
1280 :type 'boolean | |
1281 :group 'mh-folder-selection) | |
1282 | |
1283 (defcustom mh-default-folder-prefix "" | |
1284 "*Prefix used for folder names generated from aliases. | |
1285 The prefix is used to prevent clutter in your mail directory. | |
1286 | |
1287 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' | |
1288 for more information." | |
1289 :type 'string | |
1290 :group 'mh-folder-selection) | |
1291 | |
1292 | |
1293 | |
1294 ;;; Identities (:group 'mh-identity) | |
1295 | |
1296 (eval-and-compile | |
1297 (unless (fboundp 'mh-identity-make-menu-no-autoload) | |
1298 (defun mh-identity-make-menu-no-autoload () | |
1299 "Temporary definition. | |
1300 Real definition will take effect when mh-identity is loaded." | |
1301 nil))) | |
1302 | |
1303 (defcustom mh-identity-list nil | |
1304 "*List of identities. | |
1305 | |
1306 To customize this option, click on the \"INS\" button and enter a label | |
1307 such as \"Home\" or \"Work\". Then click on the \"INS\" button with the | |
1308 label \"Add at least one item below\". Then choose one of the items in | |
1309 the \"Value Menu\". | |
1310 | |
1311 You can specify an alternate \"From:\" header field using the \"From | |
1312 Field\" menu item. You must include a valid email address. A standard | |
1313 format is \"First Last <login@@host.domain>\". If you use an initial | |
1314 with a period, then you must quote your name as in '\"First I. Last\" | |
1315 <login@@host.domain>'. People usually list the name of the company | |
1316 where they work using the \"Organization Field\" menu item. Set any | |
1317 arbitrary header field and value in the \"Other Field\" menu item. | |
1318 Unless the header field is a standard one, precede the name of your | |
1319 field's label with \"X-\", as in \"X-Fruit-of-the-Day:\". The value of | |
1320 \"Attribution Verb\" overrides the setting of | |
1321 `mh-extract-from-attribution-verb'. Set your signature with the | |
1322 \"Signature\" menu item. You can specify the contents of | |
1323 `mh-signature-file-name', a file, or a function. Specify a different | |
1324 key to sign or encrypt messages with the \"GPG Key ID\" menu item. | |
1325 | |
1326 You can select the identities you have added via the menu called | |
1327 \"Identity\" in the MH-Letter buffer. You can also use | |
1328 \\[mh-insert-identity]. To clear the fields and signature added by the | |
1329 identity, select the \"None\" identity. | |
1330 | |
1331 The \"Identity\" menu contains two other items to save you from having | |
1332 to set the identity on every message. The menu item \"Set Default for | |
1333 Session\" can be used to set the default identity to the current | |
1334 identity until you exit Emacs. The menu item \"Save as Default\" sets | |
1335 the option `mh-identity-default' to the current identity setting. You | |
1336 can also customize the `mh-identity-default' option in the usual | |
1337 fashion." | |
1338 :type '(repeat (list :tag "" | |
1339 (string :tag "Label") | |
1340 (repeat :tag "Add at least one item below" | |
1341 (choice | |
1342 (cons :tag "From Field" | |
1343 (const "From") | |
1344 (string :tag "Value")) | |
1345 (cons :tag "Organization Field" | |
1346 (const "Organization") | |
1347 (string :tag "Value")) | |
1348 (cons :tag "Other Field" | |
1349 (string :tag "Field") | |
1350 (string :tag "Value")) | |
1351 (cons :tag "Attribution Verb" | |
1352 (const ":attribution-verb") | |
1353 (string :tag "Value")) | |
1354 (cons :tag "Signature" | |
1355 (const :tag "Signature" | |
1356 ":signature") | |
1357 (choice | |
1358 (const :tag "mh-signature-file-name" | |
1359 nil) | |
1360 (file) | |
1361 (function))) | |
1362 (cons :tag "GPG Key ID" | |
1363 (const :tag "GPG Key ID" | |
1364 ":pgg-default-user-id") | |
1365 (string :tag "Value")))))) | |
1366 :set (lambda (symbol value) | |
1367 (set-default symbol value) | |
1368 (mh-identity-make-menu-no-autoload)) | |
1369 :group 'mh-identity) | |
1370 | |
1371 (defcustom mh-auto-fields-list nil | |
1372 "List of recipients for which header lines are automatically inserted. | |
1373 | |
1374 This option can be used to set the identity depending on the | |
1375 recipient. To customize this option, click on the \"INS\" button and | |
1376 enter a regular expression for the recipient's address. Click on the | |
1377 \"INS\" button with the \"Add at least one item below\" label. Then choose | |
1378 one of the items in the \"Value Menu\". | |
1379 | |
1380 The \"Identity\" menu item is used to select an identity from those | |
1381 configured in `mh-identity-list'. All of the information for that | |
1382 identity will be added if the recipient matches. The \"Fcc Field\" menu | |
1383 item is used to select a folder that is used in the \"Fcc:\" header. | |
1384 When you send the message, MH will put a copy of your message in this | |
1385 folder. The \"Mail-Followup-To Field\" menu item is used to insert an | |
1386 \"Mail-Followup-To:\" header field with the recipients you provide. If | |
1387 the recipient's mail user agent supports this header field (as nmh | |
1388 does), then their replies will go to the addresses listed. This is | |
1389 useful if their replies go both to the list and to you and you don't | |
1390 have a mechanism to suppress duplicates. If you reply to someone not | |
1391 on the list, you must either remove the \"Mail-Followup-To:\" field, or | |
1392 ensure the recipient is also listed there so that he receives replies | |
1393 to your reply. Other header fields may be added using the \"Other | |
1394 Field\" menu item. | |
1395 | |
1396 These fields can only be added after the recipient is known. Once the | |
1397 header contains one or more recipients, run the | |
1398 \\[mh-insert-auto-fields] command or choose the \"Identity -> Insert | |
1399 Auto Fields\" menu item to insert these fields manually. However, you | |
1400 can just send the message and the fields will be added automatically. | |
1401 You are given a chance to see these fields and to confirm them before | |
1402 the message is actually sent. You can do away with this confirmation | |
1403 by turning off the option `mh-auto-fields-prompt-flag'. | |
1404 | |
1405 You should avoid using the same header field in `mh-auto-fields-list' | |
1406 and `mh-identity-list' definitions that may apply to the same message | |
1407 as the result is undefined." | |
1408 :type `(repeat | |
1409 (list :tag "" | |
1410 (string :tag "Recipient") | |
1411 (repeat :tag "Add at least one item below" | |
1412 (choice | |
1413 (cons :tag "Identity" | |
1414 (const ":identity") | |
1415 ,(append | |
1416 '(radio) | |
1417 (mapcar | |
1418 (function (lambda (arg) `(const ,arg))) | |
1419 (mapcar 'car mh-identity-list)))) | |
1420 (cons :tag "Fcc Field" | |
1421 (const "fcc") | |
1422 (string :tag "Value")) | |
1423 (cons :tag "Mail-Followup-To Field" | |
1424 (const "Mail-Followup-To") | |
1425 (string :tag "Value")) | |
1426 (cons :tag "Other Field" | |
1427 (string :tag "Field") | |
1428 (string :tag "Value")))))) | |
1429 :group 'mh-identity) | |
1430 | |
1431 (defcustom mh-auto-fields-prompt-flag t | |
1432 "*Non-nil means to prompt before sending if fields inserted. | |
1433 See `mh-auto-fields-list'." | |
1434 :type 'boolean | |
1435 :group 'mh-identity) | |
1436 | |
1437 (defcustom mh-identity-default nil | |
1438 "Default identity to use when `mh-letter-mode' is called. | |
1439 See `mh-identity-list'." | |
1440 :type (append | |
1441 '(radio) | |
1442 (cons '(const :tag "None" nil) | |
1443 (mapcar (function (lambda (arg) `(const ,arg))) | |
1444 (mapcar 'car mh-identity-list)))) | |
1445 :group 'mh-identity) | |
1446 | |
1447 (defcustom mh-identity-handlers | |
1448 '(("From" . mh-identity-handler-top) | |
1449 (":default" . mh-identity-handler-bottom) | |
1450 (":attribution-verb" . mh-identity-handler-attribution-verb) | |
1451 (":signature" . mh-identity-handler-signature) | |
1452 (":pgg-default-user-id" . mh-identity-handler-gpg-identity)) | |
1453 "Handler functions for fields in `mh-identity-list'. | |
1454 | |
1455 This option is used to change the way that fields, signatures, | |
1456 and attributions in `mh-identity-list' are added. To customize | |
1457 `mh-identity-handlers', replace the name of an existing handler | |
1458 function associated with the field you want to change with the | |
1459 name of a function you have written. You can also click on an | |
1460 \"INS\" button and insert a field of your choice and the name of | |
1461 the function you have written to handle it. | |
1462 | |
1463 The \"Field\" field can be any field that you've used in your | |
1464 `mh-identity-list'. The special fields \":attribution-verb\", | |
1465 \":signature\", or \":pgg-default-user-id\" are used for the | |
1466 `mh-identity-list' choices \"Attribution Verb\", \"Signature\", and | |
1467 \"GPG Key ID\" respectively. | |
1468 | |
1469 The handler associated with the \":default\" field is used when no | |
1470 other field matches. | |
1471 | |
1472 The handler functions are passed two or three arguments: the | |
1473 FIELD itself (for example, \"From\"), or one of the special | |
1474 fields (for example, \":signature\"), and the ACTION 'remove or | |
1475 'add. If the action is 'add, an additional argument | |
1476 containing the VALUE for the field is given." | |
1477 :type '(repeat (cons (string :tag "Field") function)) | |
1478 :group 'mh-identity) | |
1479 | |
1480 | |
1481 | |
1482 ;;; Incorporating Your Mail (:group 'mh-inc) | |
1483 | |
1484 (defcustom mh-inc-prog "inc" | |
1485 "*Program to incorporate new mail into a folder. | |
1486 | |
1487 This program generates a one-line summary for each of the new | |
1488 messages. Unless it is an absolute pathname, the file is assumed | |
1489 to be in the `mh-progs' directory. You may also link a file to | |
1490 \"inc\" that uses a different format. You'll then need to modify | |
1491 several scan line format variables appropriately." | |
1492 :type 'string | |
1493 :group 'mh-inc) | |
1494 | |
1495 (eval-and-compile | |
1496 (unless (fboundp 'mh-inc-spool-make-no-autoload) | |
1497 (defun mh-inc-spool-make-no-autoload () | |
1498 "Temporary definition. | |
1499 Real definition will take effect when mh-inc is loaded." | |
1500 nil))) | |
1501 | |
1502 (defcustom mh-inc-spool-list nil | |
1503 "*Alternate spool files. | |
1504 | |
1505 You can use the `mh-inc-spool-list' variable to direct MH-E to | |
1506 retrieve mail from arbitrary spool files other than your system | |
1507 mailbox, file it in folders other than your \"+inbox\", and assign | |
1508 key bindings to incorporate this mail. | |
1509 | |
1510 Suppose you are subscribed to the \"mh-e-devel\" mailing list and | |
1511 you use \"procmail\" to filter this mail into \"~/mail/mh-e\" with | |
1512 the following recipe in \".procmailrc\": | |
1513 | |
1514 MAILDIR=$HOME/mail | |
1515 :0: | |
1516 * ^From mh-e-devel-admin@stop.mail-abuse.org | |
1517 mh-e | |
1518 | |
1519 In order to incorporate \"~/mail/mh-e\" into \"+mh-e\" with an | |
1520 \"I m\" (mh-inc-spool-mh-e) command, customize this option, and click | |
1521 on the \"INS\" button. Enter a \"Spool File\" of \"~/mail/mh-e\", a | |
1522 \"Folder\" of \"mh-e\", and a \"Key Binding\" of \"m\". | |
1523 | |
1524 You can use \"xbuffy\" to automate the incorporation of this mail | |
68622
8e332f1560b0
(mh-inc-spool-list): Update example for Emacs 22 which has an
Bill Wohler <wohler@newt.com>
parents:
68605
diff
changeset
|
1525 using the Emacs 22 command \"emacsclient\" as follows: |
68465 | 1526 |
1527 box ~/mail/mh-e | |
1528 title mh-e | |
1529 origMode | |
1530 polltime 10 | |
1531 headertime 0 | |
68622
8e332f1560b0
(mh-inc-spool-list): Update example for Emacs 22 which has an
Bill Wohler <wohler@newt.com>
parents:
68605
diff
changeset
|
1532 command emacsclient --eval '(mh-inc-spool-mh-e)' |
8e332f1560b0
(mh-inc-spool-list): Update example for Emacs 22 which has an
Bill Wohler <wohler@newt.com>
parents:
68605
diff
changeset
|
1533 |
8e332f1560b0
(mh-inc-spool-list): Update example for Emacs 22 which has an
Bill Wohler <wohler@newt.com>
parents:
68605
diff
changeset
|
1534 In XEmacs, the command \"gnuclient\" is used in a similar |
8e332f1560b0
(mh-inc-spool-list): Update example for Emacs 22 which has an
Bill Wohler <wohler@newt.com>
parents:
68605
diff
changeset
|
1535 fashion." |
68465 | 1536 :type '(repeat (list (file :tag "Spool File") |
1537 (string :tag "Folder") | |
1538 (character :tag "Key Binding"))) | |
1539 :set (lambda (symbol value) | |
1540 (set-default symbol value) | |
1541 (mh-inc-spool-make-no-autoload)) | |
1542 :group 'mh-inc) | |
1543 | |
1544 | |
1545 | |
1546 ;;; Dealing with Junk Mail (:group 'mh-junk) | |
1547 | |
1548 (defvar mh-junk-choice nil | |
1549 "Chosen spam fighting program.") | |
1550 | |
1551 ;; Available spam filter interfaces | |
1552 (defvar mh-junk-function-alist | |
1553 '((spamassassin mh-spamassassin-blacklist mh-spamassassin-whitelist) | |
1554 (bogofilter mh-bogofilter-blacklist mh-bogofilter-whitelist) | |
1555 (spamprobe mh-spamprobe-blacklist mh-spamprobe-whitelist)) | |
1556 "Available choices of spam programs to use. | |
1557 | |
1558 This is an alist. For each element there are functions that | |
1559 blacklist a message as spam and whitelist a message incorrectly | |
1560 classified as spam.") | |
1561 | |
1562 (defun mh-junk-choose (symbol value) | |
1563 "Choose spam program to use. | |
1564 | |
1565 The function is always called with SYMBOL bound to | |
1566 `mh-junk-program' and VALUE bound to the new value of | |
1567 `mh-junk-program'. The function sets the variable | |
1568 `mh-junk-choice' in addition to `mh-junk-program'." | |
1569 (set symbol value) ;XXX shouldn't this be set-default? | |
1570 (setq mh-junk-choice | |
1571 (or value | |
1572 (loop for element in mh-junk-function-alist | |
1573 until (executable-find (symbol-name (car element))) | |
1574 finally return (car element))))) | |
1575 | |
1576 (defcustom mh-junk-background nil | |
1577 "If on, spam programs are run in background. | |
1578 | |
1579 By default, the programs are run in the foreground, but this can | |
1580 be slow when junking large numbers of messages. If you have | |
1581 enough memory or don't junk that many messages at the same time, | |
1582 you might try turning on this option." | |
1583 :type '(choice (const :tag "Off" nil) | |
1584 (const :tag "On" 0)) | |
1585 :group 'mh-junk) | |
1586 | |
1587 (defcustom mh-junk-disposition nil | |
1588 "Disposition of junk mail." | |
1589 :type '(choice (const :tag "Delete Spam" nil) | |
1590 (string :tag "Spam Folder")) | |
1591 :group 'mh-junk) | |
1592 | |
1593 (defcustom mh-junk-program nil | |
1594 "Spam program that MH-E should use. | |
1595 | |
1596 The default setting of this option is \"Auto-detect\" which means | |
1597 that MH-E will automatically choose one of SpamAssassin, | |
1598 bogofilter, or SpamProbe in that order. If, for example, you have | |
1599 both SpamAssassin and bogofilter installed and you want to use | |
1600 bogofilter, then you can set this option to \"Bogofilter\"." | |
1601 :type '(choice (const :tag "Auto-detect" nil) | |
1602 (const :tag "SpamAssassin" spamassassin) | |
1603 (const :tag "Bogofilter" bogofilter) | |
1604 (const :tag "SpamProbe" spamprobe)) | |
1605 :set 'mh-junk-choose | |
1606 :group 'mh-junk) | |
1607 | |
1608 | |
1609 | |
1610 ;;; Editing a Draft (:group 'mh-letter) | |
1611 | |
1612 (defcustom mh-compose-insertion (if (locate-library "mml") 'mml 'mh) | |
1613 "Type of tags used when composing MIME messages. | |
1614 | |
1615 In addition to MH-style directives, MH-E also supports MML (MIME | |
1616 Meta Language) tags. (see Info node `(emacs-mime)Composing'). | |
1617 This option can be used to choose between them. By default, this | |
1618 option is set to \"MML\" if it is supported since it provides a | |
1619 lot more functionality. This option can also be set to \"MH\" if | |
1620 MH-style directives are preferred." | |
1621 :type '(choice (const :tag "MML" mml) | |
1622 (const :tag "MH" mh)) | |
1623 :group 'mh-letter) | |
1624 | |
1625 (defcustom mh-compose-skipped-header-fields | |
1626 '("From" "Organization" "References" "In-Reply-To" | |
1627 "X-Face" "Face" "X-Image-URL" "X-Mailer") | |
1628 "List of header fields to skip over when navigating in draft." | |
1629 :type '(repeat (string :tag "Field")) | |
1630 :group 'mh-letter) | |
1631 | |
1632 (defcustom mh-compose-space-does-completion-flag nil | |
1633 "*Non-nil means \\<mh-letter-mode-map>\\[mh-letter-complete-or-space] does completion in message header." | |
1634 :type 'boolean | |
1635 :group 'mh-letter) | |
1636 | |
1637 (defcustom mh-delete-yanked-msg-window-flag nil | |
1638 "*Non-nil means delete any window displaying the message. | |
1639 | |
1640 This deletes the window containing the original message after | |
1641 yanking it with \\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make | |
1642 more room on your screen for your reply." | |
1643 :type 'boolean | |
1644 :group 'mh-letter) | |
1645 | |
1646 (defcustom mh-extract-from-attribution-verb "wrote:" | |
1647 "*Verb to use for attribution when a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. | |
1648 | |
1649 The attribution consists of the sender's name and email address | |
1650 followed by the content of this option. This option can be set to | |
1651 \"wrote:\", \"a écrit:\", and \"schrieb:\". You can also use the | |
1652 \"Custom String\" menu item to enter your own verb." | |
1653 :type '(choice (const "wrote:") | |
1654 (const "a écrit:") | |
1655 (const "schrieb:") | |
1656 (string :tag "Custom String")) | |
1657 :group 'mh-letter) | |
1658 | |
1659 (defcustom mh-ins-buf-prefix "> " | |
1660 "*String to put before each line of a yanked or inserted message. | |
1661 | |
1662 The prefix \"> \" is the default setting of this option. I | |
1663 suggest that you not modify this option since it is used by many | |
1664 mailers and news readers: messages are far easier to read if | |
1665 several included messages have all been indented by the same | |
1666 string. | |
1667 | |
1668 This prefix is not inserted if you use one of the supercite | |
1669 flavors of `mh-yank-behavior' or you have added a | |
1670 `mail-citation-hook'." | |
1671 :type 'string | |
1672 :group 'mh-letter) | |
1673 | |
1674 (defcustom mh-letter-complete-function 'ispell-complete-word | |
1675 "*Function to call when completing outside of address or folder fields. | |
1676 | |
1677 In the body of the message, | |
1678 \\<mh-letter-mode-map>\\[mh-letter-complete] runs this function, | |
1679 which is set to \"ispell-complete-word\" by default." | |
1680 :type '(choice function (const nil)) | |
1681 :group 'mh-letter) | |
1682 | |
1683 (defcustom mh-letter-fill-column 72 | |
1684 "*Fill column to use in MH Letter mode. | |
1685 | |
1686 By default, this option is 72 to allow others to quote your | |
1687 message without line wrapping." | |
1688 :type 'integer | |
1689 :group 'mh-letter) | |
1690 | |
1691 (defcustom mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none") | |
1692 "Default method to use in security tags. | |
1693 | |
1694 This option is used to select between a variety of mail security | |
1695 mechanisms. The default is \"PGP (MIME)\" if it is supported\; | |
1696 otherwise, the default is \"None\". Other mechanisms include | |
1697 vanilla \"PGP\" and \"S/MIME\". | |
1698 | |
1699 The `pgg' customization group may have some settings which may | |
1700 interest you (see Info node `(pgg)'). | |
1701 | |
1702 In particular, I turn on the option `pgg-encrypt-for-me' so that | |
1703 all messages I encrypt are encrypted with my public key as well. | |
1704 If you keep a copy of all of your outgoing mail with a \"Fcc:\" | |
1705 header field, this setting is vital so that you can read the mail | |
1706 you write!" | |
1707 :type '(choice (const :tag "PGP (MIME)" "pgpmime") | |
1708 (const :tag "PGP" "pgp") | |
1709 (const :tag "S/MIME" "smime") | |
1710 (const :tag "None" "none")) | |
1711 :group 'mh-letter) | |
1712 | |
1713 (defcustom mh-signature-file-name "~/.signature" | |
1714 "*Source of user's signature. | |
1715 | |
1716 By default, the text of your signature is taken from the file | |
1717 \"~/.signature\". You can read from other sources by changing this | |
1718 option. This file may contain a vCard in which case an attachment is | |
1719 added with the vCard. | |
1720 | |
1721 This option may also be a symbol, in which case that function is | |
1722 called. You may not want a signature separator to be added for you; | |
1723 instead you may want to insert one yourself. Options that you may find | |
1724 useful to do this include `mh-signature-separator' (when inserting a | |
1725 signature separator) and `mh-signature-separator-regexp' (for finding | |
1726 said separator). The function `mh-signature-separator-p', which | |
1727 reports t if the buffer contains a separator, may be useful as well. | |
1728 | |
1729 The signature is inserted into your message with the command | |
1730 \\<mh-letter-mode-map>\\[mh-insert-signature] or with the option | |
1731 `mh-identity-list'." | |
1732 :type 'file | |
1733 :group 'mh-letter) | |
1734 | |
1735 (defcustom mh-signature-separator-flag t | |
1736 "*Non-nil means a signature separator should be inserted. | |
1737 | |
1738 It is not recommended that you change this option since various | |
1739 mail user agents, including MH-E, use the separator to present | |
1740 the signature differently, and to suppress the signature when | |
1741 replying or yanking a letter into a draft." | |
1742 :type 'boolean | |
1743 :group 'mh-letter) | |
1744 | |
1745 (defcustom mh-x-face-file "~/.face" | |
1746 "*File containing face header field to insert in outgoing mail. | |
1747 | |
1748 If the file starts with either of the strings \"X-Face:\", \"Face:\" | |
1749 or \"X-Image-URL:\" then the contents are added to the message header | |
1750 verbatim. Otherwise it is assumed that the file contains the value of | |
1751 the \"X-Face:\" header field. | |
1752 | |
1753 The \"X-Face:\" header field, which is a low-resolution, black and | |
1754 white image, can be generated using the \"compface\" command (see URL | |
1755 `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z'). The | |
1756 \"Online X-Face Converter\" is a useful resource for quick conversion | |
1757 of images into \"X-Face:\" header fields (see URL | |
1758 `http://www.dairiki.org/xface/'). | |
1759 | |
1760 Use the \"make-face\" script to convert a JPEG image to the higher | |
1761 resolution, color, \"Face:\" header field (see URL | |
1762 `http://quimby.gnus.org/circus/face/make-face'). | |
1763 | |
1764 The URL of any image can be used for the \"X-Image-URL:\" field and no | |
1765 processing of the image is required. | |
1766 | |
1767 To prevent the setting of any of these header fields, either set | |
1768 `mh-x-face-file' to nil, or simply ensure that the file defined by | |
1769 this option doesn't exist." | |
1770 :type 'file | |
1771 :group 'mh-letter) | |
1772 | |
1773 (defcustom mh-yank-behavior 'attribution | |
1774 "*Controls which part of a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. | |
1775 | |
1776 To include the entire message, including the entire header, use | |
1777 \"Body and Header\". Use \"Body\" to yank just the body without | |
1778 the header. To yank only the portion of the message following the | |
1779 point, set this option to \"Below Point\". | |
1780 | |
1781 Choose \"Invoke supercite\" to pass the entire message and header | |
1782 through supercite. | |
1783 | |
1784 If the \"Body With Attribution\" setting is used, then the | |
1785 message minus the header is yanked and a simple attribution line | |
1786 is added at the top using the value of the option | |
1787 `mh-extract-from-attribution-verb'. This is the default. | |
1788 | |
1789 If the \"Invoke supercite\" or \"Body With Attribution\" settings | |
1790 are used, the \"-noformat\" argument is passed to the \"repl\" | |
1791 program to override a \"-filter\" or \"-format\" argument. These | |
1792 settings also have \"Automatically\" variants that perform the | |
1793 action automatically when you reply so that you don't need to use | |
1794 \\[mh-yank-cur-msg] at all. Note that this automatic action is | |
1795 only performed if the show buffer matches the message being | |
1796 replied to. People who use the automatic variants tend to turn on | |
1797 the option `mh-delete-yanked-msg-window-flag' as well so that the | |
1798 show window is never displayed. | |
1799 | |
1800 If the show buffer has a region, the option `mh-yank-behavior' is | |
1801 ignored unless its value is one of Attribution variants in which | |
1802 case the attribution is added to the yanked region. | |
1803 | |
1804 If this option is set to one of the supercite flavors, the hook | |
1805 `mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not | |
1806 inserted." | |
1807 :type '(choice (const :tag "Body and Header" t) | |
1808 (const :tag "Body" body) | |
1809 (const :tag "Below Point" nil) | |
1810 (const :tag "Invoke supercite" supercite) | |
1811 (const :tag "Invoke supercite, Automatically" autosupercite) | |
1812 (const :tag "Body With Attribution" attribution) | |
1813 (const :tag "Body With Attribution, Automatically" | |
1814 autoattrib)) | |
1815 :group 'mh-letter) | |
1816 | |
1817 | |
1818 | |
1819 ;;; Ranges (:group 'mh-ranges) | |
1820 | |
1821 (defcustom mh-interpret-number-as-range-flag t | |
1822 "*Non-nil means interpret a number as a range. | |
1823 | |
1824 Since one of the most frequent ranges used is \"last:N\", MH-E | |
1825 will interpret input such as \"200\" as \"last:200\" if this | |
1826 option is on (which is the default). If you need to scan just the | |
1827 message 200, then use the range \"200:200\"." | |
1828 :type 'boolean | |
1829 :group 'mh-ranges) | |
1830 | |
1831 | |
1832 | |
1833 ;;; Scan Line Formats (:group 'mh-scan-line-formats) | |
1834 | |
1835 (eval-and-compile | |
1836 (unless (fboundp 'mh-adaptive-cmd-note-flag-check) | |
1837 (defun mh-adaptive-cmd-note-flag-check (symbol value) | |
1838 "Temporary definition. | |
1839 Real definition, below, uses variables that aren't defined yet." | |
1840 (set-default symbol value)))) | |
1841 | |
1842 (defcustom mh-adaptive-cmd-note-flag t | |
1843 "*Non-nil means that the message number width is determined dynamically. | |
1844 | |
1845 If you've created your own format to handle long message numbers, | |
1846 you'll be pleased to know you no longer need it since MH-E adapts its | |
1847 internal format based upon the largest message number if this option | |
1848 is on (the default). This option may only be turned on when | |
1849 `mh-scan-format-file' is set to \"Use MH-E scan Format\". | |
1850 | |
1851 If you prefer fixed-width message numbers, turn off this option and | |
1852 call `mh-set-cmd-note' with the width specified by your format file | |
1853 \(see `mh-scan-format-file'). For example, the default width is 4, so | |
1854 you would use \"(mh-set-cmd-note 4)\"." | |
1855 :type 'boolean | |
1856 :group 'mh-scan-line-formats | |
1857 :set 'mh-adaptive-cmd-note-flag-check) | |
1858 | |
1859 (defun mh-scan-format-file-check (symbol value) | |
1860 "Check if desired setting is legal. | |
1861 Throw an error if user tries to set `mh-scan-format-file' to | |
1862 anything but t when `mh-adaptive-cmd-note-flag' is on. Otherwise, | |
1863 set SYMBOL to VALUE." | |
1864 (if (and (not (eq value t)) | |
68484
d5026c3051b9
(mh-scan-format-file-check): Allow any non-nil for
Bill Wohler <wohler@newt.com>
parents:
68475
diff
changeset
|
1865 mh-adaptive-cmd-note-flag) |
68465 | 1866 (error "%s %s" "You must turn off `mh-adaptive-cmd-note-flag'" |
1867 "unless you use \"Use MH-E scan Format\"") | |
1868 (set-default symbol value))) | |
1869 | |
1870 (defcustom mh-scan-format-file t | |
1871 "Specifies the format file to pass to the scan program. | |
1872 | |
1873 The default setting for this option is \"Use MH-E scan Format\". This | |
1874 means that the format string will be taken from the either | |
1875 `mh-scan-format-mh' or `mh-scan-format-nmh' depending on whether MH or | |
1876 nmh (or GNU mailutils) is in use. This setting also enables you to | |
1877 turn on the `mh-adaptive-cmd-note-flag' option. | |
1878 | |
1879 You can also set this option to \"Use Default scan Format\" to get the | |
1880 same output as you would get if you ran \"scan\" from the shell. If | |
1881 you have a format file that you want MH-E to use but not MH, you can | |
1882 set this option to \"Specify a scan Format File\" and enter the name | |
1883 of your format file. | |
1884 | |
1885 If you change the format of the scan lines you'll need to tell MH-E | |
1886 how to parse the new format. As you will see, quite a lot of variables | |
1887 are involved to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to | |
1888 obtain a list of these variables. You will also have to call | |
1889 `mh-set-cmd-note' if your notations are not in column 4 (columns in | |
1890 Emacs start with 0)." | |
1891 :type '(choice (const :tag "Use MH-E scan Format" t) | |
1892 (const :tag "Use Default scan Format" nil) | |
1893 (file :tag "Specify a scan Format File")) | |
1894 :group 'mh-scan-line-formats | |
1895 :set 'mh-scan-format-file-check) | |
1896 | |
1897 (defun mh-adaptive-cmd-note-flag-check (symbol value) | |
1898 "Check if desired setting is legal. | |
1899 Throw an error if user tries to turn on | |
1900 `mh-adaptive-cmd-note-flag' when `mh-scan-format-file' isn't t. | |
1901 Otherwise, set SYMBOL to VALUE." | |
1902 (if (and value | |
1903 (not (eq mh-scan-format-file t))) | |
1904 (error "%s %s" "Can't turn on unless `mh-scan-format-file'" | |
1905 "is set to \"Use MH-E scan Format\"") | |
1906 (set-default symbol value))) | |
1907 | |
1908 (defcustom mh-scan-prog "scan" | |
1909 "*Program used to scan messages. | |
1910 | |
1911 The name of the program that generates a listing of one line per | |
1912 message is held in this option. Unless this variable contains an | |
1913 absolute pathname, it is assumed to be in the `mh-progs' | |
1914 directory. You may link another program to `scan' (see | |
1915 \"mh-profile(5)\") to produce a different type of listing." | |
1916 :type 'string | |
1917 :group 'mh-scan-line-formats) | |
1918 (make-variable-buffer-local 'mh-scan-prog) | |
1919 | |
1920 | |
1921 | |
1922 ;;; Searching (:group 'mh-search) | |
1923 | |
1924 (defcustom mh-search-program nil | |
1925 "Search program that MH-E shall use. | |
1926 | |
1927 The default setting of this option is \"Auto-detect\" which means | |
1928 that MH-E will automatically choose one of swish++, swish-e, | |
1929 mairix, namazu, pick and grep in that order. If, for example, you | |
1930 have both swish++ and mairix installed and you want to use | |
1931 mairix, then you can set this option to \"mairix\". | |
1932 | |
1933 More information about setting up an indexing program to use with | |
1934 MH-E can be found in the documentation of `mh-search'." | |
1935 :type '(choice (const :tag "Auto-detect" nil) | |
1936 (const :tag "swish++" swish++) | |
1937 (const :tag "swish-e" swish) | |
1938 (const :tag "mairix" mairix) | |
1939 (const :tag "namazu" namazu) | |
1940 (const :tag "pick" pick) | |
1941 (const :tag "grep" grep)) | |
1942 :group 'mh-search) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1943 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1944 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1945 |
68465 | 1946 ;;; Sending Mail (:group 'mh-sending-mail) |
1947 | |
1948 (defcustom mh-compose-forward-as-mime-flag t | |
1949 "*Non-nil means that messages are forwarded as attachments. | |
1950 | |
1951 By default, this option is on which means that the forwarded | |
1952 messages are included as attachments. If you would prefer to | |
1953 forward your messages verbatim (as text, inline), then turn off | |
1954 this option. Forwarding messages verbatim works well for short, | |
1955 textual messages, but your recipient won't be able to view any | |
1956 non-textual attachments that were in the forwarded message. Be | |
1957 aware that if you have \"forw: -mime\" in your MH profile, then | |
1958 forwarded messages will always be included as attachments | |
1959 regardless of the settings of this option." | |
1960 :type 'boolean | |
1961 :group 'mh-sending-mail) | |
1962 | |
1963 (defcustom mh-compose-letter-function nil | |
1964 "Invoked when starting a new draft. | |
1965 | |
1966 However, it is the last function called before you edit your | |
1967 message. The consequence of this is that you can write a function | |
1968 to write and send the message for you. This function is passed | |
1969 three arguments: the contents of the TO, SUBJECT, and CC header | |
1970 fields." | |
1971 :type '(choice (const nil) function) | |
1972 :group 'mh-sending-mail) | |
1973 | |
1974 (defcustom mh-compose-prompt-flag nil | |
1975 "*Non-nil means prompt for header fields when composing a new draft." | |
1976 :type 'boolean | |
1977 :group 'mh-sending-mail) | |
1978 | |
1979 (defcustom mh-forward-subject-format "%s: %s" | |
1980 "*Format string for forwarded message subject. | |
1981 | |
1982 This option is a string which includes two escapes (\"%s\"). The | |
1983 first \"%s\" is replaced with the sender of the original message, | |
1984 and the second one is replaced with the original \"Subject:\"." | |
1985 :type 'string | |
1986 :group 'mh-sending-mail) | |
1987 | |
1988 (defcustom mh-insert-x-mailer-flag t | |
1989 "*Non-nil means append an \"X-Mailer:\" header field to the header. | |
1990 | |
1991 This header field includes the version of MH-E and Emacs that you | |
1992 are using. If you don't want to participate in our marketing, you | |
1993 can turn this option off." | |
1994 :type 'boolean | |
1995 :group 'mh-sending-mail) | |
1996 | |
1997 (defcustom mh-redist-full-contents-flag nil | |
1998 "*Non-nil means the \"dist\" command needs entire letter for redistribution. | |
1999 | |
2000 This option must be turned on if \"dist\" requires the whole | |
2001 letter for redistribution, which is the case if \"send\" is | |
2002 compiled with the BERK option (which many people abhor). If you | |
2003 find that MH will not allow you to redistribute a message that | |
2004 has been redistributed before, turn off this option." | |
2005 :type 'boolean | |
2006 :group 'mh-sending-mail) | |
2007 | |
2008 (defcustom mh-reply-default-reply-to nil | |
2009 "*Sets the person or persons to whom a reply will be sent. | |
2010 | |
2011 This option is set to \"Prompt\" by default so that you are | |
2012 prompted for the recipient of a reply. If you find that most of | |
2013 the time that you specify \"cc\" when you reply to a message, set | |
2014 this option to \"cc\". Other choices include \"from\", \"to\", or | |
2015 \"all\". You can always edit the recipients in the draft." | |
2016 :type '(choice (const :tag "Prompt" nil) | |
2017 (const "from") | |
2018 (const "to") | |
2019 (const "cc") | |
2020 (const "all")) | |
2021 :group 'mh-sending-mail) | |
2022 | |
2023 (defcustom mh-reply-show-message-flag t | |
2024 "*Non-nil means the MH-Show buffer is displayed when replying. | |
2025 | |
2026 If you include the message automatically, you can hide the | |
2027 MH-Show buffer by turning off this option. | |
2028 | |
2029 See also `mh-reply'." | |
2030 :type 'boolean | |
2031 :group 'mh-sending-mail) | |
2032 | |
2033 | |
2034 | |
2035 ;;; Sequences (:group 'mh-sequences) | |
2036 | |
2037 ;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to | |
2038 ;; the docstring: "Additional sequences that should not to be preserved can be | |
2039 ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX | |
2040 | |
2041 (defcustom mh-refile-preserves-sequences-flag t | |
2042 "*Non-nil means that sequences are preserved when messages are refiled. | |
2043 | |
2044 If a message is in any sequence (except \"Previous-Sequence:\" | |
2045 and \"cur\") when it is refiled, then it will still be in those | |
2046 sequences in the destination folder. If this behavior is not | |
2047 desired, then turn off this option." | |
2048 :type 'boolean | |
2049 :group 'mh-sequences) | |
2050 | |
2051 (defcustom mh-tick-seq 'tick | |
2052 "The name of the MH sequence for ticked messages. | |
2053 | |
2054 You can customize this option if you already use the \"tick\" | |
2055 sequence for your own use. You can also disable all of the | |
2056 ticking functions by choosing the \"Disable Ticking\" item but | |
2057 there isn't much advantage to that." | |
2058 :type '(choice (const :tag "Disable Ticking" nil) | |
2059 symbol) | |
2060 :group 'mh-sequences) | |
2061 | |
2062 (defcustom mh-update-sequences-after-mh-show-flag t | |
2063 "*Non-nil means flush MH sequences to disk after message is shown\\<mh-folder-mode-map>. | |
2064 | |
2065 Three sequences are maintained internally by MH-E and pushed out | |
2066 to MH when a message is shown. They include the sequence | |
2067 specified by your \"Unseen-Sequence:\" profile entry, \"cur\", | |
2068 and the sequence listed by the option `mh-tick-seq' which is | |
2069 \"tick\" by default. If you do not like this behavior, turn off | |
2070 this option. You can then update the state manually with the | |
2071 \\[mh-execute-commands], \\[mh-quit], or \\[mh-update-sequences] | |
2072 commands." | |
2073 :type 'boolean | |
2074 :group 'mh-sequences) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2075 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2076 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2077 |
68465 | 2078 ;;; Reading Your Mail (:group 'mh-show) |
2079 | |
2080 (defcustom mh-bury-show-buffer-flag t | |
2081 "*Non-nil means show buffer is buried. | |
2082 | |
2083 One advantage of not burying the show buffer is that one can | |
2084 delete the show buffer more easily in an electric buffer list | |
2085 because of its proximity to its associated MH-Folder buffer. Try | |
2086 running \\[electric-buffer-list] to see what I mean." | |
2087 :type 'boolean | |
2088 :group 'mh-show) | |
2089 | |
2090 (defcustom mh-clean-message-header-flag t | |
2091 "*Non-nil means remove extraneous header fields. | |
2092 | |
2093 See also `mh-invisible-header-fields-default' and | |
2094 `mh-invisible-header-fields'." | |
2095 :type 'boolean | |
2096 :group 'mh-show) | |
2097 | |
2098 (defcustom mh-decode-mime-flag (not (not (locate-library "mm-decode"))) | |
2099 "*Non-nil means attachments are handled\\<mh-folder-mode-map>. | |
2100 | |
2101 MH-E can handle attachments as well if the Gnus `mm-decode' | |
2102 library is present. If so, this option will be on. Otherwise, | |
2103 you'll see the MIME body parts rather than text or attachments. | |
2104 There isn't much point in turning off this option; however, you | |
2105 can inspect it if it appears that the body parts are not being | |
2106 interpreted correctly or toggle it with the command | |
2107 \\[mh-toggle-mh-decode-mime-flag] to view the raw message. | |
2108 | |
2109 This option also controls the display of quoted-printable | |
2110 messages and other graphical widgets. See the options | |
2111 `mh-graphical-smileys-flag' and `mh-graphical-emphasis-flag'." | |
2112 :type 'boolean | |
2113 :group 'mh-show) | |
2114 | |
2115 (defcustom mh-display-buttons-for-alternatives-flag nil | |
2116 "*Non-nil means display buttons for all alternative attachments. | |
2117 | |
2118 Sometimes, a mail program will produce multiple alternatives of | |
2119 the attachment in increasing degree of faithfulness to the | |
2120 original content. By default, only the preferred alternative is | |
2121 displayed. If this option is on, then the preferred part is shown | |
2122 inline and buttons are shown for each of the other alternatives." | |
2123 :type 'boolean | |
2124 :group 'mh-show) | |
2125 | |
2126 (defcustom mh-display-buttons-for-inline-parts-flag nil | |
2127 "*Non-nil means display buttons for all inline attachments\\<mh-folder-mode-map>. | |
2128 | |
2129 The sender can request that attachments should be viewed inline so | |
2130 that they do not really appear like an attachment at all to the | |
2131 reader. Most of the time, this is desirable, so by default MH-E | |
2132 suppresses the buttons for inline attachments. On the other hand, you | |
2133 may receive code or HTML which the sender has added to his message as | |
2134 inline attachments so that you can read them in MH-E. In this case, it | |
2135 is useful to see the buttons so that you know you don't have to cut | |
2136 and paste the code into a file; you can simply save the attachment. | |
2137 | |
2138 If you want to make the buttons visible for inline attachments, you | |
2139 can use the command \\[mh-toggle-mime-buttons] to toggle the | |
2140 visibility of these buttons. You can turn on these buttons permanently | |
2141 by turning on this option. | |
2142 | |
2143 MH-E cannot display all attachments inline however. It can display | |
2144 text (including HTML) and images." | |
2145 :type 'boolean | |
2146 :group 'mh-show) | |
2147 | |
2148 (defcustom mh-do-not-confirm-flag nil | |
2149 "*Non-nil means non-reversible commands do not prompt for confirmation. | |
2150 | |
2151 Commands such as `mh-pack-folder' prompt to confirm whether to | |
2152 process outstanding moves and deletes or not before continuing. | |
2153 Turning on this option means that these actions will be | |
2154 performed--which is usually desired but cannot be | |
2155 retracted--without question." | |
2156 :type 'boolean | |
2157 :group 'mh-show) | |
2158 | |
2159 (defcustom mh-fetch-x-image-url nil | |
2160 "*Control fetching of \"X-Image-URL:\" header field image. | |
2161 | |
2162 Ths option controls the fetching of the \"X-Image-URL:\" header | |
2163 field image with the following values: | |
2164 | |
2165 Ask Before Fetching | |
2166 You are prompted before the image is fetched. MH-E will | |
2167 remember your reply and will either use the already fetched | |
2168 image the next time the same URL is encountered or silently | |
2169 skip it if you didn't fetch it the first time. This is a | |
2170 good setting. | |
2171 | |
2172 Never Fetch | |
2173 Images are never fetched and only displayed if they are | |
2174 already present in the cache. This is the default. | |
2175 | |
2176 There isn't a value of \"Always Fetch\" for privacy and DOS (denial of | |
2177 service) reasons. For example, fetching a URL can tip off a spammer | |
2178 that you've read his email (which is why you shouldn't blindly answer | |
2179 yes if you've set this option to \"Ask Before Fetching\"). Someone may | |
2180 also flood your network and fill your disk drive by sending a torrent | |
2181 of messages, each specifying a unique URL to a very large file. | |
2182 | |
2183 The cache of images is found in the directory \".mhe-x-image-cache\" | |
2184 within your MH directory. You can add your own face to the \"From:\" | |
2185 field too. See Info node `(mh-e)Picture'. | |
2186 | |
2187 This setting only has effect if the option `mh-show-use-xface-flag' is | |
2188 turned on." | |
2189 | |
2190 :type '(choice (const :tag "Ask Before Fetching" ask) | |
2191 (const :tag "Never Fetch" nil)) | |
2192 :group 'mh-show) | |
2193 | |
2194 (defcustom mh-graphical-smileys-flag t | |
2195 "*Non-nil means graphical smileys are displayed. | |
2196 | |
2197 It is a long standing custom to inject body language using a | |
2198 cornucopia of punctuation, also known as the \"smileys\". MH-E | |
2199 can render these as graphical widgets if this option is turned | |
2200 on, which it is by default. Smileys include patterns such as :-) | |
2201 and ;-). | |
2202 | |
2203 This option is disabled if the option `mh-decode-mime-flag' is | |
2204 turned off." | |
2205 :type 'boolean | |
2206 :group 'mh-show) | |
2207 | |
2208 (defcustom mh-graphical-emphasis-flag t | |
2209 "*Non-nil means graphical emphasis is displayed. | |
2210 | |
2211 A few typesetting features are indicated in ASCII text with | |
2212 certain characters. If your terminal supports it, MH-E can render | |
2213 these typesetting directives naturally if this option is turned | |
2214 on, which it is by default. For example, _underline_ will be | |
2215 underlined, *bold* will appear in bold, /italics/ will appear in | |
2216 italics, and so on. See the option `gnus-emphasis-alist' for the | |
2217 whole list. | |
2218 | |
2219 This option is disabled if the option `mh-decode-mime-flag' is | |
2220 turned off." | |
2221 :type 'boolean | |
2222 :group 'mh-show) | |
2223 | |
2224 (defcustom mh-highlight-citation-style 'gnus | |
2225 "Style for highlighting citations. | |
2226 | |
2227 If the sender of the message has cited other messages in his | |
2228 message, then MH-E will highlight these citations to emphasize | |
2229 the sender's actual response. This option can be customized to | |
2230 change the highlighting style. The \"Multicolor\" method uses a | |
2231 different color for each indentation while the \"Monochrome\" | |
2232 method highlights all citations in red. To disable highlighting | |
2233 of citations entirely, choose \"None\"." | |
2234 :type '(choice (const :tag "Multicolor" gnus) | |
2235 (const :tag "Monochrome" font-lock) | |
2236 (const :tag "None" nil)) | |
2237 :group 'mh-show) | |
2238 | |
2239 ;; Keep fields alphabetized. Mention source, if known. | |
2240 (defvar mh-invisible-header-fields-internal | |
2241 '("Approved:" | |
2242 "Autoforwarded:" | |
2243 "Bestservhost:" | |
2244 "Cancel-Lock:" ; NNTP posts | |
2245 "Content-" ; RFC 2045 | |
2246 "Delivered-To:" ; Egroups/yahoogroups mailing list manager | |
2247 "Delivery-Date:" ; MH | |
2248 "Delivery:" | |
2249 "DomainKey-Signature:" ;http://antispam.yahoo.com/domainkeys | |
2250 "Encoding:" | |
2251 "Envelope-to:" | |
2252 "Errors-To:" | |
2253 "Face:" ; Gnus Face header | |
2254 "Forwarded:" ; MH | |
2255 "From " ; sendmail | |
2256 "Importance:" ; MS Outlook | |
2257 "In-Reply-To:" ; MH | |
2258 "Lines:" | |
2259 "List-" ; Mailman mailing list manager | |
2260 "List-" ; Unknown mailing list managers | |
2261 "List-Subscribe:" ; Unknown mailing list managers | |
2262 "List-Unsubscribe:" ; Unknown mailing list managers | |
2263 "Mail-from:" ; MH | |
2264 "Mailing-List:" ; Egroups/yahoogroups mailing list manager | |
2265 "Message-Id:" ; RFC 822 | |
2266 "Mime-Version" ; RFC 2045 | |
2267 "NNTP-" ; News | |
2268 "Old-Return-Path:" | |
2269 "Original-Encoded-Information-Types:" ; X400 | |
2270 "Original-Lines:" ; mail to news | |
2271 "Original-NNTP-" ; mail to news | |
2272 "Original-Newsgroups:" ; mail to news | |
2273 "Original-Path:" ; mail to news | |
2274 "Original-Received:" ; mail to news | |
2275 "Original-To:" ; mail to news | |
2276 "Original-X-" ; mail to news | |
2277 "Originator:" | |
2278 "P1-Content-Type:" ; X400 | |
2279 "P1-Message-Id:" ; X400 | |
2280 "P1-Recipient:" ; X400 | |
2281 "Path:" | |
2282 "Precedence:" | |
2283 "Prev-Resent" ; MH | |
2284 "Priority:" | |
2285 "Received:" ; RFC 822 | |
2286 "Received-SPF:" ; Gmail | |
2287 "References:" | |
2288 "Remailed-" ; MH | |
2289 "Replied:" ; MH | |
2290 "Resent" ; MH | |
2291 "Return-Path:" ; RFC 822 | |
2292 "Sensitivity:" ; MS Outlook | |
2293 "Status:" ; sendmail | |
2294 "Thread-" | |
2295 "Ua-Content-Id:" ; X400 | |
2296 ;; "User-Agent:" ; Similar to X-Mailer, so display it. | |
2297 "Via:" ; MH | |
2298 "X-Abuse-Info:" | |
2299 "X-Abuse-and-DMCA-" | |
2300 "X-Accept-Language:" | |
2301 "X-Accept-Language:" ; Netscape/Mozilla | |
2302 "X-Ack:" | |
2303 "X-Administrivia-To:" | |
2304 "X-AntiAbuse:" ; cPanel | |
2305 "X-Apparently-From:" ; MS Outlook | |
2306 "X-Apparently-To:" ; Egroups/yahoogroups mailing list manager | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2307 "X-Authenticated-Sender:" ; AT&T Message Center (webmail) |
68465 | 2308 "X-Authentication-Warning:" ; sendmail |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2309 "X-Barracuda-" ; Barracuda spam scores |
68465 | 2310 "X-Beenthere:" ; Mailman mailing list manager |
2311 "X-Bogosity:" ; bogofilter | |
68725
e59bf34a8b21
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68622
diff
changeset
|
2312 "X-BrightmailFiltered:" ; Brightmail |
e59bf34a8b21
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68622
diff
changeset
|
2313 "X-Brightmail-Tracker:" ; Brightmail |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2314 "X-Bugzilla-" ; Bugzilla |
68465 | 2315 "X-Complaints-To:" |
2316 "X-ContentStamp:" ; NetZero | |
2317 "X-Cron-Env:" | |
2318 "X-DMCA" | |
2319 "X-Delivered" | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2320 "X-EFL-Spamscore:" ; MIT alumni spam filtering |
68465 | 2321 "X-ELNK-Trace:" ; Earthlink mailer |
2322 "X-Envelope-Date:" ; GNU mailutils | |
2323 "X-Envelope-From:" | |
2324 "X-Envelope-Sender:" | |
2325 "X-Envelope-To:" | |
2326 "X-Evolution:" ; Evolution mail client | |
2327 "X-Face:" | |
2328 "X-Folder:" ; Spam | |
2329 "X-From-Line" | |
2330 "X-Gmail-" ; Gmail | |
2331 "X-Gnus-Mail-Source:" ; gnus | |
2332 "X-Greylist:" ; milter-greylist-1.2.1 | |
2333 "X-Habeas-SWE-1:" ; Spam | |
2334 "X-Habeas-SWE-2:" ; Spam | |
2335 "X-Habeas-SWE-3:" ; Spam | |
2336 "X-Habeas-SWE-4:" ; Spam | |
2337 "X-Habeas-SWE-5:" ; Spam | |
2338 "X-Habeas-SWE-6:" ; Spam | |
2339 "X-Habeas-SWE-7:" ; Spam | |
2340 "X-Habeas-SWE-8:" ; Spam | |
2341 "X-Habeas-SWE-9:" ; Spam | |
68725
e59bf34a8b21
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68622
diff
changeset
|
2342 "X-Hashcash:" ; hashcash |
68465 | 2343 "X-Info:" ; NTMail |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2344 "X-IronPort-AV:" ; IronPort AV |
68465 | 2345 "X-Juno-" ; Juno |
2346 "X-List-Host:" ; Unknown mailing list managers | |
2347 "X-List-Subscribe:" ; Unknown mailing list managers | |
2348 "X-List-Unsubscribe:" ; Unknown mailing list managers | |
2349 "X-Listprocessor-" ; ListProc(tm) by CREN | |
2350 "X-Listserver:" ; Unknown mailing list managers | |
2351 "X-Loop:" ; Unknown mailing list managers | |
2352 "X-Lumos-SenderID:" ; Roving ConstantContact | |
2353 "X-MAIL-INFO:" ; NetZero | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2354 "X-MHE-Checksum:" ; Checksum added during index search |
68465 | 2355 "X-MIME-Autoconverted:" ; sendmail |
2356 "X-MIMETrack:" | |
2357 "X-MS-" ; MS Outlook | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2358 "X-Mail-from:" ; fastmail.fm |
68465 | 2359 "X-MailScanner" ; ListProc(tm) by CREN |
2360 "X-Mailing-List:" ; Unknown mailing list managers | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2361 "X-Mailman-Approved-At:" ; Mailman mailing list manager |
68465 | 2362 "X-Mailman-Version:" ; Mailman mailing list manager |
2363 "X-Majordomo:" ; Majordomo mailing list manager | |
2364 "X-Message-Id" | |
2365 "X-MessageWall-Score:" ; Unknown mailing list manager, AUC TeX | |
2366 "X-MimeOLE:" ; MS Outlook | |
2367 "X-Mms-" ; T-Mobile pictures | |
2368 "X-Mozilla-Status:" ; Netscape/Mozilla | |
2369 "X-Msmail-" ; MS Outlook | |
2370 "X-NAI-Spam-" ; Network Associates Inc. SpamKiller | |
2371 "X-News:" ; News | |
2372 "X-No-Archive:" | |
2373 "X-Notes-Item:" ; Lotus Notes Domino structured header | |
2374 "X-OperatingSystem:" | |
2375 ;;"X-Operator:" ; Similar to X-Mailer, so display it | |
2376 "X-Orcl-Content-Type:" | |
2377 "X-Original-Complaints-To:" | |
2378 "X-Original-Date:" ; SourceForge mailing list manager | |
2379 "X-Original-To:" | |
2380 "X-Original-Trace:" | |
2381 "X-OriginalArrivalTime:" ; Hotmail | |
2382 "X-Originating-IP:" ; Hotmail | |
2383 "X-Postfilter:" | |
2384 "X-Priority:" ; MS Outlook | |
2385 "X-Qotd-" ; User added | |
2386 "X-RM" | |
2387 "X-Received-Date:" | |
2388 "X-Received:" | |
2389 "X-Request-" | |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2390 "X-Resolved-to:" ; fastmail.fm |
68465 | 2391 "X-Return-Path-Hint:" ; Roving ConstantContact |
69058
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2392 "X-Roving-" ; Roving ConstantContact |
2ac1a4fca640
* mh-e.el (mh-invisible-header-fields-internal): Added entries
Eric Ding <ericding@mit.edu>
parents:
69031
diff
changeset
|
2393 "X-SA-Exim-" ; Exim SpamAssassin |
68465 | 2394 "X-SBClass:" ; Spam |
2395 "X-SBNote:" ; Spam | |
2396 "X-SBPass:" ; Spam | |
2397 "X-SBRule:" ; Spam | |
2398 "X-SMTP-" | |
69074
f5bc6bf5c294
* mh-e.el (mh-invisible-header-fields-internal): Added entry
Eric Ding <ericding@mit.edu>
parents:
69058
diff
changeset
|
2399 "X-Sasl-enc:" ; Apple Mail |
f5bc6bf5c294
* mh-e.el (mh-invisible-header-fields-internal): Added entry
Eric Ding <ericding@mit.edu>
parents:
69058
diff
changeset
|
2400 "X-Scanned-By:" |
68465 | 2401 "X-Sender:" |
2402 "X-Server-Date:" | |
2403 "X-Server-Uuid:" | |
2404 "X-Sieve:" ; Sieve filtering | |
2405 "X-Source" | |
2406 "X-Spam-" ; Spamassassin | |
2407 "X-SpamBouncer:" ; Spam | |
2408 "X-Status" | |
2409 "X-Submissions-To:" | |
2410 "X-Telecom-Digest" | |
2411 "X-Trace:" | |
2412 "X-UID" | |
2413 "X-UIDL:" | |
2414 "X-UNTD-" ; NetZero | |
2415 "X-USANET-" ; usa.net | |
2416 "X-UserInfo1:" | |
2417 "X-VSMLoop:" ; NTMail | |
2418 "X-Virus-Scanned" ; amavisd-new | |
2419 "X-Vms-To:" | |
2420 "X-WebTV-Signature:" | |
2421 "X-Wss-Id:" ; Worldtalk gateways | |
2422 "X-Yahoo" | |
2423 "X-eGroups-" ; Egroups/yahoogroups mailing list manager | |
2424 "X-pgp:" | |
2425 "X-submission-address:" | |
2426 "X400-" ; X400 | |
2427 "Xref:") | |
2428 "List of default header fields that are not to be shown. | |
2429 | |
2430 Do not alter this variable directly. Instead, add entries from | |
2431 here that you would like to be displayed in | |
2432 `mh-invisible-header-fields-default' and add entries to hide in | |
2433 `mh-invisible-header-fields'.") | |
2434 | |
2435 (eval-and-compile | |
2436 (unless (fboundp 'mh-invisible-headers) | |
2437 (defun mh-invisible-headers () | |
2438 "Temporary definition. | |
2439 Real definition, below, uses variables that aren't defined yet." | |
2440 nil))) | |
2441 | |
2442 (defvar mh-delay-invisible-header-generation-flag t | |
2443 "Non-nil means to delay the generation of invisible header fields. | |
2444 Because the function `mh-invisible-headers' uses both | |
2445 `mh-invisible-header-fields' and `mh-invisible-header-fields', it | |
2446 cannot be run until both variables have been initialized.") | |
2447 | |
2448 (defcustom mh-invisible-header-fields nil | |
2449 "*Additional header fields to hide. | |
2450 | |
2451 Header fields that you would like to hide that aren't listed in | |
2452 `mh-invisible-header-fields-default' can be added to this option | |
2453 with a couple of caveats. Regular expressions are not allowed. | |
2454 Unique fields should have a \":\" suffix; otherwise, the element | |
2455 can be used to render invisible an entire class of fields that | |
2456 start with the same prefix. If you think a header field should be | |
2457 generally ignored, report a bug (see URL | |
2458 `https://sourceforge.net/tracker/?group_id=13357&atid=113357'). | |
2459 | |
2460 See also `mh-clean-message-header-flag'." | |
2461 | |
2462 :type '(repeat (string :tag "Header field")) | |
2463 :set (lambda (symbol value) | |
2464 (set-default symbol value) | |
2465 (mh-invisible-headers)) | |
2466 :group 'mh-show) | |
2467 | |
2468 (defcustom mh-invisible-header-fields-default nil | |
2469 "*List of hidden header fields. | |
2470 | |
2471 The header fields listed in this option are hidden, although you | |
2472 can check off any field that you would like to see. | |
2473 | |
2474 Header fields that you would like to hide that aren't listed can | |
2475 be added to the option `mh-invisible-header-fields'. | |
2476 | |
2477 See also `mh-clean-message-header-flag'." | |
2478 :type `(set ,@(mapcar (lambda (x) `(const ,x)) | |
2479 mh-invisible-header-fields-internal)) | |
2480 :set (lambda (symbol value) | |
2481 (set-default symbol value) | |
2482 (mh-invisible-headers)) | |
2483 :group 'mh-show) | |
2484 | |
2485 (defvar mh-invisible-header-fields-compiled nil | |
2486 "*Regexp matching lines in a message header that are not to be shown. | |
2487 Do not alter this variable directly. Instead, customize | |
2488 `mh-invisible-header-fields-default' checking for fields normally | |
2489 hidden that you wish to display, and add extra entries to hide in | |
2490 `mh-invisible-header-fields'.") | |
2491 | |
2492 (defun mh-invisible-headers () | |
2493 "Make or remake the variable `mh-invisible-header-fields-compiled'. | |
2494 Done using `mh-invisible-header-fields-internal' as input, from | |
2495 which entries from `mh-invisible-header-fields-default' are | |
2496 removed and entries from `mh-invisible-header-fields' are added." | |
2497 (let ((fields mh-invisible-header-fields-internal)) | |
2498 (when mh-invisible-header-fields-default | |
2499 ;; Remove entries from `mh-invisible-header-fields-default' | |
2500 (setq fields | |
2501 (loop for x in fields | |
2502 unless (member x mh-invisible-header-fields-default) | |
2503 collect x))) | |
2504 (when (and (boundp 'mh-invisible-header-fields) | |
2505 mh-invisible-header-fields) | |
2506 (dolist (x mh-invisible-header-fields) | |
2507 (unless (member x fields) (setq fields (cons x fields))))) | |
2508 (if fields | |
2509 (setq mh-invisible-header-fields-compiled | |
2510 (concat | |
2511 "^" | |
2512 ;; workaround for insufficient default | |
2513 (let ((max-specpdl-size 1000)) | |
2514 (regexp-opt fields t)))) | |
2515 (setq mh-invisible-header-fields-compiled nil)))) | |
2516 | |
2517 ;; Compile invisible header fields. | |
2518 (mh-invisible-headers) | |
2519 | |
2520 (defcustom mh-lpr-command-format "lpr -J '%s'" | |
2521 "*Command used to print\\<mh-folder-mode-map>. | |
2522 | |
2523 This option contains the Unix command line which performs the | |
2524 actual printing for the \\[mh-print-msg] command. The string can | |
2525 contain one escape, \"%s\", which is replaced by the name of the | |
2526 folder and the message number and is useful for print job names. | |
2527 I use \"mpage -h'%s' -b Letter -H1of -mlrtb -P\" which produces a | |
2528 nice header and adds a bit of margin so the text fits within my | |
2529 printer's margins. | |
2530 | |
2531 This options is not used by the commands \\[mh-ps-print-msg] or | |
2532 \\[mh-ps-print-msg-file]." | |
2533 :type 'string | |
2534 :group 'mh-show) | |
2535 | |
2536 (defcustom mh-max-inline-image-height nil | |
2537 "*Maximum inline image height if \"Content-Disposition:\" is not present. | |
2538 | |
2539 Some older mail programs do not insert this needed plumbing to | |
2540 tell MH-E whether to display the attachments inline or not. If | |
2541 this is the case, MH-E will display these images inline if they | |
2542 are smaller than the window. However, you might want to allow | |
2543 larger images to be displayed inline. To do this, you can change | |
2544 the options `mh-max-inline-image-width' and | |
2545 `mh-max-inline-image-height' from their default value of zero to | |
2546 a large number. The size of your screen is a good choice for | |
2547 these numbers." | |
2548 :type '(choice (const nil) integer) | |
2549 :group 'mh-show) | |
2550 | |
2551 (defcustom mh-max-inline-image-width nil | |
2552 "*Maximum inline image width if \"Content-Disposition:\" is not present. | |
2553 | |
2554 Some older mail programs do not insert this needed plumbing to | |
2555 tell MH-E whether to display the attachments inline or not. If | |
2556 this is the case, MH-E will display these images inline if they | |
2557 are smaller than the window. However, you might want to allow | |
2558 larger images to be displayed inline. To do this, you can change | |
2559 the options `mh-max-inline-image-width' and | |
2560 `mh-max-inline-image-height' from their default value of zero to | |
2561 a large number. The size of your screen is a good choice for | |
2562 these numbers." | |
2563 :type '(choice (const nil) integer) | |
2564 :group 'mh-show) | |
2565 | |
2566 (defcustom mh-mhl-format-file nil | |
2567 "*Specifies the format file to pass to the \"mhl\" program. | |
2568 | |
2569 Normally MH-E takes care of displaying messages itself (rather than | |
2570 calling an MH program to do the work). If you'd rather have \"mhl\" | |
2571 display the message (within MH-E), change this option from its default | |
2572 value of \"Use Default mhl Format (Printing Only)\". | |
2573 | |
2574 You can set this option to \"Use Default mhl Format\" to get the same | |
2575 output as you would get if you ran \"mhl\" from the shell. | |
2576 | |
2577 If you have a format file that you want MH-E to use, you can set this | |
2578 option to \"Specify an mhl Format File\" and enter the name of your | |
2579 format file. Your format file should specify a non-zero value for | |
2580 \"overflowoffset\" to allow MH-E to parse the header. Note that | |
2581 \"mhl\" is always used for printing and forwarding; in this case, the | |
2582 value of this option is consulted if you have specified a format | |
2583 file." | |
2584 :type '(choice (const :tag "Use Default mhl Format (Printing Only)" nil) | |
2585 (const :tag "Use Default mhl Format" t) | |
2586 (file :tag "Specify an mhl Format File")) | |
2587 :group 'mh-show) | |
2588 | |
2589 (defcustom mh-mime-save-parts-default-directory t | |
2590 "Default directory to use for \\<mh-folder-mode-map>\\[mh-mime-save-parts]. | |
2591 | |
2592 The default value for this option is \"Prompt Always\" so that | |
2593 you are always prompted for the directory in which to save the | |
2594 attachments. However, if you usually use the same directory | |
2595 within a session, then you can set this option to \"Prompt the | |
2596 First Time\" to avoid the prompt each time. you can make this | |
2597 directory permanent by choosing \"Directory\" and entering the | |
2598 directory's name." | |
2599 :type '(choice (const :tag "Prompt the First Time" nil) | |
2600 (const :tag "Prompt Always" t) | |
2601 directory) | |
2602 :group 'mh-show) | |
2603 | |
2604 (defcustom mh-print-background-flag nil | |
2605 "*Non-nil means messages should be printed in the background\\<mh-folder-mode-map>. | |
2606 | |
2607 Normally messages are printed in the foreground. If this is slow on | |
2608 your system, you may elect to turn off this option to print in the | |
2609 background. | |
2610 | |
2611 WARNING: If you do this, do not delete the message until it is printed | |
2612 or else the output may be truncated. | |
2613 | |
2614 This option is not used by the commands \\[mh-ps-print-msg] or | |
2615 \\[mh-ps-print-msg-file]." | |
2616 :type 'boolean | |
2617 :group 'mh-show) | |
2618 | |
2619 (defcustom mh-show-maximum-size 0 | |
2620 "*Maximum size of message (in bytes) to display automatically. | |
2621 | |
2622 This option provides an opportunity to skip over large messages | |
2623 which may be slow to load. The default value of 0 means that all | |
2624 message are shown regardless of size." | |
2625 :type 'integer | |
2626 :group 'mh-show) | |
2627 | |
2628 (defcustom mh-show-use-xface-flag (>= emacs-major-version 21) | |
2629 "*Non-nil means display face images in MH-show buffers. | |
2630 | |
2631 MH-E can display the content of \"Face:\", \"X-Face:\", and | |
2632 \"X-Image-URL:\" header fields. If any of these fields occur in the | |
2633 header of your message, the sender's face will appear in the \"From:\" | |
2634 header field. If more than one of these fields appear, then the first | |
2635 field found in the order \"Face:\", \"X-Face:\", and \"X-Image-URL:\" | |
2636 will be used. | |
2637 | |
2638 The option `mh-show-use-xface-flag' is used to turn this feature on | |
2639 and off. This feature will be turned on by default if your system | |
2640 supports it. | |
2641 | |
2642 The first header field used, if present, is the Gnus-specific | |
2643 \"Face:\" field. The \"Face:\" field appeared in GNU Emacs 21 and | |
2644 XEmacs. For more information, see URL | |
2645 `http://quimby.gnus.org/circus/face/'. Next is the traditional | |
2646 \"X-Face:\" header field. The display of this field requires the | |
2647 \"uncompface\" program (see URL | |
2648 `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent | |
2649 versions of XEmacs have internal support for \"X-Face:\" images. If | |
2650 your version of XEmacs does not, then you'll need both \"uncompface\" | |
2651 and the x-face package (see URL `ftp://ftp.jpl.org/pub/elisp/'). | |
2652 | |
2653 Finally, MH-E will display images referenced by the \"X-Image-URL:\" | |
2654 header field if neither the \"Face:\" nor the \"X-Face:\" fields are | |
2655 present. The display of the images requires \"wget\" (see URL | |
2656 `http://www.gnu.org/software/wget/wget.html'), \"fetch\", or \"curl\" | |
2657 to fetch the image and the \"convert\" program from the ImageMagick | |
2658 suite (see URL `http://www.imagemagick.org/'). Of the three header | |
2659 fields this is the most efficient in terms of network usage since the | |
2660 image doesn't need to be transmitted with every single mail. | |
2661 | |
2662 The option `mh-fetch-x-image-url' controls the fetching of the | |
2663 \"X-Image-URL:\" header field image." | |
2664 :type 'boolean | |
2665 :group 'mh-show) | |
2666 | |
2667 (defcustom mh-store-default-directory nil | |
2668 "*Default directory for \\<mh-folder-mode-map>\\[mh-store-msg]. | |
2669 | |
2670 If you would like to change the initial default directory, | |
2671 customize this option, change the value from \"Current\" to | |
2672 \"Directory\", and then enter the name of the directory for storing | |
2673 the content of these messages." | |
2674 :type '(choice (const :tag "Current" nil) | |
2675 directory) | |
2676 :group 'mh-show) | |
2677 | |
2678 (defcustom mh-summary-height nil | |
2679 "*Number of lines in MH-Folder buffer (including the mode line). | |
2680 | |
2681 The default value of this option is \"Automatic\" which means | |
2682 that the MH-Folder buffer will maintain the same proportional | |
2683 size if the frame is resized. If you'd prefer a fixed height, | |
2684 then choose the \"Fixed Size\" option and enter the number of | |
2685 lines you'd like to see." | |
2686 :type '(choice (const :tag "Automatic" nil) | |
2687 (integer :tag "Fixed Size")) | |
2688 :group 'mh-show) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2689 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2690 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2691 |
68465 | 2692 ;;; The Speedbar (:group 'mh-speedbar) |
2693 | |
2694 (defcustom mh-speed-update-interval 60 | |
2695 "Time between speedbar updates in seconds. | |
2696 Set to 0 to disable automatic update." | |
2697 :type 'integer | |
2698 :group 'mh-speedbar) | |
2699 | |
2700 | |
2701 | |
2702 ;;; Threading (:group 'mh-thread) | |
2703 | |
2704 (defcustom mh-show-threads-flag nil | |
2705 "*Non-nil means new folders start in threaded mode. | |
2706 | |
2707 Threading large number of messages can be time consuming so this | |
2708 option is turned off by default. If you turn this option on, then | |
2709 threading will be done only if the number of messages being | |
2710 threaded is less than `mh-large-folder'." | |
2711 :type 'boolean | |
2712 :group 'mh-thread) | |
2713 | |
2714 | |
2715 | |
2716 ;;; The Tool Bar (:group 'mh-tool-bar) | |
2717 | |
2718 ;; mh-tool-bar-folder-buttons and mh-tool-bar-letter-buttons defined | |
2719 ;; dynamically in mh-tool-bar.el. | |
2720 | |
2721 (defcustom mh-tool-bar-search-function 'mh-search | |
2722 "*Function called by the tool bar search button. | |
2723 | |
2724 By default, this is set to `mh-search'. You can also choose | |
2725 \"Other Function\" from the \"Value Menu\" and enter a function | |
2726 of your own choosing." | |
2727 :type '(choice (const mh-search) | |
2728 (function :tag "Other Function")) | |
2729 :group 'mh-tool-bar) | |
2730 | |
2731 ;; XEmacs has a couple of extra customizations... | |
2732 (mh-do-in-xemacs | |
2733 (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag | |
2734 "*If non-nil, use tool bar. | |
2735 | |
2736 This option controls whether to show the MH-E icons at all. By | |
2737 default, this option is turned on if the window system supports | |
2738 tool bars. If your system doesn't support tool bars, then you | |
2739 won't be able to turn on this option." | |
2740 :type 'boolean | |
2741 :group 'mh-tool-bar | |
2742 :set (lambda (symbol value) | |
2743 (if (and (eq value t) | |
2744 (not mh-xemacs-has-tool-bar-flag)) | |
2745 (error "Tool bar not supported")) | |
2746 (set-default symbol value))) | |
2747 | |
2748 (defcustom mh-xemacs-tool-bar-position nil | |
2749 "*Tool bar location. | |
2750 | |
2751 This option controls the placement of the tool bar along the four | |
2752 edges of the frame. You can choose from one of \"Same As Default | |
2753 Tool Bar\", \"Top\", \"Bottom\", \"Left\", or \"Right\". If this | |
2754 variable is set to anything other than \"Same As Default Tool | |
2755 Bar\" and the default tool bar is in a different location, then | |
2756 two tool bars will be displayed: the MH-E tool bar and the | |
2757 default tool bar." | |
2758 :type '(radio (const :tag "Same As Default Tool Bar" :value nil) | |
2759 (const :tag "Top" :value top) | |
2760 (const :tag "Bottom" :value bottom) | |
2761 (const :tag "Left" :value left) | |
2762 (const :tag "Right" :value right)) | |
2763 :group 'mh-tool-bar)) | |
2764 | |
2765 | |
2766 | |
2767 ;;; Hooks (:group 'mh-hooks + group where hook described) | |
2768 | |
2769 (defcustom mh-after-commands-processed-hook nil | |
68475
fef251da6e07
(mh-after-commands-processed-hook)
Bill Wohler <wohler@newt.com>
parents:
68465
diff
changeset
|
2770 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding refile and delete requests. |
68465 | 2771 |
2772 Variables that are useful in this hook include | |
2773 `mh-folders-changed', which lists which folders were affected by | |
2774 deletes and refiles. This list will always include the current | |
2775 folder, which is also available in `mh-current-folder'." | |
2776 :type 'hook | |
2777 :group 'mh-hooks | |
2778 :group 'mh-folder) | |
2779 | |
2780 (defcustom mh-alias-reloaded-hook nil | |
2781 "Hook run by `mh-alias-reload' after loading aliases." | |
2782 :type 'hook | |
2783 :group 'mh-hooks | |
2784 :group 'mh-alias) | |
2785 | |
2786 (defcustom mh-before-commands-processed-hook nil | |
68475
fef251da6e07
(mh-after-commands-processed-hook)
Bill Wohler <wohler@newt.com>
parents:
68465
diff
changeset
|
2787 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding refile and delete requests. |
68465 | 2788 |
2789 Variables that are useful in this hook include `mh-delete-list' | |
2790 and `mh-refile-list' which can be used to see which changes will | |
2791 be made to the current folder, `mh-current-folder'." | |
2792 :type 'hook | |
2793 :group 'mh-hooks | |
2794 :group 'mh-folder) | |
2795 | |
2796 (defcustom mh-before-quit-hook nil | |
2797 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] before quitting MH-E. | |
2798 | |
2799 This hook is called before the quit occurs, so you might use it | |
2800 to perform any MH-E operations; you could perform some query and | |
2801 abort the quit or call `mh-execute-commands', for example. | |
2802 | |
2803 See also `mh-quit-hook'." | |
2804 :type 'hook | |
2805 :group 'mh-hooks | |
2806 :group 'mh-folder) | |
2807 | |
2808 (defcustom mh-before-send-letter-hook nil | |
2809 "Hook run at the beginning of the \\<mh-letter-mode-map>\\[mh-send-letter] command. | |
2810 | |
2811 For example, if you want to check your spelling in your message | |
2812 before sending, add the `ispell-message' function." | |
2813 :type 'hook | |
2814 :options '(ispell-message) | |
2815 :group 'mh-hooks | |
2816 :group 'mh-letter) | |
2817 | |
2818 (defcustom mh-delete-msg-hook nil | |
2819 "Hook run by \\<mh-letter-mode-map>\\[mh-delete-msg] after marking each message for deletion. | |
2820 | |
2821 For example, a past maintainer of MH-E used this once when he | |
2822 kept statistics on his mail usage." | |
2823 :type 'hook | |
2824 :group 'mh-hooks | |
2825 :group 'mh-show) | |
2826 | |
2827 (defcustom mh-find-path-hook nil | |
2828 "Hook run by `mh-find-path' after reading the user's MH profile. | |
2829 | |
2830 This hook can be used the change the value of the variables that | |
2831 `mh-find-path' sets if you need to run with different values | |
2832 between MH and MH-E." | |
2833 :type 'hook | |
2834 :group 'mh-hooks | |
2835 :group 'mh-e) | |
2836 | |
2837 (defcustom mh-folder-mode-hook nil | |
2838 "Hook run by `mh-folder-mode' when visiting a new folder." | |
2839 :type 'hook | |
2840 :group 'mh-hooks | |
2841 :group 'mh-folder) | |
2842 | |
2843 (defcustom mh-forward-hook nil | |
2844 "Hook run by `mh-forward' on a forwarded letter." | |
2845 :type 'hook | |
2846 :group 'mh-hooks | |
2847 :group 'mh-sending-mail) | |
2848 | |
2849 (defcustom mh-inc-folder-hook nil | |
2850 "Hook run by \\<mh-folder-mode-map>\\[mh-inc-folder] after incorporating mail into a folder." | |
2851 :type 'hook | |
2852 :group 'mh-hooks | |
2853 :group 'mh-inc) | |
2854 | |
2855 (defcustom mh-insert-signature-hook nil | |
2856 "Hook run by \\<mh-letter-mode-map>\\[mh-insert-signature] after signature has been inserted. | |
2857 | |
2858 Hook functions may access the actual name of the file or the | |
2859 function used to insert the signature with | |
2860 `mh-signature-file-name'." | |
2861 :type 'hook | |
2862 :group 'mh-hooks | |
2863 :group 'mh-letter) | |
2864 | |
2865 (defcustom mh-kill-folder-suppress-prompt-hooks '(mh-search-p) | |
2866 "Abnormal hook run at the beginning of \\<mh-folder-mode-map>\\[mh-kill-folder]. | |
2867 | |
2868 The hook functions are called with no arguments and should return | |
2869 a non-nil value to suppress the normal prompt when you remove a | |
2870 folder. This is useful for folders that are easily regenerated. | |
2871 | |
2872 The default value of `mh-search-p' suppresses the prompt on | |
2873 folders generated by searching. | |
2874 | |
2875 WARNING: Use this hook with care. If there is a bug in your hook | |
2876 which returns t on \"+inbox\" and you hit \\[mh-kill-folder] by | |
2877 accident in the \"+inbox\" folder, you will not be happy." | |
2878 :type 'hook | |
2879 :group 'mh-hooks | |
2880 :group 'mh-folder) | |
2881 | |
2882 (defcustom mh-letter-mode-hook nil | |
2883 "Hook run by `mh-letter-mode' on a new letter. | |
2884 | |
2885 This hook allows you to do some processing before editing a | |
2886 letter. For example, you may wish to modify the header after | |
2887 \"repl\" has done its work, or you may have a complicated | |
2888 \"components\" file and need to tell MH-E where the cursor should | |
2889 go." | |
2890 :type 'hook | |
2891 :group 'mh-hooks | |
2892 :group 'mh-sending-mail) | |
2893 | |
2894 (defcustom mh-mh-to-mime-hook nil | |
2895 "Hook run on the formatted letter by \\<mh-letter-mode-map>\\[mh-mh-to-mime]." | |
2896 :type 'hook | |
2897 :group 'mh-hooks | |
2898 :group 'mh-letter) | |
2899 | |
2900 (defcustom mh-search-mode-hook nil | |
2901 "Hook run upon entry to `mh-search-mode'\\<mh-folder-mode-map>. | |
2902 | |
2903 If you find that you do the same thing over and over when editing | |
2904 the search template, you may wish to bind some shortcuts to keys. | |
2905 This can be done with this hook which is called when | |
2906 \\[mh-search] is run on a new pattern." | |
2907 :type 'hook | |
2908 :group 'mh-hooks | |
2909 :group 'mh-search) | |
2910 | |
2911 (defcustom mh-quit-hook nil | |
2912 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] after quitting MH-E. | |
2913 | |
2914 This hook is not run in an MH-E context, so you might use it to | |
2915 modify the window setup. | |
2916 | |
2917 See also `mh-before-quit-hook'." | |
2918 :type 'hook | |
2919 :group 'mh-hooks | |
2920 :group 'mh-folder) | |
2921 | |
2922 (defcustom mh-refile-msg-hook nil | |
2923 "Hook run by \\<mh-folder-mode-map>\\[mh-refile-msg] after marking each message for refiling." | |
2924 :type 'hook | |
2925 :group 'mh-hooks | |
2926 :group 'mh-folder) | |
2927 | |
2928 (defcustom mh-show-hook nil | |
2929 "Hook run after \\<mh-folder-mode-map>\\[mh-show] shows a message. | |
2930 | |
2931 It is the last thing called after messages are displayed. It's | |
2932 used to affect the behavior of MH-E in general or when | |
2933 `mh-show-mode-hook' is too early. See `mh-show-mode-hook'." | |
2934 :type 'hook | |
2935 :group 'mh-hooks | |
2936 :group 'mh-show) | |
2937 | |
2938 (defcustom mh-show-mode-hook nil | |
2939 "Hook run upon entry to `mh-show-mode'. | |
2940 | |
2941 This hook is called early on in the process of the message | |
2942 display. It is usually used to perform some action on the | |
2943 message's content. See `mh-show-hook'." | |
2944 :type 'hook | |
2945 :group 'mh-hooks | |
2946 :group 'mh-show) | |
2947 | |
2948 (defcustom mh-unseen-updated-hook nil | |
2949 "Hook run after the unseen sequence has been updated. | |
2950 | |
2951 The variable `mh-seen-list' can be used by this hook to obtain | |
2952 the list of messages which were removed from the unseen | |
2953 sequence." | |
2954 :type 'hook | |
2955 :group 'mh-hooks | |
2956 :group 'mh-sequences) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2957 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2958 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2959 |
68465 | 2960 ;;; Faces (:group 'mh-faces + group where faces described) |
2961 | |
2962 (if (boundp 'facemenu-unlisted-faces) | |
2963 (add-to-list 'facemenu-unlisted-faces "^mh-")) | |
2964 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
2965 ;; Temporary function and data structure used for defining faces. |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
2966 ;; These will be unbound after the faces are defined. |
68465 | 2967 (defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag) |
2968 (>= emacs-major-version 22)) | |
2969 "Non-nil means defface supports min-colors display requirement.") | |
2970 | |
2971 (defun mh-defface-compat (spec) | |
2972 "Convert SPEC for defface if necessary to run on older platforms. | |
2973 Modifies SPEC in place and returns it. See `defface' for the spec definition. | |
2974 | |
2975 When `mh-min-colors-defined-flag' is nil, this function finds | |
2976 display entries with \"min-colors\" requirements and either | |
2977 removes the \"min-colors\" requirement or strips the display | |
2978 entirely if the display does not support the number of specified | |
2979 colors." | |
2980 (if mh-min-colors-defined-flag | |
2981 spec | |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68484
diff
changeset
|
2982 (let ((cells (mh-display-color-cells)) |
68465 | 2983 new-spec) |
2984 ;; Remove entries with min-colors, or delete them if we have fewer colors | |
2985 ;; than they specify. | |
2986 (loop for entry in (reverse spec) do | |
2987 (let ((requirement (if (eq (car entry) t) | |
2988 nil | |
2989 (assoc 'min-colors (car entry))))) | |
2990 (if requirement | |
2991 (when (>= cells (nth 1 requirement)) | |
2992 (setq new-spec (cons (cons (delq requirement (car entry)) | |
2993 (cdr entry)) | |
2994 new-spec))) | |
2995 (setq new-spec (cons entry new-spec))))) | |
2996 new-spec))) | |
2997 | |
69196
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
2998 (require 'cus-face) |
6c74df3ce672
(mh-variant, mh-default-folder-for-message-function): Sync docstring
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
2999 |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3000 (defvar mh-inherit-face-flag (assq :inherit custom-face-attributes) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3001 "Non-nil means that the `defface' :inherit keyword is available. |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3002 The :inherit keyword is available on all supported versions of |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3003 GNU Emacs and XEmacs from at least 21.5.23 on.") |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3004 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3005 (defvar mh-face-data |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3006 '((mh-folder-followup |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3007 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3008 (:foreground "blue3")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3009 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3010 (:foreground "LightGoldenRod")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3011 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3012 (:bold t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3013 (mh-folder-msg-number |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3014 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3015 (:foreground "snow4")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3016 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3017 (:foreground "snow3")) |
68977
c6014dab558d
(mh-folder-msg-number): Use purple on low-color, light backgrounds per
Bill Wohler <wohler@newt.com>
parents:
68948
diff
changeset
|
3018 (((class color) (background light)) |
c6014dab558d
(mh-folder-msg-number): Use purple on low-color, light backgrounds per
Bill Wohler <wohler@newt.com>
parents:
68948
diff
changeset
|
3019 (:foreground "purple")) |
c6014dab558d
(mh-folder-msg-number): Use purple on low-color, light backgrounds per
Bill Wohler <wohler@newt.com>
parents:
68948
diff
changeset
|
3020 (((class color) (background dark)) |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3021 (:foreground "cyan")))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3022 (mh-folder-refiled |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3023 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3024 (:foreground "DarkGoldenrod")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3025 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3026 (:foreground "LightGoldenrod")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3027 (((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3028 (:foreground "yellow" :weight light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3029 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3030 (:foreground "Gray90" :bold t :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3031 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3032 (:foreground "DimGray" :bold t :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3033 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3034 (:bold t :italic t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3035 (mh-folder-subject |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3036 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3037 (:foreground "blue4")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3038 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3039 (:foreground "yellow")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3040 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3041 (:bold t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3042 (mh-folder-tick |
68977
c6014dab558d
(mh-folder-msg-number): Use purple on low-color, light backgrounds per
Bill Wohler <wohler@newt.com>
parents:
68948
diff
changeset
|
3043 ((((class color) (background light)) |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3044 (:background "#dddf7e")) |
68977
c6014dab558d
(mh-folder-msg-number): Use purple on low-color, light backgrounds per
Bill Wohler <wohler@newt.com>
parents:
68948
diff
changeset
|
3045 (((class color) (background dark)) |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3046 (:background "#dddf7e")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3047 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3048 (:underline t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3049 (mh-folder-to |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3050 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3051 (:foreground "RosyBrown")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3052 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3053 (:foreground "LightSalmon")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3054 (((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3055 (:foreground "green")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3056 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3057 (:foreground "DimGray" :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3058 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3059 (:foreground "LightGray" :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3060 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3061 (:italic t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3062 (mh-letter-header-field |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3063 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3064 (:background "gray90")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3065 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3066 (:background "gray10")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3067 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3068 (:bold t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3069 (mh-search-folder |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3070 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3071 (:foreground "dark green" :bold t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3072 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3073 (:foreground "indian red" :bold t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3074 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3075 (:bold t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3076 (mh-show-cc |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3077 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3078 (:foreground "DarkGoldenrod")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3079 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3080 (:foreground "LightGoldenrod")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3081 (((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3082 (:foreground "yellow" :weight light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3083 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3084 (:foreground "Gray90" :bold t :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3085 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3086 (:foreground "DimGray" :bold t :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3087 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3088 (:bold t :italic t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3089 (mh-show-date |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3090 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3091 (:foreground "ForestGreen")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3092 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3093 (:foreground "PaleGreen")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3094 (((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3095 (:foreground "green")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3096 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3097 (:foreground "Gray90" :bold t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3098 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3099 (:foreground "DimGray" :bold t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3100 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3101 (:bold t :underline t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3102 (mh-show-from |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3103 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3104 (:foreground "red3")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3105 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3106 (:foreground "cyan")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3107 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3108 (:bold t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3109 (mh-show-header |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3110 ((((class color) (min-colors 64) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3111 (:foreground "RosyBrown")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3112 (((class color) (min-colors 64) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3113 (:foreground "LightSalmon")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3114 (((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3115 (:foreground "green")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3116 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3117 (:foreground "DimGray" :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3118 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3119 (:foreground "LightGray" :italic t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3120 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3121 (:italic t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3122 (mh-show-pgg-bad ((t (:bold t :foreground "DeepPink1")))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3123 (mh-show-pgg-good ((t (:bold t :foreground "LimeGreen")))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3124 (mh-show-pgg-unknown ((t (:bold t :foreground "DarkGoldenrod2")))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3125 (mh-show-signature ((t (:italic t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3126 (mh-show-to |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3127 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3128 (:foreground "SaddleBrown")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3129 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3130 (:foreground "burlywood")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3131 (((class grayscale) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3132 (:foreground "DimGray" :underline t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3133 (((class grayscale) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3134 (:foreground "LightGray" :underline t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3135 (t (:underline t)))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3136 (mh-speedbar-folder |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3137 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3138 (:foreground "blue4")) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3139 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3140 (:foreground "light blue")))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3141 (mh-speedbar-selected-folder |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3142 ((((class color) (background light)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3143 (:foreground "red1" :underline t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3144 (((class color) (background dark)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3145 (:foreground "red1" :underline t)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3146 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3147 (:underline t)))))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3148 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3149 (defun mh-face-data (face &optional inherit) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3150 "Return spec for FACE. |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3151 If INHERIT is non-nil and `defface' supports the :inherit |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3152 keyword, return INHERIT literally; otherwise, return spec for FACE. |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3153 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3154 This isn't a perfect implementation. In the case that |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3155 the :inherit keyword is not supported, any additional attributes |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3156 in the inherit parameter are not added to the returned spec." |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3157 (if (and inherit mh-inherit-face-flag) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3158 inherit |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3159 (mh-defface-compat (cadr (assoc face mh-face-data))))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3160 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3161 (defface mh-folder-address |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3162 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject)))) |
68465 | 3163 "Recipient face." |
3164 :group 'mh-faces | |
3165 :group 'mh-folder) | |
3166 | |
3167 (defface mh-folder-body | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3168 (mh-face-data 'mh-folder-msg-number |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3169 '((((class color)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3170 (:inherit mh-folder-msg-number)) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3171 (t |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3172 (:inherit mh-folder-msg-number :italic t)))) |
68465 | 3173 "Body text face." |
3174 :group 'mh-faces | |
3175 :group 'mh-folder) | |
3176 | |
3177 (defface mh-folder-cur-msg-number | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3178 (mh-face-data 'mh-folder-msg-number |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3179 '((t (:inherit mh-folder-msg-number :bold t)))) |
68465 | 3180 "Current message number face." |
3181 :group 'mh-faces | |
3182 :group 'mh-folder) | |
3183 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3184 (defface mh-folder-date |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3185 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number)))) |
68465 | 3186 "Date face." |
3187 :group 'mh-faces | |
3188 :group 'mh-folder) | |
3189 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3190 (defface mh-folder-deleted |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3191 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-msg-number)))) |
68465 | 3192 "Deleted message face." |
3193 :group 'mh-faces | |
3194 :group 'mh-folder) | |
3195 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3196 (defface mh-folder-followup (mh-face-data 'mh-folder-followup) |
68465 | 3197 "\"Re:\" face." |
3198 :group 'mh-faces | |
3199 :group 'mh-folder) | |
3200 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3201 (defface mh-folder-msg-number (mh-face-data 'mh-folder-msg-number) |
68465 | 3202 "Message number face." |
3203 :group 'mh-faces | |
3204 :group 'mh-folder) | |
3205 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3206 (defface mh-folder-refiled (mh-face-data 'mh-folder-refiled) |
68465 | 3207 "Refiled message face." |
3208 :group 'mh-faces | |
3209 :group 'mh-folder) | |
3210 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3211 (defface mh-folder-sent-to-me-hint |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3212 (mh-face-data 'mh-folder-msg-number '((t (:inherit mh-folder-date)))) |
68465 | 3213 "Fontification hint face in messages sent directly to us. |
3214 The detection of messages sent to us is governed by the scan | |
3215 format `mh-scan-format-nmh' and the regular expression | |
3216 `mh-scan-sent-to-me-sender-regexp'." | |
3217 :group 'mh-faces | |
3218 :group 'mh-folder) | |
3219 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3220 (defface mh-folder-sent-to-me-sender |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3221 (mh-face-data 'mh-folder-followup '((t (:inherit mh-folder-followup)))) |
68465 | 3222 "Sender face in messages sent directly to us. |
3223 The detection of messages sent to us is governed by the scan | |
3224 format `mh-scan-format-nmh' and the regular expression | |
3225 `mh-scan-sent-to-me-sender-regexp'." | |
3226 :group 'mh-faces | |
3227 :group 'mh-folder) | |
3228 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3229 (defface mh-folder-subject (mh-face-data 'mh-folder-subject) |
68465 | 3230 "Subject face." |
3231 :group 'mh-faces | |
3232 :group 'mh-folder) | |
3233 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3234 (defface mh-folder-tick (mh-face-data 'mh-folder-tick) |
68465 | 3235 "Ticked message face." |
3236 :group 'mh-faces | |
3237 :group 'mh-folder) | |
3238 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3239 (defface mh-folder-to (mh-face-data 'mh-folder-to) |
68465 | 3240 "\"To:\" face." |
3241 :group 'mh-faces | |
3242 :group 'mh-folder) | |
3243 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3244 (defface mh-letter-header-field (mh-face-data 'mh-letter-header-field) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3245 "Editable header field value face in draft buffers." |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3246 :group 'mh-faces |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3247 :group 'mh-letter) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3248 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3249 (defface mh-search-folder (mh-face-data 'mh-search-folder) |
68465 | 3250 "Folder heading face in MH-Folder buffers created by searches." |
3251 :group 'mh-faces | |
3252 :group 'mh-search) | |
3253 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3254 (defface mh-show-cc (mh-face-data 'mh-show-cc) |
68465 | 3255 "Face used to highlight \"cc:\" header fields." |
3256 :group 'mh-faces | |
3257 :group 'mh-show) | |
3258 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3259 (defface mh-show-date (mh-face-data 'mh-show-date) |
68465 | 3260 "Face used to highlight \"Date:\" header fields." |
3261 :group 'mh-faces | |
3262 :group 'mh-show) | |
3263 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3264 (defface mh-show-from (mh-face-data 'mh-show-from) |
68465 | 3265 "Face used to highlight \"From:\" header fields." |
3266 :group 'mh-faces | |
3267 :group 'mh-show) | |
3268 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3269 (defface mh-show-header (mh-face-data 'mh-show-header) |
68465 | 3270 "Face used to deemphasize less interesting header fields." |
3271 :group 'mh-faces | |
3272 :group 'mh-show) | |
3273 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3274 (defface mh-show-pgg-bad (mh-face-data 'mh-show-pgg-bad) |
68465 | 3275 "Bad PGG signature face." |
3276 :group 'mh-faces | |
3277 :group 'mh-show) | |
3278 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3279 (defface mh-show-pgg-good (mh-face-data 'mh-show-pgg-good) |
68465 | 3280 "Good PGG signature face." |
3281 :group 'mh-faces | |
3282 :group 'mh-show) | |
3283 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3284 (defface mh-show-pgg-unknown (mh-face-data 'mh-show-pgg-unknown) |
68465 | 3285 "Unknown or untrusted PGG signature face." |
3286 :group 'mh-faces | |
3287 :group 'mh-show) | |
3288 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3289 (defface mh-show-signature (mh-face-data 'mh-show-signature) |
68465 | 3290 "Signature face." |
3291 :group 'mh-faces | |
3292 :group 'mh-show) | |
3293 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3294 (defface mh-show-subject |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3295 (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject)))) |
68465 | 3296 "Face used to highlight \"Subject:\" header fields." |
3297 :group 'mh-faces | |
3298 :group 'mh-show) | |
3299 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3300 (defface mh-show-to (mh-face-data 'mh-show-to) |
68465 | 3301 "Face used to highlight \"To:\" header fields." |
3302 :group 'mh-faces | |
3303 :group 'mh-show) | |
3304 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3305 (defface mh-show-xface |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3306 (mh-face-data 'mh-show-from '((t (:inherit (mh-show-from highlight))))) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3307 |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3308 "X-Face image face. |
68465 | 3309 The background and foreground are used in the image." |
3310 :group 'mh-faces | |
3311 :group 'mh-show) | |
3312 | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3313 (defface mh-speedbar-folder (mh-face-data 'mh-speedbar-folder) |
68465 | 3314 "Basic folder face." |
3315 :group 'mh-faces | |
3316 :group 'mh-speedbar) | |
3317 | |
3318 (defface mh-speedbar-folder-with-unseen-messages | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3319 (mh-face-data 'mh-speedbar-folder |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3320 '((t (:inherit mh-speedbar-folder :bold t)))) |
68465 | 3321 "Folder face when folder contains unread messages." |
3322 :group 'mh-faces | |
3323 :group 'mh-speedbar) | |
3324 | |
3325 (defface mh-speedbar-selected-folder | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3326 (mh-face-data 'mh-speedbar-selected-folder) |
68465 | 3327 "Selected folder face." |
3328 :group 'mh-faces | |
3329 :group 'mh-speedbar) | |
3330 | |
3331 (defface mh-speedbar-selected-folder-with-unseen-messages | |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3332 (mh-face-data 'mh-speedbar-selected-folder |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3333 '((t (:inherit mh-speedbar-selected-folder :bold t)))) |
68465 | 3334 "Selected folder face when folder contains unread messages." |
3335 :group 'mh-faces | |
3336 :group 'mh-speedbar) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3337 |
68948
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3338 ;; Get rid of temporary functions and data structures. |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3339 (fmakunbound 'mh-defface-compat) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3340 (fmakunbound 'mh-face-data) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3341 (makunbound 'mh-face-data) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3342 (makunbound 'mh-inherit-face-flag) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3343 (makunbound 'mh-min-colors-defined-flag) |
ab0fd996e480
(mh-inherit-face-flag): New variable. Non-nil means that the defface
Bill Wohler <wohler@newt.com>
parents:
68725
diff
changeset
|
3344 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3345 (provide 'mh-e) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3346 |
67681 | 3347 ;; Local Variables: |
3348 ;; indent-tabs-mode: nil | |
3349 ;; sentence-end-double-space: nil | |
3350 ;; End: | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3351 |
67681 | 3352 ;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
3353 ;;; mh-e.el ends here |