Fix doc install to check builddir first for bundled files.

Although some of the built files are bundled in the tarball, someone
could still try to build/install from a git checkout with a separate
build directory.  There might be other circumstances too, so better to
just add the check for now.
Remove Muttrc and manual.txt from dist tarball files.

The Muttrc needs to be generated because of docdir substitution.  The
manual.txt may traditionally be generated by a different tool than the
one on my machine (lynx), so force that to be regenerated too.

It may still be necessary to just rebuild everything, but let's see if
this will do for stable for now.
automatic post-release commit for mutt-1.14.2
Update UPDATING file for release.
Fix mutt_pattern_comp() to not segv on a NULL pattern string.

The change to mutt_parse_score() could now result in a NULL score
pattern if the user specified ''.  It might be possible for this to
happen elsewhere too, so just add a check at the top of
mutt_pattern_comp() to handle the case.
Fix buffer pool buffer truncation with my_hdr and score commands.

The buffer pool is now used for command invocation, but unfortunately
a couple cases of mutt_buffer_init() were hidden in the my_hdr and
score command processors.

This would result in a shortened buffer being returned to the pool and
used later for something like the prompt - which expects LONG_STRING

Fix up the two places to instead copy the string over.  They don't
need to grab a large buffer pool sized hunk of memory.

Also, fix the mutt_buffer_pool_release() to resize upwards in case
future code does this.  I should have done this originally, but was
afraid it would paper over more serious issues.  :-/

Thanks to Armin Wolfermann for reporting the problem.
Increase the buffer size in _mutt_get_field().

Not doing so caused the subsequent _mutt_enter_string() to use the
default buffer pool size of 1024 - negating the HUGE_STRING value
passed into _mutt_get_field().

(Once we fully transition to buffers, this awkwardness can go away...)
Add mitigation against DoS from thousands of parts.

A demonstration attack using a million tiny parts will freeze Mutt for
several minutes.  This is actually better than some other mail
software, but can still be a problem at large levels.

For now, set it to a very conservative 5000, but this can be adjusted
up (or down) if necessary.

Declare the previous stack-limit max depth as a constant too, and
decrease it down to 50.  Change the handler to return non-fatal "1" on
reaching the limit.
Document my release process.

The old script contents is for mercurial so remove it.

My process is not automated, but at least write it down.
automatic post-release commit for mutt-1.14.1
b4936342 — Vincent Lefevre 30 days ago
Add missing blank lines in ChangeLog due to buggy update-changelog.
274b1c5a — Vincent Lefevre 30 days ago
Fix update-changelog rule (missing blank line in generated ChangeLog).
Set AM_DISTCHECK_CONFIGURE_FLAGS to allow make distcheck to run.

Add the '--with-homespool' flag, to allow it to run as non-root.
Fix doc installation directories.

The conversion of makedoc.c to perl goofed up the documentation
build/install process from a tarball.  A late commit, 3c575cab, tried
to fix this, but didn't fix the problem when building with a separate

Previously, because makedoc didn't exist, all the documentation would
be rebuilt, even though it was distributed in the tarball.

Now the files don't need to be rebuilt, and so exist in $(srcdir)
instead of the build directory.

I'm a little bit unsure how this would all work, trying to install
from git with a separate srcdir.  I think it would fail now.  However,
I don't believe that's a common use case.

If I'm wrong, then an alternative would be to go back to rebuilding
everything.  This would be done by creating a new makedoc target, with
rule 'cp $(srcdir)/makedoc.pl makedoc', and then changing all the
other targets to depend on and invoke makedoc instead.
Fix edit-message false-modified bug.

The file was being stat() before the truncate, and
mutt_decrease_mtime() only decreases if the sb.st_mtime is equal to
the current time.  That means operations crossing the second boundary:
  time x:   stat
  time x+1: truncate, decrease_mtime
would result in a false-modified bug if no changes were made during

The mutt_decrease_mtime() and callers need to be cleaned up for better
error handling, but I will do that in master.
Fix rc error setting in edit_one_message().

In a couple places, the rc was not set before bailing on an error.
With a default of 0, the original message would be marked for
Wrap 'saving fcc' message in curses and sendmailx check.
automatic post-release commit for mutt-1.14.0
Add missing doc built distfiles.

When building the 1.14.0 release tarball, I discovered a hidden
dependency problem from switching to makedoc.pl.

The manual.xml is not properly defined, and so trying to build the
muttrc.man and mutt.info file errors out.  This was previously hidden
because makedoc need to be compiled, forcing a rebuild.

This problem derives because the stamp-* files (and most of the other
documentation) are *included* in the tarball, except for muttrc.man
and mutt.texi.  Those attempt to rebuild, but manual.xml doesn't

For now, include muttrc.man and mutt.texi in the dist files.

A better solution requires some thought, but not while I'm trying to
get a release out.
Fix 'gpg' -> 'GPG' in manual and autocrypt translation string.