[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MH-E 7.0 released

From: Bill Wohler
Subject: MH-E 7.0 released
Date: Fri, 29 Nov 2002 10:36:08 -0800

MH-E is the GNU Emacs front end for MH. Version 7.0 is a major release
that includes improved MIME handling, speedbar folder browsing, indexed
searching, and runs under XEmacs, passes checkdoc, and compiles clean
under all supported platforms. Read on for more details.

Project home page at: http://mh-e.sourceforge.net/. 

* Changes in mh-e 7.0

This is a major release which includes a lot of new features including
improved MIME handling, speedbar folder browsing, and indexed
searching. In this version, MH-E runs under XEmacs, passes checkdoc,
and compiles clean under all supported platforms.

The "passes checkdoc" feature above required changing the name of
several user-visible variables. It is likely that this affects you.
Please be sure to see the table at the end of these notes and rename
your variables accordingly.

MH-E has been written mh-e, Mh-e, MH-e and MH-E. We have decided that
the proper term should be MH-E. Please try to use MH-E in your

** New Features in MH-E 7.0

*** Speedbar

There is now support for the speedbar. Try "M-x speedbar" (closes SF

Press the middle mouse button on the `+' icons to open a folder,
middle mouse button on a folder name to open the folder. Folders with
unseen messages are shown in bold, so this is a handy way to browse
new messages that you have filed with procmail or slocal.

See the new customization variable `mh-large-folder,' which controls
when the speedbar asks for how many messages to scan when opening a
large folder and `mh-speed-run-flists-flag' whose default value of t
means to use the flists command to populate the count of unseen and
total messages in each folder.

*** Indexed Search

Interoperability with swish++, swish, glimpse, and namazu has been
added to enable lightening-fast searches of your mail. If none of
these are present, grep is used. Try "F i (mh-index-search)".

For more information, read the documentation for the functions
`mh-swish++-execute-search,' `mh-swish-execute-search,'
`mh-namazu-execute-search,' or `mh-glimpse-execute-search' depending
on your preferred indexing program to see what kind of setup is needed
to generate the index.

*** Threading

Use "T t (mh-toggle-threads)" to view the threads in the folder. Use
it again to return to a non-threaded view.

*** Brief Help

Use "? (mh-help)" and "X ? (mh-prefix-help)," where X is a prefix
character, for a brief synopsis in the minibuffer of frequently used
commands. In the MH-Letter or MH-Pick buffers, use "C-c ? (mh-help)"
(closes SF #493740).

*** Folder Keymap Shared by Show Buffer

You can now use the MH-Folder mode commands from the MH-Show buffer.
Because of this, the MH-Show buffer is now read-only (closes SF
#493749 and SF #527946) and you now have to use "M (mh-modify)" to
edit a message.
*** Better Scanning

You no longer have to modify your scan format if your folders have
more than 9999 messages in them. If you've only modified your scan
format file to allow for the wider message numbers, consider using the
default behavior of MH-E and simplify your MH-E configuration
considerably (closes SF #635791).

To do this, you may have to remove your modifications of
`mh-scan.*-regexp' and `mh-cmd-note' and your customization of

You may still want the updated format files for running MH commands
outside of MH-E; the default of `mh-scan-format-file' will cause them
to be ignored.

If you prefer fixed-width message numbers, set the new customization
variable to nil , set this variable to
nil and call `mh-set-cmd-note' with the width specified by the scan format in
`mh-scan-format-file'. For example, the default width is 4, so you would use
"(mh-set-cmd-note 4)" if `mh-scan-format-file' were nil.

*** X-Face

MH-E now displays the content of the X-Face header field in the From
field. When sending a message, an X-Face field is appended to the
header if it doesn't already exist and "~/.face" is present. See the
new customization variables `mh-show-use-xface-flag' and `mh-x-face-file'
(closes SF #480770).

MH-E depends on the external x-face package found in
ftp://ftp.jpl.org/pub/elisp/ to do this. The `uncompface' binary is
also required to be in the execute PATH. It can be obtained from:

It has also been observed that if you don't see the faces, you might
have to do this (for unknown reasons):
    mv /usr/local/include/compface.h /usr/include/

*** Graphical Smileys

Smiley's are now converted to cute little images. See the new
customization variable `mh-graphical-smileys-flag.'

*** Text Emphasis

ASCII formatting is now converted to the appropriate font. For
example, _underline_ is underlined, *bold* appears in bold, /italic/
appears in italic, etc. See `gnus-emphasis-alist' for the whole list.
See the new customization variables `mh-decode-mime' and

*** Attachment Handling

Inline attachments are now displayed. Regular attachments appear as
buttons in show buffer. Use "K TAB (mh-next-button)" or "K SHIFT-TAB
(mh-prev-button)" to cycle through these buttons. Use "K v
(mh-folder-toggle-mime-part)" to view, "K o
(mh-folder-save-mime-part)" to save one part or "K-a
(mh-save-mime-parts)" to save all parts, or "K i
(mh-folder-inline-mime-part)" to view the attachment inline.

See the new customization variable `mh-decode-mime' for additional
information. Other customization variables that affect this new feature
include `mh-store-mime-parts-default-directory' and

HTML documents can be viewed inline if Gnus v5.10 and w3 or w3m lisp
packages are present. Set the customization variable
`mm-text-html-renderer' accordingly (closes SF #453352).

*** Quoted-printable Handling

Quoted-printable body parts are now decoded.

*** More Choices for `mh-yank-from-start-of-msg'

Historically, if this variable was t, the entire message, with full
headers would be included and every line would begin with
`mh-ins-buf-prefix.' This usage is deprecated in favor of the setting
`supercite' below. The default has been changed to `attribution.' The
following symbols are now understood:

`body': yank the message minus the header.

`supercite': include the entire message, with full headers. This also
causes the invocation of `sc-cite-original' without the setting of
`mail-citation-hook', now deprecated practice.

`autosupercite': do as for `supercite' automatically when show buffer
matches the message being replied-to.

`attribution': yank the message minus the header and add a simple
attribution line at the top.

`autoattrib': do as for `attribution' automatically when show buffer
matches the message being replied-to.

There is a new customization variable called
`mh-extract-from-attribution-verb' which is used for attribution which
provides a method for setting a different language.

*** Use Gnus mml Instead of mhn

When inserting attachments into a message draft, Gnus mml directives
are now used instead of mhn directives. One beneficial side-effect of
this is that attachments can now appear inline as well as separate.

The new customization variable `mh-compose-insertion' controls whether
Gnus or mhn is used to insert MIME message directives in messages
(default: 'gnus, if the mml library exists).

*** Content-Type Now Obtained Automatically

The value of the Content-Type no longer needs to be entered by the

*** Attachments Automatically Included Upon Send

You no longer have to run "C-c C-e (mh-edit-mhn)" before sending a
message with attachments--this is done automatically when you send the
message with "C-c C-c (mh-send-letter)". There is, however, a new key
binding "C-c C-m m (mh-mml-to-mime)" which is analogous to "C-c C-e

*** GPG Handling

Messages that have been signed or encrypted with GPG are verified and
decrypted automatically. To sign or encrypt a message, use "C-c RET
C-s (mh-mml-secure-message-sign-pgpmime)" and "C-c C-m C-e
(mh-mml-secure-message-encrypt-pgpmime)." You need Gnus version 5.10
for this feature. These functions are provided by the pgg.el package.

Users report "flashing" with the pgg.el package and prefer the gpg.el
package instead. To use gpg.el instead of the pgg.el package you need:

  (setq mml2015-use 'gpg)

To mimic automatic encryption in gpg.el, use:

  (setq mm-verify-option 'always)
  (setq mm-decrypt-option 'always)

The venerable mailcrypt package is also an option. However, now that
show buffers are read-only, mailcrypt version 3.5.6 and older fail
when they attempt to decrypt the contents.

*** Mail-Followup-To Header Field

Support for this controversial field has been added because nmh
supports it (closes SF #627035). If you want to add it to outgoing
mail for selected mailing lists, add those mailing lists to the new
customization variable `mh-insert-mail-followup-to-list.' If you think
this field is evil, set the new customization variable
`mh-insert-mail-followup-to-flag' to nil.

*** Gnus Issues

If you update Gnus, you must recompile MH-E. Note that if you are
running the stock version of MH-E that comes with Emacs or the MH-E
package on a Debian GNU/Linux, this is done for you.

** New Variables in MH-E 7.0

New customization variables not mentioned earlier include:

*** mh-letter-insert-signature-hook

Invoked at the beginning of the "C-c C-s (mh-insert-signature)"
command. Can be used to determine which signature file to use based on
message content. On return, if `mh-signature-file-name' is non-nil
that file will be inserted at the current point in the buffer.

*** mh-show-maximum-size

Maximum size of message (in bytes) to display automatically. Provides
an opportunity to skip over large messages which may be slow to load.
Use a value of 0 to display all messages automatically regardless of
size (closes SF #488696).

*** mh-tool-bar-reply-3-buttons-flag

Non-nil means use three buttons for reply commands in tool-bar. If you
have room on your tool-bar because you are using a large font, you may
set this variable to expand the single reply button into three buttons
that won't lead to minibuffer prompt about who to reply to.

** Bug Fixes in MH-E 7.0

*** mh-delete-msg, mh-refile-msg, mh-undo

Mandrake Linux includes XEmacs initialization code that binds
`transient-mark-mode' which causes problems in MH-E. These problems
have been fixed (closes SF #541915).

*** mh-edit-again

This would sometimes yield a read-only buffer. This has been fixed
(closes SF #624283 and SF #625538).

*** mh-forward

When using nmh, always specify -mime so as to preserve the original

*** mh-inc-folder

If you had narrowed to a sequence and then incorporated new mail,
those new messages would not be present in your +inbox when you
widened. This has been fixed (closes SF #489430, SF #489437, SF

*** mh-insert-letter

No longer uses mhl to include a message as this mangled the header and
gave supercite fits (closes SF #629153).

*** mh-letter-mode

"M-q (fill-paragraph)" now fills quoted paragraphs (for example,
starting with "> ") correctly (closes SF #489927).

*** mh-next-undeleted-msg, mh-previous-undeleted-msg 

If there are no more undeleted messages the point remains at its
original position and a message is produced (closes SF #494304).

*** mh-pick-mode

Now calls `mh-pick-mode-hook' as documented.

*** mh-put-msg-in-seq

Now puts all messages in region in sequence (closes SF #630324).

*** mh-refile-msg, mh-write-msg-to-file

These functions stomped on the variables that held the name of the
last file and folder respectively for the other function. This has
been fixed so that the last folder or file name is preserved (closes
SF #580772).

*** mh-region-to-sequence

If the region in MH-Folder was set with "C-x h (mark-whole-buffer)",
you couldn't perform operations on all of the messages as you would
expect. This has been fixed (closes SF #621632).

*** mh-reply

Performing an undo the first thing after replying would blank out the
entire draft. Now just the insertion of the yanked message is undone
leaving the header and signature intact for additional editing (closes
SF #623693).

*** mh-show-mode

Now calls `mh-show-mode-hook' as documented (closes SF #627222).

*** mh-subject-thread-to-sequence

Make 'subject sequence a real one, exported to MH. This means you can,
for example, mh-forward it. But it also shows up with a mark in the
scan output (closes SF #489445).

*** Other Bug Fixes

The following bugs have also been closed:

SF #495450: Folder buffer read-only after inc
SF #489706: mh-page-msg bombs out
SF #580772: mh-last-destination is overloaded

*** Variables renamed to conform with Emacs coding conventions

The coding conventions require that boolean variables end in -flag.
The following two tables show which variables were affected (closes SF

Customization Variables (defcustom)

Old Name                               New Name

mh-auto-folder-collect                 mh-auto-folder-collect-flag
mh-bury-show-buffer                    mh-bury-show-buffer-flag
mh-clean-message-header                mh-clean-message-header-flag
mh-decode-quoted-printable             mh-decode-quoted-printable-flag
mh-delete-yanked-msg-window            mh-delete-yanked-msg-window-flag
mh-do-not-confirm                      mh-do-not-confirm-flag
mh-highlight-citation-p                mh-highlight-citation
mh-insert-x-mailer-p                   mh-insert-x-mailer-flag
mh-print-background                    mh-print-background-flag
mh-recenter-summary-p                  mh-recenter-summary-flag
mh-recursive-folders                   mh-recursive-folders-flag
mh-reply-show-message-p                mh-reply-show-message-flag
mh-show-use-goto-addr                  mh-show-use-goto-addr-flag
mh-update-sequences-after-mh-show      mh-update-sequences-after-mh-show-flag

Regular Variables (defvar)

Old Name                               New Name

mh-mhn-compose-insert-p                mh-mhn-compose-insert-flag
mh-nmh-p                               mh-nmh-flag
mh-page-to-next-msg-p                  mh-page-to-next-msg-flag

Bill Wohler <address@hidden>  http://www.newt.com/wohler/  GnuPG ID:610BD9AD
Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian!
If you're passed on the right, you're in the wrong lane.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]