aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wohler2005-05-28 22:04:54 +0000
committerBill Wohler2005-05-28 22:04:54 +0000
commite495eaec9cfa70e8a392e822dad178bd86f7f9cc (patch)
tree5ca85c795be15c332c2b947d5579469ed6554e9f
parentb5352ff5ec4f313dc5e4035041fbae2d21029281 (diff)
downloademacs-e495eaec9cfa70e8a392e822dad178bd86f7f9cc.tar.gz
emacs-e495eaec9cfa70e8a392e822dad178bd86f7f9cc.zip
Upgraded to MH-E version 7.84.
See etc/MH-E-NEWS and lisp/mh-e/ChangeLog for details.
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/MH-E-NEWS88
-rw-r--r--etc/NEWS2
-rw-r--r--lisp/mh-e/ChangeLog363
-rw-r--r--lisp/mh-e/mh-acros.el8
-rw-r--r--lisp/mh-e/mh-alias.el11
-rw-r--r--lisp/mh-e/mh-comp.el23
-rw-r--r--lisp/mh-e/mh-customize.el409
-rw-r--r--lisp/mh-e/mh-e.el69
-rw-r--r--lisp/mh-e/mh-funcs.el7
-rw-r--r--lisp/mh-e/mh-gnus.el2
-rw-r--r--lisp/mh-e/mh-identity.el46
-rw-r--r--lisp/mh-e/mh-inc.el12
-rw-r--r--lisp/mh-e/mh-index.el290
-rw-r--r--lisp/mh-e/mh-init.el2
-rw-r--r--lisp/mh-e/mh-junk.el6
-rw-r--r--lisp/mh-e/mh-loaddefs.el379
-rw-r--r--lisp/mh-e/mh-mime.el19
-rw-r--r--lisp/mh-e/mh-pick.el75
-rw-r--r--lisp/mh-e/mh-print.el2
-rw-r--r--lisp/mh-e/mh-seq.el33
-rw-r--r--lisp/mh-e/mh-speed.el2
-rw-r--r--lisp/mh-e/mh-utils.el10
23 files changed, 1281 insertions, 581 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 0efca03ac29..15d6f3649c0 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12005-05-28 Bill Wohler <wohler@newt.com>
2
3 * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.84.
4
12005-05-19 Nick Roberts <nickrob@snap.net.nz> 52005-05-19 Nick Roberts <nickrob@snap.net.nz>
2 6
3 * TODO: post-command-idle-hook has gone. 7 * TODO: post-command-idle-hook has gone.
diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS
index 25f649b5434..e5b408c8785 100644
--- a/etc/MH-E-NEWS
+++ b/etc/MH-E-NEWS
@@ -1,16 +1,94 @@
1* COPYRIGHT 1* COPYRIGHT
2 2
3Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5Copying and distribution of this file, with or without modification, 5Copying and distribution of this file, with or without modification,
6are permitted in any medium without royalty provided the copyright 6are permitted in any medium without royalty provided the copyright
7notice and this notice are preserved. 7notice and this notice are preserved.
8 8
9* Changes in MH-E 7.84
10
11Version 7.84 contains no user-visible changes. This version
12incorporates changes made in CVS Emacs such as the removal of some
13deprecated software.
14
15* Changes in MH-E 7.83
16
17Version 7.83 fixes a handful of bugs, adds colors to buttons for
18signed or encrypted messages, and contains some documentation changes
19related to the upcoming release of the manual. Some options were moved
20to other customization groups as a result.
21
22While not related to this release, the MH-E mailing lists are now
23gatewayed at gmane.org (closes SF #979308).
24
25** New Variables in MH-E 7.83
26
27*** mh-show-pgg-bad-face
28
29Face used to highlight a bad PGG signature.
30
31*** mh-show-pgg-good-face
32
33Face used to highlight a good PGG signature.
34
35*** mh-show-pgg-unknown-face
36
37Face used to highlight a PGG signature whose status is unknown. This
38face is also used for a signature when the signer is untrusted.
39
40** Bug Fixes in MH-E 7.83
41
42*** Whitespace in pick Expressions
43
44The "C-u / s RET" command now works. In addition, you can now add
45whitespace to any of the limiting (/) commands (closes SF #1122655).
46
47*** auto-mode-alist Updated
48
49MH-E originally updated auto-mode-alist to set the major mode of
50drafts. Now that we explicitly set the mode, there is no reason to do
51this, and this behavior caused problems for people who didn't use MH-E
52who were editing files that looked like MH message files (closes SF
53#1032353).
54
55*** mh-show-unquote-From Fails (read-only buffer)
56
57MH-E quotes the "From " header field that is inserted by MTAs.
58However, it was trying to do this in a read-only buffer. This has been
59fixed (closes SF #1089870).
60
61*** rmmproc Refile Complains No Such Message
62
63MH-E would get confused about which folder to delete messages from if
64you were refiling and deleting messages at the same time. This has
65been fixed (closes SF #1023959).
66
67*** ! Doesn't Do Regions
68
69Now it does (closes SF #1046330).
70
71*** Swish Fixes
72
73Items in swish indexes that aren't mail messages are now handled more
74gracefully.
75
76*** Spamassassin Fixes
77
78If you use spamassassin, there was an error when you tried to junk
79mail if the option mh-junk-background was set. This has been fixed.
80
81*** Mairix Support
82
83Indexing now compatible with Mairix version 0.12 and later.
84
85
86
9* Changes in MH-E 7.82 87* Changes in MH-E 7.82
10 88
11Version 7.82 continues to address the saga surrounding the use of CL 89Version 7.82 continues to address the saga surrounding the use of CL
12macros in CVS Emacs and fixes the auto-detection of vanilla MH (SF 90macros in CVS Emacs and fixes the auto-detection of vanilla MH (closes
13#1014781). 91SF #1014781).
14 92
15* Changes in MH-E 7.81 93* Changes in MH-E 7.81
16 94
@@ -23,6 +101,8 @@ of "default" in `mh-identity-handlers' to avoid problems with
23to ":default". This release also corrects the release numbering; the 101to ":default". This release also corrects the release numbering; the
24previous version number was intended to be 7.80. 102previous version number was intended to be 7.80.
25 103
104
105
26* Changes in MH-E 7.4.80 106* Changes in MH-E 7.4.80
27 107
28Version 7.4.80 now supports GNU mailutils, S/MIME, picons, 108Version 7.4.80 now supports GNU mailutils, S/MIME, picons,
diff --git a/etc/NEWS b/etc/NEWS
index 34bbf3d1a37..c21ffa85e67 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2651,7 +2651,7 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
2651--- 2651---
2652** MH-E changes. 2652** MH-E changes.
2653 2653
2654Upgraded to MH-E version 7.82. There have been major changes since 2654Upgraded to MH-E version 7.84. There have been major changes since
2655version 5.0.2; see MH-E-NEWS for details. 2655version 5.0.2; see MH-E-NEWS for details.
2656 2656
2657** Calendar changes: 2657** Calendar changes:
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 394331fbcd2..23e7c6d44cb 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,32 +1,305 @@
12005-05-26 Lute Kamstra <lute@gnu.org> 12005-05-28 Bill Wohler <wohler@newt.com>
2 2
3 * mh-utils.el (mh-show-mode): 3 Released MH-E version 7.84.
4 * mh-pick.el (mh-pick-mode): Remove spurious run-hooks.
5 4
62005-04-08 Dan Nicolaescu <dann@ics.uci.edu> 5 * MH-E-NEWS, README: Updated for release 7.84.
6
7 * mh-e.el (Version, mh-version): Updated for release 7.84.
8
92005-05-28 Bill Wohler <wohler@newt.com>
10
11 * mh-e.el, mh-comp.el: Don't autoload Info-goto-node. It's not
12 used, and if it were, the code should use the info function
13 instead.
14
15 Use full year in copyright notices (for example, 2005, not 05).
16
17 * Makefile (mh-loaddefs.el, mh-e-autoloads.el): Added 2005 to
18 copyright notice.
19
20 * mh-inc.el: Use three ;;; to precede Local Variables to be
21 consistent with other files. Will have to ask Stefan Monnier why
22 he changed it.
23
24 * README: This version of MH-E to appear in GNU Emacs 22.1, not
25 21.5.
26
27 * ChangeLog: The * in a ChangeLog entry must only be used before a
28 filename.
29
30 Fixed compilation warnings in CVS Emacs. This included using
31 "public" functions instead of "private" ones (info instead of
32 Info-goto-node, view-mode-enter instead of view-mode), and
33 removing a customization group that didn't have a parent group. In
34 addition, string-to-int was recently deprecated; use
35 string-to-number instead.
36
37 * mh-customize.el (Info-goto-node): Deleted autoload.
38 (mh-e): Deleted mh group. Use single mh-e group instead.
39 (mh-tool-bar-folder-help, mh-tool-bar-letter-help): Use info
40 instead of Info-goto-node.
41
42 * mh-e.el (mh-read-msg-list): string-to-int deprecated; use
43 string-to-number.
44
45 * mh-funcs.el (mh-list-folders): Use view-mode-enter instead of
46 view-mode.
47
48 * mh-seq.el (mh-list-sequences): Use view-mode-enter instead of
49 view-mode.
50
51 * mh-utils.el (mh-get-msg-num): string-to-int deprecated; use
52 string-to-number.
53
54 Merged in changes from CVS Emacs including:
55
56 * mh-utils.el (mh-show-mode):
57 * mh-pick.el (mh-pick-mode): Remove spurious run-hooks. Lute
58 Kamstra <lute@gnu.org> 2005-05-26.
59
602005-05-25 Bill Wohler <wohler@newt.com>
61
62 Merged in changes from CVS Emacs including:
7 63
8 * mh-customize.el (mh-speedbar-selected-folder-face): Special case 64 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
9 high number of colors displays. 65 high number of colors displays. Dan Nicolaescu <dann@ics.uci.edu>
66 2005-04-08.
67
68 * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with
69 `valid'. Replace `illegal' with `invalid'. Werner Lemberg
70 <wl@gnu.org> 2005-03-25.
71
72 * mh-inc.el (mh-inc-spool-list): Correctly declare the external
73 var. Stefan <monnier@iro.umontreal.ca> 2004-09-07.
10 74
112005-03-25 Werner Lemberg <wl@gnu.org> 752005-05-18 Bill Wohler <wohler@newt.com>
12 76
13 * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with `valid'. 77 * mh-comp.el (mh-reply): Mention use of mh-repl-group-formfile in
78 docstring.
14 79
152005-03-25 Werner Lemberg <wl@gnu.org> 802005-05-05 Bill Wohler <wohler@newt.com>
16 81
17 * mh-e.el: Replace `illegal' with `invalid'. 82 * mh-e.el (Version, mh-version): Added +cvs to release number.
18 83
192004-09-07 Stefan <monnier@iro.umontreal.ca> 842005-05-05 Bill Wohler <wohler@newt.com>
20 85
21 * mh-inc.el (mh-inc-spool-list): Correctly declare the external var. 86 Released MH-E version 7.83.
22 87
232004-08-21 Bill Wohler <wohler@newt.com> 88 * MH-E-NEWS, README: Updated for release 7.83.
89
90 * mh-e.el (Version, mh-version): Updated for release 7.83.
91
922005-05-05 Bill Wohler <wohler@newt.com>
93
94 * README: To appear in Emacs 21.5, since 21.4 was released (but
95 without the latest MH-E).
96
97 * release-utils (usage): Added --variable-changes.
98
992005-05-04 Bill Wohler <wohler@newt.com>
100
101 * mh-customize.el (*-face): Made docstrings consistent.
102
103 * mh-seq.el (mh-pick-args-list): Extracted function for turning
104 string of pick arguments to list. Fixed list so that multi-word
105 arguments were put in a single string (closes SF #1122655).
106 (mh-edit-pick-expr): Use it.
107
108 * mh-unit.el (mh-unit): Since 21.4 snuck out but didn't contain
109 updated lm-verify, don't run lm-verify on versions before 21.5.
110 (mh-unit-test-pick-args-list): Added.
111
112 * mh-customize.el (mh-yank-from-start-of-msg): Use headline
113 capitalization. Changed wording of some choices to be more consistent.
114 (mh-invisible-header-fields-internal): Added fields from usa.net.
115
1162005-04-24 Satyaki Das <satyaki@theforce.stanford.edu>
117
118 * mh-mime.el (mh-mime-security-button-face): New function which
119 determines the face to use to colorize encrypted or signed emails.
120 (mh-insert-mime-security-button): Modified to colorize the button
121 differently based on whether the signature was valid or not,
122 whether the decryption was successful or not, etc.
123
124 * mh-customize.el (mh-show-pgg-good-face)
125 (mh-show-pgg-unknown-face, mh-show-pgg-bad-face): Faces added to
126 highlight buttons introduced for encrpted or signed MIME parts.
127
1282005-03-19 Bill Wohler <wohler@newt.com>
129
130 * mh-customize.el (mh-mml-method-default): Sorted alphabetically.
131 (mh-insert-x-mailer-flag, mh-reply-show-message-flag): Moved from
132 mh-letter group to mh-sending-mail group. The writing of the
133 documentation revealed that these options were misplaced.
134
1352005-03-17 Bill Wohler <wohler@newt.com>
136
137 * mh-customize.el (mh-junk-background): Put in alphabetical order.
138 Synced with manual.
139 (mh-junk-program): Use double-quotes on non-symbols.
140
141 * mh-pick.el: (mh-search-folder): Synced docstrings with manual.
142
143 * mh-index.el: (mh-index-search, mh-pick-execute-search)
144 (mh-grep-execute-search, mh-mairix-execute-search)
145 (mh-swish-execute-search, mh-swish++-execute-search)
146 (mh-namazu-execute-search): Synced docstrings with manual. Note
147 that I'm now grabbing the output of an Info buffer which is why
148 the indents on the examples has changed a bit. If we all use that
149 methodology in the future, we shouldn't produce as many gratuitous
150 diffs. I also noticed that `grep' and `search' became links to
151 unrelated things, so let's use double-quotes for quoting
152 non-symbols in the docstrings.
153
154 * mh-customize.el (mh-index-new-messages-folders)
155 (mh-index-ticked-messages-folders): Synced docstrings with manual.
156
1572005-02-16 Satyaki Das <satyaki@theforce.stanford.edu>
158
159 * mh-index.el (mh-swish-execute-search): Simplify the indexing
160 recipe for swish. Thanks to Eric Jensen for the suggestion.
161
1622005-02-11 Satyaki Das <satyaki@theforce.stanford.edu>
163
164 * mh-index.el (mh-swish-execute-search)
165 (mh-swish++-execute-search): Make the indexing recipes better.
166 (mh-swish-next-result): The indexer might find matches in files
167 that aren't messages. Make the function handle that case
168 gracefully.
169
1702005-02-07 Bill Wohler <wohler@newt.com>
24 171
25 * Released MH-E version 7.82. 172 * mh-customize.el (mh-inc-prog, mh-inc-spool-list): Synced
173 docstrings with manual.
174
1752005-02-06 Bill Wohler <wohler@newt.com>
176
177 * mh-junk.el (mh-spamassassin-blacklist): Removed trailing
178 whitespace.
179
180 * mh-e.el (mh-refile-or-write-again): Checkdoc fix.
181
182 * mh-identity.el (mh-identity-list-set)
183 (mh-identity-field-handler, mh-identity-handler-gpg-identity)
184 (mh-identity-handler-signature)
185 (mh-identity-handler-attribution-verb)
186 (mh-identity-handler-default, mh-identity-handler-top): Docstring
187 editing.
188
189 * mh-customize.el (mh-identity-list, mh-auto-fields-list)
190 (mh-identity-default, mh-identity-handlers): Synced docstrings
191 with manual.
192
1932005-02-03 Bill Wohler <wohler@newt.com>
194
195 * mh-xemacs.el (define-behavior 'mh): Moved Ben's code here from
196 mh-e.el and added standard documentation.
197
198 * mh-e.el: Received patch from Ben Wing <ben@666.com> to add
199 define-behavior on XEmacs.
200
2012005-01-28 Jeffrey C Honig <jch@honig.net>
202
203 * mh-customize.el (mh-invisible-header-fields-internal): Added
204 X-Evolution header added by Evolution mai client.
205
2062005-01-18 Bill Wohler <wohler@newt.com>
207
208 * mh-customize.el (mh-invisible-header-fields-internal): Added
209 DomainKey-Signature (http://antispam.yahoo.com/domainkeys/).
210 There's a Comment field that goes with it, but I thought it was
211 too general to add.
212
2132005-01-06 Bill Wohler <wohler@newt.com>
214
215 * mh-junk.el (mh-spamassassin-blacklist): Fixed typo to fix an
216 error when junking spamassassin mail when mh-junk-background is
217 turned on.
218
2192004-12-25 Satyaki Das <satyaki@theforce.stanford.edu>
220
221 * mh-utils.el (mh-show-unquote-From): Make the buffer writable
222 before trying to change it (closes SF #1089870).
223
224 * mh-comp.el (mh-complete-word): Fix a typo in a variable
225 name (closes SF #1089870)
226
2272004-11-28 Jeffrey C Honig <jch@honig.net>
228
229 * mh-comp.el (mh-complete-word): Kill the *Completions* buffer in
230 any cases where we belive we are done with it. Not perfect, but
231 better than just leaving it around.
232
2332004-11-08 Satyaki Das <satyaki@theforce.stanford.edu>
234
235 * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a
236 function at compile time doesn't guarantee it's existence at run
237 time. So make the macro handle that situation better.
238
2392004-11-05 Satyaki Das <satyaki@theforce.stanford.edu>
240
241 * mh-acros.el (advice): Load advice, since it isn't loaded in
242 XEmacs causing compilation problems.
243
2442004-10-24 Satyaki Das <satyaki@theforce.stanford.edu>
245
246 * mh-index.el (mh-mairix-execute-search)
247 (mh-mairix-regexp-builder): Update the interface to mairix so that
248 it will work with versions of mairix 0.12 and later.
249
250 * mh-funcs.el (mh-rmf-daemon): Avoid using
251 beginning-of-buffer since it clobbers the mark and it was pointed
252 out on the Emacs developers list to be the wrong thing to do.
253
254 * mh-e.el (mh-inc-folder): Only remove the window on the show
255 buffer. This means if the user has BBDB enabled then the window
256 displaying BBDB information isn't clobbered.
257 (mh-refile-or-write-again): Don't use the function
258 interactive-p. There was a long thread on the Emacs developers
259 list where it was pointed out that it is incorrect to use this
260 function most of the time.
261
262 * mh-comp.el (autoload): Don't set auto-mode-alist. This could
263 screw things up for users that don't use MH-E (closes SF #1032353).
264
2652004-10-13 Satyaki Das <satyaki@theforce.stanford.edu>
266
267 * mh-e.el (mh-refile-or-write-again): Generalize the function to
268 work on a range of messages (closes SF #1046330).
269
2702004-09-02 Satyaki Das <satyaki@theforce.stanford.edu>
271
272 * mh-e.el (mh-process-commands): The concurrent execution of mark
273 and refile can cause problems since both the commands change the
274 current folder. This change avoids that by getting rid of the
275 concurrency. Another change covers the corner case where we refile
276 messages to a previously empty folder. Before the modification
277 sequences weren't preserved even if the appropriate flag was
278 set. That is no longer the case.
279
2802004-08-26 Satyaki Das <satyaki@theforce.stanford.edu>
281
282 * mh-e.el (mh-get-new-mail): Also, update the unseen sequence from
283 disk. Otherwise, the new messages aren't highlighted.
284
285 * mh-seq.el (mh-thread-inc): Fix a bug which appears when inc is
286 run in a narrowed folder. The user sequence notation was getting
287 lost. The change fixes that.
288
289 * mh-e.el (mh-get-new-mail): Make inc more efficient by reusing
290 the existing user sequence notation and deleted/refiled notation.
291
2922004-08-24 Bill Wohler <wohler@newt.com>
293
294 * mh-e.el (Version, mh-version): Added +cvs to release number.
295
2962004-08-24 Bill Wohler <wohler@newt.com>
297
298 Released MH-E version 7.82.
26 299
27 * MH-E-NEWS, README: Updated for release 7.82. 300 * MH-E-NEWS, README: Updated for release 7.82.
28 301
29 * mh-e.el (Version, mh-version): Update for release 7.82. 302 * mh-e.el (Version, mh-version): Updated for release 7.82.
30 303
312004-08-24 Bill Wohler <wohler@newt.com> 3042004-08-24 Bill Wohler <wohler@newt.com>
32 305
@@ -57,11 +330,11 @@
57 330
582004-08-21 Bill Wohler <wohler@newt.com> 3312004-08-21 Bill Wohler <wohler@newt.com>
59 332
60 * Released MH-E version 7.81. 333 Released MH-E version 7.81.
61 334
62 * MH-E-NEWS, README: Updated for release 7.81. 335 * MH-E-NEWS, README: Updated for release 7.81.
63 336
64 * mh-e.el (Version, mh-version): Update for release 7.81. 337 * mh-e.el (Version, mh-version): Updated for release 7.81.
65 338
662004-08-21 Bill Wohler <wohler@newt.com> 3392004-08-21 Bill Wohler <wohler@newt.com>
67 340
@@ -94,7 +367,7 @@
94 367
952004-08-15 Bill Wohler <wohler@newt.com> 3682004-08-15 Bill Wohler <wohler@newt.com>
96 369
97 * Released MH-E version 7.4.80. 370 Released MH-E version 7.4.80.
98 371
99 * MH-E-NEWS, README: Updated for release 7.4.80. 372 * MH-E-NEWS, README: Updated for release 7.4.80.
100 373
@@ -324,13 +597,13 @@
324 are more useful than a key sequence in these cases. Use "See also" 597 are more useful than a key sequence in these cases. Use "See also"
325 instead of "See also documentation for". 598 instead of "See also documentation for".
326 599
327 * Merged in 7.4.4 changes, described below. 600 Merged in 7.4.4 changes, described below.
328 601
329 * mh-e.el (Version, mh-version): Set to 7.4.4+cvs. 602 * mh-e.el (Version, mh-version): Set to 7.4.4+cvs.
330 603
3312004-07-10 Bill Wohler <wohler@newt.com> 6042004-07-10 Bill Wohler <wohler@newt.com>
332 605
333 * Released MH-E version 7.4.4. 606 Released MH-E version 7.4.4.
334 607
335 * MH-E-NEWS, README: Updated for release 7.4.4. 608 * MH-E-NEWS, README: Updated for release 7.4.4.
336 609
@@ -399,9 +672,9 @@
399 routines in the best way possible (closes SF #930012). 672 routines in the best way possible (closes SF #930012).
400 (require 'mouse): To shush compiler. 673 (require 'mouse): To shush compiler.
401 674
402 * Use new function mh-require-cl throughout. 675 Use new function mh-require-cl throughout.
403 676
404 * Add arch taglines (courtesy Miles Bader). 677 Add arch taglines (courtesy Miles Bader).
405 678
406 * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and 679 * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and
407 mh-xemacs-icons.el with mh-xemacs.el. 680 mh-xemacs-icons.el with mh-xemacs.el.
@@ -541,7 +814,7 @@
541 814
5422003-11-18 Bill Wohler <wohler@newt.com> 8152003-11-18 Bill Wohler <wohler@newt.com>
543 816
544 * Released MH-E version 7.4.3. 817 Released MH-E version 7.4.3.
545 818
546 * MH-E-NEWS, README: Updated for release 7.4.3. 819 * MH-E-NEWS, README: Updated for release 7.4.3.
547 820
@@ -684,8 +957,8 @@
684 957
6852003-11-04 Steve Youngs <sryoungs@bigpond.net.au> 9582003-11-04 Steve Youngs <sryoungs@bigpond.net.au>
686 959
687 * Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el 960 * Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate
688 in XEmacs. 961 mh-loaddefs.el in XEmacs.
689 (XEMACS_LOADDEFS_COOKIE): Ditto. 962 (XEMACS_LOADDEFS_COOKIE): Ditto.
690 (XEMACS_LOADDEFS_PKG_NAME): Ditto. 963 (XEMACS_LOADDEFS_PKG_NAME): Ditto.
691 (xemacs): Add target to build mh-loaddefs.el in XEmacs 964 (xemacs): Add target to build mh-loaddefs.el in XEmacs
@@ -1363,7 +1636,7 @@
1363 1636
13642003-08-19 Bill Wohler <wohler@newt.com> 16372003-08-19 Bill Wohler <wohler@newt.com>
1365 1638
1366 * Released MH-E version 7.4.2. 1639 Released MH-E version 7.4.2.
1367 1640
1368 * MH-E-NEWS, README: Updated for release 7.4.2. 1641 * MH-E-NEWS, README: Updated for release 7.4.2.
1369 1642
@@ -2233,7 +2506,7 @@
2233 2506
22342003-06-25 Bill Wohler <wohler@newt.com> 25072003-06-25 Bill Wohler <wohler@newt.com>
2235 2508
2236 * Released MH-E version 7.4.1. 2509 Released MH-E version 7.4.1.
2237 2510
2238 * MH-E-NEWS, README: Updated for release 7.4.1. 2511 * MH-E-NEWS, README: Updated for release 7.4.1.
2239 2512
@@ -2255,7 +2528,7 @@
2255 2528
22562003-06-24 Bill Wohler <wohler@newt.com> 25292003-06-24 Bill Wohler <wohler@newt.com>
2257 2530
2258 * Released MH-E version 7.4. 2531 Released MH-E version 7.4.
2259 2532
2260 * MH-E-NEWS, README: Updated for release 7.4. 2533 * MH-E-NEWS, README: Updated for release 7.4.
2261 2534
@@ -3362,7 +3635,7 @@
3362 3635
33632003-04-24 Bill Wohler <wohler@newt.com> 36362003-04-24 Bill Wohler <wohler@newt.com>
3364 3637
3365 * Released MH-E version 7.3. 3638 Released MH-E version 7.3.
3366 3639
3367 * MH-E-NEWS, README: Updated for release 7.3. 3640 * MH-E-NEWS, README: Updated for release 7.3.
3368 3641
@@ -4920,7 +5193,7 @@
4920 5193
49212003-02-03 Bill Wohler <wohler@newt.com> 51942003-02-03 Bill Wohler <wohler@newt.com>
4922 5195
4923 * Released MH-E version 7.2. 5196 Released MH-E version 7.2.
4924 5197
4925 * MH-E-NEWS, README: Updated for release 7.2. 5198 * MH-E-NEWS, README: Updated for release 7.2.
4926 5199
@@ -5584,7 +5857,7 @@
5584 5857
55852003-01-07 Bill Wohler <wohler@newt.com> 58582003-01-07 Bill Wohler <wohler@newt.com>
5586 5859
5587 * Released MH-E version 7.1. 5860 Released MH-E version 7.1.
5588 5861
5589 * MH-E-NEWS, README: Updated for release 7.1. 5862 * MH-E-NEWS, README: Updated for release 7.1.
5590 5863
@@ -6678,7 +6951,7 @@
6678 6951
66792002-11-29 Bill Wohler <wohler@newt.com> 69522002-11-29 Bill Wohler <wohler@newt.com>
6680 6953
6681 * Released MH-E version 7.0. 6954 Released MH-E version 7.0.
6682 6955
6683 * mh-e.el (Version, mh-version): Updated for release 7.0. 6956 * mh-e.el (Version, mh-version): Updated for release 7.0.
6684 6957
@@ -6703,7 +6976,7 @@
6703 6976
67042002-11-21 Bill Wohler <wohler@newt.com> 69772002-11-21 Bill Wohler <wohler@newt.com>
6705 6978
6706 * Released MH-E version 6.1.91. 6979 Released MH-E version 6.1.91.
6707 6980
6708 * mh-e.el (Version, mh-version): Updated for release 6.1.91. 6981 * mh-e.el (Version, mh-version): Updated for release 6.1.91.
6709 6982
@@ -6727,7 +7000,7 @@
6727 7000
67282002-11-15 Bill Wohler <wohler@newt.com> 70012002-11-15 Bill Wohler <wohler@newt.com>
6729 7002
6730 * Released MH-E version 6.1.90. 7003 Released MH-E version 6.1.90.
6731 7004
6732 * README (Compile): New section. Users must now compile MH-E due 7005 * README (Compile): New section. Users must now compile MH-E due
6733 to the vagaries of the various versions of gnus. 7006 to the vagaries of the various versions of gnus.
@@ -9688,7 +9961,7 @@
9688 9961
96892002-04-08 Bill Wohler <wohler@newt.com> 99622002-04-08 Bill Wohler <wohler@newt.com>
9690 9963
9691 * Released mh-e version 6.1. 9964 Released mh-e version 6.1.
9692 9965
9693 * mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component 9966 * mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component
9694 Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp 9967 Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp
@@ -9792,7 +10065,7 @@
9792 10065
97932001-12-16 Bill Wohler <wohler@newt.com> 100662001-12-16 Bill Wohler <wohler@newt.com>
9794 10067
9795 * Released mh-e version 6.0. 10068 Released mh-e version 6.0.
9796 10069
9797 * MH-E-NEWS: Be a little more specific about incompatible changes. 10070 * MH-E-NEWS: Be a little more specific about incompatible changes.
9798 Added info about outdated manual. 10071 Added info about outdated manual.
@@ -9815,7 +10088,7 @@
9815 10088
98162001-12-14 Bill Wohler <wohler@newt.com> 100892001-12-14 Bill Wohler <wohler@newt.com>
9817 10090
9818 * Released mh-e version 5.0.93. 10091 Released mh-e version 5.0.93.
9819 10092
9820 * Makefile (MH-E-SRC): Added mh-xemacs-compat.el. 10093 * Makefile (MH-E-SRC): Added mh-xemacs-compat.el.
9821 (MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from 10094 (MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from
@@ -10000,7 +10273,7 @@
10000 10273
100012001-12-04 Bill Wohler <wohler@newt.com> 102742001-12-04 Bill Wohler <wohler@newt.com>
10002 10275
10003 * Released mh-e version 5.0.92. 10276 Released mh-e version 5.0.92.
10004 10277
10005 * mh-utils.el (gnus-cite-face-list) 10278 * mh-utils.el (gnus-cite-face-list)
10006 (mh-gnus-article-highlight-citation): Don't autoload. Revert to 10279 (mh-gnus-article-highlight-citation): Don't autoload. Revert to
@@ -10010,7 +10283,7 @@
10010 10283
100112001-12-03 Bill Wohler <wohler@newt.com> 102842001-12-03 Bill Wohler <wohler@newt.com>
10012 10285
10013 * Released mh-e version 5.0.91. 10286 Released mh-e version 5.0.91.
10014 10287
10015 * MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now 10288 * MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now
10016 that workaround has been implemented. 10289 that workaround has been implemented.
@@ -10916,17 +11189,17 @@
10916 11189
109172001-04-14 chad brown <y@mit.edu> 111902001-04-14 chad brown <y@mit.edu>
10918 11191
10919 * rearrange the font-lock keywords a bit 11192 Rearrange the font-lock keywords a bit.
10920 11193
109212001-04-12 chad brown <y@mit.edu> 111942001-04-12 chad brown <y@mit.edu>
10922 11195
10923 * preliminary (somewhat boring) font-lock support for mh-e. More 11196 Preliminary (somewhat boring) font-lock support for mh-e. More
10924 interesting font-lock support probably wants to have better 11197 interesting font-lock support probably wants to have better
10925 support for multiple format files 11198 support for multiple format files
10926 11199
109272001-02-24 chad brown <y@mit.edu> 112002001-02-24 chad brown <y@mit.edu>
10928 11201
10929 * add default nmh paths to mh-find-prog in mh-utils.el. 11202 Add default nmh paths to mh-find-prog in mh-utils.el.
10930 change to mh-kill-folder in mh-funcs.el to make it more general. 11203 change to mh-kill-folder in mh-funcs.el to make it more general.
10931 11204
109322001-02-19 Bill Wohler <wohler@newt.com> 112052001-02-19 Bill Wohler <wohler@newt.com>
@@ -10939,10 +11212,10 @@
10939 (dist): Leave release in current directory. 11212 (dist): Leave release in current directory.
10940 11213
10941 11214
10942Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. 11215 Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
10943 11216
10944Copying and distribution of this file, with or without modification, 11217 Copying and distribution of this file, with or without modification,
10945are permitted in any medium without royalty provided the copyright 11218 are permitted in any medium without royalty provided the copyright
10946notice and this notice are preserved. 11219 notice and this notice are preserved.
10947 11220
10948;;; arch-tag: 87324964-69b6-4925-a3c2-9c1df53d7d51 11221;;; arch-tag: 87324964-69b6-4925-a3c2-9c1df53d7d51
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index e4921b047df..455daf687a3 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -1,6 +1,6 @@
1;;; mh-acros.el --- Macros used in MH-E 1;;; mh-acros.el --- Macros used in MH-E
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2004 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -40,6 +40,7 @@
40;;; Code: 40;;; Code:
41 41
42(require 'cl) 42(require 'cl)
43(require 'advice)
43 44
44;; The Emacs coding conventions require that the cl package not be required at 45;; The Emacs coding conventions require that the cl package not be required at
45;; runtime. However, the cl package in versions of Emacs prior to 21.4 left cl 46;; runtime. However, the cl package in versions of Emacs prior to 21.4 left cl
@@ -68,8 +69,9 @@ recognizes that and loads `cl' where appropriate."
68 69
69(defmacro mh-funcall-if-exists (function &rest args) 70(defmacro mh-funcall-if-exists (function &rest args)
70 "Call FUNCTION with ARGS as parameters if it exists." 71 "Call FUNCTION with ARGS as parameters if it exists."
71 (if (fboundp function) 72 (when (fboundp function)
72 `(funcall ',function ,@args))) 73 `(when (fboundp ',function)
74 (funcall ',function ,@args))))
73 75
74(defmacro mh-make-local-hook (hook) 76(defmacro mh-make-local-hook (hook)
75 "Make HOOK local if needed. 77 "Make HOOK local if needed.
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el
index 7f2cd2f5266..0819c0a7925 100644
--- a/lisp/mh-e/mh-alias.el
+++ b/lisp/mh-e/mh-alias.el
@@ -1,6 +1,7 @@
1;;; mh-alias.el --- MH-E mail alias completion and expansion 1;;; mh-alias.el --- MH-E mail alias completion and expansion
2;; 2;;
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 1995, 1996, 1997,
4;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 5
5;; Author: Peter S. Galbraith <psg@debian.org> 6;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -162,16 +163,16 @@ Exclude all aliases already in `mh-alias-alist' from `ali'"
162 (while (< (point) (point-max)) 163 (while (< (point) (point-max))
163 (cond 164 (cond
164 ((looking-at "\\([^:]*\\):[^:]*:\\([^:]*\\):[^:]*:\\([^:]*\\):") 165 ((looking-at "\\([^:]*\\):[^:]*:\\([^:]*\\):[^:]*:\\([^:]*\\):")
165 (when (> (string-to-int (match-string 2)) 200) 166 (when (> (string-to-number (match-string 2)) 200)
166 (let* ((username (match-string 1)) 167 (let* ((username (match-string 1))
167 (gecos-name (match-string 3)) 168 (gecos-name (match-string 3))
168 (realname (mh-alias-gecos-name 169 (realname (mh-alias-gecos-name
169 gecos-name username 170 gecos-name username
170 mh-alias-passwd-gecos-comma-separator-flag)) 171 mh-alias-passwd-gecos-comma-separator-flag))
171 (alias-name (if mh-alias-local-users-prefix 172 (alias-name (if mh-alias-local-users-prefix
172 (concat mh-alias-local-users-prefix 173 (concat mh-alias-local-users-prefix
173 (mh-alias-suggest-alias realname t)) 174 (mh-alias-suggest-alias realname t))
174 username)) 175 username))
175 (alias-translation 176 (alias-translation
176 (if (string-equal username realname) 177 (if (string-equal username realname)
177 (concat "<" username ">") 178 (concat "<" username ">")
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index 4f7e413d464..82d0f5b7fd7 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -1,6 +1,7 @@
1;;; mh-comp.el --- MH-E functions for composing messages 1;;; mh-comp.el --- MH-E functions for composing messages
2 2
3;; Copyright (C) 1993, 95, 1997, 2000, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995, 1997,
4;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -52,7 +53,6 @@
52(defvar mh-identity-menu) 53(defvar mh-identity-menu)
53 54
54;;; Autoloads 55;;; Autoloads
55(autoload 'Info-goto-node "info")
56(autoload 'mail-mode-fill-paragraph "sendmail") 56(autoload 'mail-mode-fill-paragraph "sendmail")
57(autoload 'mm-handle-displayed-p "mm-decode") 57(autoload 'mm-handle-displayed-p "mm-decode")
58 58
@@ -490,8 +490,10 @@ to reply to:
490 cc/all sender and all recipients. 490 cc/all sender and all recipients.
491If optional prefix argument INCLUDEP provided, then include the message 491If optional prefix argument INCLUDEP provided, then include the message
492in the reply using filter `mhl.reply' in your MH directory. 492in the reply using filter `mhl.reply' in your MH directory.
493If the file named by `mh-repl-formfile' exists, it is used as a skeleton 493If the file named by `mh-repl-formfile' exists, it is used as a skeleton for
494for the reply. 494the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU
495mailutils variants and the file names by `mh-repl-group-formfile' exists, it
496is used instead.
495 497
496See also `mh-send'." 498See also `mh-send'."
497 (interactive (list 499 (interactive (list
@@ -1629,15 +1631,22 @@ This is useful in breaking up paragraphs in replies."
1629(defun mh-complete-word (word choices begin end) 1631(defun mh-complete-word (word choices begin end)
1630 "Complete WORD at from CHOICES. 1632 "Complete WORD at from CHOICES.
1631Any match found replaces the text from BEGIN to END." 1633Any match found replaces the text from BEGIN to END."
1632 (let ((completion (try-completion word choices))) 1634 (let ((completion (try-completion word choices))
1635 (completions-buffer "*Completions*"))
1633 (cond ((eq completion t) 1636 (cond ((eq completion t)
1637 (ignore-errors
1638 (kill-buffer completions-buffer))
1634 (message "Completed: %s" word)) 1639 (message "Completed: %s" word))
1635 ((null completion) 1640 ((null completion)
1641 (ignore-errors
1642 (kill-buffer completions-buffer))
1636 (message "No completion for `%s'" word)) 1643 (message "No completion for `%s'" word))
1637 ((stringp completion) 1644 ((stringp completion)
1638 (if (equal word completion) 1645 (if (equal word completion)
1639 (with-output-to-temp-buffer "*Completions*" 1646 (with-output-to-temp-buffer completions-buffer
1640 (display-completion-list (all-completions word choices))) 1647 (display-completion-list (all-completions word choices)))
1648 (ignore-errors
1649 (kill-buffer completions-buffer))
1641 (delete-region begin end) 1650 (delete-region begin end)
1642 (insert completion)))))) 1651 (insert completion))))))
1643 1652
@@ -1965,8 +1974,6 @@ Otherwise return the empty string."
1965 1974
1966;; "C-c /" prefix is used in mh-letter-mode by pgp.el and mailcrypt.el. 1975;; "C-c /" prefix is used in mh-letter-mode by pgp.el and mailcrypt.el.
1967 1976
1968;;;###autoload(add-to-list 'auto-mode-alist '("/drafts/[0-9]+\\'" . mh-letter-mode))
1969
1970(provide 'mh-comp) 1977(provide 'mh-comp)
1971 1978
1972;;; Local Variables: 1979;;; Local Variables:
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index c5689afc13e..54141164391 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -1,6 +1,6 @@
1;;; mh-customize.el --- MH-E customization 1;;; mh-customize.el --- MH-E customization
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -69,8 +69,6 @@
69(mh-require-cl) 69(mh-require-cl)
70(require 'mh-loaddefs) 70(require 'mh-loaddefs)
71 71
72(autoload 'Info-goto-node "info")
73
74(eval-and-compile 72(eval-and-compile
75 (defvar mh-xemacs-flag (featurep 'xemacs) 73 (defvar mh-xemacs-flag (featurep 'xemacs)
76 "Non-nil means the current Emacs is XEmacs.")) 74 "Non-nil means the current Emacs is XEmacs."))
@@ -102,121 +100,115 @@ the frame are removed."
102 100
103;;; MH-E Customization Groups 101;;; MH-E Customization Groups
104 102
105(defgroup mh nil 103(defgroup mh-e nil
106 "Emacs interface to the MH mail system. 104 "Emacs interface to the MH mail system.
107MH is the Rand Mail Handler. Other implementations include nmh and GNU 105MH is the Rand Mail Handler. Other implementations include nmh and GNU
108mailutils." 106mailutils."
109 :link '(custom-manual "(mh-e)Top") 107 :link '(custom-manual "(mh-e)Top")
110 :group 'mail) 108 :group 'mail)
111 109
112(defgroup mh-e '((mh custom-group)) ; Sort of an alias for 'mh group
113 "Emacs interface to the MH mail system.
114MH is the Rand Mail Handler. Other implementations include nmh and GNU
115mailutils."
116 :link '(custom-manual "(mh-e)Top"))
117
118(defgroup mh-alias nil 110(defgroup mh-alias nil
119 "Aliases." 111 "Aliases."
120 :link '(custom-manual "(mh-e)Aliases") 112 :link '(custom-manual "(mh-e)Aliases")
121 :prefix "mh-alias-" 113 :prefix "mh-alias-"
122 :group 'mh) 114 :group 'mh-e)
123 115
124(defgroup mh-folder nil 116(defgroup mh-folder nil
125 "Organizing your mail with folders." 117 "Organizing your mail with folders."
126 :prefix "mh-" 118 :prefix "mh-"
127 :link '(custom-manual "(mh-e)Organizing") 119 :link '(custom-manual "(mh-e)Organizing")
128 :group 'mh) 120 :group 'mh-e)
129 121
130(defgroup mh-folder-selection nil 122(defgroup mh-folder-selection nil
131 "Folder selection." 123 "Folder selection."
132 :prefix "mh-" 124 :prefix "mh-"
133 :link '(custom-manual "(mh-e)Folder Selection") 125 :link '(custom-manual "(mh-e)Folder Selection")
134 :group 'mh) 126 :group 'mh-e)
135 127
136(defgroup mh-identity nil 128(defgroup mh-identity nil
137 "Identities." 129 "Identities."
138 :link '(custom-manual "(mh-e)Identities") 130 :link '(custom-manual "(mh-e)Identities")
139 :prefix "mh-identity-" 131 :prefix "mh-identity-"
140 :group 'mh) 132 :group 'mh-e)
141 133
142(defgroup mh-inc nil 134(defgroup mh-inc nil
143 "Incorporating your mail." 135 "Incorporating your mail."
144 :prefix "mh-inc-" 136 :prefix "mh-inc-"
145 :link '(custom-manual "(mh-e)Incorporating Mail") 137 :link '(custom-manual "(mh-e)Incorporating Mail")
146 :group 'mh) 138 :group 'mh-e)
147 139
148(defgroup mh-index nil 140(defgroup mh-index nil
149 "Searching." 141 "Searching."
150 :link '(custom-manual "(mh-e)Searching") 142 :link '(custom-manual "(mh-e)Searching")
151 :prefix "mh-index-" 143 :prefix "mh-index-"
152 :group 'mh) 144 :group 'mh-e)
153 145
154(defgroup mh-junk nil 146(defgroup mh-junk nil
155 "Dealing with junk mail." 147 "Dealing with junk mail."
156 :link '(custom-manual "(mh-e)Junk") 148 :link '(custom-manual "(mh-e)Junk")
157 :prefix "mh-junk-" 149 :prefix "mh-junk-"
158 :group 'mh) 150 :group 'mh-e)
159 151
160(defgroup mh-letter nil 152(defgroup mh-letter nil
161 "Editing a draft." 153 "Editing a draft."
162 :prefix "mh-" 154 :prefix "mh-"
163 :link '(custom-manual "(mh-e)Editing Drafts") 155 :link '(custom-manual "(mh-e)Editing Drafts")
164 :group 'mh) 156 :group 'mh-e)
165 157
166(defgroup mh-ranges nil 158(defgroup mh-ranges nil
167 "Ranges." 159 "Ranges."
168 :prefix "mh-" 160 :prefix "mh-"
169 :link '(custom-manual "(mh-e)Ranges") 161 :link '(custom-manual "(mh-e)Ranges")
170 :group 'mh) 162 :group 'mh-e)
171 163
172(defgroup mh-scan-line-formats nil 164(defgroup mh-scan-line-formats nil
173 "Scan line formats." 165 "Scan line formats."
174 :link '(custom-manual "(mh-e)Scan Line Formats") 166 :link '(custom-manual "(mh-e)Scan Line Formats")
175 :prefix "mh-" 167 :prefix "mh-"
176 :group 'mh) 168 :group 'mh-e)
177 169
178(defgroup mh-sending-mail nil 170(defgroup mh-sending-mail nil
179 "Sending mail." 171 "Sending mail."
180 :prefix "mh-" 172 :prefix "mh-"
181 :link '(custom-manual "(mh-e)Sending Mail") 173 :link '(custom-manual "(mh-e)Sending Mail")
182 :group 'mh) 174 :group 'mh-e)
183 175
184(defgroup mh-sequences nil 176(defgroup mh-sequences nil
185 "Sequences." 177 "Sequences."
186 :prefix "mh-" 178 :prefix "mh-"
187 :link '(custom-manual "(mh-e)Sequences") 179 :link '(custom-manual "(mh-e)Sequences")
188 :group 'mh) 180 :group 'mh-e)
189 181
190(defgroup mh-show nil 182(defgroup mh-show nil
191 "Reading your mail." 183 "Reading your mail."
192 :prefix "mh-" 184 :prefix "mh-"
193 :link '(custom-manual "(mh-e)Reading Mail") 185 :link '(custom-manual "(mh-e)Reading Mail")
194 :group 'mh) 186 :group 'mh-e)
195 187
196(defgroup mh-speed nil 188(defgroup mh-speed nil
197 "The speedbar." 189 "The speedbar."
198 :prefix "mh-speed-" 190 :prefix "mh-speed-"
199 :link '(custom-manual "(mh-e)Speedbar") 191 :link '(custom-manual "(mh-e)Speedbar")
200 :group 'mh) 192 :group 'mh-e)
201 193
202(defgroup mh-toolbar nil 194(defgroup mh-toolbar nil
203 "The toolbar" 195 "The toolbar"
204 :link '(custom-manual "(mh-e)Toolbar") 196 :link '(custom-manual "(mh-e)Toolbar")
205 :prefix "mh-" 197 :prefix "mh-"
206 :group 'mh) 198 :group 'mh-e)
207 199
208(defgroup mh-faces nil 200(defgroup mh-faces nil
209 "Faces used in MH-E." 201 "Faces used in MH-E."
210 :link '(custom-manual "(mh-e)Top") 202 :link '(custom-manual "(mh-e)Top")
211 :prefix "mh-" 203 :prefix "mh-"
212 :group 'faces 204 :group 'faces
213 :group 'mh) 205 :group 'mh-e)
214 206
215(defgroup mh-hooks nil 207(defgroup mh-hooks nil
216 "MH-E hooks." 208 "MH-E hooks."
217 :link '(custom-manual "(mh-e)Top") 209 :link '(custom-manual "(mh-e)Top")
218 :prefix "mh-" 210 :prefix "mh-"
219 :group 'mh) 211 :group 'mh-e)
220 212
221;;; Faces 213;;; Faces
222 214
@@ -280,7 +272,7 @@ accordingly."
280 :set (lambda (symbol value) 272 :set (lambda (symbol value)
281 (set-default symbol value) ;Done in mh-variant-set-variant! 273 (set-default symbol value) ;Done in mh-variant-set-variant!
282 (mh-variant-set value)) 274 (mh-variant-set value))
283 :group 'mh) 275 :group 'mh-e)
284 276
285 277
286 278
@@ -448,14 +440,34 @@ information."
448(defcustom mh-identity-list nil 440(defcustom mh-identity-list nil
449 "*List of identities. 441 "*List of identities.
450 442
451Each element consists of an identity label, and a collection of header fields 443To customize this option, click on the `INS' button and enter a label such as
452and a signature to insert if the identity is selected (see 444`Home' or `Work'. Then click on the `INS' button with the label `Add at least
453`mh-identity-default', `mh-insert-identity' and the `Identity' menu in a 445one item below'. Then choose one of the items in the `Value Menu'.
454MH-Letter buffer). The `Value Menu' contains the common header fields `From' 446
455and `Organization'. Other header fields may be added using the `Other Field' 447You can specify an alternate `From:' header field using the `From Field' menu
456menu item. The `Signature' menu item is used to insert a signature with 448item. You must include a valid email address. A standard format is `First Last
457`mh-insert-signature'. The `GPG Key ID' menu item is used to specify a 449<login@@host.domain>'. If you use an initial with a period, then you must
458different key to sign or encrypt messages." 450quote your name as in `\"First I. Last\" <login@@host.domain>'. People usually
451list the name of the company where they work using the `Organization Field'
452menu item. Set any arbitrary header field and value in the `Other Field' menu
453item. Unless the header field is a standard one, precede the name of your
454field's label with `X-', as in `X-Fruit-of-the-Day:'. The value of
455`Attribution Verb' overrides the setting of
456`mh-extract-from-attribution-verb'. Set your signature with the `Signature'
457menu item. You can specify the contents of `mh-signature-file-name', a file,
458or a function. Specify a different key to sign or encrypt messages with the
459`GPG Key ID' menu item.
460
461You can select the identities you have added via the menu called `Identity' in
462the MH-Letter buffer. You can also use \\[mh-insert-identity]. To clear the
463fields and signature added by the identity, select the `None' identity.
464
465The `Identity' menu contains two other items to save you from having to set
466the identity on every message. The menu item `Set Default for Session' can be
467used to set the default identity to the current identity until you exit Emacs.
468The menu item `Save as Default' sets the option `mh-identity-default' to the
469current identity setting. You can also customize the `mh-identity-default'
470option in the usual fashion."
459 :type '(repeat (list :tag "" 471 :type '(repeat (list :tag ""
460 (string :tag "Label") 472 (string :tag "Label")
461 (repeat :tag "Add at least one item below" 473 (repeat :tag "Add at least one item below"
@@ -489,12 +501,38 @@ different key to sign or encrypt messages."
489 501
490(defcustom mh-auto-fields-list nil 502(defcustom mh-auto-fields-list nil
491 "List of recipients for which header lines are automatically inserted. 503 "List of recipients for which header lines are automatically inserted.
492Each element consists of the recipient, which is a regular expression, and a 504
493collection of header fields and identities to insert if the message is sent to 505This option can be used to set the identity depending on the recipient. To
494this recipient. The `Value Menu' contains the common header fields `Fcc' and 506customize this option, click on the `INS' button and enter a regular
495`Mail-Followup-To'. Other header fields may be added using the `Other Field' 507expression for the recipient's address. Click on the `INS' button with the
496menu item. The `Identity' menu item is used to insert entire identities with 508`Add at least one item below' label. Then choose one of the items in the
497`mh-insert-identity'." 509`Value Menu'.
510
511The `Identity' menu item is used to select an identity from those configured
512in `mh-identity-list'. All of the information for that identity will be added
513if the recipient matches. The `Fcc Field' menu item is used to select a folder
514that is used in the `Fcc:' header. When you send the message, MH will put a
515copy of your message in this folder. The `Mail-Followup-To Field' menu item is
516used to insert an `Mail-Followup-To:' header field with the recipients you
517provide. If the recipient's mail user agent supports this header field (as nmh
518does), then their replies will go to the addresses listed. This is useful if
519their replies go both to the list and to you and you don't have a mechanism to
520suppress duplicates. If you reply to someone not on the list, you must either
521remove the `Mail-Followup-To:' field, or ensure the recipient is also listed
522there so that he receives replies to your reply. Other header fields may be
523added using the `Other Field' menu item.
524
525These fields can only be added after the recipient is known. Once the header
526contains one or more recipients, run the \\[mh-insert-auto-fields] command or
527choose the `Identity -> Insert Auto Fields' menu item to insert these fields
528manually. However, you can just send the message and the fields will be added
529automatically. You are given a chance to see these fields and to confirm them
530before the message is actually sent. You can do away with this confirmation by
531turning off the option `mh-auto-fields-prompt-flag'.
532
533You should avoid using the same header field in `mh-auto-fields-list' and
534`mh-identity-list' definitions that may apply to the same message as the
535result is undefined."
498 :type `(repeat 536 :type `(repeat
499 (list :tag "" 537 (list :tag ""
500 (string :tag "Recipient") 538 (string :tag "Recipient")
@@ -525,7 +563,8 @@ See `mh-auto-fields-list'."
525 :group 'mh-identity) 563 :group 'mh-identity)
526 564
527(defcustom mh-identity-default nil 565(defcustom mh-identity-default nil
528 "Default identity to use when `mh-letter-mode' is called." 566 "Default identity to use when `mh-letter-mode' is called.
567See `mh-identity-list'."
529 :type (append 568 :type (append
530 '(radio) 569 '(radio)
531 (cons '(const :tag "None" nil) 570 (cons '(const :tag "None" nil)
@@ -534,16 +573,32 @@ See `mh-auto-fields-list'."
534 :group 'mh-identity) 573 :group 'mh-identity)
535 574
536(defcustom mh-identity-handlers 575(defcustom mh-identity-handlers
537 '((":default" . mh-identity-handler-bottom) 576 '(("From" . mh-identity-handler-top)
538 ("from" . mh-identity-handler-top) 577 (":default" . mh-identity-handler-bottom)
539 (":attribution-verb" . mh-identity-handler-attribution-verb) 578 (":attribution-verb" . mh-identity-handler-attribution-verb)
540 (":signature" . mh-identity-handler-signature) 579 (":signature" . mh-identity-handler-signature)
541 (":pgg-default-user-id" . mh-identity-handler-gpg-identity)) 580 (":pgg-default-user-id" . mh-identity-handler-gpg-identity))
542 "Handler functions for fields in `mh-identity-list'. 581 "Handler functions for fields in `mh-identity-list'.
543This is an alist of fields (strings) and handlers (functions). Strings are 582
544lowercase. Use \":signature\" for Signature and \":pgg-default-user-id\" for 583This option is used to change the way that fields, signatures, and
545GPG Key ID. The function associated with the string \":default\" is used if no 584attributions in `mh-identity-list' are added. To customize
546other functions are appropriate." 585`mh-identity-handlers', replace the name of an existing handler function
586associated with the field you want to change with the name of a function you
587have written. You can also click on an `INS' button and insert a field of your
588choice and the name of the function you have written to handle it.
589
590The `Field' field can be any field that you've used in your
591`mh-identity-list'. The special fields `:attribution-verb', `:signature', or
592`:pgg-default-user-id' are used for the `mh-identity-list' choices
593`Attribution Verb', `Signature', and `GPG Key ID' respectively.
594
595The handler associated with the `:default' field is used when no other field
596matches.
597
598The handler functions are passed two or three arguments: the FIELD itself (for
599example, `From'), or one of the special fields (for example, `:signature'),
600and the ACTION `'remove' or `'add'. If the action is `'add', an additional
601argument containing the VALUE for the field is given."
547 :type '(repeat (cons (string :tag "Field") function)) 602 :type '(repeat (cons (string :tag "Field") function))
548 :group 'mh-identity) 603 :group 'mh-identity)
549 604
@@ -552,45 +607,45 @@ other functions are appropriate."
552;;; Incorporating Your Mail (:group 'mh-inc) 607;;; Incorporating Your Mail (:group 'mh-inc)
553 608
554(defcustom mh-inc-prog "inc" 609(defcustom mh-inc-prog "inc"
555 "*Program to run to incorporate new mail into a folder. 610 "*Program to incorporate new mail into a folder.
556Normally \"inc\". This program is relative to the `mh-progs' directory unless 611
557it is an absolute pathname." 612This program generates a one-line summary for each of the new messages. Unless
613it is an absolute pathname, the file is assumed to be in the `mh-progs'
614directory. You may also link a file to `inc' that uses a different format.
615You'll then need to modify several scan line format variables appropriately."
558 :type 'string 616 :type 'string
559 :group 'mh-inc) 617 :group 'mh-inc)
560 618
561(defcustom mh-inc-spool-list nil 619(defcustom mh-inc-spool-list nil
562 "*Alist of alternate spool files, corresponding folders and keybindings. 620 "*Alternate spool files.
563This option will be described by example. 621
622You can use the `mh-inc-spool-list' variable to direct MH-E to retrieve mail
623from arbitrary spool files other than your system mailbox, file it in folders
624other than your `+inbox', and assign key bindings to incorporate this mail.
564 625
565Suppose you have subscribed to the mh-e-devel mailing list and you use 626Suppose you are subscribed to the `mh-e-devel' mailing list and you use
566procmail to filter its mail into `~/mail/mh-e' with the following 627`procmail' to filter this mail into `~/mail/mh-e' with the following recipe in
567`.procmailrc' recipe: 628`.procmailrc':
568 629
569 MAILDIR=$HOME/mail 630 MAILDIR=$HOME/mail
570 :0: 631 :0:
571 * ^From mh-e-devel-admin@lists.sourceforge.net 632 * ^From mh-e-devel-admin@stop.mail-abuse.org
572 mh-e 633 mh-e
573 634
574If you wanted to incorporate that spool file into an MH folder called mh-e 635In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m'
575with the \"I m\" or \\[mh-inc-spool-mh-e] commands, you would use the 636\(`mh-inc-spool-mh-e'\) command, customize this option, and click on the `INS'
576following: 637button. Enter a `Spool File' of `~/mail/mh-e', a `Folder' of `mh-e', and a
638`Key Binding' of `m'.
577 639
578 Spool File: ~/mail/mh-e 640You can use `xbuffy' to automate the incorporation of this mail using the
579 Folder: mh-e 641`gnudoit' command in the `gnuserv' package as follows:
580 Key Binding: m
581
582Then, you could also install `xbuffy' and configure an extra mailbox using the
583gnuserv package to run the `mh-inc-spool-mh-e' command in Emacs:
584 642
585 box ~/mail/mh-e 643 box ~/mail/mh-e
586 title mh-e 644 title mh-e
587 origMode 645 origMode
588 polltime 10 646 polltime 10
589 headertime 0 647 headertime 0
590 command gnudoit -q '(mh-inc-spool-mh-e)' 648 command gnudoit -q '(mh-inc-spool-mh-e)'"
591
592To incorporate the spool file, click the xbuffy box with the middle mouse
593button."
594 :type '(repeat (list (file :tag "Spool File") 649 :type '(repeat (list (file :tag "Spool File")
595 (string :tag "Folder") 650 (string :tag "Folder")
596 (character :tag "Key Binding"))) 651 (character :tag "Key Binding")))
@@ -602,10 +657,10 @@ button."
602;;; Searching (:group 'mh-index) 657;;; Searching (:group 'mh-index)
603 658
604(defcustom mh-index-new-messages-folders t 659(defcustom mh-index-new-messages-folders t
605 "Folders searched for the `unseen' sequence. 660 "Folders searched for the \"unseen\" sequence.
606This option can be set to `Inbox' to search the `+inbox' folder or `All' to 661Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
607search all of the top level folders. Otherwise, list the folders that should 662search all of the top level folders. Otherwise, list the folders that should
608be searched with the `Choose Folders' menu item. 663be searched with the \"Choose Folders\" menu item.
609 664
610See also `mh-recursive-folders-flag'." 665See also `mh-recursive-folders-flag'."
611 :group 'mh-index 666 :group 'mh-index
@@ -633,9 +688,9 @@ found in the documentation of `mh-index-search'."
633 688
634(defcustom mh-index-ticked-messages-folders t 689(defcustom mh-index-ticked-messages-folders t
635 "Folders searched for `mh-tick-seq'. 690 "Folders searched for `mh-tick-seq'.
636This option can be set to `Inbox' to search the `+inbox' folder or `All' to 691Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
637search all of the top level folders. Otherwise, list the folders that should 692search all of the top level folders. Otherwise, list the folders that should
638be searched with the `Choose Folders' menu item. 693be searched with the \"Choose Folders\" menu item.
639 694
640See also `mh-recursive-folders-flag'." 695See also `mh-recursive-folders-flag'."
641 :group 'mh-index 696 :group 'mh-index
@@ -672,6 +727,15 @@ bound to the new value of `mh-junk-program'. The function sets the variable
672 finally return (car element))))) 727 finally return (car element)))))
673 728
674;; User customizable variables 729;; User customizable variables
730(defcustom mh-junk-background nil
731 "If on, spam programs are run in background.
732By default, the programs are run in the foreground, but this can be slow when
733junking large numbers of messages. If you have enough memory or don't junk
734that many messages at the same time, you might try turning on this option."
735 :type '(choice (const :tag "Off" nil)
736 (const :tag "On" 0))
737 :group 'mh-junk)
738
675(defcustom mh-junk-disposition nil 739(defcustom mh-junk-disposition nil
676 "Disposition of junk mail." 740 "Disposition of junk mail."
677 :type '(choice (const :tag "Delete Spam" nil) 741 :type '(choice (const :tag "Delete Spam" nil)
@@ -680,10 +744,12 @@ bound to the new value of `mh-junk-program'. The function sets the variable
680 744
681(defcustom mh-junk-program nil 745(defcustom mh-junk-program nil
682 "Spam program that MH-E should use. 746 "Spam program that MH-E should use.
683The default setting of this option is `Auto-detect' which means that MH-E will 747
684automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in that 748The default setting of this option is \"Auto-detect\" which means that MH-E
685order. If, for example, you have both SpamAssassin and Bogofilter installed 749will automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in
686and you want to use BogoFilter, then you can set this option to `Bogofilter'." 750that order. If, for example, you have both SpamAssassin and Bogofilter
751installed and you want to use BogoFilter, then you can set this option to
752\"Bogofilter\"."
687 :type '(choice (const :tag "Auto-detect" nil) 753 :type '(choice (const :tag "Auto-detect" nil)
688 (const :tag "SpamAssassin" spamassassin) 754 (const :tag "SpamAssassin" spamassassin)
689 (const :tag "Bogofilter" bogofilter) 755 (const :tag "Bogofilter" bogofilter)
@@ -691,32 +757,10 @@ and you want to use BogoFilter, then you can set this option to `Bogofilter'."
691 :set 'mh-junk-choose 757 :set 'mh-junk-choose
692 :group 'mh-junk) 758 :group 'mh-junk)
693 759
694(defcustom mh-junk-background nil
695 "If on, spam programs are run in background.
696By default, the programs are run in the foreground, but this can be slow when
697junking large numbers of messages. If you have enough memory or don't junk
698that many messages at the same time, you might try turning on this option."
699 :type '(choice (const :tag "Off" nil)
700 (const :tag "On" 0))
701 :group 'mh-junk)
702
703 760
704 761
705;;; Editing a Draft (:group 'mh-letter) 762;;; Editing a Draft (:group 'mh-letter)
706 763
707(defcustom mh-mml-method-default (if mh-gnus-pgp-support-flag "pgpmime" "none")
708 "Default method to use in security directives."
709 :type '(choice (const :tag "PGP (MIME)" "pgpmime")
710 (const :tag "PGP" "pgp")
711 (const :tag "S/MIME" "smime")
712 (const :tag "None" "none"))
713 :group 'mh-letter)
714
715(defcustom mh-compose-forward-as-mime-flag t
716 "Non-nil means that messages are forwarded as a MIME part."
717 :type 'boolean
718 :group 'mh-letter)
719
720(defcustom mh-compose-insertion (if (locate-library "mml") 'gnus 'mhn) 764(defcustom mh-compose-insertion (if (locate-library "mml") 'gnus 'mhn)
721 "Type of MIME message directives in messages. 765 "Type of MIME message directives in messages.
722 766
@@ -761,11 +805,6 @@ by \\<mh-letter-mode-map>\\[mh-insert-letter] or \\[mh-yank-cur-msg]."
761 :type 'string 805 :type 'string
762 :group 'mh-letter) 806 :group 'mh-letter)
763 807
764(defcustom mh-insert-x-mailer-flag t
765 "*Non-nil means append an X-Mailer field to the header."
766 :type 'boolean
767 :group 'mh-letter)
768
769(defcustom mh-letter-complete-function 'ispell-complete-word 808(defcustom mh-letter-complete-function 'ispell-complete-word
770 "*Function to call when completing outside of address or folder fields. 809 "*Function to call when completing outside of address or folder fields.
771By default, this is set to `ispell-complete-word'." 810By default, this is set to `ispell-complete-word'."
@@ -780,16 +819,12 @@ and it's best to avoid quoted lines that span more than 80 columns."
780 :type 'integer 819 :type 'integer
781 :group 'mh-letter) 820 :group 'mh-letter)
782 821
783(defcustom mh-reply-show-message-flag t 822(defcustom mh-mml-method-default (if mh-gnus-pgp-support-flag "pgpmime" "none")
784 "*Non-nil means the show buffer is displayed using \\<mh-letter-mode-map>\\[mh-reply]. 823 "Default method to use in security directives."
785 824 :type '(choice (const :tag "PGP (MIME)" "pgpmime")
786The setting of this variable determines whether the MH `show-buffer' is 825 (const :tag "PGP" "pgp")
787displayed with the current message when using `mh-reply' without a prefix 826 (const :tag "S/MIME" "smime")
788argument. Set it to nil if you already include the message automatically 827 (const :tag "None" "none"))
789in your draft using
790 repl: -filter repl.filter
791in your ~/.mh_profile file."
792 :type 'boolean
793 :group 'mh-letter) 828 :group 'mh-letter)
794 829
795(defcustom mh-signature-file-name "~/.signature" 830(defcustom mh-signature-file-name "~/.signature"
@@ -881,14 +916,14 @@ If nil, yank only the portion of the message following the point.
881If the show buffer has a region, this variable is ignored unless its value is 916If the show buffer has a region, this variable is ignored unless its value is
882one of `attribution' or `autoattrib' in which case the attribution is added 917one of `attribution' or `autoattrib' in which case the attribution is added
883to the yanked region." 918to the yanked region."
884 :type '(choice (const :tag "Below point" nil) 919 :type '(choice (const :tag "Body and Header" t)
885 (const :tag "Without header" body) 920 (const :tag "Body" body)
921 (const :tag "Below Point" nil)
886 (const :tag "Invoke supercite" supercite) 922 (const :tag "Invoke supercite" supercite)
887 (const :tag "Invoke supercite, automatically" autosupercite) 923 (const :tag "Invoke supercite, Automatically" autosupercite)
888 (const :tag "Without header, with attribution" attribution) 924 (const :tag "Body With Attribution" attribution)
889 (const :tag "Without header, with attribution, automatically" 925 (const :tag "Body With Attribution, Automatically"
890 autoattrib) 926 autoattrib))
891 (const :tag "Entire message with headers" t))
892 :group 'mh-letter) 927 :group 'mh-letter)
893 928
894 929
@@ -947,6 +982,11 @@ for relative to the `mh-progs' directory unless it is an absolute pathname."
947 982
948;;; Sending Mail (:group 'mh-sending-mail) 983;;; Sending Mail (:group 'mh-sending-mail)
949 984
985(defcustom mh-compose-forward-as-mime-flag t
986 "Non-nil means that messages are forwarded as a MIME part."
987 :type 'boolean
988 :group 'mh-sending-mail)
989
950(defcustom mh-compose-letter-function nil 990(defcustom mh-compose-letter-function nil
951 "Invoked when setting up a letter draft. 991 "Invoked when setting up a letter draft.
952It is passed three arguments: TO recipients, SUBJECT, and CC recipients." 992It is passed three arguments: TO recipients, SUBJECT, and CC recipients."
@@ -965,6 +1005,11 @@ message and the original subject line."
965 :type 'string 1005 :type 'string
966 :group 'mh-sending-mail) 1006 :group 'mh-sending-mail)
967 1007
1008(defcustom mh-insert-x-mailer-flag t
1009 "*Non-nil means append an X-Mailer field to the header."
1010 :type 'boolean
1011 :group 'mh-sending-mail)
1012
968(defcustom mh-reply-default-reply-to nil 1013(defcustom mh-reply-default-reply-to nil
969 "*Sets the person or persons to whom a reply will be sent. 1014 "*Sets the person or persons to whom a reply will be sent.
970If nil, prompt for recipient. If non-nil, then \\<mh-folder-mode-map>`\\[mh-reply]' will use this 1015If nil, prompt for recipient. If non-nil, then \\<mh-folder-mode-map>`\\[mh-reply]' will use this
@@ -975,6 +1020,18 @@ The values \"cc\" and \"all\" do the same thing."
975 (const "cc") (const "all")) 1020 (const "cc") (const "all"))
976 :group 'mh-sending-mail) 1021 :group 'mh-sending-mail)
977 1022
1023(defcustom mh-reply-show-message-flag t
1024 "*Non-nil means the show buffer is displayed using \\<mh-letter-mode-map>\\[mh-reply].
1025
1026The setting of this variable determines whether the MH `show-buffer' is
1027displayed with the current message when using `mh-reply' without a prefix
1028argument. Set it to nil if you already include the message automatically
1029in your draft using
1030 repl: -filter repl.filter
1031in your ~/.mh_profile file."
1032 :type 'boolean
1033 :group 'mh-sending-mail)
1034
978 1035
979 1036
980;;; Sequences (:group 'mh-sequences) 1037;;; Sequences (:group 'mh-sequences)
@@ -1120,6 +1177,7 @@ The gnus method uses a different color for each indentation."
1120 "Delivered-To:" ; Egroups/yahoogroups mailing list manager 1177 "Delivered-To:" ; Egroups/yahoogroups mailing list manager
1121 "Delivery-Date:" ; MH 1178 "Delivery-Date:" ; MH
1122 "Delivery:" 1179 "Delivery:"
1180 "DomainKey-Signature:" ;http://antispam.yahoo.com/domainkeys
1123 "Encoding:" 1181 "Encoding:"
1124 "Envelope-to:" 1182 "Envelope-to:"
1125 "Errors-To:" 1183 "Errors-To:"
@@ -1188,6 +1246,7 @@ The gnus method uses a different color for each indentation."
1188 "X-Envelope-From:" 1246 "X-Envelope-From:"
1189 "X-Envelope-Sender:" 1247 "X-Envelope-Sender:"
1190 "X-Envelope-To:" 1248 "X-Envelope-To:"
1249 "X-Evolution:" ; Evolution mail client
1191 "X-Face:" 1250 "X-Face:"
1192 "X-Folder:" ; Spam 1251 "X-Folder:" ; Spam
1193 "X-From-Line" 1252 "X-From-Line"
@@ -1264,6 +1323,7 @@ The gnus method uses a different color for each indentation."
1264 "X-Trace:" 1323 "X-Trace:"
1265 "X-UID" 1324 "X-UID"
1266 "X-UIDL:" 1325 "X-UIDL:"
1326 "X-USANET-" ; usa.net
1267 "X-UserInfo1:" 1327 "X-UserInfo1:"
1268 "X-VSMLoop:" ; NTMail 1328 "X-VSMLoop:" ; NTMail
1269 "X-Vms-To:" 1329 "X-Vms-To:"
@@ -1527,13 +1587,13 @@ Optional argument ARG is not used."
1527(defun mh-tool-bar-folder-help () 1587(defun mh-tool-bar-folder-help ()
1528 "Visit \"(mh-e)Top\"." 1588 "Visit \"(mh-e)Top\"."
1529 (interactive) 1589 (interactive)
1530 (Info-goto-node "(mh-e)Top") 1590 (info "(mh-e)Top")
1531 (delete-other-windows)) 1591 (delete-other-windows))
1532 1592
1533(defun mh-tool-bar-letter-help () 1593(defun mh-tool-bar-letter-help ()
1534 "Visit \"(mh-e)Draft Editing\"." 1594 "Visit \"(mh-e)Draft Editing\"."
1535 (interactive) 1595 (interactive)
1536 (Info-goto-node "(mh-e)Draft Editing") 1596 (info "(mh-e)Draft Editing")
1537 (delete-other-windows)) 1597 (delete-other-windows))
1538 1598
1539(defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) 1599(defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag)
@@ -1907,9 +1967,9 @@ This button runs `mh-previous-undeleted-msg'")
1907 ;; Common buttons 1967 ;; Common buttons
1908 (mh-tool-bar-customize (folder letter) "preferences" "MH-E Preferences") 1968 (mh-tool-bar-customize (folder letter) "preferences" "MH-E Preferences")
1909 (mh-tool-bar-folder-help (folder) "help" 1969 (mh-tool-bar-folder-help (folder) "help"
1910 "Help! (general help)\nThis button runs `Info-goto-node'") 1970 "Help! (general help)\nThis button runs `info'")
1911 (mh-tool-bar-letter-help (letter) "help" 1971 (mh-tool-bar-letter-help (letter) "help"
1912 "Help! (general help)\nThis button runs `Info-goto-node'") 1972 "Help! (general help)\nThis button runs `info'")
1913 ;; Folder narrowed to sequence buttons 1973 ;; Folder narrowed to sequence buttons
1914 (mh-widen (sequence) "widen" 1974 (mh-widen (sequence) "widen"
1915 "Widen from the sequence\nThis button runs `mh-widen'")) 1975 "Widen from the sequence\nThis button runs `mh-widen'"))
@@ -2085,7 +2145,7 @@ will be removed from the unseen sequence."
2085;;; Faces Used in Scan Listing (:group 'mh-folder-faces) 2145;;; Faces Used in Scan Listing (:group 'mh-folder-faces)
2086 2146
2087(defvar mh-folder-body-face 'mh-folder-body-face 2147(defvar mh-folder-body-face 'mh-folder-body-face
2088 "Face for highlighting body text in MH-Folder buffers.") 2148 "Face used to highlight body text in MH-Folder buffers.")
2089(defface mh-folder-body-face 2149(defface mh-folder-body-face
2090 '((((type tty) (class color)) (:foreground "green")) 2150 '((((type tty) (class color)) (:foreground "green"))
2091 (((class grayscale) (background light)) (:foreground "DimGray" :italic t)) 2151 (((class grayscale) (background light)) (:foreground "DimGray" :italic t))
@@ -2093,11 +2153,11 @@ will be removed from the unseen sequence."
2093 (((class color) (background light)) (:foreground "RosyBrown")) 2153 (((class color) (background light)) (:foreground "RosyBrown"))
2094 (((class color) (background dark)) (:foreground "LightSalmon")) 2154 (((class color) (background dark)) (:foreground "LightSalmon"))
2095 (t (:italic t))) 2155 (t (:italic t)))
2096 "Face for highlighting body text in MH-Folder buffers." 2156 "Face used to highlight body text in MH-Folder buffers."
2097 :group 'mh-folder-faces) 2157 :group 'mh-folder-faces)
2098 2158
2099(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg-face 2159(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg-face
2100 "Face for the current message line in MH-Folder buffers.") 2160 "Face used for the current message line in MH-Folder buffers.")
2101(defface mh-folder-cur-msg-face 2161(defface mh-folder-cur-msg-face
2102 '((((type tty pc) (class color)) 2162 '((((type tty pc) (class color))
2103 (:background "LightGreen")) 2163 (:background "LightGreen"))
@@ -2108,11 +2168,11 @@ will be removed from the unseen sequence."
2108 (((class color) (background dark)) 2168 (((class color) (background dark))
2109 (:background "DarkOliveGreen4")) 2169 (:background "DarkOliveGreen4"))
2110 (t (:underline t))) 2170 (t (:underline t)))
2111 "Face for the current message line in MH-Folder buffers." 2171 "Face used for the current message line in MH-Folder buffers."
2112 :group 'mh-folder-faces) 2172 :group 'mh-folder-faces)
2113 2173
2114(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number-face 2174(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number-face
2115 "Face for highlighting the current message in MH-Folder buffers.") 2175 "Face used to highlight the current message in MH-Folder buffers.")
2116(defface mh-folder-cur-msg-number-face 2176(defface mh-folder-cur-msg-number-face
2117 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) 2177 '((((type tty) (class color)) (:foreground "cyan" :weight bold))
2118 (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) 2178 (((class grayscale) (background light)) (:foreground "LightGray" :bold t))
@@ -2120,11 +2180,11 @@ will be removed from the unseen sequence."
2120 (((class color) (background light)) (:foreground "Purple")) 2180 (((class color) (background light)) (:foreground "Purple"))
2121 (((class color) (background dark)) (:foreground "Cyan")) 2181 (((class color) (background dark)) (:foreground "Cyan"))
2122 (t (:bold t))) 2182 (t (:bold t)))
2123 "Face for highlighting the current message in MH-Folder buffers." 2183 "Face used to highlight the current message in MH-Folder buffers."
2124 :group 'mh-folder-faces) 2184 :group 'mh-folder-faces)
2125 2185
2126(defvar mh-folder-date-face 'mh-folder-date-face 2186(defvar mh-folder-date-face 'mh-folder-date-face
2127 "Face for highlighting the date in MH-Folder buffers.") 2187 "Face used to highlight the date in MH-Folder buffers.")
2128(defface mh-folder-date-face 2188(defface mh-folder-date-face
2129 '((((class color) (background light)) 2189 '((((class color) (background light))
2130 (:foreground "snow4")) 2190 (:foreground "snow4"))
@@ -2132,11 +2192,11 @@ will be removed from the unseen sequence."
2132 (:foreground "snow3")) 2192 (:foreground "snow3"))
2133 (t 2193 (t
2134 (:bold t))) 2194 (:bold t)))
2135 "Face for highlighting the date in MH-Folder buffers." 2195 "Face used to highlight the date in MH-Folder buffers."
2136 :group 'mh-folder-faces) 2196 :group 'mh-folder-faces)
2137 2197
2138(defvar mh-folder-followup-face 'mh-folder-followup-face 2198(defvar mh-folder-followup-face 'mh-folder-followup-face
2139 "Face for highlighting Re: (followup) subject text in MH-Folder buffers.") 2199 "Face used to highlight Re: subject text in MH-Folder buffers.")
2140(defface mh-folder-followup-face 2200(defface mh-folder-followup-face
2141 '((((class color) (background light)) 2201 '((((class color) (background light))
2142 (:foreground "blue3")) 2202 (:foreground "blue3"))
@@ -2144,11 +2204,11 @@ will be removed from the unseen sequence."
2144 (:foreground "LightGoldenRod")) 2204 (:foreground "LightGoldenRod"))
2145 (t 2205 (t
2146 (:bold t))) 2206 (:bold t)))
2147 "Face for highlighting Re: (followup) subject text in MH-Folder buffers." 2207 "Face used to highlight Re: subject text in MH-Folder buffers."
2148 :group 'mh-folder-faces) 2208 :group 'mh-folder-faces)
2149 2209
2150(defvar mh-folder-msg-number-face 'mh-folder-msg-number-face 2210(defvar mh-folder-msg-number-face 'mh-folder-msg-number-face
2151 "Face for highlighting the message number in MH-Folder buffers.") 2211 "Face used to highlight the message number in MH-Folder buffers.")
2152(defface mh-folder-msg-number-face 2212(defface mh-folder-msg-number-face
2153 '((((class color) (background light)) 2213 '((((class color) (background light))
2154 (:foreground "snow4")) 2214 (:foreground "snow4"))
@@ -2156,15 +2216,15 @@ will be removed from the unseen sequence."
2156 (:foreground "snow3")) 2216 (:foreground "snow3"))
2157 (t 2217 (t
2158 (:bold t))) 2218 (:bold t)))
2159 "Face for highlighting the message number in MH-Folder buffers." 2219 "Face used to highlight the message number in MH-Folder buffers."
2160 :group 'mh-folder-faces) 2220 :group 'mh-folder-faces)
2161 2221
2162(defvar mh-folder-deleted-face 'mh-folder-deleted-face 2222(defvar mh-folder-deleted-face 'mh-folder-deleted-face
2163 "Face for highlighting deleted messages in MH-Folder buffers.") 2223 "Face used to highlight deleted messages in MH-Folder buffers.")
2164(copy-face 'mh-folder-msg-number-face 'mh-folder-deleted-face) 2224(copy-face 'mh-folder-msg-number-face 'mh-folder-deleted-face)
2165 2225
2166(defvar mh-folder-refiled-face 'mh-folder-refiled-face 2226(defvar mh-folder-refiled-face 'mh-folder-refiled-face
2167 "Face for highlighting refiled messages in MH-Folder buffers.") 2227 "Face used to highlight refiled messages in MH-Folder buffers.")
2168(defface mh-folder-refiled-face 2228(defface mh-folder-refiled-face
2169 '((((type tty) (class color)) (:foreground "yellow" :weight light)) 2229 '((((type tty) (class color)) (:foreground "yellow" :weight light))
2170 (((class grayscale) (background light)) 2230 (((class grayscale) (background light))
@@ -2174,11 +2234,11 @@ will be removed from the unseen sequence."
2174 (((class color) (background light)) (:foreground "DarkGoldenrod")) 2234 (((class color) (background light)) (:foreground "DarkGoldenrod"))
2175 (((class color) (background dark)) (:foreground "LightGoldenrod")) 2235 (((class color) (background dark)) (:foreground "LightGoldenrod"))
2176 (t (:bold t :italic t))) 2236 (t (:bold t :italic t)))
2177 "Face for highlighting refiled messages in MH-Folder buffers." 2237 "Face used to highlight refiled messages in MH-Folder buffers."
2178 :group 'mh-folder-faces) 2238 :group 'mh-folder-faces)
2179 2239
2180(defvar mh-folder-subject-face 'mh-folder-subject-face 2240(defvar mh-folder-subject-face 'mh-folder-subject-face
2181 "Face for highlighting subject text in MH-Folder buffers.") 2241 "Face used to highlight subject text in MH-Folder buffers.")
2182(if (boundp 'facemenu-unlisted-faces) 2242(if (boundp 'facemenu-unlisted-faces)
2183 (add-to-list 'facemenu-unlisted-faces "^mh-folder")) 2243 (add-to-list 'facemenu-unlisted-faces "^mh-folder"))
2184(defface mh-folder-subject-face 2244(defface mh-folder-subject-face
@@ -2188,7 +2248,7 @@ will be removed from the unseen sequence."
2188 (:foreground "yellow")) 2248 (:foreground "yellow"))
2189 (t 2249 (t
2190 (:bold t))) 2250 (:bold t)))
2191 "Face for highlighting subject text in MH-Folder buffers." 2251 "Face used to highlight subject text in MH-Folder buffers."
2192 :group 'mh-folder-faces) 2252 :group 'mh-folder-faces)
2193 2253
2194(defface mh-folder-tick-face 2254(defface mh-folder-tick-face
@@ -2199,15 +2259,15 @@ will be removed from the unseen sequence."
2199 :group 'mh-folder-faces) 2259 :group 'mh-folder-faces)
2200 2260
2201(defvar mh-folder-address-face 'mh-folder-address-face 2261(defvar mh-folder-address-face 'mh-folder-address-face
2202 "Face for highlighting the address in MH-Folder buffers.") 2262 "Face used to highlight the address in MH-Folder buffers.")
2203(copy-face 'mh-folder-subject-face 'mh-folder-address-face) 2263(copy-face 'mh-folder-subject-face 'mh-folder-address-face)
2204 2264
2205(defvar mh-folder-scan-format-face 'mh-folder-scan-format-face 2265(defvar mh-folder-scan-format-face 'mh-folder-scan-format-face
2206 "Face for highlighting `mh-scan-format-regexp' matches in MH-Folder buffers.") 2266 "Face used to highlight `mh-scan-format-regexp' matches in MH-Folder buffers.")
2207(copy-face 'mh-folder-followup-face 'mh-folder-scan-format-face) 2267(copy-face 'mh-folder-followup-face 'mh-folder-scan-format-face)
2208 2268
2209(defvar mh-folder-to-face 'mh-folder-to-face 2269(defvar mh-folder-to-face 'mh-folder-to-face
2210 "Face for highlighting the To: string in MH-Folder buffers.") 2270 "Face used to highlight the To: string in MH-Folder buffers.")
2211(defface mh-folder-to-face 2271(defface mh-folder-to-face
2212 '((((type tty) (class color)) (:foreground "green")) 2272 '((((type tty) (class color)) (:foreground "green"))
2213 (((class grayscale) (background light)) (:foreground "DimGray" :italic t)) 2273 (((class grayscale) (background light)) (:foreground "DimGray" :italic t))
@@ -2215,7 +2275,7 @@ will be removed from the unseen sequence."
2215 (((class color) (background light)) (:foreground "RosyBrown")) 2275 (((class color) (background light)) (:foreground "RosyBrown"))
2216 (((class color) (background dark)) (:foreground "LightSalmon")) 2276 (((class color) (background dark)) (:foreground "LightSalmon"))
2217 (t (:italic t))) 2277 (t (:italic t)))
2218 "Face for highlighting the To: string in MH-Folder buffers." 2278 "Face used to highlight the To: string in MH-Folder buffers."
2219 :group 'mh-folder-faces) 2279 :group 'mh-folder-faces)
2220 2280
2221 2281
@@ -2223,7 +2283,7 @@ will be removed from the unseen sequence."
2223;;; Faces Used in Searching (:group 'mh-index-faces) 2283;;; Faces Used in Searching (:group 'mh-index-faces)
2224 2284
2225(defvar mh-index-folder-face 'mh-index-folder-face 2285(defvar mh-index-folder-face 'mh-index-folder-face
2226 "Face for highlighting folders in MH-Index buffers.") 2286 "Face used to highlight folders in MH-Index buffers.")
2227(defface mh-index-folder-face 2287(defface mh-index-folder-face
2228 '((((class color) (background light)) 2288 '((((class color) (background light))
2229 (:foreground "dark green" :bold t)) 2289 (:foreground "dark green" :bold t))
@@ -2231,7 +2291,7 @@ will be removed from the unseen sequence."
2231 (:foreground "indian red" :bold t)) 2291 (:foreground "indian red" :bold t))
2232 (t 2292 (t
2233 (:bold t))) 2293 (:bold t)))
2234 "Face for highlighting folders in MH-Index buffers." 2294 "Face used to highlight folders in MH-Index buffers."
2235 :group 'mh-index-faces) 2295 :group 'mh-index-faces)
2236 2296
2237 2297
@@ -2244,7 +2304,7 @@ will be removed from the unseen sequence."
2244 (((class color) (background dark)) 2304 (((class color) (background dark))
2245 (:background "gray10")) 2305 (:background "gray10"))
2246 (t (:bold t))) 2306 (t (:bold t)))
2247 "Face for displaying header fields in draft buffers." 2307 "Face used to display header fields in draft buffers."
2248 :group 'mh-letter-faces) 2308 :group 'mh-letter-faces)
2249 2309
2250 2310
@@ -2252,7 +2312,7 @@ will be removed from the unseen sequence."
2252;;; Faces Used in Message Display (:group 'mh-show-faces) 2312;;; Faces Used in Message Display (:group 'mh-show-faces)
2253 2313
2254(defvar mh-show-cc-face 'mh-show-cc-face 2314(defvar mh-show-cc-face 'mh-show-cc-face
2255 "Face for highlighting cc header fields.") 2315 "Face used to highlight cc: header fields.")
2256(defface mh-show-cc-face 2316(defface mh-show-cc-face
2257 '((((type tty) (class color)) (:foreground "yellow" :weight light)) 2317 '((((type tty) (class color)) (:foreground "yellow" :weight light))
2258 (((class grayscale) (background light)) 2318 (((class grayscale) (background light))
@@ -2262,11 +2322,11 @@ will be removed from the unseen sequence."
2262 (((class color) (background light)) (:foreground "DarkGoldenrod")) 2322 (((class color) (background light)) (:foreground "DarkGoldenrod"))
2263 (((class color) (background dark)) (:foreground "LightGoldenrod")) 2323 (((class color) (background dark)) (:foreground "LightGoldenrod"))
2264 (t (:bold t :italic t))) 2324 (t (:bold t :italic t)))
2265 "Face for highlighting cc header fields." 2325 "Face used to highlight cc: header fields."
2266 :group 'mh-show-faces) 2326 :group 'mh-show-faces)
2267 2327
2268(defvar mh-show-date-face 'mh-show-date-face 2328(defvar mh-show-date-face 'mh-show-date-face
2269 "Face for highlighting the Date header field.") 2329 "Face used to highlight the Date: header field.")
2270(defface mh-show-date-face 2330(defface mh-show-date-face
2271 '((((type tty) (class color)) (:foreground "green")) 2331 '((((type tty) (class color)) (:foreground "green"))
2272 (((class grayscale) (background light)) (:foreground "Gray90" :bold t)) 2332 (((class grayscale) (background light)) (:foreground "Gray90" :bold t))
@@ -2274,7 +2334,7 @@ will be removed from the unseen sequence."
2274 (((class color) (background light)) (:foreground "ForestGreen")) 2334 (((class color) (background light)) (:foreground "ForestGreen"))
2275 (((class color) (background dark)) (:foreground "PaleGreen")) 2335 (((class color) (background dark)) (:foreground "PaleGreen"))
2276 (t (:bold t :underline t))) 2336 (t (:bold t :underline t)))
2277 "Face for highlighting the Date header field." 2337 "Face used to highlight the Date: header field."
2278 :group 'mh-show-faces) 2338 :group 'mh-show-faces)
2279 2339
2280(defvar mh-show-header-face 'mh-show-header-face 2340(defvar mh-show-header-face 'mh-show-header-face
@@ -2289,13 +2349,36 @@ will be removed from the unseen sequence."
2289 "Face used to deemphasize unspecified header fields." 2349 "Face used to deemphasize unspecified header fields."
2290 :group 'mh-show-faces) 2350 :group 'mh-show-faces)
2291 2351
2352(defvar mh-show-pgg-good-face 'mh-show-pgg-good-face
2353 "Face used to highlight a good PGG signature.")
2354(defface mh-show-pgg-good-face
2355 '((t (:bold t :foreground "LimeGreen")))
2356 "Face used to highlight a good PGG signature."
2357 :group 'mh-show-faces)
2358
2359(defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown-face
2360 "Face used to highlight a PGG signature whose status is unknown.
2361This face is also used for a signature when the signer is untrusted.")
2362(defface mh-show-pgg-unknown-face
2363 '((t (:bold t :foreground "DarkGoldenrod2")))
2364 "Face used to highlight a PGG signature whose status is unknown.
2365This face is also used for a signature when the signer is untrusted."
2366 :group 'mh-show-faces)
2367
2368(defvar mh-show-pgg-bad-face 'mh-show-pgg-bad-face
2369 "Face used to highlight a bad PGG signature.")
2370(defface mh-show-pgg-bad-face
2371 '((t (:bold t :foreground "DeepPink1")))
2372 "Face used to highlight a bad PGG signature."
2373 :group 'mh-show-faces)
2374
2292(defface mh-show-signature-face 2375(defface mh-show-signature-face
2293 '((t (:italic t))) 2376 '((t (:italic t)))
2294 "Face for highlighting message signature." 2377 "Face used to highlight the message signature."
2295 :group 'mh-show-faces) 2378 :group 'mh-show-faces)
2296 2379
2297(defvar mh-show-to-face 'mh-show-to-face 2380(defvar mh-show-to-face 'mh-show-to-face
2298 "Face for highlighting the To: header field.") 2381 "Face used to highlight the To: header field.")
2299(if (boundp 'facemenu-unlisted-faces) 2382(if (boundp 'facemenu-unlisted-faces)
2300 (add-to-list 'facemenu-unlisted-faces "^mh-show")) 2383 (add-to-list 'facemenu-unlisted-faces "^mh-show"))
2301(defface mh-show-to-face 2384(defface mh-show-to-face
@@ -2306,11 +2389,11 @@ will be removed from the unseen sequence."
2306 (((class color) (background light)) (:foreground "SaddleBrown")) 2389 (((class color) (background light)) (:foreground "SaddleBrown"))
2307 (((class color) (background dark)) (:foreground "burlywood")) 2390 (((class color) (background dark)) (:foreground "burlywood"))
2308 (t (:underline t))) 2391 (t (:underline t)))
2309 "Face for highlighting the To: header field." 2392 "Face used to highlight the To: header field."
2310 :group 'mh-show-faces) 2393 :group 'mh-show-faces)
2311 2394
2312(defvar mh-show-from-face 'mh-show-from-face 2395(defvar mh-show-from-face 'mh-show-from-face
2313 "Face for highlighting the From: header field.") 2396 "Face used to highlight the From: header field.")
2314(defface mh-show-from-face 2397(defface mh-show-from-face
2315 '((((class color) (background light)) 2398 '((((class color) (background light))
2316 (:foreground "red3")) 2399 (:foreground "red3"))
@@ -2318,17 +2401,17 @@ will be removed from the unseen sequence."
2318 (:foreground "cyan")) 2401 (:foreground "cyan"))
2319 (t 2402 (t
2320 (:bold t))) 2403 (:bold t)))
2321 "Face for highlighting the From: header field." 2404 "Face used to highlight the From: header field."
2322 :group 'mh-show-faces) 2405 :group 'mh-show-faces)
2323 2406
2324(defface mh-show-xface-face 2407(defface mh-show-xface-face
2325 '((t (:foreground "black" :background "white"))) 2408 '((t (:foreground "black" :background "white")))
2326 "Face for displaying the X-Face image. 2409 "Face used to display the X-Face image.
2327The background and foreground is used in the image." 2410The background and foreground is used in the image."
2328 :group 'mh-show-faces) 2411 :group 'mh-show-faces)
2329 2412
2330(defvar mh-show-subject-face 'mh-show-subject-face 2413(defvar mh-show-subject-face 'mh-show-subject-face
2331 "Face for highlighting the Subject header field.") 2414 "Face used to highlight the Subject: header field.")
2332(copy-face 'mh-folder-subject-face 'mh-show-subject-face) 2415(copy-face 'mh-folder-subject-face 'mh-show-subject-face)
2333 2416
2334 2417
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index b5eea79ae1e..0cfb053c887 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -1,11 +1,12 @@
1;;; mh-e.el --- GNU Emacs interface to the MH mail system 1;;; mh-e.el --- GNU Emacs interface to the MH mail system
2 2
3;; Copyright (C) 1985, 86, 87, 88, 90, 92, 93, 94, 95, 97, 1999, 3;; Copyright (C) 1985, 1986, 1987, 1988,
4;; 2000, 2005 Free Software Foundation, Inc. 4;; 1990, 1992, 1993, 1994, 1995, 1997, 1999,
5;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 6
6;; Author: Bill Wohler <wohler@newt.com> 7;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 8;; Maintainer: Bill Wohler <wohler@newt.com>
8;; Version: 7.82 9;; Version: 7.84
9;; Keywords: mail 10;; Keywords: mail
10 11
11;; This file is part of GNU Emacs. 12;; This file is part of GNU Emacs.
@@ -97,10 +98,7 @@
97(defvar font-lock-auto-fontify) 98(defvar font-lock-auto-fontify)
98(defvar font-lock-defaults) 99(defvar font-lock-defaults)
99 100
100(defconst mh-version "7.82" "Version number of MH-E.") 101(defconst mh-version "7.84" "Version number of MH-E.")
101
102;;; Autoloads
103(autoload 'Info-goto-node "info")
104 102
105(defvar mh-partial-folder-mode-line-annotation "select" 103(defvar mh-partial-folder-mode-line-annotation "select"
106 "Annotation when displaying part of a folder. 104 "Annotation when displaying part of a folder.
@@ -578,7 +576,8 @@ Do not call this function from outside MH-E; use \\[mh-rmail] instead."
578 (setq folder mh-inbox)) 576 (setq folder mh-inbox))
579 (let ((threading-needed-flag nil)) 577 (let ((threading-needed-flag nil))
580 (let ((config (current-window-configuration))) 578 (let ((config (current-window-configuration)))
581 (delete-other-windows) 579 (when (and mh-show-buffer (get-buffer mh-show-buffer))
580 (delete-windows-on mh-show-buffer))
582 (cond ((not (get-buffer folder)) 581 (cond ((not (get-buffer folder))
583 (mh-make-folder folder) 582 (mh-make-folder folder)
584 (setq threading-needed-flag mh-show-threads-flag) 583 (setq threading-needed-flag mh-show-threads-flag)
@@ -717,22 +716,24 @@ updated."
717 (mh-refile-a-msg nil folder)) 716 (mh-refile-a-msg nil folder))
718 (when (looking-at mh-scan-refiled-msg-regexp) (mh-next-msg))) 717 (when (looking-at mh-scan-refiled-msg-regexp) (mh-next-msg)))
719 718
720(defun mh-refile-or-write-again (message) 719(defun mh-refile-or-write-again (range &optional interactive-flag)
721 "Re-execute the last refile or write command on the given MESSAGE. 720 "Re-execute the last refile or write command on the given RANGE.
722Default is the displayed message. Use the same folder or file as the previous 721Default is the displayed message. Use the same folder or file as the previous
723refile or write command." 722refile or write command.
724 (interactive (list (mh-get-msg-num t))) 723If INTERACTIVE-FLAG is non-nil then the function was called interactively."
724 (interactive (list (mh-interactive-range "Redo") t))
725 (if (null mh-last-destination) 725 (if (null mh-last-destination)
726 (error "No previous refile or write")) 726 (error "No previous refile or write"))
727 (let (output) 727 (let (output)
728 (setq output 728 (setq output
729 (cond ((eq (car mh-last-destination) 'refile) 729 (cond ((eq (car mh-last-destination) 'refile)
730 (mh-refile-a-msg message (cdr mh-last-destination)) 730 (mh-refile-msg range (cdr mh-last-destination))
731 (format "Destination folder: %s" (cdr mh-last-destination))) 731 (format "Destination folder: %s" (cdr mh-last-destination)))
732 (t 732 (t
733 (apply 'mh-write-msg-to-file message (cdr mh-last-destination)) 733 (mh-iterate-on-range msg range
734 (apply 'mh-write-msg-to-file msg (cdr mh-last-destination)))
735 (mh-next-msg interactive-flag)
734 (format "Destination: %s" (cdr mh-last-destination))))) 736 (format "Destination: %s" (cdr mh-last-destination)))))
735 (mh-next-msg (interactive-p))
736 (message output))) 737 (message output)))
737 738
738(defun mh-quit () 739(defun mh-quit ()
@@ -1801,7 +1802,7 @@ Return in the current buffer."
1801 (message "inc %s..." folder)) 1802 (message "inc %s..." folder))
1802 (setq mh-next-direction 'forward) 1803 (setq mh-next-direction 'forward)
1803 (goto-char (point-max)) 1804 (goto-char (point-max))
1804 (mh-remove-all-notation) 1805 (mh-remove-cur-notation)
1805 (let ((start-of-inc (point))) 1806 (let ((start-of-inc (point)))
1806 (if maildrop-name 1807 (if maildrop-name
1807 ;; I think MH 5 used "-ms-file" instead of "-file", 1808 ;; I think MH 5 used "-ms-file" instead of "-file",
@@ -1827,7 +1828,7 @@ Return in the current buffer."
1827 start-of-inc (point-max)))) 1828 start-of-inc (point-max))))
1828 (delete-region start-of-inc (point-max)) 1829 (delete-region start-of-inc (point-max))
1829 (unwind-protect (mh-widen t) 1830 (unwind-protect (mh-widen t)
1830 (mh-remove-all-notation) 1831 (mh-remove-cur-notation)
1831 (goto-char (point-max)) 1832 (goto-char (point-max))
1832 (setq start-of-inc (point)) 1833 (setq start-of-inc (point))
1833 (insert saved-text) 1834 (insert saved-text)
@@ -1846,7 +1847,15 @@ Return in the current buffer."
1846 (t 1847 (t
1847 (setq new-mail-flag t))) 1848 (setq new-mail-flag t)))
1848 (keep-lines mh-scan-valid-regexp) ; Flush random scan lines 1849 (keep-lines mh-scan-valid-regexp) ; Flush random scan lines
1849 (setq mh-seq-list (mh-read-folder-sequences folder t)) 1850 (let* ((sequences (mh-read-folder-sequences folder t))
1851 (new-cur (assoc 'cur sequences))
1852 (new-unseen (assoc mh-unseen-seq sequences)))
1853 (unless (assoc 'cur mh-seq-list)
1854 (push (list 'cur) mh-seq-list))
1855 (unless (assoc mh-unseen-seq mh-seq-list)
1856 (push (list mh-unseen-seq) mh-seq-list))
1857 (setcdr (assoc 'cur mh-seq-list) (cdr new-cur))
1858 (setcdr (assoc mh-unseen-seq mh-seq-list) (cdr new-unseen)))
1850 (when (equal (point-max) start-of-inc) 1859 (when (equal (point-max) start-of-inc)
1851 (mh-notate-cur)) 1860 (mh-notate-cur))
1852 (if new-mail-flag 1861 (if new-mail-flag
@@ -1858,8 +1867,7 @@ Return in the current buffer."
1858 (mh-thread-inc folder start-of-inc)) 1867 (mh-thread-inc folder start-of-inc))
1859 (mh-goto-cur-msg)) 1868 (mh-goto-cur-msg))
1860 (goto-char point-before-inc)) 1869 (goto-char point-before-inc))
1861 (mh-notate-user-sequences) 1870 (mh-notate-user-sequences (cons start-of-inc (point-max)))))))
1862 (mh-notate-deleted-and-refiled)))))
1863 1871
1864(defun mh-make-folder-mode-line (&optional ignored) 1872(defun mh-make-folder-mode-line (&optional ignored)
1865 "Set the fields of the mode line for a folder buffer. 1873 "Set the fields of the mode line for a folder buffer.
@@ -2033,18 +2041,18 @@ with no arguments, before the commands are processed."
2033 (mh-coalesce-msg-list msgs)) 2041 (mh-coalesce-msg-list msgs))
2034 (mh-delete-scan-msgs msgs) 2042 (mh-delete-scan-msgs msgs)
2035 ;; Preserve sequences in destination folder... 2043 ;; Preserve sequences in destination folder...
2036 (when (and mh-refile-preserves-sequences-flag 2044 (when mh-refile-preserves-sequences-flag
2037 (numberp last))
2038 (clrhash dest-map) 2045 (clrhash dest-map)
2039 (loop for i from (1+ last) 2046 (loop for i from (1+ (or last 0))
2040 for msg in (sort (copy-sequence msgs) #'<) 2047 for msg in (sort (copy-sequence msgs) #'<)
2041 do (loop for seq-name in (gethash msg seq-map) 2048 do (loop for seq-name in (gethash msg seq-map)
2042 do (push i (gethash seq-name dest-map)))) 2049 do (push i (gethash seq-name dest-map))))
2043 (maphash 2050 (maphash
2044 #'(lambda (seq msgs) 2051 #'(lambda (seq msgs)
2045 ;; Run it in the background, since we don't care 2052 ;; Can't be run in the background, since the
2046 ;; about the results. 2053 ;; current folder is changed by mark this could
2047 (apply #'mh-exec-cmd-daemon "mark" #'ignore 2054 ;; lead to a race condition with the next refile.
2055 (apply #'mh-exec-cmd "mark"
2048 "-sequence" (symbol-name seq) dest-folder 2056 "-sequence" (symbol-name seq) dest-folder
2049 "-add" (mapcar #'(lambda (x) (format "%s" x)) 2057 "-add" (mapcar #'(lambda (x) (format "%s" x))
2050 (mh-coalesce-msg-list msgs)))) 2058 (mh-coalesce-msg-list msgs))))
@@ -2201,13 +2209,14 @@ Expands ranges into set of individual numbers."
2201 (end-of-line (save-excursion (end-of-line) (point))) 2209 (end-of-line (save-excursion (end-of-line) (point)))
2202 num) 2210 num)
2203 (while (re-search-forward "[0-9]+" end-of-line t) 2211 (while (re-search-forward "[0-9]+" end-of-line t)
2204 (setq num (string-to-int (buffer-substring (match-beginning 0) 2212 (setq num (string-to-number (buffer-substring (match-beginning 0)
2205 (match-end 0)))) 2213 (match-end 0))))
2206 (cond ((looking-at "-") ; Message range 2214 (cond ((looking-at "-") ; Message range
2207 (forward-char 1) 2215 (forward-char 1)
2208 (re-search-forward "[0-9]+" end-of-line t) 2216 (re-search-forward "[0-9]+" end-of-line t)
2209 (let ((num2 (string-to-int (buffer-substring (match-beginning 0) 2217 (let ((num2 (string-to-number
2210 (match-end 0))))) 2218 (buffer-substring (match-beginning 0)
2219 (match-end 0)))))
2211 (if (< num2 num) 2220 (if (< num2 num)
2212 (error "Bad message range: %d-%d" num num2)) 2221 (error "Bad message range: %d-%d" num num2))
2213 (while (<= num num2) 2222 (while (<= num num2)
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index a632efc7856..126fd84ce9b 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -1,6 +1,7 @@
1;;; mh-funcs.el --- MH-E functions not everyone will use right away 1;;; mh-funcs.el --- MH-E functions not everyone will use right away
2 2
3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -127,7 +128,7 @@ Display the results only if something went wrong."
127 (set-buffer (get-buffer-create mh-temp-buffer)) 128 (set-buffer (get-buffer-create mh-temp-buffer))
128 (insert-before-markers output) 129 (insert-before-markers output)
129 (when (save-excursion 130 (when (save-excursion
130 (beginning-of-buffer) 131 (goto-char (point-min))
131 (re-search-forward "^rmf: " (point-max) t)) 132 (re-search-forward "^rmf: " (point-max) t))
132 (display-buffer mh-temp-buffer))) 133 (display-buffer mh-temp-buffer)))
133 134
@@ -148,7 +149,7 @@ Display the results only if something went wrong."
148 "-recurse" 149 "-recurse"
149 "-norecurse")) 150 "-norecurse"))
150 (goto-char (point-min)) 151 (goto-char (point-min))
151 (view-mode 1) 152 (view-mode-enter)
152 (setq view-exit-action 'kill-buffer) 153 (setq view-exit-action 'kill-buffer)
153 (message "Listing folders...done"))))) 154 (message "Listing folders...done")))))
154 155
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index e4b4a5b0d54..b850c8fdc43 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -1,6 +1,6 @@
1;;; mh-gnus.el --- Make MH-E compatible with installed version of Gnus. 1;;; mh-gnus.el --- Make MH-E compatible with installed version of Gnus.
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 7b44dae1d06..dc076751865 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -1,6 +1,6 @@
1;;; mh-identity.el --- Multiple identify support for MH-E. 1;;; mh-identity.el --- Multiple identify support for MH-E.
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -87,18 +87,18 @@ change."
87;;;###mh-autoload 87;;;###mh-autoload
88(defun mh-identity-list-set (symbol value) 88(defun mh-identity-list-set (symbol value)
89 "Update the `mh-identity-list' variable, and rebuild the menu. 89 "Update the `mh-identity-list' variable, and rebuild the menu.
90Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in 90Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set
91customization). This is called after 'customize is used to alter 91in customization). This is called after 'customize is used to alter
92`mh-identity-list'." 92`mh-identity-list'."
93 (set-default symbol value) 93 (set-default symbol value)
94 (mh-identity-make-menu)) 94 (mh-identity-make-menu))
95 95
96(defvar mh-identity-local nil 96(defvar mh-identity-local nil
97 "Buffer-local variable holding the identity currently in use.") 97 "Buffer-local variable that holds the identity currently in use.")
98(make-variable-buffer-local 'mh-identity-local) 98(make-variable-buffer-local 'mh-identity-local)
99 99
100(defun mh-header-field-delete (field value-only) 100(defun mh-header-field-delete (field value-only)
101 "Delete FIELD in the mail header, or only its value if VALUE-ONLY is t. 101 "Delete header FIELD, or only its value if VALUE-ONLY is t.
102Return t if anything is deleted." 102Return t if anything is deleted."
103 (let ((field-colon (if (string-match "^.*:$" field) 103 (let ((field-colon (if (string-match "^.*:$" field)
104 field 104 field
@@ -119,11 +119,11 @@ Return t if anything is deleted."
119 "Marker for the end of a signature inserted by `mh-insert-identity'.") 119 "Marker for the end of a signature inserted by `mh-insert-identity'.")
120 120
121(defun mh-identity-field-handler (field) 121(defun mh-identity-field-handler (field)
122 "Return the handler for a FIELD or nil if none set. 122 "Return the handler for header FIELD or nil if none set.
123The field name is downcased. If the FIELD begins with the character 123The field name is downcased. If the FIELD begins with the character
124`:', then it must have a special handler defined in 124`:', then it must have a special handler defined in
125`mh-identity-handlers', else return an error since it is not a valid 125`mh-identity-handlers', else return an error since it is not a valid
126message header." 126header field."
127 (or (cdr (assoc (downcase field) mh-identity-handlers)) 127 (or (cdr (assoc (downcase field) mh-identity-handlers))
128 (and (eq (aref field 0) ?:) 128 (and (eq (aref field 0) ?:)
129 (error (format "Field %s - unknown mh-identity-handler" field))) 129 (error (format "Field %s - unknown mh-identity-handler" field)))
@@ -132,8 +132,8 @@ message header."
132 132
133;;;###mh-autoload 133;;;###mh-autoload
134(defun mh-insert-identity (identity) 134(defun mh-insert-identity (identity)
135 "Insert proper fields for given IDENTITY. 135 "Insert fields specified by given IDENTITY.
136Edit the `mh-identity-list' variable to define identity." 136See `mh-identity-list'."
137 (interactive 137 (interactive
138 (list (completing-read 138 (list (completing-read
139 "Identity: " 139 "Identity: "
@@ -167,7 +167,8 @@ Edit the `mh-identity-list' variable to define identity."
167 167
168;;;###mh-autoload 168;;;###mh-autoload
169(defun mh-identity-handler-gpg-identity (field action &optional value) 169(defun mh-identity-handler-gpg-identity (field action &optional value)
170 "For FIELD \"pgg-default-user-id\", process for ACTION 'remove or 'add. 170 "Process header FIELD \":pgg-default-user-id\".
171The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
171The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE 172The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE
172when action 'add is selected." 173when action 'add is selected."
173 (cond 174 (cond
@@ -180,8 +181,8 @@ when action 'add is selected."
180 181
181;;;###mh-autoload 182;;;###mh-autoload
182(defun mh-identity-handler-signature (field action &optional value) 183(defun mh-identity-handler-signature (field action &optional value)
183 "For FIELD \"signature\", process headers for ACTION 'remove or 'add. 184 "Process header FIELD \":signature\".
184The VALUE is added." 185The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
185 (cond 186 (cond
186 ((equal action 'remove) 187 ((equal action 'remove)
187 (when (and (markerp mh-identity-signature-start) 188 (when (and (markerp mh-identity-signature-start)
@@ -210,8 +211,8 @@ The VALUE is added."
210 211
211;;;###mh-autoload 212;;;###mh-autoload
212(defun mh-identity-handler-attribution-verb (field action &optional value) 213(defun mh-identity-handler-attribution-verb (field action &optional value)
213 "For FIELD \"attribution_verb\", process headers for ACTION 'remove or 'add. 214 "Process header FIELD \":attribution-verb\".
214The VALUE is added." 215The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
215 (when (and (markerp mh-identity-attribution-verb-start) 216 (when (and (markerp mh-identity-attribution-verb-start)
216 (markerp mh-identity-attribution-verb-end)) 217 (markerp mh-identity-attribution-verb-end))
217 (delete-region mh-identity-attribution-verb-start 218 (delete-region mh-identity-attribution-verb-start
@@ -239,9 +240,10 @@ If VALUE is nil, use `mh-extract-from-attribution-verb'."
239 (point-max-marker)))) 240 (point-max-marker))))
240 241
241(defun mh-identity-handler-default (field action top &optional value) 242(defun mh-identity-handler-default (field action top &optional value)
242 "For FIELD, process mh-identity headers for ACTION 'remove or 'add. 243 "Process header FIELD.
243if TOP is non-nil, add the field and it's VALUE at the top of the header, else 244The ACTION is one of 'remove or 'add. If TOP is non-nil, add the field and its
244add it at the bottom of the header." 245VALUE at the top of the header, else add it at the bottom of the header. If
246action is 'add, the VALUE is added."
245 (let ((field-colon (if (string-match "^.*:$" field) 247 (let ((field-colon (if (string-match "^.*:$" field)
246 field 248 field
247 (concat field ":")))) 249 (concat field ":"))))
@@ -266,14 +268,16 @@ add it at the bottom of the header."
266 268
267;;;###mh-autoload 269;;;###mh-autoload
268(defun mh-identity-handler-top (field action &optional value) 270(defun mh-identity-handler-top (field action &optional value)
269 "For FIELD, process mh-identity headers for ACTION 'remove or 'add. 271 "Process header FIELD.
270If the field wasn't present, the VALUE is added at the top of the header." 272The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
273If the field wasn't present, it is added to the top of the header."
271 (mh-identity-handler-default field action t value)) 274 (mh-identity-handler-default field action t value))
272 275
273;;;###mh-autoload 276;;;###mh-autoload
274(defun mh-identity-handler-bottom (field action &optional value) 277(defun mh-identity-handler-bottom (field action &optional value)
275 "For FIELD, process mh-identity headers for ACTION 'remove or 'add. 278 "Process header FIELD.
276If the field wasn't present, the VALUE is added at the bottom of the header." 279The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
280If the field wasn't present, it is added to the bottom of the header."
277 (mh-identity-handler-default field action nil value)) 281 (mh-identity-handler-default field action nil value))
278 282
279(provide 'mh-identity) 283(provide 'mh-identity)
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el
index 95341fa75f7..c9a9c6cb6b6 100644
--- a/lisp/mh-e/mh-inc.el
+++ b/lisp/mh-e/mh-inc.el
@@ -1,6 +1,6 @@
1;;; mh-inc.el --- MH-E `inc' and separate mail spool handling 1;;; mh-inc.el --- MH-E `inc' and separate mail spool handling
2;; 2;;
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -98,10 +98,10 @@ This is called after 'customize is used to alter `mh-inc-spool-list'."
98 98
99(provide 'mh-inc) 99(provide 'mh-inc)
100 100
101;; Local Variables: 101;;; Local Variables:
102;; indent-tabs-mode: nil 102;;; indent-tabs-mode: nil
103;; sentence-end-double-space: nil 103;;; sentence-end-double-space: nil
104;; End: 104;;; End:
105 105
106;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835 106;;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
107;;; mh-inc.el ends here 107;;; mh-inc.el ends here
diff --git a/lisp/mh-e/mh-index.el b/lisp/mh-e/mh-index.el
index cde630236b0..7a52b94dd2b 100644
--- a/lisp/mh-e/mh-index.el
+++ b/lisp/mh-e/mh-index.el
@@ -1,6 +1,6 @@
1;;; mh-index -- MH-E interface to indexing programs 1;;; mh-index -- MH-E interface to indexing programs
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -31,6 +31,7 @@
31;;; swish-e 31;;; swish-e
32;;; mairix 32;;; mairix
33;;; namazu 33;;; namazu
34;;; pick
34;;; grep 35;;; grep
35;;; 36;;;
36;;; (2) To use this package, you first have to build an index. Please read 37;;; (2) To use this package, you first have to build an index. Please read
@@ -352,43 +353,74 @@ they are concatenated to construct the base name."
352(defun* mh-index-search (redo-search-flag folder search-regexp 353(defun* mh-index-search (redo-search-flag folder search-regexp
353 &optional window-config) 354 &optional window-config)
354 "Perform an indexed search in an MH mail folder. 355 "Perform an indexed search in an MH mail folder.
355Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below. 356Use a prefix argument to repeat the search.
356 357
357If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a 358Unlike regular searches, the prompt for the folder to search can be `all' to
358index search, then the search is repeated. Otherwise, FOLDER is searched with 359search all folders; in addition, the search works recursively on the listed
359SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is 360folder. The search criteria are entered in an MH-Pick buffer as described in
360\"+\" then mail in all folders are searched. Optional argument WINDOW-CONFIG 361`mh-search-folder'.
361stores the window configuration that will be restored after the user quits the 362
362folder containing the index search results. 363To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another
363 364difference from the regular searches is that because the search operates on
364Four indexing programs are supported; if none of these are present, then grep 365more than one folder, the messages that are found are put in a temporary
365is used. This function picks the first program that is available on your 366sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This
366system. If you would prefer to use a different program, set the customization 367buffer is special because it displays messages from multiple folders; each set
367variable `mh-index-program' accordingly. 368of messages from a given folder has a heading with the folder name.
368 369
369The documentation for the following functions describes how to generate the 370In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can
370index for each program: 371be used to visit the folder of the message at point. Initially, only the
372messages that matched the search criteria are displayed in the folder. While
373the temporary buffer has its own set of message numbers, the actual messages
374numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder]
375command is useful to find the actual message number of an interesting message,
376or to view surrounding messages with the \\[mh-rescan-folder] command.
377
378Because this folder is temporary, you'll probably get in the habit of killing
379it when you're done with \\[mh-kill-folder].
380
381If you have run the \\[mh-search-folder] command, but change your mind while
382entering the search criteria and actually want to run an indexed search, then
383you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the
384MH-Pick buffer.
385
386The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined
387by the `mh-index-program' option. The default value is \"Auto-detect\" which
388means that MH-E will automatically choose one of \"swish++\", \"swish-e\",
389\"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example,
390you have both \"swish++\" and \"mairix\" installed and you want to use
391\"mairix\", then you can set this option to \"mairix\".
392
393 *NOTE*
394
395 The \"pick\" and \"grep\" commands do not perform a recursive search on
396 the given folder.
397
398This command uses an \"X-MHE-Checksum:\" header field to cache the MD5
399checksum of a message. This means that if an incoming message already contains
400an \"X-MHE-Checksum:\" field, that message might not be found by this command.
401The following \"procmail\" recipe avoids this problem by renaming the existing
402header field:
403
404 :0 wf
405 | formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\"
406
407The documentation for the following commands describe how to set up the
408various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands
409do not require additional configuration.
371 410
372 - `mh-swish++-execute-search' 411 - `mh-swish++-execute-search'
373 - `mh-swish-execute-search' 412 - `mh-swish-execute-search'
374 - `mh-mairix-execute-search' 413 - `mh-mairix-execute-search'
375 - `mh-namazu-execute-search' 414 - `mh-namazu-execute-search'
376
377If none of these programs are present then we use pick. If desired grep can be
378used instead. Details about these methods can be found in:
379
380 - `mh-pick-execute-search' 415 - `mh-pick-execute-search'
381 - `mh-grep-execute-search' 416 - `mh-grep-execute-search'
382 417
383This and related functions use an X-MHE-Checksum header to cache the MD5 418In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was
384checksum of a message. This means that already present X-MHE-Checksum headers 419generated by a index search, then the search is repeated. Otherwise, FOLDER is
385in the incoming email could result in messages not being found. The following 420searched with SEARCH-REGEXP and the results are presented in an MH-E folder.
386procmail recipe should avoid this: 421If FOLDER is \"+\" then mail in all folders are searched. Optional argument
387 422WINDOW-CONFIG stores the window configuration that will be restored after the
388 :0 wf 423user quits the folder containing the index search results."
389 | formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\"
390
391This has the effect of renaming already present X-MHE-Checksum headers."
392 (interactive 424 (interactive
393 (list current-prefix-arg 425 (list current-prefix-arg
394 (progn 426 (progn
@@ -998,8 +1030,8 @@ Unlike the other index search programs \"pick\" only searches messages present
998in the folder itself and does not descend into any sub-folders that may be 1030in the folder itself and does not descend into any sub-folders that may be
999present. 1031present.
1000 1032
1001FOLDER-PATH is the directory containing the mails to be searched and 1033In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
1002SEARCH-REGEXP is the pattern that pick gets." 1034to search."
1003 (set-buffer (get-buffer-create mh-index-temp-buffer)) 1035 (set-buffer (get-buffer-create mh-index-temp-buffer))
1004 (erase-buffer) 1036 (erase-buffer)
1005 (setq mh-index-pick-folder 1037 (setq mh-index-pick-folder
@@ -1029,7 +1061,13 @@ SEARCH-REGEXP is the pattern that pick gets."
1029 1061
1030(defun mh-grep-execute-search (folder-path search-regexp) 1062(defun mh-grep-execute-search (folder-path search-regexp)
1031 "Execute grep and read the results. 1063 "Execute grep and read the results.
1032FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." 1064
1065Unlike the other index search programs \"grep\" only searches messages present
1066in the folder itself and does not descend into any sub-folders that may be
1067present.
1068
1069In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
1070to search."
1033 (set-buffer (get-buffer-create mh-index-temp-buffer)) 1071 (set-buffer (get-buffer-create mh-index-temp-buffer))
1034 (erase-buffer) 1072 (erase-buffer)
1035 (call-process mh-grep-binary nil '(t nil) nil 1073 (call-process mh-grep-binary nil '(t nil) nil
@@ -1081,34 +1119,34 @@ other matches left then return nil. If the current record is invalid return
1081(defun mh-mairix-execute-search (folder-path search-regexp-list) 1119(defun mh-mairix-execute-search (folder-path search-regexp-list)
1082 "Execute mairix and read the results. 1120 "Execute mairix and read the results.
1083 1121
1084In the examples below replace /home/user/Mail with the path to your MH 1122In the examples below, replace \"/home/user/Mail\" with the path to your MH
1085directory. 1123directory.
1086 1124
1087First create the directory /home/user/Mail/.mairix. Then create the file 1125First create the directory \"/home/user/Mail/.mairix\". Then create the file
1088/home/user/Mail/.mairix/config with the following contents: 1126\"/home/user/Mail/.mairix/config\" with the following contents:
1089 1127
1090 # This should contain the same thing as your `mh-user-path' 1128 base=/home/user/Mail
1091 base=/home/user/Mail
1092 1129
1093 # List of folders that should be indexed. 3 dots at the end means there are 1130 # List of folders that should be indexed. 3 dots at the end means there
1094 # subfolders within the folder 1131 # are subfolders within the folder
1095 mh_folders=archive...:inbox:drafts:news:sent:trash 1132 mh=archive...:inbox:drafts:news:sent:trash
1096 1133
1097 vfolder_format=raw 1134 vfolder_format=raw
1098 database=/home/user/Mail/mairix/database 1135 database=/home/user/Mail/mairix/database
1099 1136
1100Use the following command line to generate the mairix index. Run this daily 1137Use the following command line to generate the mairix index. Run this daily
1101from cron: 1138from cron:
1102 1139
1103 mairix -f /home/user/Mail/.mairix/config 1140 mairix -f /home/user/Mail/.mairix/config
1104 1141
1105FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used to search." 1142In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used
1143to search."
1106 (set-buffer (get-buffer-create mh-index-temp-buffer)) 1144 (set-buffer (get-buffer-create mh-index-temp-buffer))
1107 (erase-buffer) 1145 (erase-buffer)
1108 (unless mh-mairix-binary 1146 (unless mh-mairix-binary
1109 (error "Set mh-mairix-binary appropriately")) 1147 (error "Set mh-mairix-binary appropriately"))
1110 (apply #'call-process mh-mairix-binary nil '(t nil) nil 1148 (apply #'call-process mh-mairix-binary nil '(t nil) nil
1111 "-f" (format "%s%s/config" mh-user-path mh-mairix-directory) 1149 "-r" "-f" (format "%s%s/config" mh-user-path mh-mairix-directory)
1112 search-regexp-list) 1150 search-regexp-list)
1113 (goto-char (point-min)) 1151 (goto-char (point-min))
1114 (setq mh-mairix-folder 1152 (setq mh-mairix-folder
@@ -1167,10 +1205,10 @@ REGEXP-LIST is an alist of fields and values."
1167 (let ((expr-list (cdr conjunct)) 1205 (let ((expr-list (cdr conjunct))
1168 (expr-string "")) 1206 (expr-string ""))
1169 (dolist (e expr-list) 1207 (dolist (e expr-list)
1170 (setq expr-string (concat expr-string "+" 1208 (setq expr-string (concat expr-string ","
1171 (if (atom e) "" "~") 1209 (if (atom e) "" "~")
1172 (if (atom e) e (cadr e))))) 1210 (if (atom e) e (cadr e)))))
1173 (setq final (concat final "," (substring expr-string 1))))) 1211 (setq final (concat final "/" (substring expr-string 1)))))
1174 (substring final 1))) 1212 (substring final 1)))
1175 result))) 1213 result)))
1176 result)) 1214 result))
@@ -1327,52 +1365,49 @@ space-separated list of FOLDERS, or nothing to search all folders."
1327(defun mh-swish-execute-search (folder-path search-regexp) 1365(defun mh-swish-execute-search (folder-path search-regexp)
1328 "Execute swish-e and read the results. 1366 "Execute swish-e and read the results.
1329 1367
1330In the examples below, replace /home/user/Mail with the path to your MH 1368In the examples below, replace \"/home/user/Mail\" with the path to your
1331directory. 1369MH directory.
1332 1370
1333First create the directory /home/user/Mail/.swish. Then create the file 1371First create the directory \"/home/user/Mail/.swish\". Then create the file
1334/home/user/Mail/.swish/config with the following contents: 1372\"/home/user/Mail/.swish/config\" with the following contents:
1335 1373
1336 IndexDir /home/user/Mail 1374 DefaultContents TXT*
1337 IndexFile /home/user/Mail/.swish/index 1375 IndexDir /home/user/Mail
1338 IndexName \"Mail Index\" 1376 IndexFile /home/user/Mail/.swish/index
1339 IndexDescription \"Mail Index\" 1377 IndexName \"Mail Index\"
1340 IndexPointer \"http://nowhere\" 1378 IndexDescription \"Mail Index\"
1341 IndexAdmin \"nobody\" 1379 IndexPointer \"http://nowhere\"
1342 #MetaNames automatic 1380 IndexAdmin \"nobody\"
1343 IndexReport 3 1381 #MetaNames automatic
1344 FollowSymLinks no 1382 IndexReport 3
1345 UseStemming no 1383 FollowSymLinks no
1346 IgnoreTotalWordCountWhenRanking yes 1384 UseStemming no
1347 WordCharacters abcdefghijklmnopqrstuvwxyz0123456789- 1385 IgnoreTotalWordCountWhenRanking yes
1348 BeginCharacters abcdefghijklmnopqrstuvwxyz 1386 WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
1349 EndCharacters abcdefghijklmnopqrstuvwxyz0123456789 1387 BeginCharacters abcdefghijklmnopqrstuvwxyz
1350 IgnoreLimit 50 1000 1388 EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
1351 IndexComments 0 1389 IgnoreLimit 50 1000
1352 FileRules pathname contains /home/user/Mail/.swish 1390 IndexComments 0
1353 FileRules pathname contains /home/user/Mail/mhe-index 1391 FileRules filename contains \\D
1354 FileRules filename is index 1392 FileRules pathname contains /home/user/Mail/.swish
1355 FileRules filename is \\..* 1393 FileRules pathname contains /home/user/Mail/mhe-index
1356 FileRules filename is #.* 1394
1357 FileRules filename is ,.* 1395This configuration does not index the folders that hold the results of your
1358 FileRules filename is .*~ 1396searches in \"+mhe-index\" since they tend to be ephemeral and the original
1397messages are indexed anyway.
1359 1398
1360If there are any directories you would like to ignore, append lines like the 1399If there are any directories you would like to ignore, append lines like the
1361following to config: 1400following to \"config\":
1362
1363 FileRules pathname contains /home/user/Mail/scripts
1364 1401
1365You do not want to index the folders that hold the results of your searches 1402 FileRules pathname contains /home/user/Mail/scripts
1366since they tend to be ephemeral and the original messages are indexed anyway.
1367The configuration file above assumes that the results are found in sub-folders
1368of `mh-index-folder' which is +mhe-index by default.
1369 1403
1370Use the following command line to generate the swish index. Run this 1404Use the following command line to generate the swish index. Run this daily
1371daily from cron: 1405from cron:
1372 1406
1373 swish-e -c /home/user/Mail/.swish/config 1407 swish-e -c /home/user/Mail/.swish/config
1374 1408
1375FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." 1409In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
1410search."
1376 (set-buffer (get-buffer-create mh-index-temp-buffer)) 1411 (set-buffer (get-buffer-create mh-index-temp-buffer))
1377 (erase-buffer) 1412 (erase-buffer)
1378 (unless mh-swish-binary 1413 (unless mh-swish-binary
@@ -1407,7 +1442,8 @@ FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
1407 (list (let* ((s (buffer-substring-no-properties start (1+ (point))))) 1442 (list (let* ((s (buffer-substring-no-properties start (1+ (point)))))
1408 (unless (string-match mh-swish-folder s) 1443 (unless (string-match mh-swish-folder s)
1409 (return 'error)) 1444 (return 'error))
1410 (if (string-match mh-user-path s) 1445 (if (and (string-match mh-user-path s)
1446 (< (match-end 0) (1- (length s))))
1411 (format "+%s" 1447 (format "+%s"
1412 (substring s (match-end 0) (1- (length s)))) 1448 (substring s (match-end 0) (1- (length s))))
1413 (return 'error))) 1449 (return 'error)))
@@ -1431,34 +1467,35 @@ FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
1431(defun mh-swish++-execute-search (folder-path search-regexp) 1467(defun mh-swish++-execute-search (folder-path search-regexp)
1432 "Execute swish++ and read the results. 1468 "Execute swish++ and read the results.
1433 1469
1434In the examples below, replace /home/user/Mail with the path to your MH 1470In the examples below, replace \"/home/user/Mail\" with the path to your MH
1435directory. 1471directory.
1436 1472
1437First create the directory /home/user/Mail/.swish++. Then create the file 1473First create the directory \"/home/user/Mail/.swish++\". Then create the file
1438/home/user/Mail/.swish++/swish++.conf with the following contents: 1474\"/home/user/Mail/.swish++/swish++.conf\" with the following contents:
1439 1475
1440 IncludeMeta Bcc Cc Comments Content-Description From Keywords 1476 IncludeMeta Bcc Cc Comments Content-Description From Keywords
1441 IncludeMeta Newsgroups Resent-To Subject To 1477 IncludeMeta Newsgroups Resent-To Subject To
1442 IncludeMeta Message-Id References In-Reply-To 1478 IncludeMeta Message-Id References In-Reply-To
1443 IncludeFile Mail * 1479 IncludeFile Mail *
1444 IndexFile /home/user/Mail/.swish++/swish++.index 1480 IndexFile /home/user/Mail/.swish++/swish++.index
1445 1481
1446Use the following command line to generate the swish index. Run this 1482Use the following command line to generate the swish index. Run this daily
1447daily from cron: 1483from cron:
1448 1484
1449 find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\ 1485 find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
1450 -o -path /home/user/Mail/.swish++ -prune \\ 1486 -o -path /home/user/Mail/.swish++ -prune \\
1451 -o -name \"[0-9]*\" -print \\ 1487 -o -name \"[0-9]*\" -print \\
1452 | index -c /home/user/Mail/.swish++/swish++.conf /home/user/Mail 1488 | index -c /home/user/Mail/.swish++/swish++.conf -
1453 1489
1454You do not want to index the folders that hold the results of your searches 1490This command does not index the folders that hold the results of your searches
1455since they tend to be ephemeral and the original messages are indexed anyway. 1491in \"+mhe-index\" since they tend to be ephemeral and the original messages
1456The command above assumes that the results are found in sub-folders of 1492are indexed anyway.
1457`mh-index-folder' which is +mhe-index by default.
1458 1493
1459On some systems (Debian GNU/Linux, for example), use index++ instead of index. 1494On some systems (Debian GNU/Linux, for example), use \"index++\" instead of
1495\"index\".
1460 1496
1461FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." 1497In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
1498search."
1462 (set-buffer (get-buffer-create mh-index-temp-buffer)) 1499 (set-buffer (get-buffer-create mh-index-temp-buffer))
1463 (erase-buffer) 1500 (erase-buffer)
1464 (unless mh-swish++-binary 1501 (unless mh-swish++-binary
@@ -1512,32 +1549,29 @@ REGEXP-LIST is an alist of fields and values."
1512(defun mh-namazu-execute-search (folder-path search-regexp) 1549(defun mh-namazu-execute-search (folder-path search-regexp)
1513 "Execute namazu and read the results. 1550 "Execute namazu and read the results.
1514 1551
1515In the examples below, replace /home/user/Mail with the path to your MH 1552In the examples below, replace \"/home/user/Mail\" with the path to your MH
1516directory. 1553directory.
1517 1554
1518First create the directory /home/user/Mail/.namazu. Then create the file 1555First create the directory \"/home/user/Mail/.namazu\". Then create the file
1519/home/user/Mail/.namazu/mknmzrc with the following contents: 1556\"/home/user/Mail/.namazu/mknmzrc\" with the following contents:
1520 1557
1521 package conf; # Don't remove this line! 1558 package conf; # Don't remove this line!
1522 $ADDRESS = 'user@localhost'; 1559 $ADDRESS = 'user@localhost';
1523 $ALLOW_FILE = \"[0-9]*\"; 1560 $ALLOW_FILE = \"[0-9]*\";
1524 $EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\"; 1561 $EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
1525 1562
1526In the above example configuration, none of the mail files contained in the 1563This configuration does not index the folders that hold the results of your
1527directories /home/user/Mail/mhe-index and /home/user/Mail/spam are indexed. 1564searches in \"+mhe-index\" since they tend to be ephemeral and the original
1565messages are indexed anyway.
1528 1566
1529You do not want to index the folders that hold the results of your searches 1567Use the following command line to generate the namazu index. Run this daily
1530since they tend to be ephemeral and the original messages are indexed anyway. 1568from cron:
1531The configuration file above assumes that the results are found in sub-folders
1532of `mh-index-folder' which is +mhe-index by default.
1533
1534Use the following command line to generate the namazu index. Run this
1535daily from cron:
1536 1569
1537 mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\ 1570 mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
1538 /home/user/Mail 1571 /home/user/Mail
1539 1572
1540FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." 1573In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
1574search."
1541 (let ((namazu-index-directory 1575 (let ((namazu-index-directory
1542 (format "%s%s" mh-user-path mh-namazu-directory))) 1576 (format "%s%s" mh-user-path mh-namazu-directory)))
1543 (unless (file-exists-p namazu-index-directory) 1577 (unless (file-exists-p namazu-index-directory)
diff --git a/lisp/mh-e/mh-init.el b/lisp/mh-e/mh-init.el
index b97e9fcde65..a975b882128 100644
--- a/lisp/mh-e/mh-init.el
+++ b/lisp/mh-e/mh-init.el
@@ -1,6 +1,6 @@
1;;; mh-init.el --- MH-E initialization. 1;;; mh-init.el --- MH-E initialization.
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 29005d47aa6..e66f49e3a55 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -1,6 +1,6 @@
1;;; mh-junk.el --- Interface to anti-spam measures 1;;; mh-junk.el --- Interface to anti-spam measures
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>, 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>,
6;; Bill Wohler <wohler@newt.com> 6;; Bill Wohler <wohler@newt.com>
@@ -191,8 +191,8 @@ done by adding the following to your crontab:
191 (message (format "Blacklisting message %d..." msg)) 191 (message (format "Blacklisting message %d..." msg))
192 (set-buffer (get-buffer-create mh-temp-buffer)) 192 (set-buffer (get-buffer-create mh-temp-buffer))
193 (erase-buffer) 193 (erase-buffer)
194 (call-process (expand-file-name mh-scan-prog mh-progs) mh-junk-background 194 (call-process (expand-file-name mh-scan-prog mh-progs)
195 t nil 195 nil mh-junk-background nil
196 (format "%s" msg) current-folder 196 (format "%s" msg) current-folder
197 "-format" "%<(mymbox{from})%|%(addr{from})%>") 197 "-format" "%<(mymbox{from})%|%(addr{from})%>")
198 (goto-char (point-min)) 198 (goto-char (point-min))
diff --git a/lisp/mh-e/mh-loaddefs.el b/lisp/mh-e/mh-loaddefs.el
index 4abe3b208ef..9accabede57 100644
--- a/lisp/mh-e/mh-loaddefs.el
+++ b/lisp/mh-e/mh-loaddefs.el
@@ -1,6 +1,6 @@
1;;; mh-loaddefs.el --- automatically extracted autoloads 1;;; mh-loaddefs.el --- automatically extracted autoloads
2;; 2;;
3;;; Copyright (C) 2005 Free Software Foundation, Inc. 3;;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
4;;; Author: Bill Wohler <wohler@newt.com> 4;;; Author: Bill Wohler <wohler@newt.com>
5;;; Keywords: mail 5;;; Keywords: mail
6;;; Commentary: 6;;; Commentary:
@@ -13,7 +13,7 @@
13;;;;;; mh-check-whom mh-insert-signature mh-to-fcc mh-to-field mh-fill-paragraph-function 13;;;;;; mh-check-whom mh-insert-signature mh-to-fcc mh-to-field mh-fill-paragraph-function
14;;;;;; mh-get-header-field mh-send-other-window mh-send mh-reply 14;;;;;; mh-get-header-field mh-send-other-window mh-send mh-reply
15;;;;;; mh-redistribute mh-forward mh-extract-rejected-mail mh-edit-again) 15;;;;;; mh-redistribute mh-forward mh-extract-rejected-mail mh-edit-again)
16;;;;;; "mh-comp" "mh-comp.el" (16665 53716)) 16;;;;;; "mh-comp" "mh-comp.el" (17048 51103))
17;;; Generated autoloads from mh-comp.el 17;;; Generated autoloads from mh-comp.el
18 18
19(autoload (quote mh-edit-again) "mh-comp" "\ 19(autoload (quote mh-edit-again) "mh-comp" "\
@@ -56,8 +56,10 @@ to reply to:
56 cc/all sender and all recipients. 56 cc/all sender and all recipients.
57If optional prefix argument INCLUDEP provided, then include the message 57If optional prefix argument INCLUDEP provided, then include the message
58in the reply using filter `mhl.reply' in your MH directory. 58in the reply using filter `mhl.reply' in your MH directory.
59If the file named by `mh-repl-formfile' exists, it is used as a skeleton 59If the file named by `mh-repl-formfile' exists, it is used as a skeleton for
60for the reply. 60the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU
61mailutils variants and the file names by `mh-repl-group-formfile' exists, it
62is used instead.
61 63
62See also `mh-send'." t nil) 64See also `mh-send'." t nil)
63 65
@@ -183,7 +185,7 @@ If we are at the first header field go to the start of the message body." t nil)
183;;;;;; mh-store-msg mh-undo-folder mh-sort-folder mh-page-digest-backwards 185;;;;;; mh-store-msg mh-undo-folder mh-sort-folder mh-page-digest-backwards
184;;;;;; mh-page-digest mh-pipe-msg mh-pack-folder mh-list-folders 186;;;;;; mh-page-digest mh-pipe-msg mh-pack-folder mh-list-folders
185;;;;;; mh-kill-folder mh-copy-msg mh-burst-digest) "mh-funcs" "mh-funcs.el" 187;;;;;; mh-kill-folder mh-copy-msg mh-burst-digest) "mh-funcs" "mh-funcs.el"
186;;;;;; (16671 48788)) 188;;;;;; (17048 47864))
187;;; Generated autoloads from mh-funcs.el 189;;; Generated autoloads from mh-funcs.el
188 190
189(autoload (quote mh-burst-digest) "mh-funcs" "\ 191(autoload (quote mh-burst-digest) "mh-funcs" "\
@@ -261,7 +263,7 @@ Display cheat sheet for the commands of the current prefix in minibuffer." t nil
261;;;;;; mh-identity-insert-attribution-verb mh-identity-handler-attribution-verb 263;;;;;; mh-identity-insert-attribution-verb mh-identity-handler-attribution-verb
262;;;;;; mh-identity-handler-signature mh-identity-handler-gpg-identity 264;;;;;; mh-identity-handler-signature mh-identity-handler-gpg-identity
263;;;;;; mh-insert-identity mh-identity-list-set mh-identity-make-menu) 265;;;;;; mh-insert-identity mh-identity-list-set mh-identity-make-menu)
264;;;;;; "mh-identity" "mh-identity.el" (16671 57010)) 266;;;;;; "mh-identity" "mh-identity.el" (17044 63778))
265;;; Generated autoloads from mh-identity.el 267;;; Generated autoloads from mh-identity.el
266 268
267(autoload (quote mh-identity-make-menu) "mh-identity" "\ 269(autoload (quote mh-identity-make-menu) "mh-identity" "\
@@ -271,43 +273,46 @@ change." nil nil)
271 273
272(autoload (quote mh-identity-list-set) "mh-identity" "\ 274(autoload (quote mh-identity-list-set) "mh-identity" "\
273Update the `mh-identity-list' variable, and rebuild the menu. 275Update the `mh-identity-list' variable, and rebuild the menu.
274Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in 276Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set
275customization). This is called after 'customize is used to alter 277in customization). This is called after 'customize is used to alter
276`mh-identity-list'." nil nil) 278`mh-identity-list'." nil nil)
277 279
278(autoload (quote mh-insert-identity) "mh-identity" "\ 280(autoload (quote mh-insert-identity) "mh-identity" "\
279Insert proper fields for given IDENTITY. 281Insert fields specified by given IDENTITY.
280Edit the `mh-identity-list' variable to define identity." t nil) 282See `mh-identity-list'." t nil)
281 283
282(autoload (quote mh-identity-handler-gpg-identity) "mh-identity" "\ 284(autoload (quote mh-identity-handler-gpg-identity) "mh-identity" "\
283For FIELD \"pgg-default-user-id\", process for ACTION 'remove or 'add. 285Process header FIELD \":pgg-default-user-id\".
286The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
284The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE 287The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE
285when action 'add is selected." nil nil) 288when action 'add is selected." nil nil)
286 289
287(autoload (quote mh-identity-handler-signature) "mh-identity" "\ 290(autoload (quote mh-identity-handler-signature) "mh-identity" "\
288For FIELD \"signature\", process headers for ACTION 'remove or 'add. 291Process header FIELD \":signature\".
289The VALUE is added." nil nil) 292The ACTION is one of 'remove or 'add. If 'add, the VALUE is added." nil nil)
290 293
291(autoload (quote mh-identity-handler-attribution-verb) "mh-identity" "\ 294(autoload (quote mh-identity-handler-attribution-verb) "mh-identity" "\
292For FIELD \"attribution_verb\", process headers for ACTION 'remove or 'add. 295Process header FIELD \":attribution-verb\".
293The VALUE is added." nil nil) 296The ACTION is one of 'remove or 'add. If 'add, the VALUE is added." nil nil)
294 297
295(autoload (quote mh-identity-insert-attribution-verb) "mh-identity" "\ 298(autoload (quote mh-identity-insert-attribution-verb) "mh-identity" "\
296Insert VALUE as attribution verb, setting up delimiting markers. 299Insert VALUE as attribution verb, setting up delimiting markers.
297If VALUE is nil, use `mh-extract-from-attribution-verb'." nil nil) 300If VALUE is nil, use `mh-extract-from-attribution-verb'." nil nil)
298 301
299(autoload (quote mh-identity-handler-top) "mh-identity" "\ 302(autoload (quote mh-identity-handler-top) "mh-identity" "\
300For FIELD, process mh-identity headers for ACTION 'remove or 'add. 303Process header FIELD.
301If the field wasn't present, the VALUE is added at the top of the header." nil nil) 304The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
305If the field wasn't present, it is added to the top of the header." nil nil)
302 306
303(autoload (quote mh-identity-handler-bottom) "mh-identity" "\ 307(autoload (quote mh-identity-handler-bottom) "mh-identity" "\
304For FIELD, process mh-identity headers for ACTION 'remove or 'add. 308Process header FIELD.
305If the field wasn't present, the VALUE is added at the bottom of the header." nil nil) 309The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
310If the field wasn't present, it is added to the bottom of the header." nil nil)
306 311
307;;;*** 312;;;***
308 313
309;;;### (autoloads (mh-inc-spool-list-set) "mh-inc" "mh-inc.el" (16671 314;;;### (autoloads (mh-inc-spool-list-set) "mh-inc" "mh-inc.el" (17048
310;;;;;; 48848)) 315;;;;;; 44143))
311;;; Generated autoloads from mh-inc.el 316;;; Generated autoloads from mh-inc.el
312 317
313(autoload (quote mh-inc-spool-list-set) "mh-inc" "\ 318(autoload (quote mh-inc-spool-list-set) "mh-inc" "\
@@ -326,7 +331,7 @@ This is called after 'customize is used to alter `mh-inc-spool-list'." nil nil)
326;;;;;; mh-index-parse-search-regexp mh-index-do-search mh-index-p 331;;;;;; mh-index-parse-search-regexp mh-index-do-search mh-index-p
327;;;;;; mh-index-read-data mh-index-search mh-index-create-sequences 332;;;;;; mh-index-read-data mh-index-search mh-index-create-sequences
328;;;;;; mh-create-sequence-map mh-index-update-maps) "mh-index" "mh-index.el" 333;;;;;; mh-create-sequence-map mh-index-update-maps) "mh-index" "mh-index.el"
329;;;;;; (16665 53754)) 334;;;;;; (17044 64025))
330;;; Generated autoloads from mh-index.el 335;;; Generated autoloads from mh-index.el
331 336
332(autoload (quote mh-index-update-maps) "mh-index" "\ 337(autoload (quote mh-index-update-maps) "mh-index" "\
@@ -346,43 +351,74 @@ Mirror sequences present in source folders in index folder." nil nil)
346 351
347(autoload (quote mh-index-search) "mh-index" "\ 352(autoload (quote mh-index-search) "mh-index" "\
348Perform an indexed search in an MH mail folder. 353Perform an indexed search in an MH mail folder.
349Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below. 354Use a prefix argument to repeat the search.
350 355
351If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a 356Unlike regular searches, the prompt for the folder to search can be `all' to
352index search, then the search is repeated. Otherwise, FOLDER is searched with 357search all folders; in addition, the search works recursively on the listed
353SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is 358folder. The search criteria are entered in an MH-Pick buffer as described in
354\"+\" then mail in all folders are searched. Optional argument WINDOW-CONFIG 359`mh-search-folder'.
355stores the window configuration that will be restored after the user quits the 360
356folder containing the index search results. 361To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another
357 362difference from the regular searches is that because the search operates on
358Four indexing programs are supported; if none of these are present, then grep 363more than one folder, the messages that are found are put in a temporary
359is used. This function picks the first program that is available on your 364sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This
360system. If you would prefer to use a different program, set the customization 365buffer is special because it displays messages from multiple folders; each set
361variable `mh-index-program' accordingly. 366of messages from a given folder has a heading with the folder name.
362 367
363The documentation for the following functions describes how to generate the 368In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can
364index for each program: 369be used to visit the folder of the message at point. Initially, only the
370messages that matched the search criteria are displayed in the folder. While
371the temporary buffer has its own set of message numbers, the actual messages
372numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder]
373command is useful to find the actual message number of an interesting message,
374or to view surrounding messages with the \\[mh-rescan-folder] command.
375
376Because this folder is temporary, you'll probably get in the habit of killing
377it when you're done with \\[mh-kill-folder].
378
379If you have run the \\[mh-search-folder] command, but change your mind while
380entering the search criteria and actually want to run an indexed search, then
381you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the
382MH-Pick buffer.
383
384The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined
385by the `mh-index-program' option. The default value is \"Auto-detect\" which
386means that MH-E will automatically choose one of \"swish++\", \"swish-e\",
387\"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example,
388you have both \"swish++\" and \"mairix\" installed and you want to use
389\"mairix\", then you can set this option to \"mairix\".
390
391 *NOTE*
392
393 The \"pick\" and \"grep\" commands do not perform a recursive search on
394 the given folder.
395
396This command uses an \"X-MHE-Checksum:\" header field to cache the MD5
397checksum of a message. This means that if an incoming message already contains
398an \"X-MHE-Checksum:\" field, that message might not be found by this command.
399The following \"procmail\" recipe avoids this problem by renaming the existing
400header field:
401
402 :0 wf
403 | formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\"
404
405The documentation for the following commands describe how to set up the
406various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands
407do not require additional configuration.
365 408
366 - `mh-swish++-execute-search' 409 - `mh-swish++-execute-search'
367 - `mh-swish-execute-search' 410 - `mh-swish-execute-search'
368 - `mh-mairix-execute-search' 411 - `mh-mairix-execute-search'
369 - `mh-namazu-execute-search' 412 - `mh-namazu-execute-search'
370
371If none of these programs are present then we use pick. If desired grep can be
372used instead. Details about these methods can be found in:
373
374 - `mh-pick-execute-search' 413 - `mh-pick-execute-search'
375 - `mh-grep-execute-search' 414 - `mh-grep-execute-search'
376 415
377This and related functions use an X-MHE-Checksum header to cache the MD5 416In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was
378checksum of a message. This means that already present X-MHE-Checksum headers 417generated by a index search, then the search is repeated. Otherwise, FOLDER is
379in the incoming email could result in messages not being found. The following 418searched with SEARCH-REGEXP and the results are presented in an MH-E folder.
380procmail recipe should avoid this: 419If FOLDER is \"+\" then mail in all folders are searched. Optional argument
381 420WINDOW-CONFIG stores the window configuration that will be restored after the
382 :0 wf 421user quits the folder containing the index search results." t nil)
383 | formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\"
384
385This has the effect of renaming already present X-MHE-Checksum headers." t nil)
386 422
387(autoload (quote mh-index-read-data) "mh-index" "\ 423(autoload (quote mh-index-read-data) "mh-index" "\
388Read index data from file." nil nil) 424Read index data from file." nil nil)
@@ -463,114 +499,109 @@ space-separated list of FOLDERS, or nothing to search all folders." t nil)
463(autoload (quote mh-swish-execute-search) "mh-index" "\ 499(autoload (quote mh-swish-execute-search) "mh-index" "\
464Execute swish-e and read the results. 500Execute swish-e and read the results.
465 501
466In the examples below, replace /home/user/Mail with the path to your MH 502In the examples below, replace \"/home/user/Mail\" with the path to your
467directory. 503MH directory.
468 504
469First create the directory /home/user/Mail/.swish. Then create the file 505First create the directory \"/home/user/Mail/.swish\". Then create the file
470/home/user/Mail/.swish/config with the following contents: 506\"/home/user/Mail/.swish/config\" with the following contents:
471 507
472 IndexDir /home/user/Mail 508 DefaultContents TXT*
473 IndexFile /home/user/Mail/.swish/index 509 IndexDir /home/user/Mail
474 IndexName \"Mail Index\" 510 IndexFile /home/user/Mail/.swish/index
475 IndexDescription \"Mail Index\" 511 IndexName \"Mail Index\"
476 IndexPointer \"http://nowhere\" 512 IndexDescription \"Mail Index\"
477 IndexAdmin \"nobody\" 513 IndexPointer \"http://nowhere\"
478 #MetaNames automatic 514 IndexAdmin \"nobody\"
479 IndexReport 3 515 #MetaNames automatic
480 FollowSymLinks no 516 IndexReport 3
481 UseStemming no 517 FollowSymLinks no
482 IgnoreTotalWordCountWhenRanking yes 518 UseStemming no
483 WordCharacters abcdefghijklmnopqrstuvwxyz0123456789- 519 IgnoreTotalWordCountWhenRanking yes
484 BeginCharacters abcdefghijklmnopqrstuvwxyz 520 WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
485 EndCharacters abcdefghijklmnopqrstuvwxyz0123456789 521 BeginCharacters abcdefghijklmnopqrstuvwxyz
486 IgnoreLimit 50 1000 522 EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
487 IndexComments 0 523 IgnoreLimit 50 1000
488 FileRules pathname contains /home/user/Mail/.swish 524 IndexComments 0
489 FileRules pathname contains /home/user/Mail/mhe-index 525 FileRules filename contains \\D
490 FileRules filename is index 526 FileRules pathname contains /home/user/Mail/.swish
491 FileRules filename is \\..* 527 FileRules pathname contains /home/user/Mail/mhe-index
492 FileRules filename is #.* 528
493 FileRules filename is ,.* 529This configuration does not index the folders that hold the results of your
494 FileRules filename is .*~ 530searches in \"+mhe-index\" since they tend to be ephemeral and the original
531messages are indexed anyway.
495 532
496If there are any directories you would like to ignore, append lines like the 533If there are any directories you would like to ignore, append lines like the
497following to config: 534following to \"config\":
498 535
499 FileRules pathname contains /home/user/Mail/scripts 536 FileRules pathname contains /home/user/Mail/scripts
500 537
501You do not want to index the folders that hold the results of your searches 538Use the following command line to generate the swish index. Run this daily
502since they tend to be ephemeral and the original messages are indexed anyway. 539from cron:
503The configuration file above assumes that the results are found in sub-folders
504of `mh-index-folder' which is +mhe-index by default.
505 540
506Use the following command line to generate the swish index. Run this 541 swish-e -c /home/user/Mail/.swish/config
507daily from cron:
508 542
509 swish-e -c /home/user/Mail/.swish/config 543In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
510 544search." nil nil)
511FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil)
512 545
513(autoload (quote mh-swish++-execute-search) "mh-index" "\ 546(autoload (quote mh-swish++-execute-search) "mh-index" "\
514Execute swish++ and read the results. 547Execute swish++ and read the results.
515 548
516In the examples below, replace /home/user/Mail with the path to your MH 549In the examples below, replace \"/home/user/Mail\" with the path to your MH
517directory. 550directory.
518 551
519First create the directory /home/user/Mail/.swish++. Then create the file 552First create the directory \"/home/user/Mail/.swish++\". Then create the file
520/home/user/Mail/.swish++/swish++.conf with the following contents: 553\"/home/user/Mail/.swish++/swish++.conf\" with the following contents:
521 554
522 IncludeMeta Bcc Cc Comments Content-Description From Keywords 555 IncludeMeta Bcc Cc Comments Content-Description From Keywords
523 IncludeMeta Newsgroups Resent-To Subject To 556 IncludeMeta Newsgroups Resent-To Subject To
524 IncludeMeta Message-Id References In-Reply-To 557 IncludeMeta Message-Id References In-Reply-To
525 IncludeFile Mail * 558 IncludeFile Mail *
526 IndexFile /home/user/Mail/.swish++/swish++.index 559 IndexFile /home/user/Mail/.swish++/swish++.index
527 560
528Use the following command line to generate the swish index. Run this 561Use the following command line to generate the swish index. Run this daily
529daily from cron: 562from cron:
530 563
531 find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\ 564 find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
532 -o -path /home/user/Mail/.swish++ -prune \\ 565 -o -path /home/user/Mail/.swish++ -prune \\
533 -o -name \"[0-9]*\" -print \\ 566 -o -name \"[0-9]*\" -print \\
534 | index -c /home/user/Mail/.swish++/swish++.conf /home/user/Mail 567 | index -c /home/user/Mail/.swish++/swish++.conf -
535 568
536You do not want to index the folders that hold the results of your searches 569This command does not index the folders that hold the results of your searches
537since they tend to be ephemeral and the original messages are indexed anyway. 570in \"+mhe-index\" since they tend to be ephemeral and the original messages
538The command above assumes that the results are found in sub-folders of 571are indexed anyway.
539`mh-index-folder' which is +mhe-index by default.
540 572
541On some systems (Debian GNU/Linux, for example), use index++ instead of index. 573On some systems (Debian GNU/Linux, for example), use \"index++\" instead of
574\"index\".
542 575
543FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil) 576In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
577search." nil nil)
544 578
545(autoload (quote mh-namazu-execute-search) "mh-index" "\ 579(autoload (quote mh-namazu-execute-search) "mh-index" "\
546Execute namazu and read the results. 580Execute namazu and read the results.
547 581
548In the examples below, replace /home/user/Mail with the path to your MH 582In the examples below, replace \"/home/user/Mail\" with the path to your MH
549directory. 583directory.
550 584
551First create the directory /home/user/Mail/.namazu. Then create the file 585First create the directory \"/home/user/Mail/.namazu\". Then create the file
552/home/user/Mail/.namazu/mknmzrc with the following contents: 586\"/home/user/Mail/.namazu/mknmzrc\" with the following contents:
553
554 package conf; # Don't remove this line!
555 $ADDRESS = 'user@localhost';
556 $ALLOW_FILE = \"[0-9]*\";
557 $EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
558 587
559In the above example configuration, none of the mail files contained in the 588 package conf; # Don't remove this line!
560directories /home/user/Mail/mhe-index and /home/user/Mail/spam are indexed. 589 $ADDRESS = 'user@localhost';
590 $ALLOW_FILE = \"[0-9]*\";
591 $EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
561 592
562You do not want to index the folders that hold the results of your searches 593This configuration does not index the folders that hold the results of your
563since they tend to be ephemeral and the original messages are indexed anyway. 594searches in \"+mhe-index\" since they tend to be ephemeral and the original
564The configuration file above assumes that the results are found in sub-folders 595messages are indexed anyway.
565of `mh-index-folder' which is +mhe-index by default.
566 596
567Use the following command line to generate the namazu index. Run this 597Use the following command line to generate the namazu index. Run this daily
568daily from cron: 598from cron:
569 599
570 mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\ 600 mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
571 /home/user/Mail 601 /home/user/Mail
572 602
573FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil) 603In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
604search." nil nil)
574 605
575(autoload (quote mh-index-choose) "mh-index" "\ 606(autoload (quote mh-index-choose) "mh-index" "\
576Choose an indexing function. 607Choose an indexing function.
@@ -582,7 +613,7 @@ system." nil nil)
582;;;*** 613;;;***
583 614
584;;;### (autoloads (mh-variants mh-variant-p mh-variant-set) "mh-init" 615;;;### (autoloads (mh-variants mh-variant-p mh-variant-set) "mh-init"
585;;;;;; "mh-init.el" (16684 6777)) 616;;;;;; "mh-init.el" (17044 64253))
586;;; Generated autoloads from mh-init.el 617;;; Generated autoloads from mh-init.el
587 618
588(autoload (quote mh-variant-set) "mh-init" "\ 619(autoload (quote mh-variant-set) "mh-init" "\
@@ -604,7 +635,7 @@ by the variable `mh-variants'." nil nil)
604;;;*** 635;;;***
605 636
606;;;### (autoloads (mh-junk-whitelist mh-junk-blacklist) "mh-junk" 637;;;### (autoloads (mh-junk-whitelist mh-junk-blacklist) "mh-junk"
607;;;;;; "mh-junk.el" (16671 48929)) 638;;;;;; "mh-junk.el" (17044 64253))
608;;; Generated autoloads from mh-junk.el 639;;; Generated autoloads from mh-junk.el
609 640
610(autoload (quote mh-junk-blacklist) "mh-junk" "\ 641(autoload (quote mh-junk-blacklist) "mh-junk" "\
@@ -644,7 +675,7 @@ The `mh-junk-program' option specifies the spam program in use." t nil)
644;;;;;; mh-mhn-compose-external-compressed-tar mh-mhn-compose-anon-ftp 675;;;;;; mh-mhn-compose-external-compressed-tar mh-mhn-compose-anon-ftp
645;;;;;; mh-mhn-compose-insertion mh-file-mime-type mh-have-file-command 676;;;;;; mh-mhn-compose-insertion mh-file-mime-type mh-have-file-command
646;;;;;; mh-compose-forward mh-compose-insertion) "mh-mime" "mh-mime.el" 677;;;;;; mh-compose-forward mh-compose-insertion) "mh-mime" "mh-mime.el"
647;;;;;; (16684 7323)) 678;;;;;; (17048 47895))
648;;; Generated autoloads from mh-mime.el 679;;; Generated autoloads from mh-mime.el
649 680
650(autoload (quote mh-compose-insertion) "mh-mime" "\ 681(autoload (quote mh-compose-insertion) "mh-mime" "\
@@ -857,15 +888,79 @@ View MIME PART-INDEX externally." t nil)
857;;;*** 888;;;***
858 889
859;;;### (autoloads (mh-do-search mh-pick-do-search mh-search-folder) 890;;;### (autoloads (mh-do-search mh-pick-do-search mh-search-folder)
860;;;;;; "mh-pick" "mh-pick.el" (16671 49140)) 891;;;;;; "mh-pick" "mh-pick.el" (17048 47905))
861;;; Generated autoloads from mh-pick.el 892;;; Generated autoloads from mh-pick.el
862 893
863(autoload (quote mh-search-folder) "mh-pick" "\ 894(autoload (quote mh-search-folder) "mh-pick" "\
864Search FOLDER for messages matching a pattern. 895Search FOLDER for messages matching a pattern.
865This function uses the MH command `pick' to do the work. 896
866Add the messages found to the sequence named `search'. 897With this command, you can search a folder for messages to or from a
867Argument WINDOW-CONFIG is the current window configuration and is used when 898particular person or about a particular subject. In fact, you can also search
868the search folder is dismissed." t nil) 899for messages containing selected strings in any arbitrary header field or any
900string found within the messages.
901
902You are first prompted for the name of the folder to search and then placed in
903the following buffer in MH-Pick mode:
904
905 From:
906 To:
907 Cc:
908 Date:
909 Subject:
910 --------
911
912Edit this template by entering your search criteria in an appropriate header
913field that is already there, or create a new field yourself. If the string
914you're looking for could be anywhere in a message, then place the string
915underneath the row of dashes. The \\[mh-search-folder] command uses the MH
916command \"pick\" to do the real work.
917
918There are no semantics associated with the search criteria--they are simply
919treated as strings. Case is ignored when all lowercase is used, and regular
920expressions (a la \"ed\") are available. It is all right to specify several
921search criteria. What happens then is that a logical _and_ of the various
922fields is performed. If you prefer a logical _or_ operation, run
923\\[mh-search-folder] multiple times.
924
925As an example, let's say that we want to find messages from Ginnean about
926horseback riding in the Kosciusko National Park (Australia) during January,
9271994. Normally we would start with a broad search and narrow it down if
928necessary to produce a manageable amount of data, but we'll cut to the chase
929and create a fairly restrictive set of criteria as follows:
930
931 From: ginnean
932 To:
933 Cc:
934 Date: Jan 1994
935 Subject: horse.*kosciusko
936 --------
937
938As with MH-Letter mode, MH-Pick provides commands like
939\\<mh-pick-mode-map>\\[mh-to-field] to help you fill in the blanks.
940
941To perform the search, type \\[mh-do-search]. The selected messages are placed
942in the \"search\" sequence, which you can use later in forwarding, printing,
943or narrowing your field of view. Subsequent searches are appended to the
944\"search\" sequence. If, however, you wish to start with a clean slate, first
945delete the \"search\" sequence.
946
947If you're searching in a folder that is already displayed in an MH-Folder
948buffer, only those messages contained in the buffer are used for the search.
949Therefore, if you want to search in all messages, first kill the folder's
950buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder
951with \\[mh-rescan-folder].
952
953If you find that you do the same thing over and over when editing the search
954template, you may wish to bind some shortcuts to keys. This can be done with
955the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is
956run on a new pattern.
957
958If you have run the \\[mh-index-search] command, but change your mind while
959entering the search criteria and actually want to run a regular search, then
960you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command.
961
962In a program, argument WINDOW-CONFIG is the current window configuration and
963is used when the search folder is dismissed." t nil)
869 964
870(autoload (quote mh-pick-do-search) "mh-pick" "\ 965(autoload (quote mh-pick-do-search) "mh-pick" "\
871Find messages that match the qualifications in the current pattern buffer. 966Find messages that match the qualifications in the current pattern buffer.
@@ -882,7 +977,7 @@ indexing program specified in `mh-index-program' is used." t nil)
882 977
883;;;### (autoloads (mh-print-msg mh-ps-print-toggle-mime mh-ps-print-toggle-color 978;;;### (autoloads (mh-print-msg mh-ps-print-toggle-mime mh-ps-print-toggle-color
884;;;;;; mh-ps-print-toggle-faces mh-ps-print-msg-show mh-ps-print-msg-file 979;;;;;; mh-ps-print-toggle-faces mh-ps-print-msg-show mh-ps-print-msg-file
885;;;;;; mh-ps-print-msg) "mh-print" "mh-print.el" (16680 11171)) 980;;;;;; mh-ps-print-msg) "mh-print" "mh-print.el" (17044 64253))
886;;; Generated autoloads from mh-print.el 981;;; Generated autoloads from mh-print.el
887 982
888(autoload (quote mh-ps-print-msg) "mh-print" "\ 983(autoload (quote mh-ps-print-msg) "mh-print" "\
@@ -935,7 +1030,7 @@ The messages are formatted by mhl. See the variable `mhl-formfile'." t nil)
935;;;;;; mh-rename-seq mh-translate-range mh-read-range mh-read-seq-default 1030;;;;;; mh-rename-seq mh-translate-range mh-read-range mh-read-seq-default
936;;;;;; mh-notate-deleted-and-refiled mh-widen mh-put-msg-in-seq 1031;;;;;; mh-notate-deleted-and-refiled mh-widen mh-put-msg-in-seq
937;;;;;; mh-narrow-to-seq mh-msg-is-in-seq mh-list-sequences mh-delete-seq) 1032;;;;;; mh-narrow-to-seq mh-msg-is-in-seq mh-list-sequences mh-delete-seq)
938;;;;;; "mh-seq" "mh-seq.el" (16671 65286)) 1033;;;;;; "mh-seq" "mh-seq.el" (17048 47921))
939;;; Generated autoloads from mh-seq.el 1034;;; Generated autoloads from mh-seq.el
940 1035
941(autoload (quote mh-delete-seq) "mh-seq" "\ 1036(autoload (quote mh-delete-seq) "mh-seq" "\
@@ -1157,7 +1252,7 @@ Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command." t nil)
1157 1252
1158;;;### (autoloads (mh-speed-add-folder mh-speed-invalidate-map mh-speed-flists 1253;;;### (autoloads (mh-speed-add-folder mh-speed-invalidate-map mh-speed-flists
1159;;;;;; mh-speed-view mh-speed-toggle mh-folder-speedbar-buttons) 1254;;;;;; mh-speed-view mh-speed-toggle mh-folder-speedbar-buttons)
1160;;;;;; "mh-speed" "mh-speed.el" (16665 53793)) 1255;;;;;; "mh-speed" "mh-speed.el" (17044 64253))
1161;;; Generated autoloads from mh-speed.el 1256;;; Generated autoloads from mh-speed.el
1162 1257
1163(autoload (quote mh-folder-speedbar-buttons) "mh-speed" "\ 1258(autoload (quote mh-folder-speedbar-buttons) "mh-speed" "\
@@ -1196,7 +1291,7 @@ The function invalidates the latest ancestor that is present." nil nil)
1196;;;;;; mh-alias-grab-from-field mh-alias-add-alias mh-alias-for-from-p 1291;;;;;; mh-alias-grab-from-field mh-alias-add-alias mh-alias-for-from-p
1197;;;;;; mh-alias-address-to-alias mh-alias-letter-expand-alias mh-alias-minibuffer-confirm-address 1292;;;;;; mh-alias-address-to-alias mh-alias-letter-expand-alias mh-alias-minibuffer-confirm-address
1198;;;;;; mh-read-address mh-alias-reload-maybe mh-alias-reload) "mh-alias" 1293;;;;;; mh-read-address mh-alias-reload-maybe mh-alias-reload) "mh-alias"
1199;;;;;; "mh-alias.el" (16671 49382)) 1294;;;;;; "mh-alias.el" (17048 47789))
1200;;; Generated autoloads from mh-alias.el 1295;;; Generated autoloads from mh-alias.el
1201 1296
1202(autoload (quote mh-alias-reload) "mh-alias" "\ 1297(autoload (quote mh-alias-reload) "mh-alias" "\
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index d286069ba4b..dcd8f67a0f3 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1,6 +1,7 @@
1;;; mh-mime.el --- MH-E support for composing MIME messages 1;;; mh-mime.el --- MH-E support for composing MIME messages
2 2
3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -1325,6 +1326,18 @@ Parameter EL is unused."
1325 (point-max))) 1326 (point-max)))
1326 (forward-line -1))))) 1327 (forward-line -1)))))
1327 1328
1329(defun mh-mime-security-button-face (info)
1330 "Return the button face to use for encrypted/signed mail based on INFO."
1331 (cond ((string-match "OK" info) ;Decrypted mail
1332 mh-show-pgg-good-face)
1333 ((string-match "Failed" info) ;Decryption failed or signature invalid
1334 mh-show-pgg-bad-face)
1335 ((string-match "Undecided" info);Unprocessed mail
1336 mh-show-pgg-unknown-face)
1337 ((string-match "Untrusted" info);Key not trusted
1338 mh-show-pgg-unknown-face)
1339 (t mh-show-pgg-good-face)))
1340
1328(defun mh-mime-security-press-button (handle) 1341(defun mh-mime-security-press-button (handle)
1329 "Callback from security button for part HANDLE." 1342 "Callback from security button for part HANDLE."
1330 (if (mm-handle-multipart-ctl-parameter handle 'gnus-info) 1343 (if (mm-handle-multipart-ctl-parameter handle 'gnus-info)
@@ -1364,9 +1377,10 @@ Parameter EL is unused."
1364 (info (or (mm-handle-multipart-ctl-parameter handle 'gnus-info) 1377 (info (or (mm-handle-multipart-ctl-parameter handle 'gnus-info)
1365 "Undecided")) 1378 "Undecided"))
1366 (details (mm-handle-multipart-ctl-parameter handle 'gnus-details)) 1379 (details (mm-handle-multipart-ctl-parameter handle 'gnus-details))
1367 pressed-details begin end) 1380 pressed-details begin end face)
1368 (setq details (if details (concat "\n" details) "")) 1381 (setq details (if details (concat "\n" details) ""))
1369 (setq pressed-details (if mh-mime-security-button-pressed details "")) 1382 (setq pressed-details (if mh-mime-security-button-pressed details ""))
1383 (setq face (mh-mime-security-button-face info))
1370 (unless (bolp) (insert "\n")) 1384 (unless (bolp) (insert "\n"))
1371 (setq begin (point)) 1385 (setq begin (point))
1372 (gnus-eval-format 1386 (gnus-eval-format
@@ -1382,6 +1396,7 @@ Parameter EL is unused."
1382 :mime-handle handle 1396 :mime-handle handle
1383 :action 'mh-widget-press-button 1397 :action 'mh-widget-press-button
1384 :button-keymap mh-mime-security-button-map 1398 :button-keymap mh-mime-security-button-map
1399 :button-face face
1385 :help-echo "Mouse-2 click or press RET (in show buffer) to see security details.") 1400 :help-echo "Mouse-2 click or press RET (in show buffer) to see security details.")
1386 (dolist (ov (mh-funcall-if-exists overlays-in begin end)) 1401 (dolist (ov (mh-funcall-if-exists overlays-in begin end))
1387 (mh-funcall-if-exists overlay-put ov 'evaporate t)) 1402 (mh-funcall-if-exists overlay-put ov 'evaporate t))
diff --git a/lisp/mh-e/mh-pick.el b/lisp/mh-e/mh-pick.el
index f15bef7ec4d..5c31fb167cb 100644
--- a/lisp/mh-e/mh-pick.el
+++ b/lisp/mh-e/mh-pick.el
@@ -1,6 +1,7 @@
1;;; mh-pick.el --- make a search pattern and search for a message in MH-E 1;;; mh-pick.el --- make a search pattern and search for a message in MH-E
2 2
3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995,
4;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -52,10 +53,74 @@
52;;;###mh-autoload 53;;;###mh-autoload
53(defun mh-search-folder (folder window-config) 54(defun mh-search-folder (folder window-config)
54 "Search FOLDER for messages matching a pattern. 55 "Search FOLDER for messages matching a pattern.
55This function uses the MH command `pick' to do the work. 56
56Add the messages found to the sequence named `search'. 57With this command, you can search a folder for messages to or from a
57Argument WINDOW-CONFIG is the current window configuration and is used when 58particular person or about a particular subject. In fact, you can also search
58the search folder is dismissed." 59for messages containing selected strings in any arbitrary header field or any
60string found within the messages.
61
62You are first prompted for the name of the folder to search and then placed in
63the following buffer in MH-Pick mode:
64
65 From:
66 To:
67 Cc:
68 Date:
69 Subject:
70 --------
71
72Edit this template by entering your search criteria in an appropriate header
73field that is already there, or create a new field yourself. If the string
74you're looking for could be anywhere in a message, then place the string
75underneath the row of dashes. The \\[mh-search-folder] command uses the MH
76command \"pick\" to do the real work.
77
78There are no semantics associated with the search criteria--they are simply
79treated as strings. Case is ignored when all lowercase is used, and regular
80expressions (a la \"ed\") are available. It is all right to specify several
81search criteria. What happens then is that a logical _and_ of the various
82fields is performed. If you prefer a logical _or_ operation, run
83\\[mh-search-folder] multiple times.
84
85As an example, let's say that we want to find messages from Ginnean about
86horseback riding in the Kosciusko National Park (Australia) during January,
871994. Normally we would start with a broad search and narrow it down if
88necessary to produce a manageable amount of data, but we'll cut to the chase
89and create a fairly restrictive set of criteria as follows:
90
91 From: ginnean
92 To:
93 Cc:
94 Date: Jan 1994
95 Subject: horse.*kosciusko
96 --------
97
98As with MH-Letter mode, MH-Pick provides commands like
99\\<mh-pick-mode-map>\\[mh-to-field] to help you fill in the blanks.
100
101To perform the search, type \\[mh-do-search]. The selected messages are placed
102in the \"search\" sequence, which you can use later in forwarding, printing,
103or narrowing your field of view. Subsequent searches are appended to the
104\"search\" sequence. If, however, you wish to start with a clean slate, first
105delete the \"search\" sequence.
106
107If you're searching in a folder that is already displayed in an MH-Folder
108buffer, only those messages contained in the buffer are used for the search.
109Therefore, if you want to search in all messages, first kill the folder's
110buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder
111with \\[mh-rescan-folder].
112
113If you find that you do the same thing over and over when editing the search
114template, you may wish to bind some shortcuts to keys. This can be done with
115the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is
116run on a new pattern.
117
118If you have run the \\[mh-index-search] command, but change your mind while
119entering the search criteria and actually want to run a regular search, then
120you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command.
121
122In a program, argument WINDOW-CONFIG is the current window configuration and
123is used when the search folder is dismissed."
59 (interactive (list (mh-prompt-for-folder "Search" mh-current-folder nil nil t) 124 (interactive (list (mh-prompt-for-folder "Search" mh-current-folder nil nil t)
60 (current-window-configuration))) 125 (current-window-configuration)))
61 (let ((pick-folder (if (equal folder "+") mh-current-folder folder))) 126 (let ((pick-folder (if (equal folder "+") mh-current-folder folder)))
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el
index 9a7df0b8fd4..7539e455919 100644
--- a/lisp/mh-e/mh-print.el
+++ b/lisp/mh-e/mh-print.el
@@ -1,6 +1,6 @@
1;;; mh-print.el --- MH-E printing support 1;;; mh-print.el --- MH-E printing support
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Jeffrey C Honig <jch@honig.net> 5;; Author: Jeffrey C Honig <jch@honig.net>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index d09e9805682..e618e6f41b3 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -1,6 +1,7 @@
1;;; mh-seq.el --- MH-E sequences support 1;;; mh-seq.el --- MH-E sequences support
2 2
3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -195,7 +196,7 @@ redone to get the new thread tree. This makes incremental threading easier.")
195 (insert "\n")) 196 (insert "\n"))
196 (setq seq-list (cdr seq-list))) 197 (setq seq-list (cdr seq-list)))
197 (goto-char (point-min)) 198 (goto-char (point-min))
198 (view-mode 1) 199 (view-mode-enter)
199 (setq view-exit-action 'kill-buffer) 200 (setq view-exit-action 'kill-buffer)
200 (message "Listing sequences...done"))))) 201 (message "Listing sequences...done")))))
201 202
@@ -788,10 +789,33 @@ This function can only be used the folder is threaded."
788If no prefix arg is given, then return DEFAULT." 789If no prefix arg is given, then return DEFAULT."
789 (let ((default-string (loop for x in default concat (format " %s" x)))) 790 (let ((default-string (loop for x in default concat (format " %s" x))))
790 (if (or current-prefix-arg (equal default-string "")) 791 (if (or current-prefix-arg (equal default-string ""))
791 (delete "" (split-string (read-string "Pick expression: " 792 (mh-pick-args-list (read-string "Pick expression: "
792 default-string))) 793 default-string))
793 default))) 794 default)))
794 795
796(defun mh-pick-args-list (s)
797 "Form list by grouping elements in string S suitable for pick arguments.
798For example, the string \"-subject a b c -from Joe User <user@domain.com>\"
799is converted to (\"-subject\" \"a b c\" \"-from\"
800\"Joe User <user@domain.com>\""
801 (let ((full-list (split-string s))
802 current-arg collection arg-list)
803 (while full-list
804 (setq current-arg (car full-list))
805 (if (null (string-match "^-" current-arg))
806 (setq collection
807 (if (null collection)
808 current-arg
809 (format "%s %s" collection current-arg)))
810 (when collection
811 (setq arg-list (append arg-list (list collection)))
812 (setq collection nil))
813 (setq arg-list (append arg-list (list current-arg))))
814 (setq full-list (cdr full-list)))
815 (when collection
816 (setq arg-list (append arg-list (list collection))))
817 arg-list))
818
795;;;###mh-autoload 819;;;###mh-autoload
796(defun mh-narrow-to-subject (&optional pick-expr) 820(defun mh-narrow-to-subject (&optional pick-expr)
797 "Limit to messages with same subject. 821 "Limit to messages with same subject.
@@ -1315,6 +1339,7 @@ All messages after START-POINT are added to the thread tree."
1315 (old-buffer-modified-flag (buffer-modified-p))) 1339 (old-buffer-modified-flag (buffer-modified-p)))
1316 (delete-region (point-min) (point-max)) 1340 (delete-region (point-min) (point-max))
1317 (mh-thread-print-scan-lines thread-tree) 1341 (mh-thread-print-scan-lines thread-tree)
1342 (mh-notate-user-sequences)
1318 (mh-notate-deleted-and-refiled) 1343 (mh-notate-deleted-and-refiled)
1319 (mh-notate-cur) 1344 (mh-notate-cur)
1320 (set-buffer-modified-p old-buffer-modified-flag)))) 1345 (set-buffer-modified-p old-buffer-modified-flag))))
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el
index a20e6e0a410..2617a941de1 100644
--- a/lisp/mh-e/mh-speed.el
+++ b/lisp/mh-e/mh-speed.el
@@ -1,6 +1,6 @@
1;;; mh-speed.el --- Speedbar interface for MH-E. 1;;; mh-speed.el --- Speedbar interface for MH-E.
2 2
3;; Copyright (C) 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 16ae64b1549..d371087cc6d 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -1,6 +1,7 @@
1;;; mh-utils.el --- MH-E code needed for both sending and reading 1;;; mh-utils.el --- MH-E code needed for both sending and reading
2 2
3;; Copyright (C) 1993, 95, 1997, 2000, 01, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995, 1997,
4;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 5
5;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -703,8 +704,8 @@ not pointing to a message."
703 (save-excursion 704 (save-excursion
704 (beginning-of-line) 705 (beginning-of-line)
705 (cond ((looking-at mh-scan-msg-number-regexp) 706 (cond ((looking-at mh-scan-msg-number-regexp)
706 (string-to-int (buffer-substring (match-beginning 1) 707 (string-to-number (buffer-substring (match-beginning 1)
707 (match-end 1)))) 708 (match-end 1))))
708 (error-if-no-message 709 (error-if-no-message
709 (error "Cursor not pointing to message")) 710 (error "Cursor not pointing to message"))
710 (t nil)))) 711 (t nil))))
@@ -1672,7 +1673,8 @@ The message is displayed in raw form."
1672 "Decode >From at beginning of lines for `mh-show-mode'." 1673 "Decode >From at beginning of lines for `mh-show-mode'."
1673 (save-excursion 1674 (save-excursion
1674 (let ((modified (buffer-modified-p)) 1675 (let ((modified (buffer-modified-p))
1675 (case-fold-search nil)) 1676 (case-fold-search nil)
1677 (buffer-read-only nil))
1676 (goto-char (mh-mail-header-end)) 1678 (goto-char (mh-mail-header-end))
1677 (while (re-search-forward "^>From" nil t) 1679 (while (re-search-forward "^>From" nil t)
1678 (replace-match "From")) 1680 (replace-match "From"))