Note: this is a review of some of the more interesting features in this release. For a complete list of changes please be sure to read the UPDATING file.
Mutt has required a C99 compliant compiler since the 1.5.24 release, but with this release it now also expects a C99 compliant libc. I've started pulling out checks, fixes, and internal replacements for functions that the C99 standard mandates. This means you can't compile Mutt on an ancient system just by upgrading the compiler anymore. (Or, if it happens to compile, expect it to work properly.)
The gettext autoconf files have been updated to the latest release (0.21). The installation was previously heavily customized, but those have been removed, resulting in a clean "vanilla" installation of gettext (which should be much easier to update in the future). The latest gettext version no longer includes a bundled libintl, and so configure no longer supports the --with-included-gettext option.
The autoconf files have been updated to support 2.70. If you notice any issues, please let me know.
<view-pager>
forces the use of a
copiousoutput
mailcap entry to view
the attachment. For example, let say you have a PDF attachment
and a mailcap file with:
application/pdf; evince %s application/pdf; pdftotext -layout %s -; copiousoutput
Invoking <view-mailcap>
(default 'm') will run evince.
Invoking <view-attach>
(default 'Enter') will also run evince, because application/pdf
is not an internally supported MIME type.
Invoking <view-text>
(default 'T') will display the raw PDF code, which probably
isn't useful to look at...
The new function, <view-pager>
,
will cause Mutt to invoke pdftotext and view the output in the pager.
For more details,
including a discussion
<view-attach>
and internally
supported MIME types, please see
Viewing Attachments in the manual.
An equivalent function <view-alt-pager>
was added for previewing
$send_multipart_alternative_filter output using a
copiousoutput
mailcap entry.
Also, the
<view-mailcap>
,
<view-pager>
, and
<view-text>
functions were
all added to the compose menu, to allow viewing attachments
in a variety of manner while composing too.
<list-action>
, bound to
'Esc-L' by default, brings up a menu of actions to perform on a
mailing list email:
The menu scans the currently selected email for common mailing list headers. An entry with a mailto URL may be selected to begin composing an email to the address.
Mutt now recognizes 256-color ANSI escape sequences, when $allow_ansi is set.
If using a modern version of ncurses, Mutt will also use the extended color allocation API, enabling the simultaneous use of more than 256 color pairs at the same time (a limitation of the COLOR_PAIR() macro).
These two new features allow the ability to view the output of
256 color "image to ANSI text" generators inside Mutt:
The Mutt 2.0 release changed the default generated Message-ID format. There are all sorts of opinions about how a Message-ID ought to be generated, though, so this release created a new configuration variable: $message_id_format.
The pre-2.0 Message-ID style can be generated by setting this to
"<%Y%02m%02d%02H%02M%02S.G%c%p@%f>"
,
for instance. There are a few other expandos that may be useful, but
also note that format strings can use a
filter and
be generated by your own script.
Mutt doesn't perform validation on the generated value; it's your responsibility to generate legal (and unique) values if you change the format string. Please be a good netizen and customize responsibly.
The browser menu operates in two modes: directory/file browsing, and
mailbox browsing. They can be toggled between using
<toggle-mailboxes>
(bound to
'Tab' by default), or mailbox mode can be entered directly
via <browse-mailboxes>
.
The modes previously shared the same sort variable, $sort_browser, but this release creates a separate variable for mailbox mode: $sort_browser_mailboxes.
Manually changing the sort order via
<sort>
or
<sort-reverse>
will alter the active
sort variable.
The sort value "unsorted" now actually does sort: it does so in the order the values were added (for example the order listed in the muttrc). So manually changing from "unsorted" to "alpha" and then back to "unsorted" again will now revert to the original order.
In directory/file mode, the up-directory entry, ".." is now excluded from sorting and always listed at the top.
Mutt will now download only the headers for each message, unless body caching is enabled. (In that case, the whole message will be downloaded, but will be stored in the body cache.) It's still not a great idea to use this pattern over IMAP, but hopefully this will make it a little bit less painful.
Mutt 1.14 added the -nopoll
option
when specifying
mailboxes. This allowed adding
entries to the list that don't incur the penalty of polling, which
could be useful for the sidebar.
This release adds an inverse flag: -nonotify
.
This flag keeps the polling on, but stops Mutt from notifying when
new mail is detected in the mailbox: either in the echo area, or via
$beep_new or
$new_mail_command.
This could be useful if you want to show accurate message counts in the sidebar or mailbox browser for certain mailboxes, but don't want to be notified of changes in them.
When the new option $local_date_header is unset, Mutt will generate Date headers using GMT, instead of the local timezone.
Some more performance improvements were made to the pager, affecting extremely long lines with multiple matching color regexps. These aren't common, but if you ever opened a spam email filled with URLs and waited (and waited, and waited) for the pager to display, this should help some.
While working on that, I cleaned up and made a few related pager fixes too. Jumping to the middle of an email should handle coloring better in a few cases (e.g. for quoting, body patterns, and header colors.) Searching in an email now also resolves color types and so should display headers properly.
<skip-headers>
bound to 'H'
by default, will skip to the first blank line following the
headers.
A small change was made
to hdr_order, fixing it to
find the longest match instead of the first match when ordering
the headers. In fact the example in the manual,
"hdr_order From Date: From: To: Cc:
Subject:
" did not work properly before. Both the
From_ and From: header were previously displayed at the
beginning. With this change, the From: header will now be
displayed after the Date: header.
This release cycle, a couple different users reported Mutt's mailcap file sanitization being a bit too strict. Any 8-bit characters were converted to "_" which converted non-ascii filenames to "________". This has been loosened a bit, hopefully producing more helpful filenames in those cases.