automatic post-release commit for mutt-1.12.1
Update UPDATING file for 1.12.1 release.
Add $fcc_before_send, defaulting unset.

When set, the message will be Fcc'ed the same as sent.  $fcc_clear and
$fcc_attach will be ignored.  This is because of the difficulty of
unwinding changes, notably Protected Headers, without potentially
breaking signatures.
Improve $reverse_realname documentation.

Make it clear that, even if set, a missing realname part of the
matching address will be filled in by $realname.
Mention sources for ~p and ~P patterns.

The manual only mentioned alternates.  Add $from and local
account/hostname to the list.

The man page implied the only source was alternates.  Change to the
same wording as the manual.

Thanks to @rear1019 for pointing out the misleading man page.
Improve imap_append_message() error message handling.

If the rc is IMAP_CMD_BAD, then either idata->buf is stale or an error
message has already been printed (in cmd_handle_untagged()).

Use imap_next_word() to skip over the next two words instead of
directly skipping over SEQLEN, in case the buffer is in a different
format.  We don't want to jump over the end of string.

Skip the mutt_error() if there is nothing to print.
Enable the idata->check_status using bit operations.

Commit e3f66d7e fixed dropped new mail notications, removing the
unsetting of idata->reopen IMAP_NEWMAIL_PENDING in imap_cmd_finish()
when an EXPUNGE was processed.

However, imap_cmd_finish() can be called twice by
imap_check_mailbox().  First as part of the imap_exec(), and manually
again just below.

Now that the IMAP_NEWMAIL_PENDING still exists, a second call could
overwrite idata->check_status if both reopen flags were set.

This unfortunately affects update_index(), which behaves differently

I need to change the return value of mx_check_mailbox() in master to
preserve all the bits, so the index can both notify of new mail and
update_index() properly.

For stable, the best fix is to use bit operators to enable the
check_status flags in imap_cmd_finish() (and cmd_parse_fetch for
flags), and keep the imap_check_mailbox() priority of setting its
return value (it prioritizes IMAP_EXCHANGE_PENDING).
Improve robustness of imap_append_message().

First, check the imap_cmd_step() return value instead of looking at
idata->buf for "OK".  If the connection bombed and imap_cmd_step()
returned IMAP_CMD_BAD, the value of idata->buf is stale.

If the server returned "+ OK" for the command continuation request
response, the call to imap_code(idata->buf) would even end up
returning true, despite that the append failed!  (See #110, although
at the time of commit I can only hypothesize this is what is

Second, check the status of the writes.  flush_buffer() was not
passing the rc from mutt_socket_write_n(), which was further making
the above disaster scenerio possible.
Fix dropped new mail notifications when an EXPUNGE_PENDING is set.

Prior to the fetch_headers rework and introduction of
idata->max_msn (starting around e0376c75), cmd_handle_untagged() was
looking directly at ctx->msgcount, which isn't fixed up until
imap_expunge_mailbox().  At that time, more care had to be taken
inbetween handling the EXPUNGE message and the actual expunge of the
mailbox because of the discrepency between server state and mailbox
context state.

idata->max_msn is now decremented during the processing of EXPUNGE and
VANISHED notices from the server, so reflect "current" state.  So,
when we receive an EXISTS notice, we no longer need the checks for
expunge state and can always set the NEWMAIL_PENDING flag.

Additionally, fix imap_cmd_finish() to retain the IMAP_NEWMAIL_PENDING
flag after handling an expunge.  The expunge does not grab new
messages so dropping the flag would cause mutt to forget the new mail
status until another EXISTS command.

Since this is a stable branch fix, I'm leaving the either/or
processing of expunge versus new mail in imap_cmd_finish().  However,
I don't see why this has to be done in two calls.  I may rework that
in master to process an expunge and then the new mail one after the
Remove FORCE prerequisite on version.h.

This is causing package build issues on OpenBSD because of a
difference in make behavior.

In GNU make, it always invoke the 'version.h' target, but then checks
to see if version.h changed before retriggering targets with that
prerequisite.  On OpenBSD, invoking the version.h target always
retriggers targets with that prerequisite.

This means that updating the version information now requires a 'make
clean' or manual removal of version.h.
Minor documentation correction.
Disable state messages for attachments when forwarding.

First, option(OPTVIEWATTACH) is only set for (s->flags & DISPLAY), so that
check can be ignored.

With that removed, all this is doing is printing
  [-- This is an attachment ...]
with no context in the middle of non-display rendering for the case
$honor_disposition is set with a handler.

This makes no sense and I believe is a logic error.  Perhaps this
never took effect, but with $forward_attachments it now affects
forwarding in that case.
Have $forward_attachments look at attachment disposition.

If $honor_disposition is set, an "attachment" disposition decodable
attachment won't be included in the body, so we want it to be added as
an attachment to the forwarded email.
automatic post-release commit for mutt-1.12.0
Set UPDATING file release date for 1.12.0.
Make mutt.texi and mutt.info generation continue on failure.

Add warning messages, noting the appropriate packages to install.

Note: mutt.texi won't normally be built unless configure finds one of
the possible expected conversion program names.  Unfortunately, the
canonical name, "docbook2texi", is used by both the docbook2x and
docbook-utils projects.

So on Arch, the canonical name is what we need, while on Debian and
Red Hat/Fedora it isn't.  We search for the alternative names first,
but it's still possible to invoke the wrong program if the needed
package is not installed.
be42d1a0 — TAKAHASHI Tamotsu 1 year, 14 days ago
Updated Japanese translation.
Adjust docbook2texi program search.

Look for db2x_docbook2texi first, because Fedora/Red Hat has their own
version of "docbook2texi": db2x_docbook2texi.  I'm not sure what to do
if they have don't have that installed but have docbook2texi
installed, since this is a terrible name collision.

Thanks to Moritz Barsnick for pointing out the different binary (and
package) names on Fedora.
Update gpgme and gpg-error automake checks.

Pull updated autoconf files from the GPGME 1.13.0 release and use
those new macros.

Add a call to AM_PATH_GPG_ERROR() and include $(GPG_ERROR_LIBS) in the

Thanks to Eike Rathke for finding the build problem, and for his
patch fixing the issue.  I opted for just grabbing the newest autoconf
files from gpgme instead, but his fixed worked great too.
cc8a201f — Ivan Vilata i Balaguer 1 year, 19 days ago
Updated Catalan translation.