2020-05-25 13:29:22 -0700  Kevin McCarthy  <kevin@8t8.us> (642a1cfd)

        * Update UPDATING file for release.

M	UPDATING

2020-05-25 12:44:43 -0700  Kevin McCarthy  <kevin@8t8.us> (f6fb5a17)

        * 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.

M	pattern.c

2020-05-25 12:23:02 -0700  Kevin McCarthy  <kevin@8t8.us> (5761113a)

        * 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
        everywhere.
        
        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.

M	buffer.c
M	init.c
M	score.c

2020-05-24 13:26:49 -0700  Kevin McCarthy  <kevin@8t8.us> (d8e518db)

        * 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...)

M	curs_lib.c

2020-05-19 12:26:55 -0700  Kevin McCarthy  <kevin@8t8.us> (c72f740a)

        * 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.

M	handler.c
M	mime.h
M	parse.c

2020-05-16 14:34:07 -0700  Kevin McCarthy  <kevin@8t8.us> (a4059dd2)

        * 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.

M	build-release

2020-05-16 10:43:06 -0700  Kevin McCarthy  <kevin@8t8.us> (12cf5b46)

        * automatic post-release commit for mutt-1.14.1

M	ChangeLog
M	UPDATING
M	VERSION

2020-05-03 17:29:55 +0200  Vincent Lefevre  <vincent@vinc17.net> (b4936342)

        * Add missing blank lines in ChangeLog due to buggy update-changelog.

M	ChangeLog

2020-05-03 17:18:28 +0200  Vincent Lefevre  <vincent@vinc17.net> (274b1c5a)

        * Fix update-changelog rule (missing blank line in generated ChangeLog).

M	Makefile.am

2020-05-09 18:30:13 -0700  Kevin McCarthy  <kevin@8t8.us> (7bd57bc3)

        * Set AM_DISTCHECK_CONFIGURE_FLAGS to allow make distcheck to run.
        
        Add the '--with-homespool' flag, to allow it to run as non-root.

M	Makefile.am

2020-05-09 16:26:20 -0700  Kevin McCarthy  <kevin@8t8.us> (ba0c9f9e)

        * 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
        srcdir.
        
        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.

M	doc/Makefile.am

2020-05-08 12:48:19 -0700  Kevin McCarthy  <kevin@8t8.us> (30340e50)

        * 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
        editing.
        
        The mutt_decrease_mtime() and callers need to be cleaned up for better
        error handling, but I will do that in master.

M	editmsg.c

2020-05-08 12:10:51 -0700  Kevin McCarthy  <kevin@8t8.us> (094a07fc)

        * 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
        delete/purge.

M	editmsg.c

2020-05-07 15:23:12 -0700  Kevin McCarthy  <kevin@8t8.us> (51ed59a7)

        * Wrap 'saving fcc' message in curses and sendmailx check.

M	send.c

2020-05-02 15:16:46 -0700  Kevin McCarthy  <kevin@8t8.us> (020321ed)

        * automatic post-release commit for mutt-1.14.0

M	ChangeLog
M	VERSION
M	build-release
M	po/bg.po
M	po/ca.po
M	po/cs.po
M	po/da.po
M	po/de.po
M	po/el.po
M	po/eo.po
M	po/es.po
M	po/et.po
M	po/eu.po
M	po/fi.po
M	po/fr.po
M	po/ga.po
M	po/gl.po
M	po/hu.po
M	po/id.po
M	po/it.po
M	po/ja.po
M	po/ko.po
M	po/lt.po
M	po/nl.po
M	po/pl.po
M	po/pt_BR.po
M	po/ru.po
M	po/sk.po
M	po/sv.po
M	po/tr.po
M	po/uk.po
M	po/zh_CN.po
M	po/zh_TW.po

2020-05-02 14:58:03 -0700  Kevin McCarthy  <kevin@8t8.us> (3c575cab)

        * 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
        exist.
        
        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.

M	doc/Makefile.am

2020-05-02 11:16:31 -0700  Kevin McCarthy  <kevin@8t8.us> (bd776a65)

        * Fix 'gpg' -> 'GPG' in manual and autocrypt translation string.

M	autocrypt/autocrypt_gpgme.c
M	doc/manual.xml.head
M	po/bg.po
M	po/ca.po
M	po/cs.po
M	po/da.po
M	po/de.po
M	po/el.po
M	po/eo.po
M	po/es.po
M	po/et.po
M	po/eu.po
M	po/fi.po
M	po/fr.po
M	po/ga.po
M	po/gl.po
M	po/hu.po
M	po/id.po
M	po/it.po
M	po/ja.po
M	po/ko.po
M	po/lt.po
M	po/nl.po
M	po/pl.po
M	po/pt_BR.po
M	po/ru.po
M	po/sk.po
M	po/sv.po
M	po/tr.po
M	po/uk.po
M	po/zh_CN.po
M	po/zh_TW.po

2020-05-02 10:57:22 -0700  Kevin McCarthy  <kevin@8t8.us> (c6534102)

        * Update 'mutt -v' copyright date.
        
        Since the phrase contains "and others" the developers judged it was
        correct to increase the year number.

M	main.c
M	po/bg.po
M	po/ca.po
M	po/cs.po
M	po/da.po
M	po/de.po
M	po/el.po
M	po/eo.po
M	po/es.po
M	po/et.po
M	po/eu.po
M	po/fi.po
M	po/fr.po
M	po/ga.po
M	po/gl.po
M	po/hu.po
M	po/id.po
M	po/it.po
M	po/ja.po
M	po/ko.po
M	po/lt.po
M	po/nl.po
M	po/pl.po
M	po/pt_BR.po
M	po/ru.po
M	po/sk.po
M	po/sv.po
M	po/tr.po
M	po/uk.po
M	po/zh_CN.po
M	po/zh_TW.po

2020-05-02 10:39:05 -0700  Kevin McCarthy  <kevin@8t8.us> (c60c7f69)

        * Set UPDATING release date for 1.14.0.

M	UPDATING

2020-05-01 09:26:48 -0700  Kevin McCarthy  <kevin@8t8.us> (48e5c70f)

        * Ensure idata->reopen is clear when the mailbox is closed.
        
        Commit ab457327 accidentally introduced a performance regression in
        the 1.13.0 release.  The reason is that imap_sync_mailbox() was
        leaving IMAP_REOPEN_ALLOW set.  When a mailbox was closed, and another
        opened, the imap_open_mailbox() would be processed with the reopen
        set.
        
        The initial connection and exec statements would trigger a
        imap_cmd_finish().  That would then prematurely trigger fetching new
        mail, with the newMailCount misset, which would in turn generate a
        tiny uid_hash.  When the real download occurred, it would use the
        existing tiny hash, throttling performance.
        
        The regression commit removed what I thought was an unnecessary check,
        but it was guarding the fetch from happening at the wrong time during
        mailbox open too.
        
        The performance issue was already addressed by commit a8337951 in
        master, but I think it's good to wipe the entire state.  The removes
        other possible strange behavior.
        
        A HUGE thanks to Guilhem Moulin for his help on this issue.  Without
        all his work detailing the problem, creating automated testing, git
        bisecting, and logging, I would not have been able to find and fix the
        problem.

M	imap/imap.c

2020-05-01 03:55:39 -0700  Kevin McCarthy  <kevin@8t8.us> (67948d74)

        * Fix CONDSTORE/QRESYNC context flag counts on updates.
        
        read_headers_condstore_qresync_updates() differs from
        read_headers_normal_eval_cache() in that the FLAGS updates are issued
        for existing messages in the context.
        
        So cmd_parse_fetch() will process the flags *but* it will also
        increment/decrement context flag counters.
        
        Zero out the flags (as was being done for VANISHED handling), and let
        mx_update_context() set them properly afterwards.
        
        Thanks to Guilhem Moulin for reporting the issue and helping me test
        this fix.

M	imap/message.c

2020-04-30 16:57:01 +0200  Grzegorz Szymaszek  <gszymaszek@short.pl> (3a20ab36)

        * Improve the Polish translation

M	po/pl.po

2020-04-28 18:56:42 +0200  Grzegorz Szymaszek  <gszymaszek@short.pl> (99d67832)

        * Fix a typo in a message in the Polish translation

M	po/pl.po

2020-04-28 18:49:27 +0200  Grzegorz Szymaszek  <gszymaszek@short.pl> (8d8af9c2)

        * Improve a message in the Polish translation
        
        This makes the translation of “Unable to create SSL context” closer to
        the original meaning.

M	po/pl.po

2020-04-28 17:49:50 -0700  Kevin McCarthy  <kevin@8t8.us> (0fdc8668)

        * Document change to exact-address writing behavior.

M	UPDATING
M	doc/manual.xml.head

2020-04-28 15:23:29 -0700  Kevin McCarthy  <kevin@8t8.us> (b3fd56a4)

        * Turn off writing exact-addresses that require 2047-encoding.
        
        The full strdup'ed copy of the address can't be properly encoded
        without significant rework to parse, encode, and reassemble.
        (Additionally, IDNA is not being performed on the domain written in
        the exact-address string.)
        
        As an example, consider the current exact address behavior, given the
        three addresses:
          "ascii name" (comment) <addr@example.com>
          The ènd (comment) <addr2@example.com>
          "The ènd" (comment) <addr3@example.com>
        
        Before this commit, when sending Mutt would generate:
          "ascii name" (comment) <addr@example.com>
          The =?iso-8859-1?B?6G5kIChjb21tZW50KSA8YWRkcjJAZXhhbXBsZS5jb20+?=
          =?iso-8859-1?B?IlRoZSDobmQiIChjb21tZW50KSA8YWRkcjNAZXhhbXBsZS5jb20+?=
        
        The second address 2047 encodes everything starting with ènd,
        including the comment and address.  The third address is completely
        encoded.
        
        A "quick workaround" I proposed to the list was turning off
        encode_specials.  This results in:
          "ascii name" (comment) <addr@example.com>
          The =?iso-8859-1?B?6G5k?= (comment) <addr2@example.com>
          "The =?iso-8859-1?Q?=E8nd=22?= (comment) <addr3@example.com>
        
        That solves the second case, but in the third case 2047-encodes
        ènd" - including the trailing double quote.
        
        With this patch, we turn off writing the exact address if encoding is
        needed, generating:
          "ascii name" (comment) <addr@example.com>
          The =?iso-8859-1?B?6G5k?= <addr2@example.com>
          The =?iso-8859-1?B?6G5k?= <addr3@example.com>
        
        This reverts to Mutt-generated normalized form in the last two
        addresses, which require encoding.  For the first case it preserves
        the address as "typed" by the user.

M	rfc2047.c
M	rfc2047.h

2020-04-27 18:18:34 -0700  Kevin McCarthy  <kevin@8t8.us> (43204e7b)

        * Add contrib/bgedit-screen-tmux.sh.
        
        This script wraps running the editor inside a new GNU Screen or tmux
        session.
        
        The script is derived from Aaron Schrab's script posted to mutt-dev,
        but rewritten to run in a posix shell, automatically adjust between
        tmux and screen, and with a bit more error checking.

M	contrib/Makefile.am
A	contrib/bgedit-screen-tmux.sh
M	doc/manual.xml.head

2020-04-27 06:40:11 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net> (d5d8b62a)

        * Updated Catalan translation.

M	po/ca.po

2020-04-26 07:02:47 -0700  Morten Bo Johansen  <mbj@mbjnet.dk> (0ab54fc7)

        * Updated Danish translation.

M	po/da.po

2020-04-25 07:08:05 -0700  Kevin McCarthy  <kevin@8t8.us> (0284e7dc)

        * Minor fix to polish translation.

M	po/pl.po

2020-04-25 14:30:52 +0200  Grzegorz Szymaszek  <gszymaszek@short.pl> (d19ed86c)

        * Update the Polish translation for Mutt 1.14

M	po/pl.po

2020-04-25 04:34:10 +0200  Vincent Lefevre  <vincent@vinc17.net> (8c960f97)

        * Fix typo in UPDATING.

M	UPDATING

2020-04-22 06:53:57 -0700  Kevin McCarthy  <kevin@8t8.us> (d9cb3438)

        * First draft of UPDATING file for 1.14 release.

M	UPDATING

2020-04-24 14:30:11 -0700  Kevin McCarthy  <kevin@8t8.us> (858d3f92)

        * Adjust comment on header.num_hidden field.
        
        Changeset 83be183b modified _mutt_traverse_thread() to update
        num_hidden in the entire thread, so that ~v will work properly when
        switching to a non-threaded view.

M	mutt.h

2020-04-24 14:20:16 -0700  Kevin McCarthy  <kevin@8t8.us> (3dfbff41)

        * Fix minor indentation problem in hcachever.pl.

M	hcachever.pl

2020-04-22 06:14:08 +0000  Tamotsu TAKAHASHI  <ttakah@gmail.com> (af8b26b7)

        * Update ja.po for 1.14

M	po/ja.po

2020-04-20 03:40:17 +0200  Vincent Lefevre  <vincent@vinc17.net> (9935e756)

        * fr.po: forgot a period

M	po/fr.po

2020-04-19 18:28:52 -0700  Kevin McCarthy  <kevin@8t8.us> (d31f5692)

        * Fix copyright address.

M	contrib/bgedit-detectgui.sh

2020-04-20 03:19:41 +0200  Vincent Lefevre  <vincent@vinc17.net> (190ef657)

        * fr.po: typo in a comment

M	po/fr.po

2020-04-20 03:07:34 +0200  Vincent Lefevre  <vincent@vinc17.net> (5672c160)

        * Updated French translation.

M	po/fr.po

2020-04-19 13:23:17 -0700  Kevin McCarthy  <kevin@8t8.us> (c1d58163)

        * Clarify sidebar sorting by path vs alpha/name.
        
        The former only sorts by the path.
        
        The latter two will sort by label if defined.

M	doc/manual.xml.head

2020-04-19 09:31:01 -0700  Kevin McCarthy  <kevin@8t8.us> (5eea506e)

        * Add contrib/bgedit-detectgui.sh from Eike Rathke.

M	contrib/Makefile.am
A	contrib/bgedit-detectgui.sh

2020-04-18 14:05:52 -0700  Kevin McCarthy  <kevin@8t8.us> (3179e93c)

        * Freshen up other configuration options in INSTALL.
        
        Remco's patch pointed out this file has been getting rather stale.  I
        haven't added all of the flags, but reordered them and added some of
        the major ones that were missing.

M	INSTALL

2020-04-18 11:50:45 -0400  Remco Rijnders  <remco@webconquest.com> (7299f6af)

        * Include instructions on how to build with sidebar support

M	INSTALL

2020-04-18 11:51:47 -0700  Remco Rijnders  <remco@webconquest.com> (749337e0)

        * Updated Dutch translation.

M	po/nl.po

2020-04-18 06:43:58 -0700  Vsevolod Volkov  <vvv@mutt.org.ua> (0fcf6a42)

        * Updated Russian translation.

M	po/ru.po

2020-04-18 06:42:10 -0700  Vsevolod Volkov  <vvv@mutt.org.ua> (e442d478)

        * Updated Ukrainian translation.

M	po/uk.po

2020-04-17 12:12:07 -0700  Petr Pisar  <petr.pisar@atlas.cz> (8a8e008d)

        * Updated Czech translation.

M	po/cs.po

2020-04-16 19:50:22 +0200  Olaf Hering  <olaf@aepfle.de> (37a94853)

        * Update de.po
        
        Signed-off-by: Olaf Hering <olaf@aepfle.de>

M	po/de.po

2020-04-16 09:42:01 -0700  Kevin McCarthy  <kevin@8t8.us> (653b20b8)

        * Add l10n comment above the revised translation string.

M	rfc1524.c

2020-04-16 08:58:24 +0200  Olaf Hering  <olaf@aepfle.de> (850aac1b)

        * Update error string in mailcap_path handling
        
        The code expects either 'mailcap_path' in muttrc, or MAILCAPS in environment.
        In this context a string 'mailcap path' is incorrect.
        
        Signed-off-by: Olaf Hering <olaf@aepfle.de>

M	rfc1524.c

2020-04-15 20:26:20 +0200  Olaf Hering  <olaf@aepfle.de> (0cca6886)

        * refresh de.po
        
        Signed-off-by: Olaf Hering <olaf@aepfle.de>

M	po/de.po

2020-04-14 01:30:08 +0200  Vincent Lefevre  <vincent@vinc17.net> (a2f963fd)

        * Fix spelling mistake in manual.

M	doc/manual.xml.head

2020-04-14 01:07:29 +0200  Vincent Lefevre  <vincent@vinc17.net> (61867c9e)

        * Fix typo in manual.

M	doc/manual.xml.head

2020-04-12 13:13:43 -0700  Kevin McCarthy  <kevin@8t8.us> (c289e74c)

        * Remove ansi formatting from autoview generated quoted replies.
        
        If $allow_ansi is set, and the user has an autoview generating ansi
        output, it is helpful to strip out those sequences.
        
        This is based on Fabian's patch for ticket #218.  My version results
        in partially duplicated logic, but avoids tangling the handler with
        pager's internal fill_buffer() logic.

M	handler.c
M	muttlib.c
M	protos.h

2020-04-13 07:00:49 -0700  Kevin McCarthy  <kevin@8t8.us> (950cc435)

        * Add background.c to POTFILES.in.
        
        Thanks to Petr Pisar for pointing out the mistake.

M	po/POTFILES.in

2020-04-10 14:30:11 -0700  Kevin McCarthy  <kevin@8t8.us> (15ef4a13)

        * Document multipart/alternative inline part disposition for counting.
        
        An initial multipart/alternative's top-level inline parts are also
        counted via the "root" disposition.

M	doc/manual.xml.head

2020-04-10 13:37:42 -0700  Kevin McCarthy  <kevin@8t8.us> (cc895ebc)

        * Clarify $imap_fetch_chunk_size is referring to headers.
        
        !81 was opened because the documentation was confusing.  Hopefully
        this rewording will make it clear the "size" refers to number of
        headers per request.

M	init.h

2020-04-09 20:23:42 -0700  Kevin McCarthy  <kevin@8t8.us> (489a81ce)

        * Change default $background_format value.
        
        Move the status before the pid to more clearly separate it the
        from the subject.  Increase the pid width.
        
        Thanks to Aaron Schrab for both suggestions.

M	init.h

2020-04-09 23:25:02 +0200  Olaf Hering  <olaf@aepfle.de> (f1233d94)

        * refresh de.po
        
        Signed-off-by: Olaf Hering <olaf@aepfle.de>

M	po/de.po

2020-04-09 13:33:50 -0700  Kevin McCarthy  <kevin@8t8.us> (38ea4042)

        * Remove makedoc.c.
        
        The perl version seems to be working okay.  So it's a good time to
        remove this file, before the next release.

D	doc/makedoc.c

2020-04-09 11:22:07 -0700  Kevin McCarthy  <kevin@8t8.us> (53a1b4ce)

        * Convert "non-fatal" handler errors to return 1 instead of -1.
        
        When displaying a message, display a mutt_error() to warn of
        incomplete rendering.
        
        Fix mutt_copy_message() to check for ferror and feof errors on partial
        decode too.
        
        Clean up _mutt_append_message() to not pass a partial-decode along as
        a success.
        
        Modify the crypt handlers to return 1 if any kind of state message is
        displayed.  There is some fuzzyness about what a "fatal" error is, but
        for now just consider a handler error that notifies by
        state_attach_puts() as "non-fatal".

M	commands.c
M	copy.c
M	crypt-gpgme.c
M	handler.c
M	pgp.c
M	smime.c

2020-04-08 09:20:54 -0700  Kevin McCarthy  <kevin@8t8.us> (4fc97a20)

        * Display error if no imap authenticators are available.
        
        Without SASL enabled, and with an explicit value in
        $imap_authenticators not natively implemented by Mutt, no calls to
        authenticator->authenticate() were occuring.
        
        This resulted in the default r value of -1 passing through, which did
        not trigger the mutt_error() message after the loop.
        
        Without that message, an empty index would display with the
        "connecting" message still on the bottom, giving the appearance that
        Mutt is hung.

M	imap/auth.c

2020-04-07 19:30:46 -0700  Kevin McCarthy  <kevin@8t8.us> (4465a872)

        * Print progress meter when copying/saving tagged messages.
        
        When copying from local to IMAP, it would previously only display a
        percentage count for each individual message.  Suppress that by
        passing MUTT_QUIET.
        
        Note, this is only for "regular" copies.  IMAP server-side copies
        happen in a single command and can't display a progress meter.

M	commands.c

2020-04-06 15:58:58 -0700  Kevin McCarthy  <kevin@8t8.us> (8615cae9)

        * Add message/global to the list of known "message" types.
        
        This will allow Mutt to at least handle those messages the same as
        message/rfc822 body types.

M	mime.h
M	recvattach.c

2020-04-06 14:53:42 -0700  Kevin McCarthy  <kevin@8t8.us> (5df8b2a1)

        * Turn on READONLY flag for postpone count check.
        
        We don't manipulate the context, so I don't think this is fixing an
        actual bug.  But better to be explicit about it.

M	postpone.c

2020-04-06 14:46:53 -0700  Kevin McCarthy  <kevin@8t8.us> (a8337951)

        * Turn off REOPEN flag after imap open and sync operations.
        
        Leaving a just opened imap mailbox with REOPEN set can cause all sorts
        of problems.  Postpone.c had a memory corruption bug because of this.
        The background compose reply-flag setting code had to ensure it was
        turned off too.
        
        The main index worked around this by always ensuring
        mx_check_mailbox() was called right afterwards.  But after researching
        I can't see any reason to leave it open.
        
        imap_sync_mailbox() also leaves the REOPEN set, and I can't see a good
        reason for doing this either.  Both are memory corruption bugs just
        waiting to happen.
        
        With the flag turned off, remove the workaround calls to
        mx_check_mailbox() in postpone.c and send.c.

M	imap/imap.c
M	postpone.c
M	send.c

2020-04-02 20:05:01 -0700  Kevin McCarthy  <kevin@8t8.us> (ed2567d1)

        * Add "root" part logic for multipart/alternative counting
        
        Distinguish between the inline parts of a root multipart/alternative,
        which should also be considered as "root" parts, and those of a
        non-root multipart/alternative, which should be counted as "inline"
        parts.

M	mutt.h
M	parse.c

2020-04-02 14:30:08 -0700  Kevin McCarthy  <kevin@8t8.us> (3b9cc43f)

        * Add "root" disposition to attachments command.
        
        An initial inline part was previously always skipped, for the good
        reasons outlined by @dgc in #217.
        
        Unfortunately, some mail clients have started sending "attachments" as
        the root (and only) part, more and more lately.  Although this may be
        bad practice, Mutt should support counting these as "attachments".
        
        To do so without breaking existing configs, add a "root" disposition
        argument to the attachments command.  This will count an initial
        inline part in a message or multipart container.
        
        The existing code skipped counting for the "top-level" and recursive
        calls, so group both of these cases under "root".

M	doc/manual.xml.head
M	globals.h
M	init.c
M	parse.c

2020-04-03 14:11:13 -0700  Kevin McCarthy  <kevin@8t8.us> (434b55ee)

        * Change disabled crypto pattern op error message and return value.
        
        If mutt is compiled without crypto support, attempting to use one of
        the patterns ~g, ~G, ~k, ~V fails with the cryptic (pun intended)
        error message:
          "error: unknown op %d (report this error)."
        
        Since the op is known, just not enabled, and furthermore is an opaque
        number, it doesn't help the user understand what the problem is.
        
        Change the code to instead print out the pattern operator character
        that is disabled:
          "Pattern operator '~%c' is disabled."
        
        Almost all callers of mutt_pattern_exec() expect it to return 0 or 1.
        Returning -1 in the event of a disabled or bad op will lead to
        undesirable "matching" behavior.  Change to return 0 in the event of
        one of these errors, since none of the callers do (or can) handle the
        error in a meaningful way.

M	pattern.c

2020-04-01 14:36:05 -0700  Kevin McCarthy  <kevin@8t8.us> (b54ccb54)

        * Simplify _smime_getkeys()
        
        The code is basically duplicated for whether a key is specified or
        falling back to SmimeDefaultKey.  The calls to
        smime_void_passhphrase() can also be simplified to whenever the key
        changes.

M	smime.c

2020-03-31 19:26:53 -0700  Kevin McCarthy  <kevin@8t8.us> (98c1a45f)

        * Convert smime static key/cert variables to buffers.

M	smime.c

2020-03-31 16:19:00 -0700  Kevin McCarthy  <kevin@8t8.us> (0e71d0ee)

        * Create crypt glue cleanup method.
        
        Create stub classic smime and cleanup functions, which will be used in
        the next commit.

M	crypt-mod-pgp-classic.c
M	crypt-mod-pgp-gpgme.c
M	crypt-mod-smime-classic.c
M	crypt-mod-smime-gpgme.c
M	crypt-mod.h
M	cryptglue.c
M	main.c
M	mutt_crypt.h
M	smime.c
M	smime.h

2020-03-31 15:48:00 -0700  Kevin McCarthy  <kevin@8t8.us> (a9451f9d)

        * Convert LastSaveFolder to buffer.

M	commands.c
M	main.c
M	protos.h

2020-03-31 13:47:35 -0700  Kevin McCarthy  <kevin@8t8.us> (b94d291f)

        * Convert mutt_make_message_attach() to use buffer tempfile.
        
        This is the last caller of the old mutt_mktemp() function.

M	sendlib.c

2020-03-31 13:19:48 -0700  Kevin McCarthy  <kevin@8t8.us> (4e153adf)

        * Convert mutt_init() to use buffer pool for path operations.
        
        Convert getdnsdomainname(), called by mutt_init(), to accept a BUFFER
        parameter instead.

M	getdomain.c
M	init.c
M	protos.h

2020-03-31 12:23:51 -0700  Kevin McCarthy  <kevin@8t8.us> (e0dc7dec)

        * Add buffer.h as a dependency of hcversion.h.
        
        The recent BUFFER change needs to force a regeneration of hcversion.h.

M	Makefile.am

2020-03-30 19:46:12 -0700  Kevin McCarthy  <kevin@8t8.us> (0b6eb1ab)

        * Remove buffer->destroy.
        
        Fix backtick processing to append to tok instead of allocating and
        assigning to tok->data directly.

M	buffer.c
M	buffer.h
M	hcache.c
M	init.c

2020-03-30 19:00:38 -0700  Kevin McCarthy  <kevin@8t8.us> (b207c280)

        * Convert mutt_parse_rc_line() to use real buffer to hold the line.
        
        Previously, the parameter converted into a kind of read-only buffer,
        pointing to the char *line passed in.  The problem is that
        mutt_extract_token() backtick processing allocates and assigns a new
        token->data.
        
        As a result, buffer->destroy was added, whose sole purpose is to keep
        track of the read-only token buffer being reallocated so that it can
        be properly freed inside mutt_parse_rc_line().  (The char *line is
        allocated and freed in source_rc()).
        
        Remove the token parameter, and convert line to a const char *.  Copy
        that into a buffer-pool buffer, so the buffer can be modified
        "normally".
        
        Create a mutt_buffer_rc_buffer() function taking the line buffer
        parameter.  To make the source_rc() just a tiny bit faster, have it
        directly manage and call mutt_parse_rc_buffer() itself.
        
        Other callers likely don't need the speed, so remove their cumbersome
        creation/free of that parameter.
        
        The next commit will deal with removing buffer->destroy and fixing up
        backtick handling.

M	commands.c
M	hook.c
M	imap/command.c
M	imap/imap.c
M	init.c
M	protos.h

2020-03-30 16:17:03 -0700  Kevin McCarthy  <kevin@8t8.us> (0d8257cb)

        * Ensure rc_line err BUFFER is always dynamic.
        
        The mailboxes command changes started using standard mutt_buffer_*()
        functions, which will attempt to realloc err->data if the size is too big.

M	imap/command.c
M	imap/imap.c

2020-03-30 13:22:16 -0700  Kevin McCarthy  <kevin@8t8.us> (e84cf897)

        * Convert built-in editor to use mutt_buffer_expand_path().

M	edit.c

2020-03-30 11:21:20 -0700  Kevin McCarthy  <kevin@8t8.us> (18cef028)

        * Convert mutt_pipe_message() to use buffer pool.

