Upgraded to MH-E version 7.84.
See etc/MH-E-NEWS and lisp/mh-e/ChangeLog for details.
This commit is contained in:
parent
b5352ff5ec
commit
e495eaec9c
23 changed files with 1277 additions and 577 deletions
|
@ -1,3 +1,7 @@
|
|||
2005-05-28 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* NEWS, MH-E-NEWS: Upgraded to MH-E version 7.84.
|
||||
|
||||
2005-05-19 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* TODO: post-command-idle-hook has gone.
|
||||
|
|
|
@ -1,16 +1,94 @@
|
|||
* COPYRIGHT
|
||||
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
* Changes in MH-E 7.84
|
||||
|
||||
Version 7.84 contains no user-visible changes. This version
|
||||
incorporates changes made in CVS Emacs such as the removal of some
|
||||
deprecated software.
|
||||
|
||||
* Changes in MH-E 7.83
|
||||
|
||||
Version 7.83 fixes a handful of bugs, adds colors to buttons for
|
||||
signed or encrypted messages, and contains some documentation changes
|
||||
related to the upcoming release of the manual. Some options were moved
|
||||
to other customization groups as a result.
|
||||
|
||||
While not related to this release, the MH-E mailing lists are now
|
||||
gatewayed at gmane.org (closes SF #979308).
|
||||
|
||||
** New Variables in MH-E 7.83
|
||||
|
||||
*** mh-show-pgg-bad-face
|
||||
|
||||
Face used to highlight a bad PGG signature.
|
||||
|
||||
*** mh-show-pgg-good-face
|
||||
|
||||
Face used to highlight a good PGG signature.
|
||||
|
||||
*** mh-show-pgg-unknown-face
|
||||
|
||||
Face used to highlight a PGG signature whose status is unknown. This
|
||||
face is also used for a signature when the signer is untrusted.
|
||||
|
||||
** Bug Fixes in MH-E 7.83
|
||||
|
||||
*** Whitespace in pick Expressions
|
||||
|
||||
The "C-u / s RET" command now works. In addition, you can now add
|
||||
whitespace to any of the limiting (/) commands (closes SF #1122655).
|
||||
|
||||
*** auto-mode-alist Updated
|
||||
|
||||
MH-E originally updated auto-mode-alist to set the major mode of
|
||||
drafts. Now that we explicitly set the mode, there is no reason to do
|
||||
this, and this behavior caused problems for people who didn't use MH-E
|
||||
who were editing files that looked like MH message files (closes SF
|
||||
#1032353).
|
||||
|
||||
*** mh-show-unquote-From Fails (read-only buffer)
|
||||
|
||||
MH-E quotes the "From " header field that is inserted by MTAs.
|
||||
However, it was trying to do this in a read-only buffer. This has been
|
||||
fixed (closes SF #1089870).
|
||||
|
||||
*** rmmproc Refile Complains No Such Message
|
||||
|
||||
MH-E would get confused about which folder to delete messages from if
|
||||
you were refiling and deleting messages at the same time. This has
|
||||
been fixed (closes SF #1023959).
|
||||
|
||||
*** ! Doesn't Do Regions
|
||||
|
||||
Now it does (closes SF #1046330).
|
||||
|
||||
*** Swish Fixes
|
||||
|
||||
Items in swish indexes that aren't mail messages are now handled more
|
||||
gracefully.
|
||||
|
||||
*** Spamassassin Fixes
|
||||
|
||||
If you use spamassassin, there was an error when you tried to junk
|
||||
mail if the option mh-junk-background was set. This has been fixed.
|
||||
|
||||
*** Mairix Support
|
||||
|
||||
Indexing now compatible with Mairix version 0.12 and later.
|
||||
|
||||
|
||||
|
||||
* Changes in MH-E 7.82
|
||||
|
||||
Version 7.82 continues to address the saga surrounding the use of CL
|
||||
macros in CVS Emacs and fixes the auto-detection of vanilla MH (SF
|
||||
#1014781).
|
||||
macros in CVS Emacs and fixes the auto-detection of vanilla MH (closes
|
||||
SF #1014781).
|
||||
|
||||
* Changes in MH-E 7.81
|
||||
|
||||
|
@ -23,6 +101,8 @@ of "default" in `mh-identity-handlers' to avoid problems with
|
|||
to ":default". This release also corrects the release numbering; the
|
||||
previous version number was intended to be 7.80.
|
||||
|
||||
|
||||
|
||||
* Changes in MH-E 7.4.80
|
||||
|
||||
Version 7.4.80 now supports GNU mailutils, S/MIME, picons,
|
||||
|
|
2
etc/NEWS
2
etc/NEWS
|
@ -2651,7 +2651,7 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
|
|||
---
|
||||
** MH-E changes.
|
||||
|
||||
Upgraded to MH-E version 7.82. There have been major changes since
|
||||
Upgraded to MH-E version 7.84. There have been major changes since
|
||||
version 5.0.2; see MH-E-NEWS for details.
|
||||
|
||||
** Calendar changes:
|
||||
|
|
|
@ -1,32 +1,305 @@
|
|||
2005-05-26 Lute Kamstra <lute@gnu.org>
|
||||
2005-05-28 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-utils.el (mh-show-mode):
|
||||
* mh-pick.el (mh-pick-mode): Remove spurious run-hooks.
|
||||
Released MH-E version 7.84.
|
||||
|
||||
2005-04-08 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
* MH-E-NEWS, README: Updated for release 7.84.
|
||||
|
||||
* mh-e.el (Version, mh-version): Updated for release 7.84.
|
||||
|
||||
2005-05-28 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el, mh-comp.el: Don't autoload Info-goto-node. It's not
|
||||
used, and if it were, the code should use the info function
|
||||
instead.
|
||||
|
||||
Use full year in copyright notices (for example, 2005, not 05).
|
||||
|
||||
* Makefile (mh-loaddefs.el, mh-e-autoloads.el): Added 2005 to
|
||||
copyright notice.
|
||||
|
||||
* mh-inc.el: Use three ;;; to precede Local Variables to be
|
||||
consistent with other files. Will have to ask Stefan Monnier why
|
||||
he changed it.
|
||||
|
||||
* README: This version of MH-E to appear in GNU Emacs 22.1, not
|
||||
21.5.
|
||||
|
||||
* ChangeLog: The * in a ChangeLog entry must only be used before a
|
||||
filename.
|
||||
|
||||
Fixed compilation warnings in CVS Emacs. This included using
|
||||
"public" functions instead of "private" ones (info instead of
|
||||
Info-goto-node, view-mode-enter instead of view-mode), and
|
||||
removing a customization group that didn't have a parent group. In
|
||||
addition, string-to-int was recently deprecated; use
|
||||
string-to-number instead.
|
||||
|
||||
* mh-customize.el (Info-goto-node): Deleted autoload.
|
||||
(mh-e): Deleted mh group. Use single mh-e group instead.
|
||||
(mh-tool-bar-folder-help, mh-tool-bar-letter-help): Use info
|
||||
instead of Info-goto-node.
|
||||
|
||||
* mh-e.el (mh-read-msg-list): string-to-int deprecated; use
|
||||
string-to-number.
|
||||
|
||||
* mh-funcs.el (mh-list-folders): Use view-mode-enter instead of
|
||||
view-mode.
|
||||
|
||||
* mh-seq.el (mh-list-sequences): Use view-mode-enter instead of
|
||||
view-mode.
|
||||
|
||||
* mh-utils.el (mh-get-msg-num): string-to-int deprecated; use
|
||||
string-to-number.
|
||||
|
||||
Merged in changes from CVS Emacs including:
|
||||
|
||||
* mh-utils.el (mh-show-mode):
|
||||
* mh-pick.el (mh-pick-mode): Remove spurious run-hooks. Lute
|
||||
Kamstra <lute@gnu.org> 2005-05-26.
|
||||
|
||||
2005-05-25 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Merged in changes from CVS Emacs including:
|
||||
|
||||
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
|
||||
high number of colors displays.
|
||||
high number of colors displays. Dan Nicolaescu <dann@ics.uci.edu>
|
||||
2005-04-08.
|
||||
|
||||
2005-03-25 Werner Lemberg <wl@gnu.org>
|
||||
* mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with
|
||||
`valid'. Replace `illegal' with `invalid'. Werner Lemberg
|
||||
<wl@gnu.org> 2005-03-25.
|
||||
|
||||
* mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with `valid'.
|
||||
* mh-inc.el (mh-inc-spool-list): Correctly declare the external
|
||||
var. Stefan <monnier@iro.umontreal.ca> 2004-09-07.
|
||||
|
||||
2005-03-25 Werner Lemberg <wl@gnu.org>
|
||||
2005-05-18 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el: Replace `illegal' with `invalid'.
|
||||
* mh-comp.el (mh-reply): Mention use of mh-repl-group-formfile in
|
||||
docstring.
|
||||
|
||||
2004-09-07 Stefan <monnier@iro.umontreal.ca>
|
||||
2005-05-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-inc.el (mh-inc-spool-list): Correctly declare the external var.
|
||||
* mh-e.el (Version, mh-version): Added +cvs to release number.
|
||||
|
||||
2004-08-21 Bill Wohler <wohler@newt.com>
|
||||
2005-05-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.82.
|
||||
Released MH-E version 7.83.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.83.
|
||||
|
||||
* mh-e.el (Version, mh-version): Updated for release 7.83.
|
||||
|
||||
2005-05-05 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* README: To appear in Emacs 21.5, since 21.4 was released (but
|
||||
without the latest MH-E).
|
||||
|
||||
* release-utils (usage): Added --variable-changes.
|
||||
|
||||
2005-05-04 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-customize.el (*-face): Made docstrings consistent.
|
||||
|
||||
* mh-seq.el (mh-pick-args-list): Extracted function for turning
|
||||
string of pick arguments to list. Fixed list so that multi-word
|
||||
arguments were put in a single string (closes SF #1122655).
|
||||
(mh-edit-pick-expr): Use it.
|
||||
|
||||
* mh-unit.el (mh-unit): Since 21.4 snuck out but didn't contain
|
||||
updated lm-verify, don't run lm-verify on versions before 21.5.
|
||||
(mh-unit-test-pick-args-list): Added.
|
||||
|
||||
* mh-customize.el (mh-yank-from-start-of-msg): Use headline
|
||||
capitalization. Changed wording of some choices to be more consistent.
|
||||
(mh-invisible-header-fields-internal): Added fields from usa.net.
|
||||
|
||||
2005-04-24 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-mime.el (mh-mime-security-button-face): New function which
|
||||
determines the face to use to colorize encrypted or signed emails.
|
||||
(mh-insert-mime-security-button): Modified to colorize the button
|
||||
differently based on whether the signature was valid or not,
|
||||
whether the decryption was successful or not, etc.
|
||||
|
||||
* mh-customize.el (mh-show-pgg-good-face)
|
||||
(mh-show-pgg-unknown-face, mh-show-pgg-bad-face): Faces added to
|
||||
highlight buttons introduced for encrpted or signed MIME parts.
|
||||
|
||||
2005-03-19 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-customize.el (mh-mml-method-default): Sorted alphabetically.
|
||||
(mh-insert-x-mailer-flag, mh-reply-show-message-flag): Moved from
|
||||
mh-letter group to mh-sending-mail group. The writing of the
|
||||
documentation revealed that these options were misplaced.
|
||||
|
||||
2005-03-17 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-customize.el (mh-junk-background): Put in alphabetical order.
|
||||
Synced with manual.
|
||||
(mh-junk-program): Use double-quotes on non-symbols.
|
||||
|
||||
* mh-pick.el: (mh-search-folder): Synced docstrings with manual.
|
||||
|
||||
* mh-index.el: (mh-index-search, mh-pick-execute-search)
|
||||
(mh-grep-execute-search, mh-mairix-execute-search)
|
||||
(mh-swish-execute-search, mh-swish++-execute-search)
|
||||
(mh-namazu-execute-search): Synced docstrings with manual. Note
|
||||
that I'm now grabbing the output of an Info buffer which is why
|
||||
the indents on the examples has changed a bit. If we all use that
|
||||
methodology in the future, we shouldn't produce as many gratuitous
|
||||
diffs. I also noticed that `grep' and `search' became links to
|
||||
unrelated things, so let's use double-quotes for quoting
|
||||
non-symbols in the docstrings.
|
||||
|
||||
* mh-customize.el (mh-index-new-messages-folders)
|
||||
(mh-index-ticked-messages-folders): Synced docstrings with manual.
|
||||
|
||||
2005-02-16 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-index.el (mh-swish-execute-search): Simplify the indexing
|
||||
recipe for swish. Thanks to Eric Jensen for the suggestion.
|
||||
|
||||
2005-02-11 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-index.el (mh-swish-execute-search)
|
||||
(mh-swish++-execute-search): Make the indexing recipes better.
|
||||
(mh-swish-next-result): The indexer might find matches in files
|
||||
that aren't messages. Make the function handle that case
|
||||
gracefully.
|
||||
|
||||
2005-02-07 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-customize.el (mh-inc-prog, mh-inc-spool-list): Synced
|
||||
docstrings with manual.
|
||||
|
||||
2005-02-06 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-junk.el (mh-spamassassin-blacklist): Removed trailing
|
||||
whitespace.
|
||||
|
||||
* mh-e.el (mh-refile-or-write-again): Checkdoc fix.
|
||||
|
||||
* mh-identity.el (mh-identity-list-set)
|
||||
(mh-identity-field-handler, mh-identity-handler-gpg-identity)
|
||||
(mh-identity-handler-signature)
|
||||
(mh-identity-handler-attribution-verb)
|
||||
(mh-identity-handler-default, mh-identity-handler-top): Docstring
|
||||
editing.
|
||||
|
||||
* mh-customize.el (mh-identity-list, mh-auto-fields-list)
|
||||
(mh-identity-default, mh-identity-handlers): Synced docstrings
|
||||
with manual.
|
||||
|
||||
2005-02-03 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-xemacs.el (define-behavior 'mh): Moved Ben's code here from
|
||||
mh-e.el and added standard documentation.
|
||||
|
||||
* mh-e.el: Received patch from Ben Wing <ben@666.com> to add
|
||||
define-behavior on XEmacs.
|
||||
|
||||
2005-01-28 Jeffrey C Honig <jch@honig.net>
|
||||
|
||||
* mh-customize.el (mh-invisible-header-fields-internal): Added
|
||||
X-Evolution header added by Evolution mai client.
|
||||
|
||||
2005-01-18 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-customize.el (mh-invisible-header-fields-internal): Added
|
||||
DomainKey-Signature (http://antispam.yahoo.com/domainkeys/).
|
||||
There's a Comment field that goes with it, but I thought it was
|
||||
too general to add.
|
||||
|
||||
2005-01-06 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-junk.el (mh-spamassassin-blacklist): Fixed typo to fix an
|
||||
error when junking spamassassin mail when mh-junk-background is
|
||||
turned on.
|
||||
|
||||
2004-12-25 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-utils.el (mh-show-unquote-From): Make the buffer writable
|
||||
before trying to change it (closes SF #1089870).
|
||||
|
||||
* mh-comp.el (mh-complete-word): Fix a typo in a variable
|
||||
name (closes SF #1089870)
|
||||
|
||||
2004-11-28 Jeffrey C Honig <jch@honig.net>
|
||||
|
||||
* mh-comp.el (mh-complete-word): Kill the *Completions* buffer in
|
||||
any cases where we belive we are done with it. Not perfect, but
|
||||
better than just leaving it around.
|
||||
|
||||
2004-11-08 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a
|
||||
function at compile time doesn't guarantee it's existence at run
|
||||
time. So make the macro handle that situation better.
|
||||
|
||||
2004-11-05 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-acros.el (advice): Load advice, since it isn't loaded in
|
||||
XEmacs causing compilation problems.
|
||||
|
||||
2004-10-24 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-index.el (mh-mairix-execute-search)
|
||||
(mh-mairix-regexp-builder): Update the interface to mairix so that
|
||||
it will work with versions of mairix 0.12 and later.
|
||||
|
||||
* mh-funcs.el (mh-rmf-daemon): Avoid using
|
||||
beginning-of-buffer since it clobbers the mark and it was pointed
|
||||
out on the Emacs developers list to be the wrong thing to do.
|
||||
|
||||
* mh-e.el (mh-inc-folder): Only remove the window on the show
|
||||
buffer. This means if the user has BBDB enabled then the window
|
||||
displaying BBDB information isn't clobbered.
|
||||
(mh-refile-or-write-again): Don't use the function
|
||||
interactive-p. There was a long thread on the Emacs developers
|
||||
list where it was pointed out that it is incorrect to use this
|
||||
function most of the time.
|
||||
|
||||
* mh-comp.el (autoload): Don't set auto-mode-alist. This could
|
||||
screw things up for users that don't use MH-E (closes SF #1032353).
|
||||
|
||||
2004-10-13 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-e.el (mh-refile-or-write-again): Generalize the function to
|
||||
work on a range of messages (closes SF #1046330).
|
||||
|
||||
2004-09-02 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-e.el (mh-process-commands): The concurrent execution of mark
|
||||
and refile can cause problems since both the commands change the
|
||||
current folder. This change avoids that by getting rid of the
|
||||
concurrency. Another change covers the corner case where we refile
|
||||
messages to a previously empty folder. Before the modification
|
||||
sequences weren't preserved even if the appropriate flag was
|
||||
set. That is no longer the case.
|
||||
|
||||
2004-08-26 Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
|
||||
* mh-e.el (mh-get-new-mail): Also, update the unseen sequence from
|
||||
disk. Otherwise, the new messages aren't highlighted.
|
||||
|
||||
* mh-seq.el (mh-thread-inc): Fix a bug which appears when inc is
|
||||
run in a narrowed folder. The user sequence notation was getting
|
||||
lost. The change fixes that.
|
||||
|
||||
* mh-e.el (mh-get-new-mail): Make inc more efficient by reusing
|
||||
the existing user sequence notation and deleted/refiled notation.
|
||||
|
||||
2004-08-24 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (Version, mh-version): Added +cvs to release number.
|
||||
|
||||
2004-08-24 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Released MH-E version 7.82.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.82.
|
||||
|
||||
* mh-e.el (Version, mh-version): Update for release 7.82.
|
||||
* mh-e.el (Version, mh-version): Updated for release 7.82.
|
||||
|
||||
2004-08-24 Bill Wohler <wohler@newt.com>
|
||||
|
||||
|
@ -57,11 +330,11 @@
|
|||
|
||||
2004-08-21 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.81.
|
||||
Released MH-E version 7.81.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.81.
|
||||
|
||||
* mh-e.el (Version, mh-version): Update for release 7.81.
|
||||
* mh-e.el (Version, mh-version): Updated for release 7.81.
|
||||
|
||||
2004-08-21 Bill Wohler <wohler@newt.com>
|
||||
|
||||
|
@ -94,7 +367,7 @@
|
|||
|
||||
2004-08-15 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.80.
|
||||
Released MH-E version 7.4.80.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.80.
|
||||
|
||||
|
@ -324,13 +597,13 @@
|
|||
are more useful than a key sequence in these cases. Use "See also"
|
||||
instead of "See also documentation for".
|
||||
|
||||
* Merged in 7.4.4 changes, described below.
|
||||
Merged in 7.4.4 changes, described below.
|
||||
|
||||
* mh-e.el (Version, mh-version): Set to 7.4.4+cvs.
|
||||
|
||||
2004-07-10 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.4.
|
||||
Released MH-E version 7.4.4.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.4.
|
||||
|
||||
|
@ -399,9 +672,9 @@
|
|||
routines in the best way possible (closes SF #930012).
|
||||
(require 'mouse): To shush compiler.
|
||||
|
||||
* Use new function mh-require-cl throughout.
|
||||
Use new function mh-require-cl throughout.
|
||||
|
||||
* Add arch taglines (courtesy Miles Bader).
|
||||
Add arch taglines (courtesy Miles Bader).
|
||||
|
||||
* mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and
|
||||
mh-xemacs-icons.el with mh-xemacs.el.
|
||||
|
@ -541,7 +814,7 @@
|
|||
|
||||
2003-11-18 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.3.
|
||||
Released MH-E version 7.4.3.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.3.
|
||||
|
||||
|
@ -684,8 +957,8 @@
|
|||
|
||||
2003-11-04 Steve Youngs <sryoungs@bigpond.net.au>
|
||||
|
||||
* Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el
|
||||
in XEmacs.
|
||||
* Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate
|
||||
mh-loaddefs.el in XEmacs.
|
||||
(XEMACS_LOADDEFS_COOKIE): Ditto.
|
||||
(XEMACS_LOADDEFS_PKG_NAME): Ditto.
|
||||
(xemacs): Add target to build mh-loaddefs.el in XEmacs
|
||||
|
@ -1363,7 +1636,7 @@
|
|||
|
||||
2003-08-19 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.2.
|
||||
Released MH-E version 7.4.2.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.2.
|
||||
|
||||
|
@ -2233,7 +2506,7 @@
|
|||
|
||||
2003-06-25 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.1.
|
||||
Released MH-E version 7.4.1.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.1.
|
||||
|
||||
|
@ -2255,7 +2528,7 @@
|
|||
|
||||
2003-06-24 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.4.
|
||||
Released MH-E version 7.4.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.4.
|
||||
|
||||
|
@ -3362,7 +3635,7 @@
|
|||
|
||||
2003-04-24 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.3.
|
||||
Released MH-E version 7.3.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.3.
|
||||
|
||||
|
@ -4920,7 +5193,7 @@
|
|||
|
||||
2003-02-03 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.2.
|
||||
Released MH-E version 7.2.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.2.
|
||||
|
||||
|
@ -5584,7 +5857,7 @@
|
|||
|
||||
2003-01-07 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.1.
|
||||
Released MH-E version 7.1.
|
||||
|
||||
* MH-E-NEWS, README: Updated for release 7.1.
|
||||
|
||||
|
@ -6678,7 +6951,7 @@
|
|||
|
||||
2002-11-29 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 7.0.
|
||||
Released MH-E version 7.0.
|
||||
|
||||
* mh-e.el (Version, mh-version): Updated for release 7.0.
|
||||
|
||||
|
@ -6703,7 +6976,7 @@
|
|||
|
||||
2002-11-21 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 6.1.91.
|
||||
Released MH-E version 6.1.91.
|
||||
|
||||
* mh-e.el (Version, mh-version): Updated for release 6.1.91.
|
||||
|
||||
|
@ -6727,7 +7000,7 @@
|
|||
|
||||
2002-11-15 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released MH-E version 6.1.90.
|
||||
Released MH-E version 6.1.90.
|
||||
|
||||
* README (Compile): New section. Users must now compile MH-E due
|
||||
to the vagaries of the various versions of gnus.
|
||||
|
@ -9688,7 +9961,7 @@
|
|||
|
||||
2002-04-08 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released mh-e version 6.1.
|
||||
Released mh-e version 6.1.
|
||||
|
||||
* mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component
|
||||
Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp
|
||||
|
@ -9792,7 +10065,7 @@
|
|||
|
||||
2001-12-16 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released mh-e version 6.0.
|
||||
Released mh-e version 6.0.
|
||||
|
||||
* MH-E-NEWS: Be a little more specific about incompatible changes.
|
||||
Added info about outdated manual.
|
||||
|
@ -9815,7 +10088,7 @@
|
|||
|
||||
2001-12-14 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released mh-e version 5.0.93.
|
||||
Released mh-e version 5.0.93.
|
||||
|
||||
* Makefile (MH-E-SRC): Added mh-xemacs-compat.el.
|
||||
(MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from
|
||||
|
@ -10000,7 +10273,7 @@
|
|||
|
||||
2001-12-04 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released mh-e version 5.0.92.
|
||||
Released mh-e version 5.0.92.
|
||||
|
||||
* mh-utils.el (gnus-cite-face-list)
|
||||
(mh-gnus-article-highlight-citation): Don't autoload. Revert to
|
||||
|
@ -10010,7 +10283,7 @@
|
|||
|
||||
2001-12-03 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* Released mh-e version 5.0.91.
|
||||
Released mh-e version 5.0.91.
|
||||
|
||||
* MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now
|
||||
that workaround has been implemented.
|
||||
|
@ -10916,17 +11189,17 @@
|
|||
|
||||
2001-04-14 chad brown <y@mit.edu>
|
||||
|
||||
* rearrange the font-lock keywords a bit
|
||||
Rearrange the font-lock keywords a bit.
|
||||
|
||||
2001-04-12 chad brown <y@mit.edu>
|
||||
|
||||
* preliminary (somewhat boring) font-lock support for mh-e. More
|
||||
Preliminary (somewhat boring) font-lock support for mh-e. More
|
||||
interesting font-lock support probably wants to have better
|
||||
support for multiple format files
|
||||
|
||||
2001-02-24 chad brown <y@mit.edu>
|
||||
|
||||
* add default nmh paths to mh-find-prog in mh-utils.el.
|
||||
Add default nmh paths to mh-find-prog in mh-utils.el.
|
||||
change to mh-kill-folder in mh-funcs.el to make it more general.
|
||||
|
||||
2001-02-19 Bill Wohler <wohler@newt.com>
|
||||
|
@ -10939,10 +11212,10 @@
|
|||
(dist): Leave release in current directory.
|
||||
|
||||
|
||||
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
;;; arch-tag: 87324964-69b6-4925-a3c2-9c1df53d7d51
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-acros.el --- Macros used in MH-E
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -40,6 +40,7 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'cl)
|
||||
(require 'advice)
|
||||
|
||||
;; The Emacs coding conventions require that the cl package not be required at
|
||||
;; 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."
|
|||
|
||||
(defmacro mh-funcall-if-exists (function &rest args)
|
||||
"Call FUNCTION with ARGS as parameters if it exists."
|
||||
(if (fboundp function)
|
||||
`(funcall ',function ,@args)))
|
||||
(when (fboundp function)
|
||||
`(when (fboundp ',function)
|
||||
(funcall ',function ,@args))))
|
||||
|
||||
(defmacro mh-make-local-hook (hook)
|
||||
"Make HOOK local if needed.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-alias.el --- MH-E mail alias completion and expansion
|
||||
;;
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1994, 1995, 1996, 1997,
|
||||
;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Peter S. Galbraith <psg@debian.org>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -162,16 +163,16 @@ Exclude all aliases already in `mh-alias-alist' from `ali'"
|
|||
(while (< (point) (point-max))
|
||||
(cond
|
||||
((looking-at "\\([^:]*\\):[^:]*:\\([^:]*\\):[^:]*:\\([^:]*\\):")
|
||||
(when (> (string-to-int (match-string 2)) 200)
|
||||
(when (> (string-to-number (match-string 2)) 200)
|
||||
(let* ((username (match-string 1))
|
||||
(gecos-name (match-string 3))
|
||||
(realname (mh-alias-gecos-name
|
||||
gecos-name username
|
||||
mh-alias-passwd-gecos-comma-separator-flag))
|
||||
(alias-name (if mh-alias-local-users-prefix
|
||||
(concat mh-alias-local-users-prefix
|
||||
(mh-alias-suggest-alias realname t))
|
||||
username))
|
||||
(concat mh-alias-local-users-prefix
|
||||
(mh-alias-suggest-alias realname t))
|
||||
username))
|
||||
(alias-translation
|
||||
(if (string-equal username realname)
|
||||
(concat "<" username ">")
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-comp.el --- MH-E functions for composing messages
|
||||
|
||||
;; Copyright (C) 1993, 95, 1997, 2000, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995, 1997,
|
||||
;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -52,7 +53,6 @@
|
|||
(defvar mh-identity-menu)
|
||||
|
||||
;;; Autoloads
|
||||
(autoload 'Info-goto-node "info")
|
||||
(autoload 'mail-mode-fill-paragraph "sendmail")
|
||||
(autoload 'mm-handle-displayed-p "mm-decode")
|
||||
|
||||
|
@ -490,8 +490,10 @@ to reply to:
|
|||
cc/all sender and all recipients.
|
||||
If optional prefix argument INCLUDEP provided, then include the message
|
||||
in the reply using filter `mhl.reply' in your MH directory.
|
||||
If the file named by `mh-repl-formfile' exists, it is used as a skeleton
|
||||
for the reply.
|
||||
If the file named by `mh-repl-formfile' exists, it is used as a skeleton for
|
||||
the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU
|
||||
mailutils variants and the file names by `mh-repl-group-formfile' exists, it
|
||||
is used instead.
|
||||
|
||||
See also `mh-send'."
|
||||
(interactive (list
|
||||
|
@ -1629,15 +1631,22 @@ This is useful in breaking up paragraphs in replies."
|
|||
(defun mh-complete-word (word choices begin end)
|
||||
"Complete WORD at from CHOICES.
|
||||
Any match found replaces the text from BEGIN to END."
|
||||
(let ((completion (try-completion word choices)))
|
||||
(let ((completion (try-completion word choices))
|
||||
(completions-buffer "*Completions*"))
|
||||
(cond ((eq completion t)
|
||||
(ignore-errors
|
||||
(kill-buffer completions-buffer))
|
||||
(message "Completed: %s" word))
|
||||
((null completion)
|
||||
(ignore-errors
|
||||
(kill-buffer completions-buffer))
|
||||
(message "No completion for `%s'" word))
|
||||
((stringp completion)
|
||||
(if (equal word completion)
|
||||
(with-output-to-temp-buffer "*Completions*"
|
||||
(with-output-to-temp-buffer completions-buffer
|
||||
(display-completion-list (all-completions word choices)))
|
||||
(ignore-errors
|
||||
(kill-buffer completions-buffer))
|
||||
(delete-region begin end)
|
||||
(insert completion))))))
|
||||
|
||||
|
@ -1965,8 +1974,6 @@ Otherwise return the empty string."
|
|||
|
||||
;; "C-c /" prefix is used in mh-letter-mode by pgp.el and mailcrypt.el.
|
||||
|
||||
;;;###autoload(add-to-list 'auto-mode-alist '("/drafts/[0-9]+\\'" . mh-letter-mode))
|
||||
|
||||
(provide 'mh-comp)
|
||||
|
||||
;;; Local Variables:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-customize.el --- MH-E customization
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -69,8 +69,6 @@
|
|||
(mh-require-cl)
|
||||
(require 'mh-loaddefs)
|
||||
|
||||
(autoload 'Info-goto-node "info")
|
||||
|
||||
(eval-and-compile
|
||||
(defvar mh-xemacs-flag (featurep 'xemacs)
|
||||
"Non-nil means the current Emacs is XEmacs."))
|
||||
|
@ -102,121 +100,115 @@ the frame are removed."
|
|||
|
||||
;;; MH-E Customization Groups
|
||||
|
||||
(defgroup mh nil
|
||||
(defgroup mh-e nil
|
||||
"Emacs interface to the MH mail system.
|
||||
MH is the Rand Mail Handler. Other implementations include nmh and GNU
|
||||
mailutils."
|
||||
:link '(custom-manual "(mh-e)Top")
|
||||
:group 'mail)
|
||||
|
||||
(defgroup mh-e '((mh custom-group)) ; Sort of an alias for 'mh group
|
||||
"Emacs interface to the MH mail system.
|
||||
MH is the Rand Mail Handler. Other implementations include nmh and GNU
|
||||
mailutils."
|
||||
:link '(custom-manual "(mh-e)Top"))
|
||||
|
||||
(defgroup mh-alias nil
|
||||
"Aliases."
|
||||
:link '(custom-manual "(mh-e)Aliases")
|
||||
:prefix "mh-alias-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-folder nil
|
||||
"Organizing your mail with folders."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Organizing")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-folder-selection nil
|
||||
"Folder selection."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Folder Selection")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-identity nil
|
||||
"Identities."
|
||||
:link '(custom-manual "(mh-e)Identities")
|
||||
:prefix "mh-identity-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-inc nil
|
||||
"Incorporating your mail."
|
||||
:prefix "mh-inc-"
|
||||
:link '(custom-manual "(mh-e)Incorporating Mail")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-index nil
|
||||
"Searching."
|
||||
:link '(custom-manual "(mh-e)Searching")
|
||||
:prefix "mh-index-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-junk nil
|
||||
"Dealing with junk mail."
|
||||
:link '(custom-manual "(mh-e)Junk")
|
||||
:prefix "mh-junk-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-letter nil
|
||||
"Editing a draft."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Editing Drafts")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-ranges nil
|
||||
"Ranges."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Ranges")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-scan-line-formats nil
|
||||
"Scan line formats."
|
||||
:link '(custom-manual "(mh-e)Scan Line Formats")
|
||||
:prefix "mh-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-sending-mail nil
|
||||
"Sending mail."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Sending Mail")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-sequences nil
|
||||
"Sequences."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Sequences")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-show nil
|
||||
"Reading your mail."
|
||||
:prefix "mh-"
|
||||
:link '(custom-manual "(mh-e)Reading Mail")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-speed nil
|
||||
"The speedbar."
|
||||
:prefix "mh-speed-"
|
||||
:link '(custom-manual "(mh-e)Speedbar")
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-toolbar nil
|
||||
"The toolbar"
|
||||
:link '(custom-manual "(mh-e)Toolbar")
|
||||
:prefix "mh-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-faces nil
|
||||
"Faces used in MH-E."
|
||||
:link '(custom-manual "(mh-e)Top")
|
||||
:prefix "mh-"
|
||||
:group 'faces
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
(defgroup mh-hooks nil
|
||||
"MH-E hooks."
|
||||
:link '(custom-manual "(mh-e)Top")
|
||||
:prefix "mh-"
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
;;; Faces
|
||||
|
||||
|
@ -280,7 +272,7 @@ accordingly."
|
|||
:set (lambda (symbol value)
|
||||
(set-default symbol value) ;Done in mh-variant-set-variant!
|
||||
(mh-variant-set value))
|
||||
:group 'mh)
|
||||
:group 'mh-e)
|
||||
|
||||
|
||||
|
||||
|
@ -448,14 +440,34 @@ information."
|
|||
(defcustom mh-identity-list nil
|
||||
"*List of identities.
|
||||
|
||||
Each element consists of an identity label, and a collection of header fields
|
||||
and a signature to insert if the identity is selected (see
|
||||
`mh-identity-default', `mh-insert-identity' and the `Identity' menu in a
|
||||
MH-Letter buffer). The `Value Menu' contains the common header fields `From'
|
||||
and `Organization'. Other header fields may be added using the `Other Field'
|
||||
menu item. The `Signature' menu item is used to insert a signature with
|
||||
`mh-insert-signature'. The `GPG Key ID' menu item is used to specify a
|
||||
different key to sign or encrypt messages."
|
||||
To customize this option, click on the `INS' button and enter a label such as
|
||||
`Home' or `Work'. Then click on the `INS' button with the label `Add at least
|
||||
one item below'. Then choose one of the items in the `Value Menu'.
|
||||
|
||||
You can specify an alternate `From:' header field using the `From Field' menu
|
||||
item. You must include a valid email address. A standard format is `First Last
|
||||
<login@@host.domain>'. If you use an initial with a period, then you must
|
||||
quote your name as in `\"First I. Last\" <login@@host.domain>'. People usually
|
||||
list the name of the company where they work using the `Organization Field'
|
||||
menu item. Set any arbitrary header field and value in the `Other Field' menu
|
||||
item. Unless the header field is a standard one, precede the name of your
|
||||
field's label with `X-', as in `X-Fruit-of-the-Day:'. The value of
|
||||
`Attribution Verb' overrides the setting of
|
||||
`mh-extract-from-attribution-verb'. Set your signature with the `Signature'
|
||||
menu item. You can specify the contents of `mh-signature-file-name', a file,
|
||||
or a function. Specify a different key to sign or encrypt messages with the
|
||||
`GPG Key ID' menu item.
|
||||
|
||||
You can select the identities you have added via the menu called `Identity' in
|
||||
the MH-Letter buffer. You can also use \\[mh-insert-identity]. To clear the
|
||||
fields and signature added by the identity, select the `None' identity.
|
||||
|
||||
The `Identity' menu contains two other items to save you from having to set
|
||||
the identity on every message. The menu item `Set Default for Session' can be
|
||||
used to set the default identity to the current identity until you exit Emacs.
|
||||
The menu item `Save as Default' sets the option `mh-identity-default' to the
|
||||
current identity setting. You can also customize the `mh-identity-default'
|
||||
option in the usual fashion."
|
||||
:type '(repeat (list :tag ""
|
||||
(string :tag "Label")
|
||||
(repeat :tag "Add at least one item below"
|
||||
|
@ -489,12 +501,38 @@ different key to sign or encrypt messages."
|
|||
|
||||
(defcustom mh-auto-fields-list nil
|
||||
"List of recipients for which header lines are automatically inserted.
|
||||
Each element consists of the recipient, which is a regular expression, and a
|
||||
collection of header fields and identities to insert if the message is sent to
|
||||
this recipient. The `Value Menu' contains the common header fields `Fcc' and
|
||||
`Mail-Followup-To'. Other header fields may be added using the `Other Field'
|
||||
menu item. The `Identity' menu item is used to insert entire identities with
|
||||
`mh-insert-identity'."
|
||||
|
||||
This option can be used to set the identity depending on the recipient. To
|
||||
customize this option, click on the `INS' button and enter a regular
|
||||
expression for the recipient's address. Click on the `INS' button with the
|
||||
`Add at least one item below' label. Then choose one of the items in the
|
||||
`Value Menu'.
|
||||
|
||||
The `Identity' menu item is used to select an identity from those configured
|
||||
in `mh-identity-list'. All of the information for that identity will be added
|
||||
if the recipient matches. The `Fcc Field' menu item is used to select a folder
|
||||
that is used in the `Fcc:' header. When you send the message, MH will put a
|
||||
copy of your message in this folder. The `Mail-Followup-To Field' menu item is
|
||||
used to insert an `Mail-Followup-To:' header field with the recipients you
|
||||
provide. If the recipient's mail user agent supports this header field (as nmh
|
||||
does), then their replies will go to the addresses listed. This is useful if
|
||||
their replies go both to the list and to you and you don't have a mechanism to
|
||||
suppress duplicates. If you reply to someone not on the list, you must either
|
||||
remove the `Mail-Followup-To:' field, or ensure the recipient is also listed
|
||||
there so that he receives replies to your reply. Other header fields may be
|
||||
added using the `Other Field' menu item.
|
||||
|
||||
These fields can only be added after the recipient is known. Once the header
|
||||
contains one or more recipients, run the \\[mh-insert-auto-fields] command or
|
||||
choose the `Identity -> Insert Auto Fields' menu item to insert these fields
|
||||
manually. However, you can just send the message and the fields will be added
|
||||
automatically. You are given a chance to see these fields and to confirm them
|
||||
before the message is actually sent. You can do away with this confirmation by
|
||||
turning off the option `mh-auto-fields-prompt-flag'.
|
||||
|
||||
You should avoid using the same header field in `mh-auto-fields-list' and
|
||||
`mh-identity-list' definitions that may apply to the same message as the
|
||||
result is undefined."
|
||||
:type `(repeat
|
||||
(list :tag ""
|
||||
(string :tag "Recipient")
|
||||
|
@ -525,7 +563,8 @@ See `mh-auto-fields-list'."
|
|||
:group 'mh-identity)
|
||||
|
||||
(defcustom mh-identity-default nil
|
||||
"Default identity to use when `mh-letter-mode' is called."
|
||||
"Default identity to use when `mh-letter-mode' is called.
|
||||
See `mh-identity-list'."
|
||||
:type (append
|
||||
'(radio)
|
||||
(cons '(const :tag "None" nil)
|
||||
|
@ -534,16 +573,32 @@ See `mh-auto-fields-list'."
|
|||
:group 'mh-identity)
|
||||
|
||||
(defcustom mh-identity-handlers
|
||||
'((":default" . mh-identity-handler-bottom)
|
||||
("from" . mh-identity-handler-top)
|
||||
'(("From" . mh-identity-handler-top)
|
||||
(":default" . mh-identity-handler-bottom)
|
||||
(":attribution-verb" . mh-identity-handler-attribution-verb)
|
||||
(":signature" . mh-identity-handler-signature)
|
||||
(":pgg-default-user-id" . mh-identity-handler-gpg-identity))
|
||||
"Handler functions for fields in `mh-identity-list'.
|
||||
This is an alist of fields (strings) and handlers (functions). Strings are
|
||||
lowercase. Use \":signature\" for Signature and \":pgg-default-user-id\" for
|
||||
GPG Key ID. The function associated with the string \":default\" is used if no
|
||||
other functions are appropriate."
|
||||
|
||||
This option is used to change the way that fields, signatures, and
|
||||
attributions in `mh-identity-list' are added. To customize
|
||||
`mh-identity-handlers', replace the name of an existing handler function
|
||||
associated with the field you want to change with the name of a function you
|
||||
have written. You can also click on an `INS' button and insert a field of your
|
||||
choice and the name of the function you have written to handle it.
|
||||
|
||||
The `Field' field can be any field that you've used in your
|
||||
`mh-identity-list'. The special fields `:attribution-verb', `:signature', or
|
||||
`:pgg-default-user-id' are used for the `mh-identity-list' choices
|
||||
`Attribution Verb', `Signature', and `GPG Key ID' respectively.
|
||||
|
||||
The handler associated with the `:default' field is used when no other field
|
||||
matches.
|
||||
|
||||
The handler functions are passed two or three arguments: the FIELD itself (for
|
||||
example, `From'), or one of the special fields (for example, `:signature'),
|
||||
and the ACTION `'remove' or `'add'. If the action is `'add', an additional
|
||||
argument containing the VALUE for the field is given."
|
||||
:type '(repeat (cons (string :tag "Field") function))
|
||||
:group 'mh-identity)
|
||||
|
||||
|
@ -552,45 +607,45 @@ other functions are appropriate."
|
|||
;;; Incorporating Your Mail (:group 'mh-inc)
|
||||
|
||||
(defcustom mh-inc-prog "inc"
|
||||
"*Program to run to incorporate new mail into a folder.
|
||||
Normally \"inc\". This program is relative to the `mh-progs' directory unless
|
||||
it is an absolute pathname."
|
||||
"*Program to incorporate new mail into a folder.
|
||||
|
||||
This program generates a one-line summary for each of the new messages. Unless
|
||||
it is an absolute pathname, the file is assumed to be in the `mh-progs'
|
||||
directory. You may also link a file to `inc' that uses a different format.
|
||||
You'll then need to modify several scan line format variables appropriately."
|
||||
:type 'string
|
||||
:group 'mh-inc)
|
||||
|
||||
(defcustom mh-inc-spool-list nil
|
||||
"*Alist of alternate spool files, corresponding folders and keybindings.
|
||||
This option will be described by example.
|
||||
"*Alternate spool files.
|
||||
|
||||
Suppose you have subscribed to the mh-e-devel mailing list and you use
|
||||
procmail to filter its mail into `~/mail/mh-e' with the following
|
||||
`.procmailrc' recipe:
|
||||
You can use the `mh-inc-spool-list' variable to direct MH-E to retrieve mail
|
||||
from arbitrary spool files other than your system mailbox, file it in folders
|
||||
other than your `+inbox', and assign key bindings to incorporate this mail.
|
||||
|
||||
Suppose you are subscribed to the `mh-e-devel' mailing list and you use
|
||||
`procmail' to filter this mail into `~/mail/mh-e' with the following recipe in
|
||||
`.procmailrc':
|
||||
|
||||
MAILDIR=$HOME/mail
|
||||
:0:
|
||||
* ^From mh-e-devel-admin@lists.sourceforge.net
|
||||
* ^From mh-e-devel-admin@stop.mail-abuse.org
|
||||
mh-e
|
||||
|
||||
If you wanted to incorporate that spool file into an MH folder called mh-e
|
||||
with the \"I m\" or \\[mh-inc-spool-mh-e] commands, you would use the
|
||||
following:
|
||||
In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m'
|
||||
\(`mh-inc-spool-mh-e'\) command, customize this option, and click on the `INS'
|
||||
button. Enter a `Spool File' of `~/mail/mh-e', a `Folder' of `mh-e', and a
|
||||
`Key Binding' of `m'.
|
||||
|
||||
Spool File: ~/mail/mh-e
|
||||
Folder: mh-e
|
||||
Key Binding: m
|
||||
|
||||
Then, you could also install `xbuffy' and configure an extra mailbox using the
|
||||
gnuserv package to run the `mh-inc-spool-mh-e' command in Emacs:
|
||||
You can use `xbuffy' to automate the incorporation of this mail using the
|
||||
`gnudoit' command in the `gnuserv' package as follows:
|
||||
|
||||
box ~/mail/mh-e
|
||||
title mh-e
|
||||
origMode
|
||||
polltime 10
|
||||
headertime 0
|
||||
command gnudoit -q '(mh-inc-spool-mh-e)'
|
||||
|
||||
To incorporate the spool file, click the xbuffy box with the middle mouse
|
||||
button."
|
||||
command gnudoit -q '(mh-inc-spool-mh-e)'"
|
||||
:type '(repeat (list (file :tag "Spool File")
|
||||
(string :tag "Folder")
|
||||
(character :tag "Key Binding")))
|
||||
|
@ -602,10 +657,10 @@ button."
|
|||
;;; Searching (:group 'mh-index)
|
||||
|
||||
(defcustom mh-index-new-messages-folders t
|
||||
"Folders searched for the `unseen' sequence.
|
||||
This option can be set to `Inbox' to search the `+inbox' folder or `All' to
|
||||
"Folders searched for the \"unseen\" sequence.
|
||||
Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
|
||||
search all of the top level folders. Otherwise, list the folders that should
|
||||
be searched with the `Choose Folders' menu item.
|
||||
be searched with the \"Choose Folders\" menu item.
|
||||
|
||||
See also `mh-recursive-folders-flag'."
|
||||
:group 'mh-index
|
||||
|
@ -633,9 +688,9 @@ found in the documentation of `mh-index-search'."
|
|||
|
||||
(defcustom mh-index-ticked-messages-folders t
|
||||
"Folders searched for `mh-tick-seq'.
|
||||
This option can be set to `Inbox' to search the `+inbox' folder or `All' to
|
||||
Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to
|
||||
search all of the top level folders. Otherwise, list the folders that should
|
||||
be searched with the `Choose Folders' menu item.
|
||||
be searched with the \"Choose Folders\" menu item.
|
||||
|
||||
See also `mh-recursive-folders-flag'."
|
||||
:group 'mh-index
|
||||
|
@ -672,25 +727,6 @@ bound to the new value of `mh-junk-program'. The function sets the variable
|
|||
finally return (car element)))))
|
||||
|
||||
;; User customizable variables
|
||||
(defcustom mh-junk-disposition nil
|
||||
"Disposition of junk mail."
|
||||
:type '(choice (const :tag "Delete Spam" nil)
|
||||
(string :tag "Spam Folder"))
|
||||
:group 'mh-junk)
|
||||
|
||||
(defcustom mh-junk-program nil
|
||||
"Spam program that MH-E should use.
|
||||
The default setting of this option is `Auto-detect' which means that MH-E will
|
||||
automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in that
|
||||
order. If, for example, you have both SpamAssassin and Bogofilter installed
|
||||
and you want to use BogoFilter, then you can set this option to `Bogofilter'."
|
||||
:type '(choice (const :tag "Auto-detect" nil)
|
||||
(const :tag "SpamAssassin" spamassassin)
|
||||
(const :tag "Bogofilter" bogofilter)
|
||||
(const :tag "SpamProbe" spamprobe))
|
||||
:set 'mh-junk-choose
|
||||
:group 'mh-junk)
|
||||
|
||||
(defcustom mh-junk-background nil
|
||||
"If on, spam programs are run in background.
|
||||
By default, the programs are run in the foreground, but this can be slow when
|
||||
|
@ -700,23 +736,31 @@ that many messages at the same time, you might try turning on this option."
|
|||
(const :tag "On" 0))
|
||||
:group 'mh-junk)
|
||||
|
||||
(defcustom mh-junk-disposition nil
|
||||
"Disposition of junk mail."
|
||||
:type '(choice (const :tag "Delete Spam" nil)
|
||||
(string :tag "Spam Folder"))
|
||||
:group 'mh-junk)
|
||||
|
||||
(defcustom mh-junk-program nil
|
||||
"Spam program that MH-E should use.
|
||||
|
||||
The default setting of this option is \"Auto-detect\" which means that MH-E
|
||||
will automatically choose one of SpamAssassin, Bogofilter, or SpamProbe in
|
||||
that order. If, for example, you have both SpamAssassin and Bogofilter
|
||||
installed and you want to use BogoFilter, then you can set this option to
|
||||
\"Bogofilter\"."
|
||||
:type '(choice (const :tag "Auto-detect" nil)
|
||||
(const :tag "SpamAssassin" spamassassin)
|
||||
(const :tag "Bogofilter" bogofilter)
|
||||
(const :tag "SpamProbe" spamprobe))
|
||||
:set 'mh-junk-choose
|
||||
:group 'mh-junk)
|
||||
|
||||
|
||||
|
||||
;;; Editing a Draft (:group 'mh-letter)
|
||||
|
||||
(defcustom mh-mml-method-default (if mh-gnus-pgp-support-flag "pgpmime" "none")
|
||||
"Default method to use in security directives."
|
||||
:type '(choice (const :tag "PGP (MIME)" "pgpmime")
|
||||
(const :tag "PGP" "pgp")
|
||||
(const :tag "S/MIME" "smime")
|
||||
(const :tag "None" "none"))
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-compose-forward-as-mime-flag t
|
||||
"Non-nil means that messages are forwarded as a MIME part."
|
||||
:type 'boolean
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-compose-insertion (if (locate-library "mml") 'gnus 'mhn)
|
||||
"Type of MIME message directives in messages.
|
||||
|
||||
|
@ -761,11 +805,6 @@ by \\<mh-letter-mode-map>\\[mh-insert-letter] or \\[mh-yank-cur-msg]."
|
|||
:type 'string
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-insert-x-mailer-flag t
|
||||
"*Non-nil means append an X-Mailer field to the header."
|
||||
:type 'boolean
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-letter-complete-function 'ispell-complete-word
|
||||
"*Function to call when completing outside of address or folder fields.
|
||||
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."
|
|||
:type 'integer
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-reply-show-message-flag t
|
||||
"*Non-nil means the show buffer is displayed using \\<mh-letter-mode-map>\\[mh-reply].
|
||||
|
||||
The setting of this variable determines whether the MH `show-buffer' is
|
||||
displayed with the current message when using `mh-reply' without a prefix
|
||||
argument. Set it to nil if you already include the message automatically
|
||||
in your draft using
|
||||
repl: -filter repl.filter
|
||||
in your ~/.mh_profile file."
|
||||
:type 'boolean
|
||||
(defcustom mh-mml-method-default (if mh-gnus-pgp-support-flag "pgpmime" "none")
|
||||
"Default method to use in security directives."
|
||||
:type '(choice (const :tag "PGP (MIME)" "pgpmime")
|
||||
(const :tag "PGP" "pgp")
|
||||
(const :tag "S/MIME" "smime")
|
||||
(const :tag "None" "none"))
|
||||
:group 'mh-letter)
|
||||
|
||||
(defcustom mh-signature-file-name "~/.signature"
|
||||
|
@ -881,14 +916,14 @@ If nil, yank only the portion of the message following the point.
|
|||
If the show buffer has a region, this variable is ignored unless its value is
|
||||
one of `attribution' or `autoattrib' in which case the attribution is added
|
||||
to the yanked region."
|
||||
:type '(choice (const :tag "Below point" nil)
|
||||
(const :tag "Without header" body)
|
||||
:type '(choice (const :tag "Body and Header" t)
|
||||
(const :tag "Body" body)
|
||||
(const :tag "Below Point" nil)
|
||||
(const :tag "Invoke supercite" supercite)
|
||||
(const :tag "Invoke supercite, automatically" autosupercite)
|
||||
(const :tag "Without header, with attribution" attribution)
|
||||
(const :tag "Without header, with attribution, automatically"
|
||||
autoattrib)
|
||||
(const :tag "Entire message with headers" t))
|
||||
(const :tag "Invoke supercite, Automatically" autosupercite)
|
||||
(const :tag "Body With Attribution" attribution)
|
||||
(const :tag "Body With Attribution, Automatically"
|
||||
autoattrib))
|
||||
:group 'mh-letter)
|
||||
|
||||
|
||||
|
@ -947,6 +982,11 @@ for relative to the `mh-progs' directory unless it is an absolute pathname."
|
|||
|
||||
;;; Sending Mail (:group 'mh-sending-mail)
|
||||
|
||||
(defcustom mh-compose-forward-as-mime-flag t
|
||||
"Non-nil means that messages are forwarded as a MIME part."
|
||||
:type 'boolean
|
||||
:group 'mh-sending-mail)
|
||||
|
||||
(defcustom mh-compose-letter-function nil
|
||||
"Invoked when setting up a letter draft.
|
||||
It is passed three arguments: TO recipients, SUBJECT, and CC recipients."
|
||||
|
@ -965,6 +1005,11 @@ message and the original subject line."
|
|||
:type 'string
|
||||
:group 'mh-sending-mail)
|
||||
|
||||
(defcustom mh-insert-x-mailer-flag t
|
||||
"*Non-nil means append an X-Mailer field to the header."
|
||||
:type 'boolean
|
||||
:group 'mh-sending-mail)
|
||||
|
||||
(defcustom mh-reply-default-reply-to nil
|
||||
"*Sets the person or persons to whom a reply will be sent.
|
||||
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."
|
|||
(const "cc") (const "all"))
|
||||
:group 'mh-sending-mail)
|
||||
|
||||
(defcustom mh-reply-show-message-flag t
|
||||
"*Non-nil means the show buffer is displayed using \\<mh-letter-mode-map>\\[mh-reply].
|
||||
|
||||
The setting of this variable determines whether the MH `show-buffer' is
|
||||
displayed with the current message when using `mh-reply' without a prefix
|
||||
argument. Set it to nil if you already include the message automatically
|
||||
in your draft using
|
||||
repl: -filter repl.filter
|
||||
in your ~/.mh_profile file."
|
||||
:type 'boolean
|
||||
:group 'mh-sending-mail)
|
||||
|
||||
|
||||
|
||||
;;; Sequences (:group 'mh-sequences)
|
||||
|
@ -1120,6 +1177,7 @@ The gnus method uses a different color for each indentation."
|
|||
"Delivered-To:" ; Egroups/yahoogroups mailing list manager
|
||||
"Delivery-Date:" ; MH
|
||||
"Delivery:"
|
||||
"DomainKey-Signature:" ;http://antispam.yahoo.com/domainkeys
|
||||
"Encoding:"
|
||||
"Envelope-to:"
|
||||
"Errors-To:"
|
||||
|
@ -1188,6 +1246,7 @@ The gnus method uses a different color for each indentation."
|
|||
"X-Envelope-From:"
|
||||
"X-Envelope-Sender:"
|
||||
"X-Envelope-To:"
|
||||
"X-Evolution:" ; Evolution mail client
|
||||
"X-Face:"
|
||||
"X-Folder:" ; Spam
|
||||
"X-From-Line"
|
||||
|
@ -1264,6 +1323,7 @@ The gnus method uses a different color for each indentation."
|
|||
"X-Trace:"
|
||||
"X-UID"
|
||||
"X-UIDL:"
|
||||
"X-USANET-" ; usa.net
|
||||
"X-UserInfo1:"
|
||||
"X-VSMLoop:" ; NTMail
|
||||
"X-Vms-To:"
|
||||
|
@ -1527,13 +1587,13 @@ Optional argument ARG is not used."
|
|||
(defun mh-tool-bar-folder-help ()
|
||||
"Visit \"(mh-e)Top\"."
|
||||
(interactive)
|
||||
(Info-goto-node "(mh-e)Top")
|
||||
(info "(mh-e)Top")
|
||||
(delete-other-windows))
|
||||
|
||||
(defun mh-tool-bar-letter-help ()
|
||||
"Visit \"(mh-e)Draft Editing\"."
|
||||
(interactive)
|
||||
(Info-goto-node "(mh-e)Draft Editing")
|
||||
(info "(mh-e)Draft Editing")
|
||||
(delete-other-windows))
|
||||
|
||||
(defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag)
|
||||
|
@ -1907,9 +1967,9 @@ This button runs `mh-previous-undeleted-msg'")
|
|||
;; Common buttons
|
||||
(mh-tool-bar-customize (folder letter) "preferences" "MH-E Preferences")
|
||||
(mh-tool-bar-folder-help (folder) "help"
|
||||
"Help! (general help)\nThis button runs `Info-goto-node'")
|
||||
"Help! (general help)\nThis button runs `info'")
|
||||
(mh-tool-bar-letter-help (letter) "help"
|
||||
"Help! (general help)\nThis button runs `Info-goto-node'")
|
||||
"Help! (general help)\nThis button runs `info'")
|
||||
;; Folder narrowed to sequence buttons
|
||||
(mh-widen (sequence) "widen"
|
||||
"Widen from the sequence\nThis button runs `mh-widen'"))
|
||||
|
@ -2085,7 +2145,7 @@ will be removed from the unseen sequence."
|
|||
;;; Faces Used in Scan Listing (:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-body-face 'mh-folder-body-face
|
||||
"Face for highlighting body text in MH-Folder buffers.")
|
||||
"Face used to highlight body text in MH-Folder buffers.")
|
||||
(defface mh-folder-body-face
|
||||
'((((type tty) (class color)) (:foreground "green"))
|
||||
(((class grayscale) (background light)) (:foreground "DimGray" :italic t))
|
||||
|
@ -2093,11 +2153,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "RosyBrown"))
|
||||
(((class color) (background dark)) (:foreground "LightSalmon"))
|
||||
(t (:italic t)))
|
||||
"Face for highlighting body text in MH-Folder buffers."
|
||||
"Face used to highlight body text in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg-face
|
||||
"Face for the current message line in MH-Folder buffers.")
|
||||
"Face used for the current message line in MH-Folder buffers.")
|
||||
(defface mh-folder-cur-msg-face
|
||||
'((((type tty pc) (class color))
|
||||
(:background "LightGreen"))
|
||||
|
@ -2108,11 +2168,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background dark))
|
||||
(:background "DarkOliveGreen4"))
|
||||
(t (:underline t)))
|
||||
"Face for the current message line in MH-Folder buffers."
|
||||
"Face used for the current message line in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number-face
|
||||
"Face for highlighting the current message in MH-Folder buffers.")
|
||||
"Face used to highlight the current message in MH-Folder buffers.")
|
||||
(defface mh-folder-cur-msg-number-face
|
||||
'((((type tty) (class color)) (:foreground "cyan" :weight bold))
|
||||
(((class grayscale) (background light)) (:foreground "LightGray" :bold t))
|
||||
|
@ -2120,11 +2180,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "Purple"))
|
||||
(((class color) (background dark)) (:foreground "Cyan"))
|
||||
(t (:bold t)))
|
||||
"Face for highlighting the current message in MH-Folder buffers."
|
||||
"Face used to highlight the current message in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-date-face 'mh-folder-date-face
|
||||
"Face for highlighting the date in MH-Folder buffers.")
|
||||
"Face used to highlight the date in MH-Folder buffers.")
|
||||
(defface mh-folder-date-face
|
||||
'((((class color) (background light))
|
||||
(:foreground "snow4"))
|
||||
|
@ -2132,11 +2192,11 @@ will be removed from the unseen sequence."
|
|||
(:foreground "snow3"))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting the date in MH-Folder buffers."
|
||||
"Face used to highlight the date in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-followup-face 'mh-folder-followup-face
|
||||
"Face for highlighting Re: (followup) subject text in MH-Folder buffers.")
|
||||
"Face used to highlight Re: subject text in MH-Folder buffers.")
|
||||
(defface mh-folder-followup-face
|
||||
'((((class color) (background light))
|
||||
(:foreground "blue3"))
|
||||
|
@ -2144,11 +2204,11 @@ will be removed from the unseen sequence."
|
|||
(:foreground "LightGoldenRod"))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting Re: (followup) subject text in MH-Folder buffers."
|
||||
"Face used to highlight Re: subject text in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-msg-number-face 'mh-folder-msg-number-face
|
||||
"Face for highlighting the message number in MH-Folder buffers.")
|
||||
"Face used to highlight the message number in MH-Folder buffers.")
|
||||
(defface mh-folder-msg-number-face
|
||||
'((((class color) (background light))
|
||||
(:foreground "snow4"))
|
||||
|
@ -2156,15 +2216,15 @@ will be removed from the unseen sequence."
|
|||
(:foreground "snow3"))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting the message number in MH-Folder buffers."
|
||||
"Face used to highlight the message number in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-deleted-face 'mh-folder-deleted-face
|
||||
"Face for highlighting deleted messages in MH-Folder buffers.")
|
||||
"Face used to highlight deleted messages in MH-Folder buffers.")
|
||||
(copy-face 'mh-folder-msg-number-face 'mh-folder-deleted-face)
|
||||
|
||||
(defvar mh-folder-refiled-face 'mh-folder-refiled-face
|
||||
"Face for highlighting refiled messages in MH-Folder buffers.")
|
||||
"Face used to highlight refiled messages in MH-Folder buffers.")
|
||||
(defface mh-folder-refiled-face
|
||||
'((((type tty) (class color)) (:foreground "yellow" :weight light))
|
||||
(((class grayscale) (background light))
|
||||
|
@ -2174,11 +2234,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "DarkGoldenrod"))
|
||||
(((class color) (background dark)) (:foreground "LightGoldenrod"))
|
||||
(t (:bold t :italic t)))
|
||||
"Face for highlighting refiled messages in MH-Folder buffers."
|
||||
"Face used to highlight refiled messages in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-subject-face 'mh-folder-subject-face
|
||||
"Face for highlighting subject text in MH-Folder buffers.")
|
||||
"Face used to highlight subject text in MH-Folder buffers.")
|
||||
(if (boundp 'facemenu-unlisted-faces)
|
||||
(add-to-list 'facemenu-unlisted-faces "^mh-folder"))
|
||||
(defface mh-folder-subject-face
|
||||
|
@ -2188,7 +2248,7 @@ will be removed from the unseen sequence."
|
|||
(:foreground "yellow"))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting subject text in MH-Folder buffers."
|
||||
"Face used to highlight subject text in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
(defface mh-folder-tick-face
|
||||
|
@ -2199,15 +2259,15 @@ will be removed from the unseen sequence."
|
|||
:group 'mh-folder-faces)
|
||||
|
||||
(defvar mh-folder-address-face 'mh-folder-address-face
|
||||
"Face for highlighting the address in MH-Folder buffers.")
|
||||
"Face used to highlight the address in MH-Folder buffers.")
|
||||
(copy-face 'mh-folder-subject-face 'mh-folder-address-face)
|
||||
|
||||
(defvar mh-folder-scan-format-face 'mh-folder-scan-format-face
|
||||
"Face for highlighting `mh-scan-format-regexp' matches in MH-Folder buffers.")
|
||||
"Face used to highlight `mh-scan-format-regexp' matches in MH-Folder buffers.")
|
||||
(copy-face 'mh-folder-followup-face 'mh-folder-scan-format-face)
|
||||
|
||||
(defvar mh-folder-to-face 'mh-folder-to-face
|
||||
"Face for highlighting the To: string in MH-Folder buffers.")
|
||||
"Face used to highlight the To: string in MH-Folder buffers.")
|
||||
(defface mh-folder-to-face
|
||||
'((((type tty) (class color)) (:foreground "green"))
|
||||
(((class grayscale) (background light)) (:foreground "DimGray" :italic t))
|
||||
|
@ -2215,7 +2275,7 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "RosyBrown"))
|
||||
(((class color) (background dark)) (:foreground "LightSalmon"))
|
||||
(t (:italic t)))
|
||||
"Face for highlighting the To: string in MH-Folder buffers."
|
||||
"Face used to highlight the To: string in MH-Folder buffers."
|
||||
:group 'mh-folder-faces)
|
||||
|
||||
|
||||
|
@ -2223,7 +2283,7 @@ will be removed from the unseen sequence."
|
|||
;;; Faces Used in Searching (:group 'mh-index-faces)
|
||||
|
||||
(defvar mh-index-folder-face 'mh-index-folder-face
|
||||
"Face for highlighting folders in MH-Index buffers.")
|
||||
"Face used to highlight folders in MH-Index buffers.")
|
||||
(defface mh-index-folder-face
|
||||
'((((class color) (background light))
|
||||
(:foreground "dark green" :bold t))
|
||||
|
@ -2231,7 +2291,7 @@ will be removed from the unseen sequence."
|
|||
(:foreground "indian red" :bold t))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting folders in MH-Index buffers."
|
||||
"Face used to highlight folders in MH-Index buffers."
|
||||
:group 'mh-index-faces)
|
||||
|
||||
|
||||
|
@ -2244,7 +2304,7 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background dark))
|
||||
(:background "gray10"))
|
||||
(t (:bold t)))
|
||||
"Face for displaying header fields in draft buffers."
|
||||
"Face used to display header fields in draft buffers."
|
||||
:group 'mh-letter-faces)
|
||||
|
||||
|
||||
|
@ -2252,7 +2312,7 @@ will be removed from the unseen sequence."
|
|||
;;; Faces Used in Message Display (:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-cc-face 'mh-show-cc-face
|
||||
"Face for highlighting cc header fields.")
|
||||
"Face used to highlight cc: header fields.")
|
||||
(defface mh-show-cc-face
|
||||
'((((type tty) (class color)) (:foreground "yellow" :weight light))
|
||||
(((class grayscale) (background light))
|
||||
|
@ -2262,11 +2322,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "DarkGoldenrod"))
|
||||
(((class color) (background dark)) (:foreground "LightGoldenrod"))
|
||||
(t (:bold t :italic t)))
|
||||
"Face for highlighting cc header fields."
|
||||
"Face used to highlight cc: header fields."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-date-face 'mh-show-date-face
|
||||
"Face for highlighting the Date header field.")
|
||||
"Face used to highlight the Date: header field.")
|
||||
(defface mh-show-date-face
|
||||
'((((type tty) (class color)) (:foreground "green"))
|
||||
(((class grayscale) (background light)) (:foreground "Gray90" :bold t))
|
||||
|
@ -2274,7 +2334,7 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "ForestGreen"))
|
||||
(((class color) (background dark)) (:foreground "PaleGreen"))
|
||||
(t (:bold t :underline t)))
|
||||
"Face for highlighting the Date header field."
|
||||
"Face used to highlight the Date: header field."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-header-face 'mh-show-header-face
|
||||
|
@ -2289,13 +2349,36 @@ will be removed from the unseen sequence."
|
|||
"Face used to deemphasize unspecified header fields."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-pgg-good-face 'mh-show-pgg-good-face
|
||||
"Face used to highlight a good PGG signature.")
|
||||
(defface mh-show-pgg-good-face
|
||||
'((t (:bold t :foreground "LimeGreen")))
|
||||
"Face used to highlight a good PGG signature."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown-face
|
||||
"Face used to highlight a PGG signature whose status is unknown.
|
||||
This face is also used for a signature when the signer is untrusted.")
|
||||
(defface mh-show-pgg-unknown-face
|
||||
'((t (:bold t :foreground "DarkGoldenrod2")))
|
||||
"Face used to highlight a PGG signature whose status is unknown.
|
||||
This face is also used for a signature when the signer is untrusted."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-pgg-bad-face 'mh-show-pgg-bad-face
|
||||
"Face used to highlight a bad PGG signature.")
|
||||
(defface mh-show-pgg-bad-face
|
||||
'((t (:bold t :foreground "DeepPink1")))
|
||||
"Face used to highlight a bad PGG signature."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defface mh-show-signature-face
|
||||
'((t (:italic t)))
|
||||
"Face for highlighting message signature."
|
||||
"Face used to highlight the message signature."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-to-face 'mh-show-to-face
|
||||
"Face for highlighting the To: header field.")
|
||||
"Face used to highlight the To: header field.")
|
||||
(if (boundp 'facemenu-unlisted-faces)
|
||||
(add-to-list 'facemenu-unlisted-faces "^mh-show"))
|
||||
(defface mh-show-to-face
|
||||
|
@ -2306,11 +2389,11 @@ will be removed from the unseen sequence."
|
|||
(((class color) (background light)) (:foreground "SaddleBrown"))
|
||||
(((class color) (background dark)) (:foreground "burlywood"))
|
||||
(t (:underline t)))
|
||||
"Face for highlighting the To: header field."
|
||||
"Face used to highlight the To: header field."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-from-face 'mh-show-from-face
|
||||
"Face for highlighting the From: header field.")
|
||||
"Face used to highlight the From: header field.")
|
||||
(defface mh-show-from-face
|
||||
'((((class color) (background light))
|
||||
(:foreground "red3"))
|
||||
|
@ -2318,17 +2401,17 @@ will be removed from the unseen sequence."
|
|||
(:foreground "cyan"))
|
||||
(t
|
||||
(:bold t)))
|
||||
"Face for highlighting the From: header field."
|
||||
"Face used to highlight the From: header field."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defface mh-show-xface-face
|
||||
'((t (:foreground "black" :background "white")))
|
||||
"Face for displaying the X-Face image.
|
||||
"Face used to display the X-Face image.
|
||||
The background and foreground is used in the image."
|
||||
:group 'mh-show-faces)
|
||||
|
||||
(defvar mh-show-subject-face 'mh-show-subject-face
|
||||
"Face for highlighting the Subject header field.")
|
||||
"Face used to highlight the Subject: header field.")
|
||||
(copy-face 'mh-folder-subject-face 'mh-show-subject-face)
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
;;; mh-e.el --- GNU Emacs interface to the MH mail system
|
||||
|
||||
;; Copyright (C) 1985, 86, 87, 88, 90, 92, 93, 94, 95, 97, 1999,
|
||||
;; 2000, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1985, 1986, 1987, 1988,
|
||||
;; 1990, 1992, 1993, 1994, 1995, 1997, 1999,
|
||||
;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
;; Version: 7.82
|
||||
;; Version: 7.84
|
||||
;; Keywords: mail
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -97,10 +98,7 @@
|
|||
(defvar font-lock-auto-fontify)
|
||||
(defvar font-lock-defaults)
|
||||
|
||||
(defconst mh-version "7.82" "Version number of MH-E.")
|
||||
|
||||
;;; Autoloads
|
||||
(autoload 'Info-goto-node "info")
|
||||
(defconst mh-version "7.84" "Version number of MH-E.")
|
||||
|
||||
(defvar mh-partial-folder-mode-line-annotation "select"
|
||||
"Annotation when displaying part of a folder.
|
||||
|
@ -578,7 +576,8 @@ Do not call this function from outside MH-E; use \\[mh-rmail] instead."
|
|||
(setq folder mh-inbox))
|
||||
(let ((threading-needed-flag nil))
|
||||
(let ((config (current-window-configuration)))
|
||||
(delete-other-windows)
|
||||
(when (and mh-show-buffer (get-buffer mh-show-buffer))
|
||||
(delete-windows-on mh-show-buffer))
|
||||
(cond ((not (get-buffer folder))
|
||||
(mh-make-folder folder)
|
||||
(setq threading-needed-flag mh-show-threads-flag)
|
||||
|
@ -717,22 +716,24 @@ updated."
|
|||
(mh-refile-a-msg nil folder))
|
||||
(when (looking-at mh-scan-refiled-msg-regexp) (mh-next-msg)))
|
||||
|
||||
(defun mh-refile-or-write-again (message)
|
||||
"Re-execute the last refile or write command on the given MESSAGE.
|
||||
(defun mh-refile-or-write-again (range &optional interactive-flag)
|
||||
"Re-execute the last refile or write command on the given RANGE.
|
||||
Default is the displayed message. Use the same folder or file as the previous
|
||||
refile or write command."
|
||||
(interactive (list (mh-get-msg-num t)))
|
||||
refile or write command.
|
||||
If INTERACTIVE-FLAG is non-nil then the function was called interactively."
|
||||
(interactive (list (mh-interactive-range "Redo") t))
|
||||
(if (null mh-last-destination)
|
||||
(error "No previous refile or write"))
|
||||
(let (output)
|
||||
(setq output
|
||||
(cond ((eq (car mh-last-destination) 'refile)
|
||||
(mh-refile-a-msg message (cdr mh-last-destination))
|
||||
(mh-refile-msg range (cdr mh-last-destination))
|
||||
(format "Destination folder: %s" (cdr mh-last-destination)))
|
||||
(t
|
||||
(apply 'mh-write-msg-to-file message (cdr mh-last-destination))
|
||||
(mh-iterate-on-range msg range
|
||||
(apply 'mh-write-msg-to-file msg (cdr mh-last-destination)))
|
||||
(mh-next-msg interactive-flag)
|
||||
(format "Destination: %s" (cdr mh-last-destination)))))
|
||||
(mh-next-msg (interactive-p))
|
||||
(message output)))
|
||||
|
||||
(defun mh-quit ()
|
||||
|
@ -1801,7 +1802,7 @@ Return in the current buffer."
|
|||
(message "inc %s..." folder))
|
||||
(setq mh-next-direction 'forward)
|
||||
(goto-char (point-max))
|
||||
(mh-remove-all-notation)
|
||||
(mh-remove-cur-notation)
|
||||
(let ((start-of-inc (point)))
|
||||
(if maildrop-name
|
||||
;; I think MH 5 used "-ms-file" instead of "-file",
|
||||
|
@ -1827,7 +1828,7 @@ Return in the current buffer."
|
|||
start-of-inc (point-max))))
|
||||
(delete-region start-of-inc (point-max))
|
||||
(unwind-protect (mh-widen t)
|
||||
(mh-remove-all-notation)
|
||||
(mh-remove-cur-notation)
|
||||
(goto-char (point-max))
|
||||
(setq start-of-inc (point))
|
||||
(insert saved-text)
|
||||
|
@ -1846,7 +1847,15 @@ Return in the current buffer."
|
|||
(t
|
||||
(setq new-mail-flag t)))
|
||||
(keep-lines mh-scan-valid-regexp) ; Flush random scan lines
|
||||
(setq mh-seq-list (mh-read-folder-sequences folder t))
|
||||
(let* ((sequences (mh-read-folder-sequences folder t))
|
||||
(new-cur (assoc 'cur sequences))
|
||||
(new-unseen (assoc mh-unseen-seq sequences)))
|
||||
(unless (assoc 'cur mh-seq-list)
|
||||
(push (list 'cur) mh-seq-list))
|
||||
(unless (assoc mh-unseen-seq mh-seq-list)
|
||||
(push (list mh-unseen-seq) mh-seq-list))
|
||||
(setcdr (assoc 'cur mh-seq-list) (cdr new-cur))
|
||||
(setcdr (assoc mh-unseen-seq mh-seq-list) (cdr new-unseen)))
|
||||
(when (equal (point-max) start-of-inc)
|
||||
(mh-notate-cur))
|
||||
(if new-mail-flag
|
||||
|
@ -1858,8 +1867,7 @@ Return in the current buffer."
|
|||
(mh-thread-inc folder start-of-inc))
|
||||
(mh-goto-cur-msg))
|
||||
(goto-char point-before-inc))
|
||||
(mh-notate-user-sequences)
|
||||
(mh-notate-deleted-and-refiled)))))
|
||||
(mh-notate-user-sequences (cons start-of-inc (point-max)))))))
|
||||
|
||||
(defun mh-make-folder-mode-line (&optional ignored)
|
||||
"Set the fields of the mode line for a folder buffer.
|
||||
|
@ -2033,18 +2041,18 @@ with no arguments, before the commands are processed."
|
|||
(mh-coalesce-msg-list msgs))
|
||||
(mh-delete-scan-msgs msgs)
|
||||
;; Preserve sequences in destination folder...
|
||||
(when (and mh-refile-preserves-sequences-flag
|
||||
(numberp last))
|
||||
(when mh-refile-preserves-sequences-flag
|
||||
(clrhash dest-map)
|
||||
(loop for i from (1+ last)
|
||||
(loop for i from (1+ (or last 0))
|
||||
for msg in (sort (copy-sequence msgs) #'<)
|
||||
do (loop for seq-name in (gethash msg seq-map)
|
||||
do (push i (gethash seq-name dest-map))))
|
||||
(maphash
|
||||
#'(lambda (seq msgs)
|
||||
;; Run it in the background, since we don't care
|
||||
;; about the results.
|
||||
(apply #'mh-exec-cmd-daemon "mark" #'ignore
|
||||
;; Can't be run in the background, since the
|
||||
;; current folder is changed by mark this could
|
||||
;; lead to a race condition with the next refile.
|
||||
(apply #'mh-exec-cmd "mark"
|
||||
"-sequence" (symbol-name seq) dest-folder
|
||||
"-add" (mapcar #'(lambda (x) (format "%s" x))
|
||||
(mh-coalesce-msg-list msgs))))
|
||||
|
@ -2201,13 +2209,14 @@ Expands ranges into set of individual numbers."
|
|||
(end-of-line (save-excursion (end-of-line) (point)))
|
||||
num)
|
||||
(while (re-search-forward "[0-9]+" end-of-line t)
|
||||
(setq num (string-to-int (buffer-substring (match-beginning 0)
|
||||
(match-end 0))))
|
||||
(setq num (string-to-number (buffer-substring (match-beginning 0)
|
||||
(match-end 0))))
|
||||
(cond ((looking-at "-") ; Message range
|
||||
(forward-char 1)
|
||||
(re-search-forward "[0-9]+" end-of-line t)
|
||||
(let ((num2 (string-to-int (buffer-substring (match-beginning 0)
|
||||
(match-end 0)))))
|
||||
(let ((num2 (string-to-number
|
||||
(buffer-substring (match-beginning 0)
|
||||
(match-end 0)))))
|
||||
(if (< num2 num)
|
||||
(error "Bad message range: %d-%d" num num2))
|
||||
(while (<= num num2)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-funcs.el --- MH-E functions not everyone will use right away
|
||||
|
||||
;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995,
|
||||
;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -127,7 +128,7 @@ Display the results only if something went wrong."
|
|||
(set-buffer (get-buffer-create mh-temp-buffer))
|
||||
(insert-before-markers output)
|
||||
(when (save-excursion
|
||||
(beginning-of-buffer)
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "^rmf: " (point-max) t))
|
||||
(display-buffer mh-temp-buffer)))
|
||||
|
||||
|
@ -148,7 +149,7 @@ Display the results only if something went wrong."
|
|||
"-recurse"
|
||||
"-norecurse"))
|
||||
(goto-char (point-min))
|
||||
(view-mode 1)
|
||||
(view-mode-enter)
|
||||
(setq view-exit-action 'kill-buffer)
|
||||
(message "Listing folders...done")))))
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-gnus.el --- Make MH-E compatible with installed version of Gnus.
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-identity.el --- Multiple identify support for MH-E.
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Peter S. Galbraith <psg@debian.org>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -87,18 +87,18 @@ change."
|
|||
;;;###mh-autoload
|
||||
(defun mh-identity-list-set (symbol value)
|
||||
"Update the `mh-identity-list' variable, and rebuild the menu.
|
||||
Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in
|
||||
customization). This is called after 'customize is used to alter
|
||||
Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set
|
||||
in customization). This is called after 'customize is used to alter
|
||||
`mh-identity-list'."
|
||||
(set-default symbol value)
|
||||
(mh-identity-make-menu))
|
||||
|
||||
(defvar mh-identity-local nil
|
||||
"Buffer-local variable holding the identity currently in use.")
|
||||
"Buffer-local variable that holds the identity currently in use.")
|
||||
(make-variable-buffer-local 'mh-identity-local)
|
||||
|
||||
(defun mh-header-field-delete (field value-only)
|
||||
"Delete FIELD in the mail header, or only its value if VALUE-ONLY is t.
|
||||
"Delete header FIELD, or only its value if VALUE-ONLY is t.
|
||||
Return t if anything is deleted."
|
||||
(let ((field-colon (if (string-match "^.*:$" field)
|
||||
field
|
||||
|
@ -119,11 +119,11 @@ Return t if anything is deleted."
|
|||
"Marker for the end of a signature inserted by `mh-insert-identity'.")
|
||||
|
||||
(defun mh-identity-field-handler (field)
|
||||
"Return the handler for a FIELD or nil if none set.
|
||||
"Return the handler for header FIELD or nil if none set.
|
||||
The field name is downcased. If the FIELD begins with the character
|
||||
`:', then it must have a special handler defined in
|
||||
`mh-identity-handlers', else return an error since it is not a valid
|
||||
message header."
|
||||
header field."
|
||||
(or (cdr (assoc (downcase field) mh-identity-handlers))
|
||||
(and (eq (aref field 0) ?:)
|
||||
(error (format "Field %s - unknown mh-identity-handler" field)))
|
||||
|
@ -132,8 +132,8 @@ message header."
|
|||
|
||||
;;;###mh-autoload
|
||||
(defun mh-insert-identity (identity)
|
||||
"Insert proper fields for given IDENTITY.
|
||||
Edit the `mh-identity-list' variable to define identity."
|
||||
"Insert fields specified by given IDENTITY.
|
||||
See `mh-identity-list'."
|
||||
(interactive
|
||||
(list (completing-read
|
||||
"Identity: "
|
||||
|
@ -167,7 +167,8 @@ Edit the `mh-identity-list' variable to define identity."
|
|||
|
||||
;;;###mh-autoload
|
||||
(defun mh-identity-handler-gpg-identity (field action &optional value)
|
||||
"For FIELD \"pgg-default-user-id\", process for ACTION 'remove or 'add.
|
||||
"Process header FIELD \":pgg-default-user-id\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE
|
||||
when action 'add is selected."
|
||||
(cond
|
||||
|
@ -180,8 +181,8 @@ when action 'add is selected."
|
|||
|
||||
;;;###mh-autoload
|
||||
(defun mh-identity-handler-signature (field action &optional value)
|
||||
"For FIELD \"signature\", process headers for ACTION 'remove or 'add.
|
||||
The VALUE is added."
|
||||
"Process header FIELD \":signature\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
|
||||
(cond
|
||||
((equal action 'remove)
|
||||
(when (and (markerp mh-identity-signature-start)
|
||||
|
@ -210,8 +211,8 @@ The VALUE is added."
|
|||
|
||||
;;;###mh-autoload
|
||||
(defun mh-identity-handler-attribution-verb (field action &optional value)
|
||||
"For FIELD \"attribution_verb\", process headers for ACTION 'remove or 'add.
|
||||
The VALUE is added."
|
||||
"Process header FIELD \":attribution-verb\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added."
|
||||
(when (and (markerp mh-identity-attribution-verb-start)
|
||||
(markerp mh-identity-attribution-verb-end))
|
||||
(delete-region mh-identity-attribution-verb-start
|
||||
|
@ -239,9 +240,10 @@ If VALUE is nil, use `mh-extract-from-attribution-verb'."
|
|||
(point-max-marker))))
|
||||
|
||||
(defun mh-identity-handler-default (field action top &optional value)
|
||||
"For FIELD, process mh-identity headers for ACTION 'remove or 'add.
|
||||
if TOP is non-nil, add the field and it's VALUE at the top of the header, else
|
||||
add it at the bottom of the header."
|
||||
"Process header FIELD.
|
||||
The ACTION is one of 'remove or 'add. If TOP is non-nil, add the field and its
|
||||
VALUE at the top of the header, else add it at the bottom of the header. If
|
||||
action is 'add, the VALUE is added."
|
||||
(let ((field-colon (if (string-match "^.*:$" field)
|
||||
field
|
||||
(concat field ":"))))
|
||||
|
@ -266,14 +268,16 @@ add it at the bottom of the header."
|
|||
|
||||
;;;###mh-autoload
|
||||
(defun mh-identity-handler-top (field action &optional value)
|
||||
"For FIELD, process mh-identity headers for ACTION 'remove or 'add.
|
||||
If the field wasn't present, the VALUE is added at the top of the header."
|
||||
"Process header FIELD.
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
If the field wasn't present, it is added to the top of the header."
|
||||
(mh-identity-handler-default field action t value))
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-identity-handler-bottom (field action &optional value)
|
||||
"For FIELD, process mh-identity headers for ACTION 'remove or 'add.
|
||||
If the field wasn't present, the VALUE is added at the bottom of the header."
|
||||
"Process header FIELD.
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
If the field wasn't present, it is added to the bottom of the header."
|
||||
(mh-identity-handler-default field action nil value))
|
||||
|
||||
(provide 'mh-identity)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-inc.el --- MH-E `inc' and separate mail spool handling
|
||||
;;
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Peter S. Galbraith <psg@debian.org>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -98,10 +98,10 @@ This is called after 'customize is used to alter `mh-inc-spool-list'."
|
|||
|
||||
(provide 'mh-inc)
|
||||
|
||||
;; Local Variables:
|
||||
;; indent-tabs-mode: nil
|
||||
;; sentence-end-double-space: nil
|
||||
;; End:
|
||||
;;; Local Variables:
|
||||
;;; indent-tabs-mode: nil
|
||||
;;; sentence-end-double-space: nil
|
||||
;;; End:
|
||||
|
||||
;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
|
||||
;;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
|
||||
;;; mh-inc.el ends here
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-index -- MH-E interface to indexing programs
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -31,6 +31,7 @@
|
|||
;;; swish-e
|
||||
;;; mairix
|
||||
;;; namazu
|
||||
;;; pick
|
||||
;;; grep
|
||||
;;;
|
||||
;;; (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."
|
|||
(defun* mh-index-search (redo-search-flag folder search-regexp
|
||||
&optional window-config)
|
||||
"Perform an indexed search in an MH mail folder.
|
||||
Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below.
|
||||
Use a prefix argument to repeat the search.
|
||||
|
||||
If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a
|
||||
index search, then the search is repeated. Otherwise, FOLDER is searched with
|
||||
SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is
|
||||
\"+\" then mail in all folders are searched. Optional argument WINDOW-CONFIG
|
||||
stores the window configuration that will be restored after the user quits the
|
||||
folder containing the index search results.
|
||||
Unlike regular searches, the prompt for the folder to search can be `all' to
|
||||
search all folders; in addition, the search works recursively on the listed
|
||||
folder. The search criteria are entered in an MH-Pick buffer as described in
|
||||
`mh-search-folder'.
|
||||
|
||||
Four indexing programs are supported; if none of these are present, then grep
|
||||
is used. This function picks the first program that is available on your
|
||||
system. If you would prefer to use a different program, set the customization
|
||||
variable `mh-index-program' accordingly.
|
||||
To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another
|
||||
difference from the regular searches is that because the search operates on
|
||||
more than one folder, the messages that are found are put in a temporary
|
||||
sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This
|
||||
buffer is special because it displays messages from multiple folders; each set
|
||||
of messages from a given folder has a heading with the folder name.
|
||||
|
||||
The documentation for the following functions describes how to generate the
|
||||
index for each program:
|
||||
In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can
|
||||
be used to visit the folder of the message at point. Initially, only the
|
||||
messages that matched the search criteria are displayed in the folder. While
|
||||
the temporary buffer has its own set of message numbers, the actual messages
|
||||
numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder]
|
||||
command is useful to find the actual message number of an interesting message,
|
||||
or to view surrounding messages with the \\[mh-rescan-folder] command.
|
||||
|
||||
Because this folder is temporary, you'll probably get in the habit of killing
|
||||
it when you're done with \\[mh-kill-folder].
|
||||
|
||||
If you have run the \\[mh-search-folder] command, but change your mind while
|
||||
entering the search criteria and actually want to run an indexed search, then
|
||||
you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the
|
||||
MH-Pick buffer.
|
||||
|
||||
The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined
|
||||
by the `mh-index-program' option. The default value is \"Auto-detect\" which
|
||||
means that MH-E will automatically choose one of \"swish++\", \"swish-e\",
|
||||
\"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example,
|
||||
you have both \"swish++\" and \"mairix\" installed and you want to use
|
||||
\"mairix\", then you can set this option to \"mairix\".
|
||||
|
||||
*NOTE*
|
||||
|
||||
The \"pick\" and \"grep\" commands do not perform a recursive search on
|
||||
the given folder.
|
||||
|
||||
This command uses an \"X-MHE-Checksum:\" header field to cache the MD5
|
||||
checksum of a message. This means that if an incoming message already contains
|
||||
an \"X-MHE-Checksum:\" field, that message might not be found by this command.
|
||||
The following \"procmail\" recipe avoids this problem by renaming the existing
|
||||
header field:
|
||||
|
||||
:0 wf
|
||||
| formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\"
|
||||
|
||||
The documentation for the following commands describe how to set up the
|
||||
various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands
|
||||
do not require additional configuration.
|
||||
|
||||
- `mh-swish++-execute-search'
|
||||
- `mh-swish-execute-search'
|
||||
- `mh-mairix-execute-search'
|
||||
- `mh-namazu-execute-search'
|
||||
|
||||
If none of these programs are present then we use pick. If desired grep can be
|
||||
used instead. Details about these methods can be found in:
|
||||
|
||||
- `mh-pick-execute-search'
|
||||
- `mh-grep-execute-search'
|
||||
|
||||
This and related functions use an X-MHE-Checksum header to cache the MD5
|
||||
checksum of a message. This means that already present X-MHE-Checksum headers
|
||||
in the incoming email could result in messages not being found. The following
|
||||
procmail recipe should avoid this:
|
||||
|
||||
:0 wf
|
||||
| formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\"
|
||||
|
||||
This has the effect of renaming already present X-MHE-Checksum headers."
|
||||
In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was
|
||||
generated by a index search, then the search is repeated. Otherwise, FOLDER is
|
||||
searched with SEARCH-REGEXP and the results are presented in an MH-E folder.
|
||||
If FOLDER is \"+\" then mail in all folders are searched. Optional argument
|
||||
WINDOW-CONFIG stores the window configuration that will be restored after the
|
||||
user quits the folder containing the index search results."
|
||||
(interactive
|
||||
(list current-prefix-arg
|
||||
(progn
|
||||
|
@ -998,8 +1030,8 @@ Unlike the other index search programs \"pick\" only searches messages present
|
|||
in the folder itself and does not descend into any sub-folders that may be
|
||||
present.
|
||||
|
||||
FOLDER-PATH is the directory containing the mails to be searched and
|
||||
SEARCH-REGEXP is the pattern that pick gets."
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
|
||||
to search."
|
||||
(set-buffer (get-buffer-create mh-index-temp-buffer))
|
||||
(erase-buffer)
|
||||
(setq mh-index-pick-folder
|
||||
|
@ -1029,7 +1061,13 @@ SEARCH-REGEXP is the pattern that pick gets."
|
|||
|
||||
(defun mh-grep-execute-search (folder-path search-regexp)
|
||||
"Execute grep and read the results.
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
||||
|
||||
Unlike the other index search programs \"grep\" only searches messages present
|
||||
in the folder itself and does not descend into any sub-folders that may be
|
||||
present.
|
||||
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used
|
||||
to search."
|
||||
(set-buffer (get-buffer-create mh-index-temp-buffer))
|
||||
(erase-buffer)
|
||||
(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
|
|||
(defun mh-mairix-execute-search (folder-path search-regexp-list)
|
||||
"Execute mairix and read the results.
|
||||
|
||||
In the examples below replace /home/user/Mail with the path to your MH
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your MH
|
||||
directory.
|
||||
|
||||
First create the directory /home/user/Mail/.mairix. Then create the file
|
||||
/home/user/Mail/.mairix/config with the following contents:
|
||||
First create the directory \"/home/user/Mail/.mairix\". Then create the file
|
||||
\"/home/user/Mail/.mairix/config\" with the following contents:
|
||||
|
||||
# This should contain the same thing as your `mh-user-path'
|
||||
base=/home/user/Mail
|
||||
base=/home/user/Mail
|
||||
|
||||
# List of folders that should be indexed. 3 dots at the end means there are
|
||||
# subfolders within the folder
|
||||
mh_folders=archive...:inbox:drafts:news:sent:trash
|
||||
# List of folders that should be indexed. 3 dots at the end means there
|
||||
# are subfolders within the folder
|
||||
mh=archive...:inbox:drafts:news:sent:trash
|
||||
|
||||
vfolder_format=raw
|
||||
database=/home/user/Mail/mairix/database
|
||||
vfolder_format=raw
|
||||
database=/home/user/Mail/mairix/database
|
||||
|
||||
Use the following command line to generate the mairix index. Run this daily
|
||||
from cron:
|
||||
|
||||
mairix -f /home/user/Mail/.mairix/config
|
||||
mairix -f /home/user/Mail/.mairix/config
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used to search."
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP-LIST is used
|
||||
to search."
|
||||
(set-buffer (get-buffer-create mh-index-temp-buffer))
|
||||
(erase-buffer)
|
||||
(unless mh-mairix-binary
|
||||
(error "Set mh-mairix-binary appropriately"))
|
||||
(apply #'call-process mh-mairix-binary nil '(t nil) nil
|
||||
"-f" (format "%s%s/config" mh-user-path mh-mairix-directory)
|
||||
"-r" "-f" (format "%s%s/config" mh-user-path mh-mairix-directory)
|
||||
search-regexp-list)
|
||||
(goto-char (point-min))
|
||||
(setq mh-mairix-folder
|
||||
|
@ -1167,10 +1205,10 @@ REGEXP-LIST is an alist of fields and values."
|
|||
(let ((expr-list (cdr conjunct))
|
||||
(expr-string ""))
|
||||
(dolist (e expr-list)
|
||||
(setq expr-string (concat expr-string "+"
|
||||
(setq expr-string (concat expr-string ","
|
||||
(if (atom e) "" "~")
|
||||
(if (atom e) e (cadr e)))))
|
||||
(setq final (concat final "," (substring expr-string 1)))))
|
||||
(setq final (concat final "/" (substring expr-string 1)))))
|
||||
(substring final 1)))
|
||||
result)))
|
||||
result))
|
||||
|
@ -1327,52 +1365,49 @@ space-separated list of FOLDERS, or nothing to search all folders."
|
|||
(defun mh-swish-execute-search (folder-path search-regexp)
|
||||
"Execute swish-e and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
directory.
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your
|
||||
MH directory.
|
||||
|
||||
First create the directory /home/user/Mail/.swish. Then create the file
|
||||
/home/user/Mail/.swish/config with the following contents:
|
||||
First create the directory \"/home/user/Mail/.swish\". Then create the file
|
||||
\"/home/user/Mail/.swish/config\" with the following contents:
|
||||
|
||||
IndexDir /home/user/Mail
|
||||
IndexFile /home/user/Mail/.swish/index
|
||||
IndexName \"Mail Index\"
|
||||
IndexDescription \"Mail Index\"
|
||||
IndexPointer \"http://nowhere\"
|
||||
IndexAdmin \"nobody\"
|
||||
#MetaNames automatic
|
||||
IndexReport 3
|
||||
FollowSymLinks no
|
||||
UseStemming no
|
||||
IgnoreTotalWordCountWhenRanking yes
|
||||
WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
|
||||
BeginCharacters abcdefghijklmnopqrstuvwxyz
|
||||
EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
|
||||
IgnoreLimit 50 1000
|
||||
IndexComments 0
|
||||
FileRules pathname contains /home/user/Mail/.swish
|
||||
FileRules pathname contains /home/user/Mail/mhe-index
|
||||
FileRules filename is index
|
||||
FileRules filename is \\..*
|
||||
FileRules filename is #.*
|
||||
FileRules filename is ,.*
|
||||
FileRules filename is .*~
|
||||
DefaultContents TXT*
|
||||
IndexDir /home/user/Mail
|
||||
IndexFile /home/user/Mail/.swish/index
|
||||
IndexName \"Mail Index\"
|
||||
IndexDescription \"Mail Index\"
|
||||
IndexPointer \"http://nowhere\"
|
||||
IndexAdmin \"nobody\"
|
||||
#MetaNames automatic
|
||||
IndexReport 3
|
||||
FollowSymLinks no
|
||||
UseStemming no
|
||||
IgnoreTotalWordCountWhenRanking yes
|
||||
WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
|
||||
BeginCharacters abcdefghijklmnopqrstuvwxyz
|
||||
EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
|
||||
IgnoreLimit 50 1000
|
||||
IndexComments 0
|
||||
FileRules filename contains \\D
|
||||
FileRules pathname contains /home/user/Mail/.swish
|
||||
FileRules pathname contains /home/user/Mail/mhe-index
|
||||
|
||||
This configuration does not index the folders that hold the results of your
|
||||
searches in \"+mhe-index\" since they tend to be ephemeral and the original
|
||||
messages are indexed anyway.
|
||||
|
||||
If there are any directories you would like to ignore, append lines like the
|
||||
following to config:
|
||||
following to \"config\":
|
||||
|
||||
FileRules pathname contains /home/user/Mail/scripts
|
||||
FileRules pathname contains /home/user/Mail/scripts
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The configuration file above assumes that the results are found in sub-folders
|
||||
of `mh-index-folder' which is +mhe-index by default.
|
||||
Use the following command line to generate the swish index. Run this daily
|
||||
from cron:
|
||||
|
||||
Use the following command line to generate the swish index. Run this
|
||||
daily from cron:
|
||||
swish-e -c /home/user/Mail/.swish/config
|
||||
|
||||
swish-e -c /home/user/Mail/.swish/config
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search."
|
||||
(set-buffer (get-buffer-create mh-index-temp-buffer))
|
||||
(erase-buffer)
|
||||
(unless mh-swish-binary
|
||||
|
@ -1407,7 +1442,8 @@ FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
|||
(list (let* ((s (buffer-substring-no-properties start (1+ (point)))))
|
||||
(unless (string-match mh-swish-folder s)
|
||||
(return 'error))
|
||||
(if (string-match mh-user-path s)
|
||||
(if (and (string-match mh-user-path s)
|
||||
(< (match-end 0) (1- (length s))))
|
||||
(format "+%s"
|
||||
(substring s (match-end 0) (1- (length s))))
|
||||
(return 'error)))
|
||||
|
@ -1431,34 +1467,35 @@ FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
|||
(defun mh-swish++-execute-search (folder-path search-regexp)
|
||||
"Execute swish++ and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your MH
|
||||
directory.
|
||||
|
||||
First create the directory /home/user/Mail/.swish++. Then create the file
|
||||
/home/user/Mail/.swish++/swish++.conf with the following contents:
|
||||
First create the directory \"/home/user/Mail/.swish++\". Then create the file
|
||||
\"/home/user/Mail/.swish++/swish++.conf\" with the following contents:
|
||||
|
||||
IncludeMeta Bcc Cc Comments Content-Description From Keywords
|
||||
IncludeMeta Newsgroups Resent-To Subject To
|
||||
IncludeMeta Message-Id References In-Reply-To
|
||||
IncludeFile Mail *
|
||||
IndexFile /home/user/Mail/.swish++/swish++.index
|
||||
IncludeMeta Bcc Cc Comments Content-Description From Keywords
|
||||
IncludeMeta Newsgroups Resent-To Subject To
|
||||
IncludeMeta Message-Id References In-Reply-To
|
||||
IncludeFile Mail *
|
||||
IndexFile /home/user/Mail/.swish++/swish++.index
|
||||
|
||||
Use the following command line to generate the swish index. Run this
|
||||
daily from cron:
|
||||
Use the following command line to generate the swish index. Run this daily
|
||||
from cron:
|
||||
|
||||
find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
|
||||
-o -path /home/user/Mail/.swish++ -prune \\
|
||||
-o -name \"[0-9]*\" -print \\
|
||||
| index -c /home/user/Mail/.swish++/swish++.conf /home/user/Mail
|
||||
find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
|
||||
-o -path /home/user/Mail/.swish++ -prune \\
|
||||
-o -name \"[0-9]*\" -print \\
|
||||
| index -c /home/user/Mail/.swish++/swish++.conf -
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The command above assumes that the results are found in sub-folders of
|
||||
`mh-index-folder' which is +mhe-index by default.
|
||||
This command does not index the folders that hold the results of your searches
|
||||
in \"+mhe-index\" since they tend to be ephemeral and the original messages
|
||||
are indexed anyway.
|
||||
|
||||
On some systems (Debian GNU/Linux, for example), use index++ instead of index.
|
||||
On some systems (Debian GNU/Linux, for example), use \"index++\" instead of
|
||||
\"index\".
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search."
|
||||
(set-buffer (get-buffer-create mh-index-temp-buffer))
|
||||
(erase-buffer)
|
||||
(unless mh-swish++-binary
|
||||
|
@ -1512,32 +1549,29 @@ REGEXP-LIST is an alist of fields and values."
|
|||
(defun mh-namazu-execute-search (folder-path search-regexp)
|
||||
"Execute namazu and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your MH
|
||||
directory.
|
||||
|
||||
First create the directory /home/user/Mail/.namazu. Then create the file
|
||||
/home/user/Mail/.namazu/mknmzrc with the following contents:
|
||||
First create the directory \"/home/user/Mail/.namazu\". Then create the file
|
||||
\"/home/user/Mail/.namazu/mknmzrc\" with the following contents:
|
||||
|
||||
package conf; # Don't remove this line!
|
||||
$ADDRESS = 'user@localhost';
|
||||
$ALLOW_FILE = \"[0-9]*\";
|
||||
$EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
|
||||
package conf; # Don't remove this line!
|
||||
$ADDRESS = 'user@localhost';
|
||||
$ALLOW_FILE = \"[0-9]*\";
|
||||
$EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
|
||||
|
||||
In the above example configuration, none of the mail files contained in the
|
||||
directories /home/user/Mail/mhe-index and /home/user/Mail/spam are indexed.
|
||||
This configuration does not index the folders that hold the results of your
|
||||
searches in \"+mhe-index\" since they tend to be ephemeral and the original
|
||||
messages are indexed anyway.
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The configuration file above assumes that the results are found in sub-folders
|
||||
of `mh-index-folder' which is +mhe-index by default.
|
||||
Use the following command line to generate the namazu index. Run this daily
|
||||
from cron:
|
||||
|
||||
Use the following command line to generate the namazu index. Run this
|
||||
daily from cron:
|
||||
mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
|
||||
/home/user/Mail
|
||||
|
||||
mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
|
||||
/home/user/Mail
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search."
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search."
|
||||
(let ((namazu-index-directory
|
||||
(format "%s%s" mh-user-path mh-namazu-directory)))
|
||||
(unless (file-exists-p namazu-index-directory)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-init.el --- MH-E initialization.
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Peter S. Galbraith <psg@debian.org>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-junk.el --- Interface to anti-spam measures
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Satyaki Das <satyaki@theforce.stanford.edu>,
|
||||
;; Bill Wohler <wohler@newt.com>
|
||||
|
@ -191,8 +191,8 @@ done by adding the following to your crontab:
|
|||
(message (format "Blacklisting message %d..." msg))
|
||||
(set-buffer (get-buffer-create mh-temp-buffer))
|
||||
(erase-buffer)
|
||||
(call-process (expand-file-name mh-scan-prog mh-progs) mh-junk-background
|
||||
t nil
|
||||
(call-process (expand-file-name mh-scan-prog mh-progs)
|
||||
nil mh-junk-background nil
|
||||
(format "%s" msg) current-folder
|
||||
"-format" "%<(mymbox{from})%|%(addr{from})%>")
|
||||
(goto-char (point-min))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-loaddefs.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
;;; Author: Bill Wohler <wohler@newt.com>
|
||||
;;; Keywords: mail
|
||||
;;; Commentary:
|
||||
|
@ -13,7 +13,7 @@
|
|||
;;;;;; mh-check-whom mh-insert-signature mh-to-fcc mh-to-field mh-fill-paragraph-function
|
||||
;;;;;; mh-get-header-field mh-send-other-window mh-send mh-reply
|
||||
;;;;;; mh-redistribute mh-forward mh-extract-rejected-mail mh-edit-again)
|
||||
;;;;;; "mh-comp" "mh-comp.el" (16665 53716))
|
||||
;;;;;; "mh-comp" "mh-comp.el" (17048 51103))
|
||||
;;; Generated autoloads from mh-comp.el
|
||||
|
||||
(autoload (quote mh-edit-again) "mh-comp" "\
|
||||
|
@ -56,8 +56,10 @@ to reply to:
|
|||
cc/all sender and all recipients.
|
||||
If optional prefix argument INCLUDEP provided, then include the message
|
||||
in the reply using filter `mhl.reply' in your MH directory.
|
||||
If the file named by `mh-repl-formfile' exists, it is used as a skeleton
|
||||
for the reply.
|
||||
If the file named by `mh-repl-formfile' exists, it is used as a skeleton for
|
||||
the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU
|
||||
mailutils variants and the file names by `mh-repl-group-formfile' exists, it
|
||||
is used instead.
|
||||
|
||||
See also `mh-send'." t nil)
|
||||
|
||||
|
@ -183,7 +185,7 @@ If we are at the first header field go to the start of the message body." t nil)
|
|||
;;;;;; mh-store-msg mh-undo-folder mh-sort-folder mh-page-digest-backwards
|
||||
;;;;;; mh-page-digest mh-pipe-msg mh-pack-folder mh-list-folders
|
||||
;;;;;; mh-kill-folder mh-copy-msg mh-burst-digest) "mh-funcs" "mh-funcs.el"
|
||||
;;;;;; (16671 48788))
|
||||
;;;;;; (17048 47864))
|
||||
;;; Generated autoloads from mh-funcs.el
|
||||
|
||||
(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
|
|||
;;;;;; mh-identity-insert-attribution-verb mh-identity-handler-attribution-verb
|
||||
;;;;;; mh-identity-handler-signature mh-identity-handler-gpg-identity
|
||||
;;;;;; mh-insert-identity mh-identity-list-set mh-identity-make-menu)
|
||||
;;;;;; "mh-identity" "mh-identity.el" (16671 57010))
|
||||
;;;;;; "mh-identity" "mh-identity.el" (17044 63778))
|
||||
;;; Generated autoloads from mh-identity.el
|
||||
|
||||
(autoload (quote mh-identity-make-menu) "mh-identity" "\
|
||||
|
@ -271,43 +273,46 @@ change." nil nil)
|
|||
|
||||
(autoload (quote mh-identity-list-set) "mh-identity" "\
|
||||
Update the `mh-identity-list' variable, and rebuild the menu.
|
||||
Sets the default for SYMBOL (e.g. `mh-identity-list') to VALUE (as set in
|
||||
customization). This is called after 'customize is used to alter
|
||||
Sets the default for SYMBOL (for example, `mh-identity-list') to VALUE (as set
|
||||
in customization). This is called after 'customize is used to alter
|
||||
`mh-identity-list'." nil nil)
|
||||
|
||||
(autoload (quote mh-insert-identity) "mh-identity" "\
|
||||
Insert proper fields for given IDENTITY.
|
||||
Edit the `mh-identity-list' variable to define identity." t nil)
|
||||
Insert fields specified by given IDENTITY.
|
||||
See `mh-identity-list'." t nil)
|
||||
|
||||
(autoload (quote mh-identity-handler-gpg-identity) "mh-identity" "\
|
||||
For FIELD \"pgg-default-user-id\", process for ACTION 'remove or 'add.
|
||||
Process header FIELD \":pgg-default-user-id\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
The buffer-local variable `mh-identity-pgg-default-user-id' is set to VALUE
|
||||
when action 'add is selected." nil nil)
|
||||
|
||||
(autoload (quote mh-identity-handler-signature) "mh-identity" "\
|
||||
For FIELD \"signature\", process headers for ACTION 'remove or 'add.
|
||||
The VALUE is added." nil nil)
|
||||
Process header FIELD \":signature\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added." nil nil)
|
||||
|
||||
(autoload (quote mh-identity-handler-attribution-verb) "mh-identity" "\
|
||||
For FIELD \"attribution_verb\", process headers for ACTION 'remove or 'add.
|
||||
The VALUE is added." nil nil)
|
||||
Process header FIELD \":attribution-verb\".
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added." nil nil)
|
||||
|
||||
(autoload (quote mh-identity-insert-attribution-verb) "mh-identity" "\
|
||||
Insert VALUE as attribution verb, setting up delimiting markers.
|
||||
If VALUE is nil, use `mh-extract-from-attribution-verb'." nil nil)
|
||||
|
||||
(autoload (quote mh-identity-handler-top) "mh-identity" "\
|
||||
For FIELD, process mh-identity headers for ACTION 'remove or 'add.
|
||||
If the field wasn't present, the VALUE is added at the top of the header." nil nil)
|
||||
Process header FIELD.
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
If the field wasn't present, it is added to the top of the header." nil nil)
|
||||
|
||||
(autoload (quote mh-identity-handler-bottom) "mh-identity" "\
|
||||
For FIELD, process mh-identity headers for ACTION 'remove or 'add.
|
||||
If the field wasn't present, the VALUE is added at the bottom of the header." nil nil)
|
||||
Process header FIELD.
|
||||
The ACTION is one of 'remove or 'add. If 'add, the VALUE is added.
|
||||
If the field wasn't present, it is added to the bottom of the header." nil nil)
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads (mh-inc-spool-list-set) "mh-inc" "mh-inc.el" (16671
|
||||
;;;;;; 48848))
|
||||
;;;### (autoloads (mh-inc-spool-list-set) "mh-inc" "mh-inc.el" (17048
|
||||
;;;;;; 44143))
|
||||
;;; Generated autoloads from mh-inc.el
|
||||
|
||||
(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)
|
|||
;;;;;; mh-index-parse-search-regexp mh-index-do-search mh-index-p
|
||||
;;;;;; mh-index-read-data mh-index-search mh-index-create-sequences
|
||||
;;;;;; mh-create-sequence-map mh-index-update-maps) "mh-index" "mh-index.el"
|
||||
;;;;;; (16665 53754))
|
||||
;;;;;; (17044 64025))
|
||||
;;; Generated autoloads from mh-index.el
|
||||
|
||||
(autoload (quote mh-index-update-maps) "mh-index" "\
|
||||
|
@ -346,43 +351,74 @@ Mirror sequences present in source folders in index folder." nil nil)
|
|||
|
||||
(autoload (quote mh-index-search) "mh-index" "\
|
||||
Perform an indexed search in an MH mail folder.
|
||||
Use a prefix argument to repeat the search, as in REDO-SEARCH-FLAG below.
|
||||
Use a prefix argument to repeat the search.
|
||||
|
||||
If REDO-SEARCH-FLAG is non-nil and the current folder buffer was generated by a
|
||||
index search, then the search is repeated. Otherwise, FOLDER is searched with
|
||||
SEARCH-REGEXP and the results are presented in an MH-E folder. If FOLDER is
|
||||
\"+\" then mail in all folders are searched. Optional argument WINDOW-CONFIG
|
||||
stores the window configuration that will be restored after the user quits the
|
||||
folder containing the index search results.
|
||||
Unlike regular searches, the prompt for the folder to search can be `all' to
|
||||
search all folders; in addition, the search works recursively on the listed
|
||||
folder. The search criteria are entered in an MH-Pick buffer as described in
|
||||
`mh-search-folder'.
|
||||
|
||||
Four indexing programs are supported; if none of these are present, then grep
|
||||
is used. This function picks the first program that is available on your
|
||||
system. If you would prefer to use a different program, set the customization
|
||||
variable `mh-index-program' accordingly.
|
||||
To perform the search, type \\<mh-pick-mode-map>\\[mh-do-search]. Another
|
||||
difference from the regular searches is that because the search operates on
|
||||
more than one folder, the messages that are found are put in a temporary
|
||||
sub-folder of `+mhe-index' and are displayed in an MH-Folder buffer. This
|
||||
buffer is special because it displays messages from multiple folders; each set
|
||||
of messages from a given folder has a heading with the folder name.
|
||||
|
||||
The documentation for the following functions describes how to generate the
|
||||
index for each program:
|
||||
In addition, the \\<mh-folder-mode-map>\\[mh-index-visit-folder] command can
|
||||
be used to visit the folder of the message at point. Initially, only the
|
||||
messages that matched the search criteria are displayed in the folder. While
|
||||
the temporary buffer has its own set of message numbers, the actual messages
|
||||
numbers are shown in the visited folder. Thus, the \\[mh-index-visit-folder]
|
||||
command is useful to find the actual message number of an interesting message,
|
||||
or to view surrounding messages with the \\[mh-rescan-folder] command.
|
||||
|
||||
Because this folder is temporary, you'll probably get in the habit of killing
|
||||
it when you're done with \\[mh-kill-folder].
|
||||
|
||||
If you have run the \\[mh-search-folder] command, but change your mind while
|
||||
entering the search criteria and actually want to run an indexed search, then
|
||||
you can use the \\<mh-pick-mode-map>\\[mh-index-do-search] command in the
|
||||
MH-Pick buffer.
|
||||
|
||||
The \\<mh-folder-mode-map>\\[mh-index-search] command runs the command defined
|
||||
by the `mh-index-program' option. The default value is \"Auto-detect\" which
|
||||
means that MH-E will automatically choose one of \"swish++\", \"swish-e\",
|
||||
\"mairix\", \"namazu\", \"pick\" and \"grep\" in that order. If, for example,
|
||||
you have both \"swish++\" and \"mairix\" installed and you want to use
|
||||
\"mairix\", then you can set this option to \"mairix\".
|
||||
|
||||
*NOTE*
|
||||
|
||||
The \"pick\" and \"grep\" commands do not perform a recursive search on
|
||||
the given folder.
|
||||
|
||||
This command uses an \"X-MHE-Checksum:\" header field to cache the MD5
|
||||
checksum of a message. This means that if an incoming message already contains
|
||||
an \"X-MHE-Checksum:\" field, that message might not be found by this command.
|
||||
The following \"procmail\" recipe avoids this problem by renaming the existing
|
||||
header field:
|
||||
|
||||
:0 wf
|
||||
| formail -R \"X-MHE-Checksum\" \"X-Old-MHE-Checksum\"
|
||||
|
||||
The documentation for the following commands describe how to set up the
|
||||
various indexing programs to use with MH-E. The \"pick\" and \"grep\" commands
|
||||
do not require additional configuration.
|
||||
|
||||
- `mh-swish++-execute-search'
|
||||
- `mh-swish-execute-search'
|
||||
- `mh-mairix-execute-search'
|
||||
- `mh-namazu-execute-search'
|
||||
|
||||
If none of these programs are present then we use pick. If desired grep can be
|
||||
used instead. Details about these methods can be found in:
|
||||
|
||||
- `mh-pick-execute-search'
|
||||
- `mh-grep-execute-search'
|
||||
|
||||
This and related functions use an X-MHE-Checksum header to cache the MD5
|
||||
checksum of a message. This means that already present X-MHE-Checksum headers
|
||||
in the incoming email could result in messages not being found. The following
|
||||
procmail recipe should avoid this:
|
||||
|
||||
:0 wf
|
||||
| formail -R \"X-MHE-Checksum\" \"Old-X-MHE-Checksum\"
|
||||
|
||||
This has the effect of renaming already present X-MHE-Checksum headers." t nil)
|
||||
In a program, if REDO-SEARCH-FLAG is non-nil and the current folder buffer was
|
||||
generated by a index search, then the search is repeated. Otherwise, FOLDER is
|
||||
searched with SEARCH-REGEXP and the results are presented in an MH-E folder.
|
||||
If FOLDER is \"+\" then mail in all folders are searched. Optional argument
|
||||
WINDOW-CONFIG stores the window configuration that will be restored after the
|
||||
user quits the folder containing the index search results." t nil)
|
||||
|
||||
(autoload (quote mh-index-read-data) "mh-index" "\
|
||||
Read index data from file." nil nil)
|
||||
|
@ -463,114 +499,109 @@ space-separated list of FOLDERS, or nothing to search all folders." t nil)
|
|||
(autoload (quote mh-swish-execute-search) "mh-index" "\
|
||||
Execute swish-e and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
directory.
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your
|
||||
MH directory.
|
||||
|
||||
First create the directory /home/user/Mail/.swish. Then create the file
|
||||
/home/user/Mail/.swish/config with the following contents:
|
||||
First create the directory \"/home/user/Mail/.swish\". Then create the file
|
||||
\"/home/user/Mail/.swish/config\" with the following contents:
|
||||
|
||||
IndexDir /home/user/Mail
|
||||
IndexFile /home/user/Mail/.swish/index
|
||||
IndexName \"Mail Index\"
|
||||
IndexDescription \"Mail Index\"
|
||||
IndexPointer \"http://nowhere\"
|
||||
IndexAdmin \"nobody\"
|
||||
#MetaNames automatic
|
||||
IndexReport 3
|
||||
FollowSymLinks no
|
||||
UseStemming no
|
||||
IgnoreTotalWordCountWhenRanking yes
|
||||
WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
|
||||
BeginCharacters abcdefghijklmnopqrstuvwxyz
|
||||
EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
|
||||
IgnoreLimit 50 1000
|
||||
IndexComments 0
|
||||
FileRules pathname contains /home/user/Mail/.swish
|
||||
FileRules pathname contains /home/user/Mail/mhe-index
|
||||
FileRules filename is index
|
||||
FileRules filename is \\..*
|
||||
FileRules filename is #.*
|
||||
FileRules filename is ,.*
|
||||
FileRules filename is .*~
|
||||
DefaultContents TXT*
|
||||
IndexDir /home/user/Mail
|
||||
IndexFile /home/user/Mail/.swish/index
|
||||
IndexName \"Mail Index\"
|
||||
IndexDescription \"Mail Index\"
|
||||
IndexPointer \"http://nowhere\"
|
||||
IndexAdmin \"nobody\"
|
||||
#MetaNames automatic
|
||||
IndexReport 3
|
||||
FollowSymLinks no
|
||||
UseStemming no
|
||||
IgnoreTotalWordCountWhenRanking yes
|
||||
WordCharacters abcdefghijklmnopqrstuvwxyz0123456789-
|
||||
BeginCharacters abcdefghijklmnopqrstuvwxyz
|
||||
EndCharacters abcdefghijklmnopqrstuvwxyz0123456789
|
||||
IgnoreLimit 50 1000
|
||||
IndexComments 0
|
||||
FileRules filename contains \\D
|
||||
FileRules pathname contains /home/user/Mail/.swish
|
||||
FileRules pathname contains /home/user/Mail/mhe-index
|
||||
|
||||
This configuration does not index the folders that hold the results of your
|
||||
searches in \"+mhe-index\" since they tend to be ephemeral and the original
|
||||
messages are indexed anyway.
|
||||
|
||||
If there are any directories you would like to ignore, append lines like the
|
||||
following to config:
|
||||
following to \"config\":
|
||||
|
||||
FileRules pathname contains /home/user/Mail/scripts
|
||||
FileRules pathname contains /home/user/Mail/scripts
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The configuration file above assumes that the results are found in sub-folders
|
||||
of `mh-index-folder' which is +mhe-index by default.
|
||||
Use the following command line to generate the swish index. Run this daily
|
||||
from cron:
|
||||
|
||||
Use the following command line to generate the swish index. Run this
|
||||
daily from cron:
|
||||
swish-e -c /home/user/Mail/.swish/config
|
||||
|
||||
swish-e -c /home/user/Mail/.swish/config
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil)
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search." nil nil)
|
||||
|
||||
(autoload (quote mh-swish++-execute-search) "mh-index" "\
|
||||
Execute swish++ and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your MH
|
||||
directory.
|
||||
|
||||
First create the directory /home/user/Mail/.swish++. Then create the file
|
||||
/home/user/Mail/.swish++/swish++.conf with the following contents:
|
||||
First create the directory \"/home/user/Mail/.swish++\". Then create the file
|
||||
\"/home/user/Mail/.swish++/swish++.conf\" with the following contents:
|
||||
|
||||
IncludeMeta Bcc Cc Comments Content-Description From Keywords
|
||||
IncludeMeta Newsgroups Resent-To Subject To
|
||||
IncludeMeta Message-Id References In-Reply-To
|
||||
IncludeFile Mail *
|
||||
IndexFile /home/user/Mail/.swish++/swish++.index
|
||||
IncludeMeta Bcc Cc Comments Content-Description From Keywords
|
||||
IncludeMeta Newsgroups Resent-To Subject To
|
||||
IncludeMeta Message-Id References In-Reply-To
|
||||
IncludeFile Mail *
|
||||
IndexFile /home/user/Mail/.swish++/swish++.index
|
||||
|
||||
Use the following command line to generate the swish index. Run this
|
||||
daily from cron:
|
||||
Use the following command line to generate the swish index. Run this daily
|
||||
from cron:
|
||||
|
||||
find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
|
||||
-o -path /home/user/Mail/.swish++ -prune \\
|
||||
-o -name \"[0-9]*\" -print \\
|
||||
| index -c /home/user/Mail/.swish++/swish++.conf /home/user/Mail
|
||||
find /home/user/Mail -path /home/user/Mail/mhe-index -prune \\
|
||||
-o -path /home/user/Mail/.swish++ -prune \\
|
||||
-o -name \"[0-9]*\" -print \\
|
||||
| index -c /home/user/Mail/.swish++/swish++.conf -
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The command above assumes that the results are found in sub-folders of
|
||||
`mh-index-folder' which is +mhe-index by default.
|
||||
This command does not index the folders that hold the results of your searches
|
||||
in \"+mhe-index\" since they tend to be ephemeral and the original messages
|
||||
are indexed anyway.
|
||||
|
||||
On some systems (Debian GNU/Linux, for example), use index++ instead of index.
|
||||
On some systems (Debian GNU/Linux, for example), use \"index++\" instead of
|
||||
\"index\".
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil)
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search." nil nil)
|
||||
|
||||
(autoload (quote mh-namazu-execute-search) "mh-index" "\
|
||||
Execute namazu and read the results.
|
||||
|
||||
In the examples below, replace /home/user/Mail with the path to your MH
|
||||
In the examples below, replace \"/home/user/Mail\" with the path to your MH
|
||||
directory.
|
||||
|
||||
First create the directory /home/user/Mail/.namazu. Then create the file
|
||||
/home/user/Mail/.namazu/mknmzrc with the following contents:
|
||||
First create the directory \"/home/user/Mail/.namazu\". Then create the file
|
||||
\"/home/user/Mail/.namazu/mknmzrc\" with the following contents:
|
||||
|
||||
package conf; # Don't remove this line!
|
||||
$ADDRESS = 'user@localhost';
|
||||
$ALLOW_FILE = \"[0-9]*\";
|
||||
$EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
|
||||
package conf; # Don't remove this line!
|
||||
$ADDRESS = 'user@localhost';
|
||||
$ALLOW_FILE = \"[0-9]*\";
|
||||
$EXCLUDE_PATH = \"^/home/user/Mail/(mhe-index|spam)\";
|
||||
|
||||
In the above example configuration, none of the mail files contained in the
|
||||
directories /home/user/Mail/mhe-index and /home/user/Mail/spam are indexed.
|
||||
This configuration does not index the folders that hold the results of your
|
||||
searches in \"+mhe-index\" since they tend to be ephemeral and the original
|
||||
messages are indexed anyway.
|
||||
|
||||
You do not want to index the folders that hold the results of your searches
|
||||
since they tend to be ephemeral and the original messages are indexed anyway.
|
||||
The configuration file above assumes that the results are found in sub-folders
|
||||
of `mh-index-folder' which is +mhe-index by default.
|
||||
Use the following command line to generate the namazu index. Run this daily
|
||||
from cron:
|
||||
|
||||
Use the following command line to generate the namazu index. Run this
|
||||
daily from cron:
|
||||
mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
|
||||
/home/user/Mail
|
||||
|
||||
mknmz -f /home/user/Mail/.namazu/mknmzrc -O /home/user/Mail/.namazu \\
|
||||
/home/user/Mail
|
||||
|
||||
FOLDER-PATH is the directory in which SEARCH-REGEXP is used to search." nil nil)
|
||||
In a program, FOLDER-PATH is the directory in which SEARCH-REGEXP is used to
|
||||
search." nil nil)
|
||||
|
||||
(autoload (quote mh-index-choose) "mh-index" "\
|
||||
Choose an indexing function.
|
||||
|
@ -582,7 +613,7 @@ system." nil nil)
|
|||
;;;***
|
||||
|
||||
;;;### (autoloads (mh-variants mh-variant-p mh-variant-set) "mh-init"
|
||||
;;;;;; "mh-init.el" (16684 6777))
|
||||
;;;;;; "mh-init.el" (17044 64253))
|
||||
;;; Generated autoloads from mh-init.el
|
||||
|
||||
(autoload (quote mh-variant-set) "mh-init" "\
|
||||
|
@ -604,7 +635,7 @@ by the variable `mh-variants'." nil nil)
|
|||
;;;***
|
||||
|
||||
;;;### (autoloads (mh-junk-whitelist mh-junk-blacklist) "mh-junk"
|
||||
;;;;;; "mh-junk.el" (16671 48929))
|
||||
;;;;;; "mh-junk.el" (17044 64253))
|
||||
;;; Generated autoloads from mh-junk.el
|
||||
|
||||
(autoload (quote mh-junk-blacklist) "mh-junk" "\
|
||||
|
@ -644,7 +675,7 @@ The `mh-junk-program' option specifies the spam program in use." t nil)
|
|||
;;;;;; mh-mhn-compose-external-compressed-tar mh-mhn-compose-anon-ftp
|
||||
;;;;;; mh-mhn-compose-insertion mh-file-mime-type mh-have-file-command
|
||||
;;;;;; mh-compose-forward mh-compose-insertion) "mh-mime" "mh-mime.el"
|
||||
;;;;;; (16684 7323))
|
||||
;;;;;; (17048 47895))
|
||||
;;; Generated autoloads from mh-mime.el
|
||||
|
||||
(autoload (quote mh-compose-insertion) "mh-mime" "\
|
||||
|
@ -857,15 +888,79 @@ View MIME PART-INDEX externally." t nil)
|
|||
;;;***
|
||||
|
||||
;;;### (autoloads (mh-do-search mh-pick-do-search mh-search-folder)
|
||||
;;;;;; "mh-pick" "mh-pick.el" (16671 49140))
|
||||
;;;;;; "mh-pick" "mh-pick.el" (17048 47905))
|
||||
;;; Generated autoloads from mh-pick.el
|
||||
|
||||
(autoload (quote mh-search-folder) "mh-pick" "\
|
||||
Search FOLDER for messages matching a pattern.
|
||||
This function uses the MH command `pick' to do the work.
|
||||
Add the messages found to the sequence named `search'.
|
||||
Argument WINDOW-CONFIG is the current window configuration and is used when
|
||||
the search folder is dismissed." t nil)
|
||||
|
||||
With this command, you can search a folder for messages to or from a
|
||||
particular person or about a particular subject. In fact, you can also search
|
||||
for messages containing selected strings in any arbitrary header field or any
|
||||
string found within the messages.
|
||||
|
||||
You are first prompted for the name of the folder to search and then placed in
|
||||
the following buffer in MH-Pick mode:
|
||||
|
||||
From:
|
||||
To:
|
||||
Cc:
|
||||
Date:
|
||||
Subject:
|
||||
--------
|
||||
|
||||
Edit this template by entering your search criteria in an appropriate header
|
||||
field that is already there, or create a new field yourself. If the string
|
||||
you're looking for could be anywhere in a message, then place the string
|
||||
underneath the row of dashes. The \\[mh-search-folder] command uses the MH
|
||||
command \"pick\" to do the real work.
|
||||
|
||||
There are no semantics associated with the search criteria--they are simply
|
||||
treated as strings. Case is ignored when all lowercase is used, and regular
|
||||
expressions (a la \"ed\") are available. It is all right to specify several
|
||||
search criteria. What happens then is that a logical _and_ of the various
|
||||
fields is performed. If you prefer a logical _or_ operation, run
|
||||
\\[mh-search-folder] multiple times.
|
||||
|
||||
As an example, let's say that we want to find messages from Ginnean about
|
||||
horseback riding in the Kosciusko National Park (Australia) during January,
|
||||
1994. Normally we would start with a broad search and narrow it down if
|
||||
necessary to produce a manageable amount of data, but we'll cut to the chase
|
||||
and create a fairly restrictive set of criteria as follows:
|
||||
|
||||
From: ginnean
|
||||
To:
|
||||
Cc:
|
||||
Date: Jan 1994
|
||||
Subject: horse.*kosciusko
|
||||
--------
|
||||
|
||||
As with MH-Letter mode, MH-Pick provides commands like
|
||||
\\<mh-pick-mode-map>\\[mh-to-field] to help you fill in the blanks.
|
||||
|
||||
To perform the search, type \\[mh-do-search]. The selected messages are placed
|
||||
in the \"search\" sequence, which you can use later in forwarding, printing,
|
||||
or narrowing your field of view. Subsequent searches are appended to the
|
||||
\"search\" sequence. If, however, you wish to start with a clean slate, first
|
||||
delete the \"search\" sequence.
|
||||
|
||||
If you're searching in a folder that is already displayed in an MH-Folder
|
||||
buffer, only those messages contained in the buffer are used for the search.
|
||||
Therefore, if you want to search in all messages, first kill the folder's
|
||||
buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder
|
||||
with \\[mh-rescan-folder].
|
||||
|
||||
If you find that you do the same thing over and over when editing the search
|
||||
template, you may wish to bind some shortcuts to keys. This can be done with
|
||||
the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is
|
||||
run on a new pattern.
|
||||
|
||||
If you have run the \\[mh-index-search] command, but change your mind while
|
||||
entering the search criteria and actually want to run a regular search, then
|
||||
you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command.
|
||||
|
||||
In a program, argument WINDOW-CONFIG is the current window configuration and
|
||||
is used when the search folder is dismissed." t nil)
|
||||
|
||||
(autoload (quote mh-pick-do-search) "mh-pick" "\
|
||||
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)
|
|||
|
||||
;;;### (autoloads (mh-print-msg mh-ps-print-toggle-mime mh-ps-print-toggle-color
|
||||
;;;;;; mh-ps-print-toggle-faces mh-ps-print-msg-show mh-ps-print-msg-file
|
||||
;;;;;; mh-ps-print-msg) "mh-print" "mh-print.el" (16680 11171))
|
||||
;;;;;; mh-ps-print-msg) "mh-print" "mh-print.el" (17044 64253))
|
||||
;;; Generated autoloads from mh-print.el
|
||||
|
||||
(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)
|
|||
;;;;;; mh-rename-seq mh-translate-range mh-read-range mh-read-seq-default
|
||||
;;;;;; mh-notate-deleted-and-refiled mh-widen mh-put-msg-in-seq
|
||||
;;;;;; mh-narrow-to-seq mh-msg-is-in-seq mh-list-sequences mh-delete-seq)
|
||||
;;;;;; "mh-seq" "mh-seq.el" (16671 65286))
|
||||
;;;;;; "mh-seq" "mh-seq.el" (17048 47921))
|
||||
;;; Generated autoloads from mh-seq.el
|
||||
|
||||
(autoload (quote mh-delete-seq) "mh-seq" "\
|
||||
|
@ -1157,7 +1252,7 @@ Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command." t nil)
|
|||
|
||||
;;;### (autoloads (mh-speed-add-folder mh-speed-invalidate-map mh-speed-flists
|
||||
;;;;;; mh-speed-view mh-speed-toggle mh-folder-speedbar-buttons)
|
||||
;;;;;; "mh-speed" "mh-speed.el" (16665 53793))
|
||||
;;;;;; "mh-speed" "mh-speed.el" (17044 64253))
|
||||
;;; Generated autoloads from mh-speed.el
|
||||
|
||||
(autoload (quote mh-folder-speedbar-buttons) "mh-speed" "\
|
||||
|
@ -1196,7 +1291,7 @@ The function invalidates the latest ancestor that is present." nil nil)
|
|||
;;;;;; mh-alias-grab-from-field mh-alias-add-alias mh-alias-for-from-p
|
||||
;;;;;; mh-alias-address-to-alias mh-alias-letter-expand-alias mh-alias-minibuffer-confirm-address
|
||||
;;;;;; mh-read-address mh-alias-reload-maybe mh-alias-reload) "mh-alias"
|
||||
;;;;;; "mh-alias.el" (16671 49382))
|
||||
;;;;;; "mh-alias.el" (17048 47789))
|
||||
;;; Generated autoloads from mh-alias.el
|
||||
|
||||
(autoload (quote mh-alias-reload) "mh-alias" "\
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-mime.el --- MH-E support for composing MIME messages
|
||||
|
||||
;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995,
|
||||
;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -1325,6 +1326,18 @@ Parameter EL is unused."
|
|||
(point-max)))
|
||||
(forward-line -1)))))
|
||||
|
||||
(defun mh-mime-security-button-face (info)
|
||||
"Return the button face to use for encrypted/signed mail based on INFO."
|
||||
(cond ((string-match "OK" info) ;Decrypted mail
|
||||
mh-show-pgg-good-face)
|
||||
((string-match "Failed" info) ;Decryption failed or signature invalid
|
||||
mh-show-pgg-bad-face)
|
||||
((string-match "Undecided" info);Unprocessed mail
|
||||
mh-show-pgg-unknown-face)
|
||||
((string-match "Untrusted" info);Key not trusted
|
||||
mh-show-pgg-unknown-face)
|
||||
(t mh-show-pgg-good-face)))
|
||||
|
||||
(defun mh-mime-security-press-button (handle)
|
||||
"Callback from security button for part HANDLE."
|
||||
(if (mm-handle-multipart-ctl-parameter handle 'gnus-info)
|
||||
|
@ -1364,9 +1377,10 @@ Parameter EL is unused."
|
|||
(info (or (mm-handle-multipart-ctl-parameter handle 'gnus-info)
|
||||
"Undecided"))
|
||||
(details (mm-handle-multipart-ctl-parameter handle 'gnus-details))
|
||||
pressed-details begin end)
|
||||
pressed-details begin end face)
|
||||
(setq details (if details (concat "\n" details) ""))
|
||||
(setq pressed-details (if mh-mime-security-button-pressed details ""))
|
||||
(setq face (mh-mime-security-button-face info))
|
||||
(unless (bolp) (insert "\n"))
|
||||
(setq begin (point))
|
||||
(gnus-eval-format
|
||||
|
@ -1382,6 +1396,7 @@ Parameter EL is unused."
|
|||
:mime-handle handle
|
||||
:action 'mh-widget-press-button
|
||||
:button-keymap mh-mime-security-button-map
|
||||
:button-face face
|
||||
:help-echo "Mouse-2 click or press RET (in show buffer) to see security details.")
|
||||
(dolist (ov (mh-funcall-if-exists overlays-in begin end))
|
||||
(mh-funcall-if-exists overlay-put ov 'evaporate t))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-pick.el --- make a search pattern and search for a message in MH-E
|
||||
|
||||
;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995,
|
||||
;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -52,10 +53,74 @@
|
|||
;;;###mh-autoload
|
||||
(defun mh-search-folder (folder window-config)
|
||||
"Search FOLDER for messages matching a pattern.
|
||||
This function uses the MH command `pick' to do the work.
|
||||
Add the messages found to the sequence named `search'.
|
||||
Argument WINDOW-CONFIG is the current window configuration and is used when
|
||||
the search folder is dismissed."
|
||||
|
||||
With this command, you can search a folder for messages to or from a
|
||||
particular person or about a particular subject. In fact, you can also search
|
||||
for messages containing selected strings in any arbitrary header field or any
|
||||
string found within the messages.
|
||||
|
||||
You are first prompted for the name of the folder to search and then placed in
|
||||
the following buffer in MH-Pick mode:
|
||||
|
||||
From:
|
||||
To:
|
||||
Cc:
|
||||
Date:
|
||||
Subject:
|
||||
--------
|
||||
|
||||
Edit this template by entering your search criteria in an appropriate header
|
||||
field that is already there, or create a new field yourself. If the string
|
||||
you're looking for could be anywhere in a message, then place the string
|
||||
underneath the row of dashes. The \\[mh-search-folder] command uses the MH
|
||||
command \"pick\" to do the real work.
|
||||
|
||||
There are no semantics associated with the search criteria--they are simply
|
||||
treated as strings. Case is ignored when all lowercase is used, and regular
|
||||
expressions (a la \"ed\") are available. It is all right to specify several
|
||||
search criteria. What happens then is that a logical _and_ of the various
|
||||
fields is performed. If you prefer a logical _or_ operation, run
|
||||
\\[mh-search-folder] multiple times.
|
||||
|
||||
As an example, let's say that we want to find messages from Ginnean about
|
||||
horseback riding in the Kosciusko National Park (Australia) during January,
|
||||
1994. Normally we would start with a broad search and narrow it down if
|
||||
necessary to produce a manageable amount of data, but we'll cut to the chase
|
||||
and create a fairly restrictive set of criteria as follows:
|
||||
|
||||
From: ginnean
|
||||
To:
|
||||
Cc:
|
||||
Date: Jan 1994
|
||||
Subject: horse.*kosciusko
|
||||
--------
|
||||
|
||||
As with MH-Letter mode, MH-Pick provides commands like
|
||||
\\<mh-pick-mode-map>\\[mh-to-field] to help you fill in the blanks.
|
||||
|
||||
To perform the search, type \\[mh-do-search]. The selected messages are placed
|
||||
in the \"search\" sequence, which you can use later in forwarding, printing,
|
||||
or narrowing your field of view. Subsequent searches are appended to the
|
||||
\"search\" sequence. If, however, you wish to start with a clean slate, first
|
||||
delete the \"search\" sequence.
|
||||
|
||||
If you're searching in a folder that is already displayed in an MH-Folder
|
||||
buffer, only those messages contained in the buffer are used for the search.
|
||||
Therefore, if you want to search in all messages, first kill the folder's
|
||||
buffer with \\<mh-folder-mode-map>\\[kill-buffer] or scan the entire folder
|
||||
with \\[mh-rescan-folder].
|
||||
|
||||
If you find that you do the same thing over and over when editing the search
|
||||
template, you may wish to bind some shortcuts to keys. This can be done with
|
||||
the variable `mh-pick-mode-hook', which is called when \\[mh-search-folder] is
|
||||
run on a new pattern.
|
||||
|
||||
If you have run the \\[mh-index-search] command, but change your mind while
|
||||
entering the search criteria and actually want to run a regular search, then
|
||||
you can use the \\<mh-pick-mode-map>\\[mh-pick-do-search] command.
|
||||
|
||||
In a program, argument WINDOW-CONFIG is the current window configuration and
|
||||
is used when the search folder is dismissed."
|
||||
(interactive (list (mh-prompt-for-folder "Search" mh-current-folder nil nil t)
|
||||
(current-window-configuration)))
|
||||
(let ((pick-folder (if (equal folder "+") mh-current-folder folder)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-print.el --- MH-E printing support
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Jeffrey C Honig <jch@honig.net>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-seq.el --- MH-E sequences support
|
||||
|
||||
;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995,
|
||||
;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -195,7 +196,7 @@ redone to get the new thread tree. This makes incremental threading easier.")
|
|||
(insert "\n"))
|
||||
(setq seq-list (cdr seq-list)))
|
||||
(goto-char (point-min))
|
||||
(view-mode 1)
|
||||
(view-mode-enter)
|
||||
(setq view-exit-action 'kill-buffer)
|
||||
(message "Listing sequences...done")))))
|
||||
|
||||
|
@ -788,10 +789,33 @@ This function can only be used the folder is threaded."
|
|||
If no prefix arg is given, then return DEFAULT."
|
||||
(let ((default-string (loop for x in default concat (format " %s" x))))
|
||||
(if (or current-prefix-arg (equal default-string ""))
|
||||
(delete "" (split-string (read-string "Pick expression: "
|
||||
default-string)))
|
||||
(mh-pick-args-list (read-string "Pick expression: "
|
||||
default-string))
|
||||
default)))
|
||||
|
||||
(defun mh-pick-args-list (s)
|
||||
"Form list by grouping elements in string S suitable for pick arguments.
|
||||
For example, the string \"-subject a b c -from Joe User <user@domain.com>\"
|
||||
is converted to (\"-subject\" \"a b c\" \"-from\"
|
||||
\"Joe User <user@domain.com>\""
|
||||
(let ((full-list (split-string s))
|
||||
current-arg collection arg-list)
|
||||
(while full-list
|
||||
(setq current-arg (car full-list))
|
||||
(if (null (string-match "^-" current-arg))
|
||||
(setq collection
|
||||
(if (null collection)
|
||||
current-arg
|
||||
(format "%s %s" collection current-arg)))
|
||||
(when collection
|
||||
(setq arg-list (append arg-list (list collection)))
|
||||
(setq collection nil))
|
||||
(setq arg-list (append arg-list (list current-arg))))
|
||||
(setq full-list (cdr full-list)))
|
||||
(when collection
|
||||
(setq arg-list (append arg-list (list collection))))
|
||||
arg-list))
|
||||
|
||||
;;;###mh-autoload
|
||||
(defun mh-narrow-to-subject (&optional pick-expr)
|
||||
"Limit to messages with same subject.
|
||||
|
@ -1315,6 +1339,7 @@ All messages after START-POINT are added to the thread tree."
|
|||
(old-buffer-modified-flag (buffer-modified-p)))
|
||||
(delete-region (point-min) (point-max))
|
||||
(mh-thread-print-scan-lines thread-tree)
|
||||
(mh-notate-user-sequences)
|
||||
(mh-notate-deleted-and-refiled)
|
||||
(mh-notate-cur)
|
||||
(set-buffer-modified-p old-buffer-modified-flag))))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; mh-speed.el --- Speedbar interface for MH-E.
|
||||
|
||||
;; Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; mh-utils.el --- MH-E code needed for both sending and reading
|
||||
|
||||
;; Copyright (C) 1993, 95, 1997, 2000, 01, 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1995, 1997,
|
||||
;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
|
@ -703,8 +704,8 @@ not pointing to a message."
|
|||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(cond ((looking-at mh-scan-msg-number-regexp)
|
||||
(string-to-int (buffer-substring (match-beginning 1)
|
||||
(match-end 1))))
|
||||
(string-to-number (buffer-substring (match-beginning 1)
|
||||
(match-end 1))))
|
||||
(error-if-no-message
|
||||
(error "Cursor not pointing to message"))
|
||||
(t nil))))
|
||||
|
@ -1672,7 +1673,8 @@ The message is displayed in raw form."
|
|||
"Decode >From at beginning of lines for `mh-show-mode'."
|
||||
(save-excursion
|
||||
(let ((modified (buffer-modified-p))
|
||||
(case-fold-search nil))
|
||||
(case-fold-search nil)
|
||||
(buffer-read-only nil))
|
||||
(goto-char (mh-mail-header-end))
|
||||
(while (re-search-forward "^>From" nil t)
|
||||
(replace-match "From"))
|
||||
|
|
Loading…
Add table
Reference in a new issue