diff options
| author | Bill Wohler | 2005-05-28 22:04:54 +0000 |
|---|---|---|
| committer | Bill Wohler | 2005-05-28 22:04:54 +0000 |
| commit | e495eaec9cfa70e8a392e822dad178bd86f7f9cc (patch) | |
| tree | 5ca85c795be15c332c2b947d5579469ed6554e9f | |
| parent | b5352ff5ec4f313dc5e4035041fbae2d21029281 (diff) | |
| download | emacs-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/ChangeLog | 4 | ||||
| -rw-r--r-- | etc/MH-E-NEWS | 88 | ||||
| -rw-r--r-- | etc/NEWS | 2 | ||||
| -rw-r--r-- | lisp/mh-e/ChangeLog | 363 | ||||
| -rw-r--r-- | lisp/mh-e/mh-acros.el | 8 | ||||
| -rw-r--r-- | lisp/mh-e/mh-alias.el | 11 | ||||
| -rw-r--r-- | lisp/mh-e/mh-comp.el | 23 | ||||
| -rw-r--r-- | lisp/mh-e/mh-customize.el | 409 | ||||
| -rw-r--r-- | lisp/mh-e/mh-e.el | 69 | ||||
| -rw-r--r-- | lisp/mh-e/mh-funcs.el | 7 | ||||
| -rw-r--r-- | lisp/mh-e/mh-gnus.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-identity.el | 46 | ||||
| -rw-r--r-- | lisp/mh-e/mh-inc.el | 12 | ||||
| -rw-r--r-- | lisp/mh-e/mh-index.el | 290 | ||||
| -rw-r--r-- | lisp/mh-e/mh-init.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-junk.el | 6 | ||||
| -rw-r--r-- | lisp/mh-e/mh-loaddefs.el | 379 | ||||
| -rw-r--r-- | lisp/mh-e/mh-mime.el | 19 | ||||
| -rw-r--r-- | lisp/mh-e/mh-pick.el | 75 | ||||
| -rw-r--r-- | lisp/mh-e/mh-print.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-seq.el | 33 | ||||
| -rw-r--r-- | lisp/mh-e/mh-speed.el | 2 | ||||
| -rw-r--r-- | lisp/mh-e/mh-utils.el | 10 |
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 @@ | |||
| 1 | 2005-05-28 Bill Wohler <wohler@newt.com> | ||
| 2 | |||
| 3 | * NEWS, MH-E-NEWS: Upgraded to MH-E version 7.84. | ||
| 4 | |||
| 1 | 2005-05-19 Nick Roberts <nickrob@snap.net.nz> | 5 | 2005-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 | ||
| 3 | Copyright (C) 2003, 2004 Free Software Foundation, Inc. | 3 | Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | Copying and distribution of this file, with or without modification, | 5 | Copying and distribution of this file, with or without modification, |
| 6 | are permitted in any medium without royalty provided the copyright | 6 | are permitted in any medium without royalty provided the copyright |
| 7 | notice and this notice are preserved. | 7 | notice and this notice are preserved. |
| 8 | 8 | ||
| 9 | * Changes in MH-E 7.84 | ||
| 10 | |||
| 11 | Version 7.84 contains no user-visible changes. This version | ||
| 12 | incorporates changes made in CVS Emacs such as the removal of some | ||
| 13 | deprecated software. | ||
| 14 | |||
| 15 | * Changes in MH-E 7.83 | ||
| 16 | |||
| 17 | Version 7.83 fixes a handful of bugs, adds colors to buttons for | ||
| 18 | signed or encrypted messages, and contains some documentation changes | ||
| 19 | related to the upcoming release of the manual. Some options were moved | ||
| 20 | to other customization groups as a result. | ||
| 21 | |||
| 22 | While not related to this release, the MH-E mailing lists are now | ||
| 23 | gatewayed at gmane.org (closes SF #979308). | ||
| 24 | |||
| 25 | ** New Variables in MH-E 7.83 | ||
| 26 | |||
| 27 | *** mh-show-pgg-bad-face | ||
| 28 | |||
| 29 | Face used to highlight a bad PGG signature. | ||
| 30 | |||
| 31 | *** mh-show-pgg-good-face | ||
| 32 | |||
| 33 | Face used to highlight a good PGG signature. | ||
| 34 | |||
| 35 | *** mh-show-pgg-unknown-face | ||
| 36 | |||
| 37 | Face used to highlight a PGG signature whose status is unknown. This | ||
| 38 | face 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 | |||
| 44 | The "C-u / s RET" command now works. In addition, you can now add | ||
| 45 | whitespace to any of the limiting (/) commands (closes SF #1122655). | ||
| 46 | |||
| 47 | *** auto-mode-alist Updated | ||
| 48 | |||
| 49 | MH-E originally updated auto-mode-alist to set the major mode of | ||
| 50 | drafts. Now that we explicitly set the mode, there is no reason to do | ||
| 51 | this, and this behavior caused problems for people who didn't use MH-E | ||
| 52 | who were editing files that looked like MH message files (closes SF | ||
| 53 | #1032353). | ||
| 54 | |||
| 55 | *** mh-show-unquote-From Fails (read-only buffer) | ||
| 56 | |||
| 57 | MH-E quotes the "From " header field that is inserted by MTAs. | ||
| 58 | However, it was trying to do this in a read-only buffer. This has been | ||
| 59 | fixed (closes SF #1089870). | ||
| 60 | |||
| 61 | *** rmmproc Refile Complains No Such Message | ||
| 62 | |||
| 63 | MH-E would get confused about which folder to delete messages from if | ||
| 64 | you were refiling and deleting messages at the same time. This has | ||
| 65 | been fixed (closes SF #1023959). | ||
| 66 | |||
| 67 | *** ! Doesn't Do Regions | ||
| 68 | |||
| 69 | Now it does (closes SF #1046330). | ||
| 70 | |||
| 71 | *** Swish Fixes | ||
| 72 | |||
| 73 | Items in swish indexes that aren't mail messages are now handled more | ||
| 74 | gracefully. | ||
| 75 | |||
| 76 | *** Spamassassin Fixes | ||
| 77 | |||
| 78 | If you use spamassassin, there was an error when you tried to junk | ||
| 79 | mail if the option mh-junk-background was set. This has been fixed. | ||
| 80 | |||
| 81 | *** Mairix Support | ||
| 82 | |||
| 83 | Indexing 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 | ||
| 11 | Version 7.82 continues to address the saga surrounding the use of CL | 89 | Version 7.82 continues to address the saga surrounding the use of CL |
| 12 | macros in CVS Emacs and fixes the auto-detection of vanilla MH (SF | 90 | macros in CVS Emacs and fixes the auto-detection of vanilla MH (closes |
| 13 | #1014781). | 91 | SF #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 | |||
| 23 | to ":default". This release also corrects the release numbering; the | 101 | to ":default". This release also corrects the release numbering; the |
| 24 | previous version number was intended to be 7.80. | 102 | previous 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 | ||
| 28 | Version 7.4.80 now supports GNU mailutils, S/MIME, picons, | 108 | Version 7.4.80 now supports GNU mailutils, S/MIME, picons, |
| @@ -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 | ||
| 2654 | Upgraded to MH-E version 7.82. There have been major changes since | 2654 | Upgraded to MH-E version 7.84. There have been major changes since |
| 2655 | version 5.0.2; see MH-E-NEWS for details. | 2655 | version 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 @@ | |||
| 1 | 2005-05-26 Lute Kamstra <lute@gnu.org> | 1 | 2005-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 | ||
| 6 | 2005-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 | |||
| 9 | 2005-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 | |||
| 60 | 2005-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 | ||
| 11 | 2005-03-25 Werner Lemberg <wl@gnu.org> | 75 | 2005-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 | ||
| 15 | 2005-03-25 Werner Lemberg <wl@gnu.org> | 80 | 2005-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 | ||
| 19 | 2004-09-07 Stefan <monnier@iro.umontreal.ca> | 84 | 2005-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 | ||
| 23 | 2004-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 | |||
| 92 | 2005-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 | |||
| 99 | 2005-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 | |||
| 116 | 2005-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 | |||
| 128 | 2005-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 | |||
| 135 | 2005-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 | |||
| 157 | 2005-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 | |||
| 162 | 2005-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 | |||
| 170 | 2005-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 | |||
| 175 | 2005-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 | |||
| 193 | 2005-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 | |||
| 201 | 2005-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 | |||
| 206 | 2005-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 | |||
| 213 | 2005-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 | |||
| 219 | 2004-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 | |||
| 227 | 2004-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 | |||
| 233 | 2004-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 | |||
| 239 | 2004-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 | |||
| 244 | 2004-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 | |||
| 265 | 2004-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 | |||
| 270 | 2004-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 | |||
| 280 | 2004-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 | |||
| 292 | 2004-08-24 Bill Wohler <wohler@newt.com> | ||
| 293 | |||
| 294 | * mh-e.el (Version, mh-version): Added +cvs to release number. | ||
| 295 | |||
| 296 | 2004-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 | ||
| 31 | 2004-08-24 Bill Wohler <wohler@newt.com> | 304 | 2004-08-24 Bill Wohler <wohler@newt.com> |
| 32 | 305 | ||
| @@ -57,11 +330,11 @@ | |||
| 57 | 330 | ||
| 58 | 2004-08-21 Bill Wohler <wohler@newt.com> | 331 | 2004-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 | ||
| 66 | 2004-08-21 Bill Wohler <wohler@newt.com> | 339 | 2004-08-21 Bill Wohler <wohler@newt.com> |
| 67 | 340 | ||
| @@ -94,7 +367,7 @@ | |||
| 94 | 367 | ||
| 95 | 2004-08-15 Bill Wohler <wohler@newt.com> | 368 | 2004-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 | ||
| 331 | 2004-07-10 Bill Wohler <wohler@newt.com> | 604 | 2004-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 | ||
| 542 | 2003-11-18 Bill Wohler <wohler@newt.com> | 815 | 2003-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 | ||
| 685 | 2003-11-04 Steve Youngs <sryoungs@bigpond.net.au> | 958 | 2003-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 | ||
| 1364 | 2003-08-19 Bill Wohler <wohler@newt.com> | 1637 | 2003-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 | ||
| 2234 | 2003-06-25 Bill Wohler <wohler@newt.com> | 2507 | 2003-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 | ||
| 2256 | 2003-06-24 Bill Wohler <wohler@newt.com> | 2529 | 2003-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 | ||
| 3363 | 2003-04-24 Bill Wohler <wohler@newt.com> | 3636 | 2003-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 | ||
| 4921 | 2003-02-03 Bill Wohler <wohler@newt.com> | 5194 | 2003-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 | ||
| 5585 | 2003-01-07 Bill Wohler <wohler@newt.com> | 5858 | 2003-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 | ||
| 6679 | 2002-11-29 Bill Wohler <wohler@newt.com> | 6952 | 2002-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 | ||
| 6704 | 2002-11-21 Bill Wohler <wohler@newt.com> | 6977 | 2002-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 | ||
| 6728 | 2002-11-15 Bill Wohler <wohler@newt.com> | 7001 | 2002-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 | ||
| 9689 | 2002-04-08 Bill Wohler <wohler@newt.com> | 9962 | 2002-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 | ||
| 9793 | 2001-12-16 Bill Wohler <wohler@newt.com> | 10066 | 2001-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 | ||
| 9816 | 2001-12-14 Bill Wohler <wohler@newt.com> | 10089 | 2001-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 | ||
| 10001 | 2001-12-04 Bill Wohler <wohler@newt.com> | 10274 | 2001-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 | ||
| 10011 | 2001-12-03 Bill Wohler <wohler@newt.com> | 10284 | 2001-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 | ||
| 10917 | 2001-04-14 chad brown <y@mit.edu> | 11190 | 2001-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 | ||
| 10921 | 2001-04-12 chad brown <y@mit.edu> | 11194 | 2001-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 | ||
| 10927 | 2001-02-24 chad brown <y@mit.edu> | 11200 | 2001-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 | ||
| 10932 | 2001-02-19 Bill Wohler <wohler@newt.com> | 11205 | 2001-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 | ||
| 10942 | Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. | 11215 | Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. |
| 10943 | 11216 | ||
| 10944 | Copying and distribution of this file, with or without modification, | 11217 | Copying and distribution of this file, with or without modification, |
| 10945 | are permitted in any medium without royalty provided the copyright | 11218 | are permitted in any medium without royalty provided the copyright |
| 10946 | notice 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. |
| 491 | If optional prefix argument INCLUDEP provided, then include the message | 491 | If optional prefix argument INCLUDEP provided, then include the message |
| 492 | in the reply using filter `mhl.reply' in your MH directory. | 492 | in the reply using filter `mhl.reply' in your MH directory. |
| 493 | If the file named by `mh-repl-formfile' exists, it is used as a skeleton | 493 | If the file named by `mh-repl-formfile' exists, it is used as a skeleton for |
| 494 | for the reply. | 494 | the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU |
| 495 | mailutils variants and the file names by `mh-repl-group-formfile' exists, it | ||
| 496 | is used instead. | ||
| 495 | 497 | ||
| 496 | See also `mh-send'." | 498 | See 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. |
| 1631 | Any match found replaces the text from BEGIN to END." | 1633 | Any 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. |
| 107 | MH is the Rand Mail Handler. Other implementations include nmh and GNU | 105 | MH is the Rand Mail Handler. Other implementations include nmh and GNU |
| 108 | mailutils." | 106 | mailutils." |
| 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. | ||
| 114 | MH is the Rand Mail Handler. Other implementations include nmh and GNU | ||
| 115 | mailutils." | ||
| 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 | ||
| 451 | Each element consists of an identity label, and a collection of header fields | 443 | To customize this option, click on the `INS' button and enter a label such as |
| 452 | and 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 | 445 | one item below'. Then choose one of the items in the `Value Menu'. |
| 454 | MH-Letter buffer). The `Value Menu' contains the common header fields `From' | 446 | |
| 455 | and `Organization'. Other header fields may be added using the `Other Field' | 447 | You can specify an alternate `From:' header field using the `From Field' menu |
| 456 | menu item. The `Signature' menu item is used to insert a signature with | 448 | item. 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 |
| 458 | different key to sign or encrypt messages." | 450 | quote your name as in `\"First I. Last\" <login@@host.domain>'. People usually |
| 451 | list the name of the company where they work using the `Organization Field' | ||
| 452 | menu item. Set any arbitrary header field and value in the `Other Field' menu | ||
| 453 | item. Unless the header field is a standard one, precede the name of your | ||
| 454 | field'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' | ||
| 457 | menu item. You can specify the contents of `mh-signature-file-name', a file, | ||
| 458 | or a function. Specify a different key to sign or encrypt messages with the | ||
| 459 | `GPG Key ID' menu item. | ||
| 460 | |||
| 461 | You can select the identities you have added via the menu called `Identity' in | ||
| 462 | the MH-Letter buffer. You can also use \\[mh-insert-identity]. To clear the | ||
| 463 | fields and signature added by the identity, select the `None' identity. | ||
| 464 | |||
| 465 | The `Identity' menu contains two other items to save you from having to set | ||
| 466 | the identity on every message. The menu item `Set Default for Session' can be | ||
| 467 | used to set the default identity to the current identity until you exit Emacs. | ||
| 468 | The menu item `Save as Default' sets the option `mh-identity-default' to the | ||
| 469 | current identity setting. You can also customize the `mh-identity-default' | ||
| 470 | option 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. |
| 492 | Each element consists of the recipient, which is a regular expression, and a | 504 | |
| 493 | collection of header fields and identities to insert if the message is sent to | 505 | This option can be used to set the identity depending on the recipient. To |
| 494 | this recipient. The `Value Menu' contains the common header fields `Fcc' and | 506 | customize 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' | 507 | expression for the recipient's address. Click on the `INS' button with the |
| 496 | menu 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 | |||
| 511 | The `Identity' menu item is used to select an identity from those configured | ||
| 512 | in `mh-identity-list'. All of the information for that identity will be added | ||
| 513 | if the recipient matches. The `Fcc Field' menu item is used to select a folder | ||
| 514 | that is used in the `Fcc:' header. When you send the message, MH will put a | ||
| 515 | copy of your message in this folder. The `Mail-Followup-To Field' menu item is | ||
| 516 | used to insert an `Mail-Followup-To:' header field with the recipients you | ||
| 517 | provide. If the recipient's mail user agent supports this header field (as nmh | ||
| 518 | does), then their replies will go to the addresses listed. This is useful if | ||
| 519 | their replies go both to the list and to you and you don't have a mechanism to | ||
| 520 | suppress duplicates. If you reply to someone not on the list, you must either | ||
| 521 | remove the `Mail-Followup-To:' field, or ensure the recipient is also listed | ||
| 522 | there so that he receives replies to your reply. Other header fields may be | ||
| 523 | added using the `Other Field' menu item. | ||
| 524 | |||
| 525 | These fields can only be added after the recipient is known. Once the header | ||
| 526 | contains one or more recipients, run the \\[mh-insert-auto-fields] command or | ||
| 527 | choose the `Identity -> Insert Auto Fields' menu item to insert these fields | ||
| 528 | manually. However, you can just send the message and the fields will be added | ||
| 529 | automatically. You are given a chance to see these fields and to confirm them | ||
| 530 | before the message is actually sent. You can do away with this confirmation by | ||
| 531 | turning off the option `mh-auto-fields-prompt-flag'. | ||
| 532 | |||
| 533 | You 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 | ||
| 535 | result 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. |
| 567 | See `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'. |
| 543 | This is an alist of fields (strings) and handlers (functions). Strings are | 582 | |
| 544 | lowercase. Use \":signature\" for Signature and \":pgg-default-user-id\" for | 583 | This option is used to change the way that fields, signatures, and |
| 545 | GPG Key ID. The function associated with the string \":default\" is used if no | 584 | attributions in `mh-identity-list' are added. To customize |
| 546 | other functions are appropriate." | 585 | `mh-identity-handlers', replace the name of an existing handler function |
| 586 | associated with the field you want to change with the name of a function you | ||
| 587 | have written. You can also click on an `INS' button and insert a field of your | ||
| 588 | choice and the name of the function you have written to handle it. | ||
| 589 | |||
| 590 | The `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 | |||
| 595 | The handler associated with the `:default' field is used when no other field | ||
| 596 | matches. | ||
| 597 | |||
| 598 | The handler functions are passed two or three arguments: the FIELD itself (for | ||
| 599 | example, `From'), or one of the special fields (for example, `:signature'), | ||
| 600 | and the ACTION `'remove' or `'add'. If the action is `'add', an additional | ||
| 601 | argument 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. |
| 556 | Normally \"inc\". This program is relative to the `mh-progs' directory unless | 611 | |
| 557 | it is an absolute pathname." | 612 | This program generates a one-line summary for each of the new messages. Unless |
| 613 | it is an absolute pathname, the file is assumed to be in the `mh-progs' | ||
| 614 | directory. You may also link a file to `inc' that uses a different format. | ||
| 615 | You'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. |
| 563 | This option will be described by example. | 621 | |
| 622 | You can use the `mh-inc-spool-list' variable to direct MH-E to retrieve mail | ||
| 623 | from arbitrary spool files other than your system mailbox, file it in folders | ||
| 624 | other than your `+inbox', and assign key bindings to incorporate this mail. | ||
| 564 | 625 | ||
| 565 | Suppose you have subscribed to the mh-e-devel mailing list and you use | 626 | Suppose you are subscribed to the `mh-e-devel' mailing list and you use |
| 566 | procmail 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 | ||
| 574 | If you wanted to incorporate that spool file into an MH folder called mh-e | 635 | In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m' |
| 575 | with 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' |
| 576 | following: | 637 | button. 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 | 640 | You 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 | |||
| 582 | Then, you could also install `xbuffy' and configure an extra mailbox using the | ||
| 583 | gnuserv 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 | |||
| 592 | To incorporate the spool file, click the xbuffy box with the middle mouse | ||
| 593 | button." | ||
| 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. |
| 606 | This option can be set to `Inbox' to search the `+inbox' folder or `All' to | 661 | Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to |
| 607 | search all of the top level folders. Otherwise, list the folders that should | 662 | search all of the top level folders. Otherwise, list the folders that should |
| 608 | be searched with the `Choose Folders' menu item. | 663 | be searched with the \"Choose Folders\" menu item. |
| 609 | 664 | ||
| 610 | See also `mh-recursive-folders-flag'." | 665 | See 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'. |
| 636 | This option can be set to `Inbox' to search the `+inbox' folder or `All' to | 691 | Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to |
| 637 | search all of the top level folders. Otherwise, list the folders that should | 692 | search all of the top level folders. Otherwise, list the folders that should |
| 638 | be searched with the `Choose Folders' menu item. | 693 | be searched with the \"Choose Folders\" menu item. |
| 639 | 694 | ||
| 640 | See also `mh-recursive-folders-flag'." | 695 | See 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. | ||
| 732 | By default, the programs are run in the foreground, but this can be slow when | ||
| 733 | junking large numbers of messages. If you have enough memory or don't junk | ||
| 734 | that 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. |
| 683 | The default setting of this option is `Auto-detect' which means that MH-E will | 747 | |
| 684 | automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in that | 748 | The default setting of this option is \"Auto-detect\" which means that MH-E |
| 685 | order. If, for example, you have both SpamAssassin and Bogofilter installed | 749 | will automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in |
| 686 | and you want to use BogoFilter, then you can set this option to `Bogofilter'." | 750 | that order. If, for example, you have both SpamAssassin and Bogofilter |
| 751 | installed 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. | ||
| 696 | By default, the programs are run in the foreground, but this can be slow when | ||
| 697 | junking large numbers of messages. If you have enough memory or don't junk | ||
| 698 | that 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. |
| 771 | By default, this is set to `ispell-complete-word'." | 810 | By 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") | |
| 786 | The setting of this variable determines whether the MH `show-buffer' is | 825 | (const :tag "PGP" "pgp") |
| 787 | displayed with the current message when using `mh-reply' without a prefix | 826 | (const :tag "S/MIME" "smime") |
| 788 | argument. Set it to nil if you already include the message automatically | 827 | (const :tag "None" "none")) |
| 789 | in your draft using | ||
| 790 | repl: -filter repl.filter | ||
| 791 | in 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. | |||
| 881 | If the show buffer has a region, this variable is ignored unless its value is | 916 | If the show buffer has a region, this variable is ignored unless its value is |
| 882 | one of `attribution' or `autoattrib' in which case the attribution is added | 917 | one of `attribution' or `autoattrib' in which case the attribution is added |
| 883 | to the yanked region." | 918 | to 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. |
| 952 | It is passed three arguments: TO recipients, SUBJECT, and CC recipients." | 992 | It 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. |
| 970 | If nil, prompt for recipient. If non-nil, then \\<mh-folder-mode-map>`\\[mh-reply]' will use this | 1015 | If 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 | |||
| 1026 | The setting of this variable determines whether the MH `show-buffer' is | ||
| 1027 | displayed with the current message when using `mh-reply' without a prefix | ||
| 1028 | argument. Set it to nil if you already include the message automatically | ||
| 1029 | in your draft using | ||
| 1030 | repl: -filter repl.filter | ||
| 1031 | in 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. | ||
| 2361 | This 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. | ||
| 2365 | This 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. |
| 2327 | The background and foreground is used in the image." | 2410 | The 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. |
| 722 | Default is the displayed message. Use the same folder or file as the previous | 721 | Default is the displayed message. Use the same folder or file as the previous |
| 723 | refile or write command." | 722 | refile or write command. |
| 724 | (interactive (list (mh-get-msg-num t))) | 723 | If 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. |
| 90 | Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in | 90 | Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set |
| 91 | customization). This is called after 'customize is used to alter | 91 | in 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. |
| 102 | Return t if anything is deleted." | 102 | Return 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. |
| 123 | The field name is downcased. If the FIELD begins with the character | 123 | The 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 |
| 126 | message header." | 126 | header 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. |
| 136 | Edit the `mh-identity-list' variable to define identity." | 136 | See `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\". |
| 171 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. | ||
| 171 | The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE | 172 | The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE |
| 172 | when action 'add is selected." | 173 | when 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\". |
| 184 | The VALUE is added." | 185 | The 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\". |
| 214 | The VALUE is added." | 215 | The 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. |
| 243 | if TOP is non-nil, add the field and it's VALUE at the top of the header, else | 244 | The ACTION is one of 'remove or 'add. If TOP is non-nil, add the field and its |
| 244 | add it at the bottom of the header." | 245 | VALUE at the top of the header, else add it at the bottom of the header. If |
| 246 | action 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. |
| 270 | If the field wasn't present, the VALUE is added at the top of the header." | 272 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. |
| 273 | If 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. |
| 276 | If the field wasn't present, the VALUE is added at the bottom of the header." | 279 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. |
| 280 | If 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. |
| 355 | Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below. | 356 | Use a prefix argument to repeat the search. |
| 356 | 357 | ||
| 357 | If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a | 358 | Unlike regular searches, the prompt for the folder to search can be `all' to |
| 358 | index search, then the search is repeated. Otherwise, FOLDER is searched with | 359 | search all folders; in addition, the search works recursively on the listed |
| 359 | SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is | 360 | folder. 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'. |
| 361 | stores the window configuration that will be restored after the user quits the | 362 | |
| 362 | folder containing the index search results. | 363 | To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another |
| 363 | 364 | difference from the regular searches is that because the search operates on | |
| 364 | Four indexing programs are supported; if none of these are present, then grep | 365 | more than one folder, the messages that are found are put in a temporary |
| 365 | is used. This function picks the first program that is available on your | 366 | sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This |
| 366 | system. If you would prefer to use a different program, set the customization | 367 | buffer is special because it displays messages from multiple folders; each set |
| 367 | variable `mh-index-program' accordingly. | 368 | of messages from a given folder has a heading with the folder name. |
| 368 | 369 | ||
| 369 | The documentation for the following functions describes how to generate the | 370 | In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can |
| 370 | index for each program: | 371 | be used to visit the folder of the message at point. Initially, only the |
| 372 | messages that matched the search criteria are displayed in the folder. While | ||
| 373 | the temporary buffer has its own set of message numbers, the actual messages | ||
| 374 | numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder] | ||
| 375 | command is useful to find the actual message number of an interesting message, | ||
| 376 | or to view surrounding messages with the \\[mh-rescan-folder] command. | ||
| 377 | |||
| 378 | Because this folder is temporary, you'll probably get in the habit of killing | ||
| 379 | it when you're done with \\[mh-kill-folder]. | ||
| 380 | |||
| 381 | If you have run the \\[mh-search-folder] command, but change your mind while | ||
| 382 | entering the search criteria and actually want to run an indexed search, then | ||
| 383 | you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the | ||
| 384 | MH-Pick buffer. | ||
| 385 | |||
| 386 | The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined | ||
| 387 | by the `mh-index-program' option. The default value is \"Auto-detect\" which | ||
| 388 | means that MH-E will automatically choose one of \"swish++\", \"swish-e\", | ||
| 389 | \"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example, | ||
| 390 | you 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 | |||
| 398 | This command uses an \"X-MHE-Checksum:\" header field to cache the MD5 | ||
| 399 | checksum of a message. This means that if an incoming message already contains | ||
| 400 | an \"X-MHE-Checksum:\" field, that message might not be found by this command. | ||
| 401 | The following \"procmail\" recipe avoids this problem by renaming the existing | ||
| 402 | header field: | ||
| 403 | |||
| 404 | :0 wf | ||
| 405 | | formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\" | ||
| 406 | |||
| 407 | The documentation for the following commands describe how to set up the | ||
| 408 | various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands | ||
| 409 | do 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 | |||
| 377 | If none of these programs are present then we use pick. If desired grep can be | ||
| 378 | used 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 | ||
| 383 | This and related functions use an X-MHE-Checksum header to cache the MD5 | 418 | In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was |
| 384 | checksum of a message. This means that already present X-MHE-Checksum headers | 419 | generated by a index search, then the search is repeated. Otherwise, FOLDER is |
| 385 | in the incoming email could result in messages not being found. The following | 420 | searched with SEARCH-REGEXP and the results are presented in an MH-E folder. |
| 386 | procmail recipe should avoid this: | 421 | If FOLDER is \"+\" then mail in all folders are searched. Optional argument |
| 387 | 422 | WINDOW-CONFIG stores the window configuration that will be restored after the | |
| 388 | :0 wf | 423 | user quits the folder containing the index search results." |
| 389 | | formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\" | ||
| 390 | |||
| 391 | This 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 | |||
| 998 | in the folder itself and does not descend into any sub-folders that may be | 1030 | in the folder itself and does not descend into any sub-folders that may be |
| 999 | present. | 1031 | present. |
| 1000 | 1032 | ||
| 1001 | FOLDER-PATH is the directory containing the mails to be searched and | 1033 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used |
| 1002 | SEARCH-REGEXP is the pattern that pick gets." | 1034 | to 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. |
| 1032 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." | 1064 | |
| 1065 | Unlike the other index search programs \"grep\" only searches messages present | ||
| 1066 | in the folder itself and does not descend into any sub-folders that may be | ||
| 1067 | present. | ||
| 1068 | |||
| 1069 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used | ||
| 1070 | to 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 | ||
| 1084 | In the examples below replace /home/user/Mail with the path to your MH | 1122 | In the examples below, replace \"/home/user/Mail\" with the path to your MH |
| 1085 | directory. | 1123 | directory. |
| 1086 | 1124 | ||
| 1087 | First create the directory /home/user/Mail/.mairix. Then create the file | 1125 | First 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 | ||
| 1100 | Use the following command line to generate the mairix index. Run this daily | 1137 | Use the following command line to generate the mairix index. Run this daily |
| 1101 | from cron: | 1138 | from cron: |
| 1102 | 1139 | ||
| 1103 | mairix -f /home/user/Mail/.mairix/config | 1140 | mairix -f /home/user/Mail/.mairix/config |
| 1104 | 1141 | ||
| 1105 | FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used to search." | 1142 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used |
| 1143 | to 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 | ||
| 1330 | In the examples below, replace /home/user/Mail with the path to your MH | 1368 | In the examples below, replace \"/home/user/Mail\" with the path to your |
| 1331 | directory. | 1369 | MH directory. |
| 1332 | 1370 | ||
| 1333 | First create the directory /home/user/Mail/.swish. Then create the file | 1371 | First 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 ,.* | 1395 | This configuration does not index the folders that hold the results of your |
| 1358 | FileRules filename is .*~ | 1396 | searches in \"+mhe-index\" since they tend to be ephemeral and the original |
| 1397 | messages are indexed anyway. | ||
| 1359 | 1398 | ||
| 1360 | If there are any directories you would like to ignore, append lines like the | 1399 | If there are any directories you would like to ignore, append lines like the |
| 1361 | following to config: | 1400 | following to \"config\": |
| 1362 | |||
| 1363 | FileRules pathname contains /home/user/Mail/scripts | ||
| 1364 | 1401 | ||
| 1365 | You do not want to index the folders that hold the results of your searches | 1402 | FileRules pathname contains /home/user/Mail/scripts |
| 1366 | since they tend to be ephemeral and the original messages are indexed anyway. | ||
| 1367 | The configuration file above assumes that the results are found in sub-folders | ||
| 1368 | of `mh-index-folder' which is +mhe-index by default. | ||
| 1369 | 1403 | ||
| 1370 | Use the following command line to generate the swish index. Run this | 1404 | Use the following command line to generate the swish index. Run this daily |
| 1371 | daily from cron: | 1405 | from cron: |
| 1372 | 1406 | ||
| 1373 | swish-e -c /home/user/Mail/.swish/config | 1407 | swish-e -c /home/user/Mail/.swish/config |
| 1374 | 1408 | ||
| 1375 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." | 1409 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 1410 | search." | ||
| 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 | ||
| 1434 | In the examples below, replace /home/user/Mail with the path to your MH | 1470 | In the examples below, replace \"/home/user/Mail\" with the path to your MH |
| 1435 | directory. | 1471 | directory. |
| 1436 | 1472 | ||
| 1437 | First create the directory /home/user/Mail/.swish++. Then create the file | 1473 | First 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 | ||
| 1446 | Use the following command line to generate the swish index. Run this | 1482 | Use the following command line to generate the swish index. Run this daily |
| 1447 | daily from cron: | 1483 | from 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 | ||
| 1454 | You do not want to index the folders that hold the results of your searches | 1490 | This command does not index the folders that hold the results of your searches |
| 1455 | since they tend to be ephemeral and the original messages are indexed anyway. | 1491 | in \"+mhe-index\" since they tend to be ephemeral and the original messages |
| 1456 | The command above assumes that the results are found in sub-folders of | 1492 | are indexed anyway. |
| 1457 | `mh-index-folder' which is +mhe-index by default. | ||
| 1458 | 1493 | ||
| 1459 | On some systems (Debian GNU/Linux, for example), use index++ instead of index. | 1494 | On some systems (Debian GNU/Linux, for example), use \"index++\" instead of |
| 1495 | \"index\". | ||
| 1460 | 1496 | ||
| 1461 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." | 1497 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 1498 | search." | ||
| 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 | ||
| 1515 | In the examples below, replace /home/user/Mail with the path to your MH | 1552 | In the examples below, replace \"/home/user/Mail\" with the path to your MH |
| 1516 | directory. | 1553 | directory. |
| 1517 | 1554 | ||
| 1518 | First create the directory /home/user/Mail/.namazu. Then create the file | 1555 | First 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 | ||
| 1526 | In the above example configuration, none of the mail files contained in the | 1563 | This configuration does not index the folders that hold the results of your |
| 1527 | directories /home/user/Mail/mhe-index and /home/user/Mail/spam are indexed. | 1564 | searches in \"+mhe-index\" since they tend to be ephemeral and the original |
| 1565 | messages are indexed anyway. | ||
| 1528 | 1566 | ||
| 1529 | You do not want to index the folders that hold the results of your searches | 1567 | Use the following command line to generate the namazu index. Run this daily |
| 1530 | since they tend to be ephemeral and the original messages are indexed anyway. | 1568 | from cron: |
| 1531 | The configuration file above assumes that the results are found in sub-folders | ||
| 1532 | of `mh-index-folder' which is +mhe-index by default. | ||
| 1533 | |||
| 1534 | Use the following command line to generate the namazu index. Run this | ||
| 1535 | daily 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 | ||
| 1540 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." | 1573 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 1574 | search." | ||
| 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. |
| 57 | If optional prefix argument INCLUDEP provided, then include the message | 57 | If optional prefix argument INCLUDEP provided, then include the message |
| 58 | in the reply using filter `mhl.reply' in your MH directory. | 58 | in the reply using filter `mhl.reply' in your MH directory. |
| 59 | If the file named by `mh-repl-formfile' exists, it is used as a skeleton | 59 | If the file named by `mh-repl-formfile' exists, it is used as a skeleton for |
| 60 | for the reply. | 60 | the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU |
| 61 | mailutils variants and the file names by `mh-repl-group-formfile' exists, it | ||
| 62 | is used instead. | ||
| 61 | 63 | ||
| 62 | See also `mh-send'." t nil) | 64 | See 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" "\ |
| 273 | Update the `mh-identity-list' variable, and rebuild the menu. | 275 | Update the `mh-identity-list' variable, and rebuild the menu. |
| 274 | Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in | 276 | Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set |
| 275 | customization). This is called after 'customize is used to alter | 277 | in 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" "\ |
| 279 | Insert proper fields for given IDENTITY. | 281 | Insert fields specified by given IDENTITY. |
| 280 | Edit the `mh-identity-list' variable to define identity." t nil) | 282 | See `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" "\ |
| 283 | For FIELD \"pgg-default-user-id\", process for ACTION 'remove or 'add. | 285 | Process header FIELD \":pgg-default-user-id\". |
| 286 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. | ||
| 284 | The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE | 287 | The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE |
| 285 | when action 'add is selected." nil nil) | 288 | when 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" "\ |
| 288 | For FIELD \"signature\", process headers for ACTION 'remove or 'add. | 291 | Process header FIELD \":signature\". |
| 289 | The VALUE is added." nil nil) | 292 | The 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" "\ |
| 292 | For FIELD \"attribution_verb\", process headers for ACTION 'remove or 'add. | 295 | Process header FIELD \":attribution-verb\". |
| 293 | The VALUE is added." nil nil) | 296 | The 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" "\ |
| 296 | Insert VALUE as attribution verb, setting up delimiting markers. | 299 | Insert VALUE as attribution verb, setting up delimiting markers. |
| 297 | If VALUE is nil, use `mh-extract-from-attribution-verb'." nil nil) | 300 | If 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" "\ |
| 300 | For FIELD, process mh-identity headers for ACTION 'remove or 'add. | 303 | Process header FIELD. |
| 301 | If the field wasn't present, the VALUE is added at the top of the header." nil nil) | 304 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. |
| 305 | If 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" "\ |
| 304 | For FIELD, process mh-identity headers for ACTION 'remove or 'add. | 308 | Process header FIELD. |
| 305 | If the field wasn't present, the VALUE is added at the bottom of the header." nil nil) | 309 | The ACTION is one of 'remove or 'add. If 'add, the VALUE is added. |
| 310 | If 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" "\ |
| 348 | Perform an indexed search in an MH mail folder. | 353 | Perform an indexed search in an MH mail folder. |
| 349 | Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below. | 354 | Use a prefix argument to repeat the search. |
| 350 | 355 | ||
| 351 | If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a | 356 | Unlike regular searches, the prompt for the folder to search can be `all' to |
| 352 | index search, then the search is repeated. Otherwise, FOLDER is searched with | 357 | search all folders; in addition, the search works recursively on the listed |
| 353 | SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is | 358 | folder. 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'. |
| 355 | stores the window configuration that will be restored after the user quits the | 360 | |
| 356 | folder containing the index search results. | 361 | To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another |
| 357 | 362 | difference from the regular searches is that because the search operates on | |
| 358 | Four indexing programs are supported; if none of these are present, then grep | 363 | more than one folder, the messages that are found are put in a temporary |
| 359 | is used. This function picks the first program that is available on your | 364 | sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This |
| 360 | system. If you would prefer to use a different program, set the customization | 365 | buffer is special because it displays messages from multiple folders; each set |
| 361 | variable `mh-index-program' accordingly. | 366 | of messages from a given folder has a heading with the folder name. |
| 362 | 367 | ||
| 363 | The documentation for the following functions describes how to generate the | 368 | In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can |
| 364 | index for each program: | 369 | be used to visit the folder of the message at point. Initially, only the |
| 370 | messages that matched the search criteria are displayed in the folder. While | ||
| 371 | the temporary buffer has its own set of message numbers, the actual messages | ||
| 372 | numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder] | ||
| 373 | command is useful to find the actual message number of an interesting message, | ||
| 374 | or to view surrounding messages with the \\[mh-rescan-folder] command. | ||
| 375 | |||
| 376 | Because this folder is temporary, you'll probably get in the habit of killing | ||
| 377 | it when you're done with \\[mh-kill-folder]. | ||
| 378 | |||
| 379 | If you have run the \\[mh-search-folder] command, but change your mind while | ||
| 380 | entering the search criteria and actually want to run an indexed search, then | ||
| 381 | you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the | ||
| 382 | MH-Pick buffer. | ||
| 383 | |||
| 384 | The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined | ||
| 385 | by the `mh-index-program' option. The default value is \"Auto-detect\" which | ||
| 386 | means that MH-E will automatically choose one of \"swish++\", \"swish-e\", | ||
| 387 | \"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example, | ||
| 388 | you 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 | |||
| 396 | This command uses an \"X-MHE-Checksum:\" header field to cache the MD5 | ||
| 397 | checksum of a message. This means that if an incoming message already contains | ||
| 398 | an \"X-MHE-Checksum:\" field, that message might not be found by this command. | ||
| 399 | The following \"procmail\" recipe avoids this problem by renaming the existing | ||
| 400 | header field: | ||
| 401 | |||
| 402 | :0 wf | ||
| 403 | | formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\" | ||
| 404 | |||
| 405 | The documentation for the following commands describe how to set up the | ||
| 406 | various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands | ||
| 407 | do 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 | |||
| 371 | If none of these programs are present then we use pick. If desired grep can be | ||
| 372 | used 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 | ||
| 377 | This and related functions use an X-MHE-Checksum header to cache the MD5 | 416 | In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was |
| 378 | checksum of a message. This means that already present X-MHE-Checksum headers | 417 | generated by a index search, then the search is repeated. Otherwise, FOLDER is |
| 379 | in the incoming email could result in messages not being found. The following | 418 | searched with SEARCH-REGEXP and the results are presented in an MH-E folder. |
| 380 | procmail recipe should avoid this: | 419 | If FOLDER is \"+\" then mail in all folders are searched. Optional argument |
| 381 | 420 | WINDOW-CONFIG stores the window configuration that will be restored after the | |
| 382 | :0 wf | 421 | user quits the folder containing the index search results." t nil) |
| 383 | | formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\" | ||
| 384 | |||
| 385 | This 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" "\ |
| 388 | Read index data from file." nil nil) | 424 | Read 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" "\ |
| 464 | Execute swish-e and read the results. | 500 | Execute swish-e and read the results. |
| 465 | 501 | ||
| 466 | In the examples below, replace /home/user/Mail with the path to your MH | 502 | In the examples below, replace \"/home/user/Mail\" with the path to your |
| 467 | directory. | 503 | MH directory. |
| 468 | 504 | ||
| 469 | First create the directory /home/user/Mail/.swish. Then create the file | 505 | First 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 ,.* | 529 | This configuration does not index the folders that hold the results of your |
| 494 | FileRules filename is .*~ | 530 | searches in \"+mhe-index\" since they tend to be ephemeral and the original |
| 531 | messages are indexed anyway. | ||
| 495 | 532 | ||
| 496 | If there are any directories you would like to ignore, append lines like the | 533 | If there are any directories you would like to ignore, append lines like the |
| 497 | following to config: | 534 | following to \"config\": |
| 498 | 535 | ||
| 499 | FileRules pathname contains /home/user/Mail/scripts | 536 | FileRules pathname contains /home/user/Mail/scripts |
| 500 | 537 | ||
| 501 | You do not want to index the folders that hold the results of your searches | 538 | Use the following command line to generate the swish index. Run this daily |
| 502 | since they tend to be ephemeral and the original messages are indexed anyway. | 539 | from cron: |
| 503 | The configuration file above assumes that the results are found in sub-folders | ||
| 504 | of `mh-index-folder' which is +mhe-index by default. | ||
| 505 | 540 | ||
| 506 | Use the following command line to generate the swish index. Run this | 541 | swish-e -c /home/user/Mail/.swish/config |
| 507 | daily from cron: | ||
| 508 | 542 | ||
| 509 | swish-e -c /home/user/Mail/.swish/config | 543 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 510 | 544 | search." nil nil) | |
| 511 | FOLDER-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" "\ |
| 514 | Execute swish++ and read the results. | 547 | Execute swish++ and read the results. |
| 515 | 548 | ||
| 516 | In the examples below, replace /home/user/Mail with the path to your MH | 549 | In the examples below, replace \"/home/user/Mail\" with the path to your MH |
| 517 | directory. | 550 | directory. |
| 518 | 551 | ||
| 519 | First create the directory /home/user/Mail/.swish++. Then create the file | 552 | First 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 | ||
| 528 | Use the following command line to generate the swish index. Run this | 561 | Use the following command line to generate the swish index. Run this daily |
| 529 | daily from cron: | 562 | from 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 | ||
| 536 | You do not want to index the folders that hold the results of your searches | 569 | This command does not index the folders that hold the results of your searches |
| 537 | since they tend to be ephemeral and the original messages are indexed anyway. | 570 | in \"+mhe-index\" since they tend to be ephemeral and the original messages |
| 538 | The command above assumes that the results are found in sub-folders of | 571 | are indexed anyway. |
| 539 | `mh-index-folder' which is +mhe-index by default. | ||
| 540 | 572 | ||
| 541 | On some systems (Debian GNU/Linux, for example), use index++ instead of index. | 573 | On some systems (Debian GNU/Linux, for example), use \"index++\" instead of |
| 574 | \"index\". | ||
| 542 | 575 | ||
| 543 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil) | 576 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 577 | search." nil nil) | ||
| 544 | 578 | ||
| 545 | (autoload (quote mh-namazu-execute-search) "mh-index" "\ | 579 | (autoload (quote mh-namazu-execute-search) "mh-index" "\ |
| 546 | Execute namazu and read the results. | 580 | Execute namazu and read the results. |
| 547 | 581 | ||
| 548 | In the examples below, replace /home/user/Mail with the path to your MH | 582 | In the examples below, replace \"/home/user/Mail\" with the path to your MH |
| 549 | directory. | 583 | directory. |
| 550 | 584 | ||
| 551 | First create the directory /home/user/Mail/.namazu. Then create the file | 585 | First 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 | ||
| 559 | In the above example configuration, none of the mail files contained in the | 588 | package conf; # Don't remove this line! |
| 560 | directories /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 | ||
| 562 | You do not want to index the folders that hold the results of your searches | 593 | This configuration does not index the folders that hold the results of your |
| 563 | since they tend to be ephemeral and the original messages are indexed anyway. | 594 | searches in \"+mhe-index\" since they tend to be ephemeral and the original |
| 564 | The configuration file above assumes that the results are found in sub-folders | 595 | messages are indexed anyway. |
| 565 | of `mh-index-folder' which is +mhe-index by default. | ||
| 566 | 596 | ||
| 567 | Use the following command line to generate the namazu index. Run this | 597 | Use the following command line to generate the namazu index. Run this daily |
| 568 | daily from cron: | 598 | from 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 | ||
| 573 | FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil) | 603 | In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to |
| 604 | search." nil nil) | ||
| 574 | 605 | ||
| 575 | (autoload (quote mh-index-choose) "mh-index" "\ | 606 | (autoload (quote mh-index-choose) "mh-index" "\ |
| 576 | Choose an indexing function. | 607 | Choose 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" "\ |
| 864 | Search FOLDER for messages matching a pattern. | 895 | Search FOLDER for messages matching a pattern. |
| 865 | This function uses the MH command `pick' to do the work. | 896 | |
| 866 | Add the messages found to the sequence named `search'. | 897 | With this command, you can search a folder for messages to or from a |
| 867 | Argument WINDOW-CONFIG is the current window configuration and is used when | 898 | particular person or about a particular subject. In fact, you can also search |
| 868 | the search folder is dismissed." t nil) | 899 | for messages containing selected strings in any arbitrary header field or any |
| 900 | string found within the messages. | ||
| 901 | |||
| 902 | You are first prompted for the name of the folder to search and then placed in | ||
| 903 | the following buffer in MH-Pick mode: | ||
| 904 | |||
| 905 | From: | ||
| 906 | To: | ||
| 907 | Cc: | ||
| 908 | Date: | ||
| 909 | Subject: | ||
| 910 | -------- | ||
| 911 | |||
| 912 | Edit this template by entering your search criteria in an appropriate header | ||
| 913 | field that is already there, or create a new field yourself. If the string | ||
| 914 | you're looking for could be anywhere in a message, then place the string | ||
| 915 | underneath the row of dashes. The \\[mh-search-folder] command uses the MH | ||
| 916 | command \"pick\" to do the real work. | ||
| 917 | |||
| 918 | There are no semantics associated with the search criteria--they are simply | ||
| 919 | treated as strings. Case is ignored when all lowercase is used, and regular | ||
| 920 | expressions (a la \"ed\") are available. It is all right to specify several | ||
| 921 | search criteria. What happens then is that a logical _and_ of the various | ||
| 922 | fields is performed. If you prefer a logical _or_ operation, run | ||
| 923 | \\[mh-search-folder] multiple times. | ||
| 924 | |||
| 925 | As an example, let's say that we want to find messages from Ginnean about | ||
| 926 | horseback riding in the Kosciusko National Park (Australia) during January, | ||
| 927 | 1994. Normally we would start with a broad search and narrow it down if | ||
| 928 | necessary to produce a manageable amount of data, but we'll cut to the chase | ||
| 929 | and 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 | |||
| 938 | As 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 | |||
| 941 | To perform the search, type \\[mh-do-search]. The selected messages are placed | ||
| 942 | in the \"search\" sequence, which you can use later in forwarding, printing, | ||
| 943 | or 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 | ||
| 945 | delete the \"search\" sequence. | ||
| 946 | |||
| 947 | If you're searching in a folder that is already displayed in an MH-Folder | ||
| 948 | buffer, only those messages contained in the buffer are used for the search. | ||
| 949 | Therefore, if you want to search in all messages, first kill the folder's | ||
| 950 | buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder | ||
| 951 | with \\[mh-rescan-folder]. | ||
| 952 | |||
| 953 | If you find that you do the same thing over and over when editing the search | ||
| 954 | template, you may wish to bind some shortcuts to keys. This can be done with | ||
| 955 | the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is | ||
| 956 | run on a new pattern. | ||
| 957 | |||
| 958 | If you have run the \\[mh-index-search] command, but change your mind while | ||
| 959 | entering the search criteria and actually want to run a regular search, then | ||
| 960 | you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command. | ||
| 961 | |||
| 962 | In a program, argument WINDOW-CONFIG is the current window configuration and | ||
| 963 | is 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" "\ |
| 871 | Find messages that match the qualifications in the current pattern buffer. | 966 | Find 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. |
| 55 | This function uses the MH command `pick' to do the work. | 56 | |
| 56 | Add the messages found to the sequence named `search'. | 57 | With this command, you can search a folder for messages to or from a |
| 57 | Argument WINDOW-CONFIG is the current window configuration and is used when | 58 | particular person or about a particular subject. In fact, you can also search |
| 58 | the search folder is dismissed." | 59 | for messages containing selected strings in any arbitrary header field or any |
| 60 | string found within the messages. | ||
| 61 | |||
| 62 | You are first prompted for the name of the folder to search and then placed in | ||
| 63 | the following buffer in MH-Pick mode: | ||
| 64 | |||
| 65 | From: | ||
| 66 | To: | ||
| 67 | Cc: | ||
| 68 | Date: | ||
| 69 | Subject: | ||
| 70 | -------- | ||
| 71 | |||
| 72 | Edit this template by entering your search criteria in an appropriate header | ||
| 73 | field that is already there, or create a new field yourself. If the string | ||
| 74 | you're looking for could be anywhere in a message, then place the string | ||
| 75 | underneath the row of dashes. The \\[mh-search-folder] command uses the MH | ||
| 76 | command \"pick\" to do the real work. | ||
| 77 | |||
| 78 | There are no semantics associated with the search criteria--they are simply | ||
| 79 | treated as strings. Case is ignored when all lowercase is used, and regular | ||
| 80 | expressions (a la \"ed\") are available. It is all right to specify several | ||
| 81 | search criteria. What happens then is that a logical _and_ of the various | ||
| 82 | fields is performed. If you prefer a logical _or_ operation, run | ||
| 83 | \\[mh-search-folder] multiple times. | ||
| 84 | |||
| 85 | As an example, let's say that we want to find messages from Ginnean about | ||
| 86 | horseback riding in the Kosciusko National Park (Australia) during January, | ||
| 87 | 1994. Normally we would start with a broad search and narrow it down if | ||
| 88 | necessary to produce a manageable amount of data, but we'll cut to the chase | ||
| 89 | and 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 | |||
| 98 | As 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 | |||
| 101 | To perform the search, type \\[mh-do-search]. The selected messages are placed | ||
| 102 | in the \"search\" sequence, which you can use later in forwarding, printing, | ||
| 103 | or 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 | ||
| 105 | delete the \"search\" sequence. | ||
| 106 | |||
| 107 | If you're searching in a folder that is already displayed in an MH-Folder | ||
| 108 | buffer, only those messages contained in the buffer are used for the search. | ||
| 109 | Therefore, if you want to search in all messages, first kill the folder's | ||
| 110 | buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder | ||
| 111 | with \\[mh-rescan-folder]. | ||
| 112 | |||
| 113 | If you find that you do the same thing over and over when editing the search | ||
| 114 | template, you may wish to bind some shortcuts to keys. This can be done with | ||
| 115 | the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is | ||
| 116 | run on a new pattern. | ||
| 117 | |||
| 118 | If you have run the \\[mh-index-search] command, but change your mind while | ||
| 119 | entering the search criteria and actually want to run a regular search, then | ||
| 120 | you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command. | ||
| 121 | |||
| 122 | In a program, argument WINDOW-CONFIG is the current window configuration and | ||
| 123 | is 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." | |||
| 788 | If no prefix arg is given, then return DEFAULT." | 789 | If 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. | ||
| 798 | For example, the string \"-subject a b c -from Joe User <user@domain.com>\" | ||
| 799 | is 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")) |