2021-12-30 12:47:09 -0800  Kevin McCarthy  <kevin@8t8.us> (6fbb59cf)

        * Update UPDATING file for 2.1.5.

M	UPDATING

2021-12-27 13:45:21 -0800  Kevin McCarthy  <kevin@8t8.us> (a89a677c)

        * Reflow pager when setting $wrap.
        
        I somehow missed $wrap when adding commit 0636c24b.
        
        Lineinfo needs to be recomputed since color matching can change with
        the line wrapping change.

M	init.h

2021-12-26 15:43:27 -0800  Kevin McCarthy  <kevin@8t8.us> (c74cbba7)

        * Include <term.h> before invoking tigetstr() and tigetflag().
        
        On NetBSD, a segv was occurring in mutt_ts_capability() because
        tigetstr() was implicitly declared and thus defaulted to return type
        int.  The 8-byte (char *) actually returned was being converted to a
        4-byte int before being assigned to the (char *) variable.  This
        resulted in a corrupted pointer, causing a segv when dereferenced.
        
        I thought C99+ should warn about implicit declarations.  Although
        configure.ac AC_PROG_CC_C99 asserts the compiler can handle C99,
        perhaps it doesn't put the compiler in the mode to strictly enforce
        it.  (Thanks to rkta on IRC for the input).
        
        The solution, as the man page notes, is to include <term.h> before
        invoking those functions.
        
        Unfortunately term.h pollutes the namespace with all sorts of defines.
        Currently that include columns and lines, which are used inside Mutt.
        
        To help prevent issues, create Mutt wrappers for the functions and
        split them into a separate file, curs_ti_lib.c, that #include
        <term.h>, rather than just adding #include <term.h> to mutt_curses.h
        
        Apparently on some older platforms, #include <curses.h> would also
        include term.h, so make sure columns in undef'ed in mutt_curses.h.  (I
        think we would have heard about that problem already, but just in
        case.)
        
        A huge thank you to rahl on IRC for debugging this issue, and working
        with me over IRC to test various suggestions until the issue was
        found.  I didn't have access to a NetBSD instance, so rahl saved me
        much time and effort, and was crucial to fixing this bug.

M	Makefile.am
M	configure.ac
M	curs_main.c
A	curs_ti_lib.c
M	keymap.c
M	mutt_curses.h
M	po/POTFILES.in

2021-12-24 21:12:58 -0800  Kevin McCarthy  <kevin@8t8.us> (f58795c9)

        * Fix mutt_ts_capability() fallback list loop.
        
        The for loop termination check should be '*termp', not 'termp'.  termp
        starts as &known[0], so to check for the NULL terminator, we need to
        look at *termp.
        
        Since *termp is now checked in each loop, it no longer needs to be in
        the if check inside the loop, so remove it there.
        
        This hasn't been blowing up because the mutt_strncasecmp() check
        inside the loop was also incorrect.  It should be scanning for a
        matching entry, but was looking for non-zero (nonmatching) retval.
        Since term can't match both the first and second entries, it would
        always return 1 and would never get to the loop NULL terminator.

M	curs_main.c

2021-12-20 14:13:29 -0800  Kevin McCarthy  <kevin@8t8.us> (c60ffa27)

        * Fix SMTP response text potential buffer overread.
        
        mutt_socket_readln() returns the number of bytes, including the '\0'.
        smtp_code() only verifies 4 bytes (or a minimum strlen() of 3).
        
        The smtp_get_resp() and smtp_auth_sasl() were both looking at "buf+4"
        without verifying the string went past "buf+3".
        
        Note RFC 4954 and 5321 say there should be a trailing space on a
        response code with no text.  But if the server neglected that, buf+4
        would try to read or decode past the read data.

M	smtp.c

2021-12-13 19:31:04 -0800  Kevin McCarthy  <kevin@8t8.us> (5b318bc8)

        * Space unstuff flowed text for $send_multipart_alternative_filter.
        
        Mutt tries to hide the format=flowed stuff/unstuff processing from the
        user in other cases (when editing, viewing, piping, and printing, for
        instance).  It should also do this when piping the content to the
        alternative filter.

M	compose.c
M	protos.h
M	send.c
M	sendlib.c

2021-12-13 15:43:00 -0800  Kevin McCarthy  <kevin@8t8.us> (91474fdf)

        * Don't force SMTP authentication without a username or client cert.
        
        See Debian bug 1001013.  This is a regression from commit 191b0513,
        which fixed SMTP client certification authentication (see GitLab
        ticket 336).  However, that commit assumed the server wouldn't
        advertise AUTH if it wasn't needed, which the Debian ticket shows is
        not always the case.
        
        Client certificate support still relies on AUTH properly being set.
        
        Add a check for either the username or a cert before calling
        smtp_auth().  The username check was removed by the above mentioned
        commit, but more importantly the username is no longer set by the
        OpenSSL/GnuTLS client cert code.  (Which was the main problem
        addressed by the commit).  So there shouldn't be an issue with adding
        the username check back.

M	smtp.c

2021-12-11 13:15:27 -0800  Kevin McCarthy  <kevin@8t8.us> (93ef06ae)

        * automatic post-release commit for mutt-2.1.4

M	ChangeLog
M	VERSION

2021-12-11 13:11:39 -0800  Kevin McCarthy  <kevin@8t8.us> (138abb63)

        * Update UPDATING for 2.1.4.

M	UPDATING

2021-12-07 14:28:18 -0800  Kevin McCarthy  <kevin@8t8.us> (cc117960)

        * Loosen imap_open_mailbox() SELECT response data parsing.
        
        DavMail is putting more than one space between '*' and the EXISTS
        count, e.g. '*  5 EXISTS'
        
        Strictly speaking, this is disallowed by RFC3501 (see Section 9, Note
        2).  However, there is also no good reason for imap_open_mailbox() to
        be stricter than the untagged handler, which correctly extracts the
        count.
        
        Add a check to make sure we are looking at an untagged response, and
        then use imap_next_word() rather than just incrementing by two.
        
        Thank you to Michael Gernoth (@stargo) for debugging this issue,
        creating a merge request with a possible fix, and helping to test this
        commit.

M	imap/imap.c

2021-09-10 13:18:49 -0700  Kevin McCarthy  <kevin@8t8.us> (987dde4c)

        * automatic post-release commit for mutt-2.1.3

M	ChangeLog
M	VERSION

2021-09-10 13:12:50 -0700  Kevin McCarthy  <kevin@8t8.us> (a7d54a9f)

        * Update UPDATING for 2.1.3.

M	UPDATING

2021-09-08 09:29:09 -0700  Kevin McCarthy  <kevin@8t8.us> (a547111a)

        * Reduce sorting when expunging QRESYNC VANISHED records.
        
        There is no need to perform expensive sorting (e.g. by thread), which
        will just need to be done again after the mailbox is opened.

M	imap/message.c

2021-09-08 07:37:37 -0700  Kevin McCarthy  <kevin@8t8.us> (57c1017d)

        * Clean up more context fields on a QRESYNC reset.
        
        Reset ctx->size.
        
        Clear all hash structures.  Currently imap_expunge_mailbox() triggers
        a resort, which can populate some of these hashes.  The next commit
        will change that, but it's better to make sure there are no remnants
        in any hashes to avoid memory corruption.

M	imap/message.c

2021-09-08 04:15:11 -0700  Kevin McCarthy  <kevin@8t8.us> (1c819fd6)

        * QRESYNC: don't increment msn for missing headers.
        
        Commit 74ce032f moved the msn increment outside the check for a
        missing header.  The idea was that a header-cache hole needed to be
        accounted for.  However, a header can also be missing just by a VANISH
        happening the last time the mailbox was open.
        
        Since the header won't be in the uid_hash, cmd_parse_vanished() can't
        decrement subsequent msns, so it need to be done in this loop.
        
        If there is a header cache hole, or another problem, verify_qresync()
        will detect a problem and try again without QRESYNC.
        
        However if there were an actual stored "blank", do increment, since
        there was no UID to process a vanish on.

M	imap/message.c

2021-09-07 21:42:07 -0700  Kevin McCarthy  <kevin@8t8.us> (fa2fef46)

        * Fix compare_uid() to work with large UID values.
        
        The function was pulled from the other sort methods used in mutt.  But
        those don't work properly for a 32-bit unsigned value.  If the
        difference between two UID values is greater than a signed int can
        represent, it will sort improperly.
        
        Some of the other sort functions need to be fixed too, but that can be
        done in master.

M	imap/imap.c

2021-08-24 12:58:36 -0700  Kevin McCarthy  <kevin@8t8.us> (9a92dba0)

        * automatic post-release commit for mutt-2.1.2

M	ChangeLog
M	VERSION

2021-08-24 12:54:51 -0700  Kevin McCarthy  <kevin@8t8.us> (a86338a8)

        * Update UPDATING file for 2.1.2.

M	UPDATING

2021-08-21 18:42:33 -0700  Kevin McCarthy  <kevin@8t8.us> (74ce032f)

        * Preserve QRESYNC seqset holes when restoring from header cache.
        
        It's possible for there to be holes in the MSN sequence, and also in
        the header cache.  When iterating through the seqset, preserve those
        by incrementing msn even if the result isn't found in the header
        cache (because it is 0 or because the record is missing in the header
        cache).

M	imap/message.c

2021-08-21 14:55:43 -0700  Kevin McCarthy  <kevin@8t8.us> (b0f54225)

        * Don't include inactive messages in msgset generation.
        
        Currently only deleted messages that will be expunged are marked
        inactive, so it shouldn't be an issue.  However, before the previous
        commit (changing sorting by UID), I think there was a possibility for
        a bug if trailing expunge-marked messages with MAXINT index were also
        marked inactive.
        
        The sort change fixes that, but to make the code clearer just remove
        the possibility of inactive messages being included.

M	imap/imap.c

2021-08-21 13:00:12 -0700  Kevin McCarthy  <kevin@8t8.us> (647efbd1)

        * Sort headers by UID when generating a msgset sequence.
        
        When there is a hole in the header cache, the UID numbers are no
        longer guaranteed to increase with the index.  This can result in
        incorrect msgset values being sent to the server.
        
        Thanks to Pieter-Tjerk de Boer for reporting this problem, with a
        detailed description of the problem, and a suggested patch.
        
        Note to backporters:
        
        * this patch depends on the imap_disallow_reopen() added in commit
          6051760c2cf492ada1e06d910c0c2c05607c08bc for release 1.13.4.
        
        * the bug was introduced in release 1.9.0 so there is no need to
          backport earlier than that.

M	imap/imap.c
M	sort.h

2021-08-21 12:21:25 -0700  Pieter-Tjerk de Boer  <p.t.deboer@utwente.nl> (44f2619c)

        * Reset msn_begin on a QRESYNC failure retry.
        
        Since the msn_index will be regenerated differently, Mutt needs to
        scan for holes again.

M	imap/message.c

2021-08-20 13:28:55 -0700  Kevin McCarthy  <kevin@8t8.us> (a54bb201)

        * Properly free mail_followup_to when resending a message.
        
        This one has been in the code for quite a while!  Use the address free
        function to free all the parts instead of just FREE().

M	postpone.c

2021-08-16 18:31:11 -0700  Kevin McCarthy  <kevin@8t8.us> (eda54c6b)

        * Improve attach files handling of empty value.
        
        Hitting enter at the attach files prompt will still allocate an entry
        in the attachment array.  It might make sense to "abort" inside the
        prompt for that case, but it's a change of behavior to have the prompt
        do so.
        
        Instead, have the compose menu prompt skip NULL values.

M	compose.c

2021-07-13 14:44:29 -0700  Kevin McCarthy  <kevin@8t8.us> (6c0f75cc)

        * Fix strfcpy copy size in mutt_get_default_charset().
        
        If AssumedCharset contained a ':', the value could be larger than
        fcharset.  Ensure it's properly truncated.
        
        This also fixes a compiler warning.

M	charset.c

2021-07-13 14:30:33 -0700  Kevin McCarthy  <kevin@8t8.us> (19bdc79f)

        * Use strfcpy for edit_envelope() user-header subject.
        
        strncpy could leave an untruncated string.

M	send.c

2021-07-13 14:22:38 -0700  Kevin McCarthy  <kevin@8t8.us> (6637beb9)

        * Fix mutt_label_message to use strfcpy().
        
        strncpy could leave an unterminated string.

M	headers.c

2021-07-12 10:56:15 -0700  Kevin McCarthy  <kevin@8t8.us> (e2a89abc)

        * automatic post-release commit for mutt-2.1.1

M	ChangeLog
M	VERSION

2021-07-12 10:47:48 -0700  Kevin McCarthy  <kevin@8t8.us> (878e0388)

        * Update UPDATING file for 2.1.1 release.

M	UPDATING

2021-06-28 15:11:24 -0700  Kevin McCarthy  <kevin@8t8.us> (27f0a450)

        * Add a hard redraw after oauth authentication.
        
        The sample contrib program can use gpg to decrypt a token.  This may
        pop up a curses agent prompt, requiring a hard redraw.
        
        It may be that we should be calling a hard redraw after any fork/exec.
        I don't know if this will cause more problems, so for now I'll just
        patch this one place.  But that is something to consider.

M	account.c

2021-06-28 15:07:15 -0700  Kevin McCarthy  <kevin@8t8.us> (4035e100)

        * Fix classic pgp decrypt_part() hard redraw on error.
        
        Ensure the hard redraw is set even if the decryption fails.  The agent
        prompt still may have appeared.
        
        Since we don't need to set environment variables afterwards, directly
        check the OPTUSEGPGAGENT option for the post-check.

M	pgp.c

2021-07-09 11:49:26 +0200  Alexander Sulfrian  <asulfrian@zedat.fu-berlin.de> (94f5f35a)

        * listmenu: Fix parsing of list headers for mbox
        
        The parsing of the headers needs to skip the "From " lines at the start
        of the messages in mbox format. This now uses the same logic like
        mutt_read_rfc822_header in parse.c.

M	listmenu.c

2021-06-19 14:08:59 -0700  Kevin McCarthy  <kevin@8t8.us> (f5ccd687)

        * Fix menu.c sigwinch handling order.
        
        This fixes problems with a sigwinch that occurs during an external
        process, such as during a query menu lookup, or after exiting the
        background-edit landing page.  Without this change, the user would see
        a misdrawn screen and would need to press a key first.
        
        Change it so that the SigWinch flag is handled before reading input,
        so that the page is automatically redrawn.  This matches the behavior
        in the index, pager, and background-edit process list menu.

M	menu.c

2021-06-13 14:16:06 -0700  Kevin McCarthy  <kevin@8t8.us> (e1dfc2c4)

        * Fix getkeybyaddr() debug output.
        
        Add a NONULL wrapper and a newline at the end.

M	crypt-gpgme.c
M	pgpkey.c

2021-06-12 12:38:19 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net> (9629d5d6)

        * Update Catalan translation.

M	po/ca.po

2021-06-12 10:48:43 -0700  Kevin McCarthy  <kevin@8t8.us> (4b100969)

        * automatic post-release commit for mutt-2.1.0

M	ChangeLog
M	VERSION
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

2021-06-12 10:40:18 -0700  Kevin McCarthy  <kevin@8t8.us> (bfccf9c6)

        * Update UPDATING file for 2.1.0 release.

M	UPDATING

2021-06-07 10:15:24 -0700  Vsevolod Volkov  <vvv@mutt.org.ua> (0b2be236)

        * Updated Russian translation.

M	po/ru.po

2021-06-07 10:14:14 -0700  Vsevolod Volkov  <vvv@mutt.org.ua> (6b458ebd)

        * Updated Ukrainian translation.

M	po/uk.po

2021-06-05 13:49:57 -0700  Kevin McCarthy  <kevin@8t8.us> (e8792708)

        * Minor UPDATING file fixes.

M	UPDATING

2021-06-05 13:48:05 -0700  Kevin McCarthy  <kevin@8t8.us> (bab86bf4)

        * Mention <browse-mailboxes> in the new-mail documentation.
        
        Add to the sentence mentioning '-y'.

M	doc/manual.xml.head

2021-06-03 10:40:22 +0200  Grzegorz Szymaszek  <gszymaszek@short.pl> (6a7f32a6)

        * Update the Polish translation for Mutt 2.1

M	po/pl.po

2021-05-31 16:55:39 +0200  Petr Písař  <petr.pisar@atlas.cz> (732efe2e)

        * Update Czech translatation for mutt-2.1.0

M	po/cs.po

2021-05-30 10:20:50 -0700  Helge Kreutzmann  <debian@helgefjell.de> (f0a64564)

        * Update de.po.

M	po/de.po

2021-05-29 12:39:25 -0700  Helge Kreutzmann  <debian@helgefjell.de> (b37d5aa1)

        * Update de.po.

M	po/de.po

2021-05-29 12:38:04 -0700  Kevin McCarthy  <kevin@8t8.us> (c728976c)

        * Revert "Update de.po."
        
        This reverts commit e450615f5b0a77539916d9e8542c9a64bca73c09.
        
        Author was not properly attributed.  Will reapply with author set.

M	po/de.po

2021-05-29 12:14:30 -0700  Kevin McCarthy  <kevin@8t8.us> (e450615f)

        * Update de.po.

M	po/de.po

2021-05-28 21:21:32 +0200  Flammie Pirinen  <flammie@iki.fi> (3d24855d)

        * Update Finnish translation

M	po/fi.po

2021-05-28 20:48:58 +0200  Eike Rathke  <erack@erack.de> (36fb911f)

        * Do not set From reverse name on postponed or to be resend messages
        
        Messages to be resend or resumed from postponed already had
        reverse names and alternates evaluated the first time they entered
        the compose menu and send-hook were already executed then. The
        user may also had edited the From to any other content before
        postponing or sending the message. Upon resuming, do not overwrite
        with a reverse_name lookup and do not remove the real name if
        reverse_realname=no is set.
        
        This restores the old behaviour and fixes the regression
        introduced with
        
            commit 961cf4bed679d9495cc3682d18496a53061d4581
            CommitDate: Mon Feb 1 14:00:56 2021 -0800
        
                Apply $reverse_name when tag-reply/forwarding too.

M	send.c

2021-05-28 20:29:03 +0300  Emir Sarı  <bitigchi@me.com> (ddd292b8)

        * Update Turkish translations

M	po/tr.po

2021-05-28 14:23:37 +0200  Greg Kroah-Hartman  <greg@kroah.com> (88845a41)

        * fix gcc-11 build warnings for H_TO_INTL()
        
        The macro H_TO_INTL() in mutt_idna.c, causes a lot of build warnings
        about the indentation of the if () line to try to warn the developer
        that it looks like this might be a bug:
        
        mutt_idna.c: In function ‘mutt_env_to_intl’:
        mutt_idna.c:327:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
          327 |     if (tag) *tag = #a; e = 1; err = NULL;              \
              |     ^~
        mutt_idna.c:333:3: note: in expansion of macro ‘H_TO_INTL’
          333 |   H_TO_INTL(return_path);
              |   ^~~~~~~~~
        mutt_idna.c:327:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
          327 |     if (tag) *tag = #a; e = 1; err = NULL;              \
              |                         ^
        mutt_idna.c:333:3: note: in expansion of macro ‘H_TO_INTL’
          333 |   H_TO_INTL(return_path);
              |   ^~~~~~~~~
        
        This goes on for many lines.
        
        Fix this up by properly indenting the lines so that gcc "knows" we mean
        well here.

M	mutt_idna.c

2021-05-28 14:38:41 +0300  Maxim Tarasov  <mu@magi.net.ru> (76276257)

        * Trim the ToC for the option list in the manual
        
        Currently, every variable is shown in the table of contents of the
        reference manual. Variable list is over 400 items long. This makes the
        ToC difficult to work with.
        
        Removing is done by adding an overwriting template for the parent of
        variables section (that is sect1 tag with id="variables"). In the
        DocBook source matching template calls another template named subtoc
        with two parameters: context (self element) and nodes (child
        sections). Normally a list of descendant nodes is passed here, but we
        don't want that and instead call subtoc with no parameters.
        
        This approach results in semantically correct code being generated in
        all modes.
        
        Note, that the ID (variables) will have to be kept in sync with XML
        generating code, but that is already hardcoded elsewhere.

M	doc/TODO
M	doc/mutt.xsl

2021-05-26 15:41:40 -0700  Kevin McCarthy  <kevin@8t8.us> (f60882fc)

        * Add debug statements around $hostname setting.
        
        This will make slowdowns due to DNS issues more obvious.

M	init.c

2021-05-26 15:30:20 -0700  Kevin McCarthy  <kevin@8t8.us> (30aea067)

        * Add draft 2.1.0 notes to UPDATING file.

M	UPDATING

2021-05-23 11:20:54 -0700  Kevin McCarthy  <kevin@8t8.us> (ff7c68cc)

        * Merge branch 'stable'

2021-05-23 11:19:02 -0700  Kevin McCarthy  <kevin@8t8.us> (9f40cc39)

        * Update irc channel to libera.chat.

M	doc/manual.xml.head

2021-05-14 18:55:00 -0600  Gregory Anders  <greg@gpanders.com> (4c786d87)

        * Add local_date_header option
        
        Add an option to convert the date used in the Date header into the local
        (sender's) timezone. This is the current behavior and the option
        defaults to true. Unsetting this option causes the date in the Date
        header to be formatted using the GMT timezone.
        
        This option is useful for privacy-sensitive users who may not wish to
        divulge their sending timezone.

M	init.h
M	mutt.h
M	sendlib.c

2021-05-04 11:03:32 -0700  Kevin McCarthy  <kevin@8t8.us> (791fc1c6)

        * Merge branch 'stable'

2021-05-04 10:55:15 -0700  Kevin McCarthy  <kevin@8t8.us> (481f3800)

        * automatic post-release commit for mutt-2.0.7

M	ChangeLog
M	VERSION

2021-05-04 10:38:24 -0700  Kevin McCarthy  <kevin@8t8.us> (bd29a9a0)

        * Merge branch 'stable'

2021-04-28 12:57:53 -0700  Kevin McCarthy  <kevin@8t8.us> (b24a1a25)

        * Add comments to the 2231 decode blocks.

M	rfc2231.c

2021-04-30 18:55:37 -0700  Kevin McCarthy  <kevin@8t8.us> (a10d0bb5)

        * Add sanitize call in print mailcap function.
        
        The mutt_rfc1524_expand_filename() function calls mutt_adv_mktemp(),
        which also calls the sanitizer.
        
        However, if the recv-mode suggested filename has a slash, it's better
        to sanitize before calling expand_filename() too, to preserve the
        entire filename (albeit with the slashes sanitized out).
        
        For example (ignoring name templates) if the file were called
        "either/or.pdf", pre-sanitizing would generate "either_or.pdf", while
        not doing so would generate "or.pdf".

M	attach.c

2021-04-27 13:37:21 -0700  Kevin McCarthy  <kevin@8t8.us> (98f0ca6b)

        * Add allow_8bit flag to sanitize_filename functions.
        
        This will allow "view" mailcap invocations and autoview invocations to
        display something reasonable for international file names.  Also add
        the flag to mutt_adv_mktemp(), which the mailcap viewer calls.
        
        Convert the 'slash parameter' to an ALLOW_SLASH flag.  This makes the
        flags consistent (both "allow" something not permitted by default),
        and invocations more readable.

M	attach.c
M	handler.c
M	lib.c
M	lib.h
M	muttlib.c
M	pop.c
M	protos.h
M	rfc1524.c

2021-04-29 12:54:41 -0700  Kevin McCarthy  <kevin@8t8.us> (fdee288a)

        * Modify makedoc.pl to read sort maps for the default value.
        
        Use the map tables to print out a correct default value for sort
        types.
        
        Remove the unneeded SORT_ALPHA type, for $sort_browser documentation,
        since we can do the lookup now.

M	doc/makedoc.pl
M	init.h
M	sort.h

2021-04-28 13:28:14 -0700  Kevin McCarthy  <kevin@8t8.us> (23b77a20)

        * Arrange sort maps by value instead of name.
        
        The value-to-name mapping uses the first match.  Grouping by value
        makes it more obvious when there are duplicates and which one will be
        printed out, e.g. when querying the value of a variable.

M	init.h

2021-04-28 13:21:17 -0700  Kevin McCarthy  <kevin@8t8.us> (bee3474f)

        * Move sort maps before vars in init.h.
        
        This is so makedoc.pl can read in the maps and use them to properly
        print out default values for the sort options.

M	init.h

2021-04-28 11:16:50 -0700  Kevin McCarthy  <kevin@8t8.us> (acb2bdd4)

        * Merge branch 'stable'

2021-04-25 15:01:07 -0700  Kevin McCarthy  <kevin@8t8.us> (515a315c)

        * Mention ~B in $thorough_search documentation.
        
        It affects ~b, ~B, and ~h.

M	init.h

2021-04-25 10:47:32 -0700  Kevin McCarthy  <kevin@8t8.us> (b2125bcd)

        * Keep file browser '..' entries at the top.
        
        This makes it easier to navigate up a directory when the file browser
        is sorted by a value other than "alpha".

M	browser.c

2021-04-24 15:10:22 -0700  Kevin McCarthy  <kevin@8t8.us> (2333015f)

        * Change browser sort "unsorted" to preserve the original order.
        
        Record entry numbers as they are added to the list, so re-sorting by
        "unsorted" can return to the original order.
        
        This is most useful for the mailboxes case, where "unsorted" should
        mean the order listed in the muttrc.

M	browser.c
M	browser.h
M	imap/browse.c

2021-04-24 14:56:39 -0700  Kevin McCarthy  <kevin@8t8.us> (f8984468)

        * Fix imap_add_folder() reallocation check.
        
        entrymax contains the number of slots allocated.  entrylen contains
        the current number of slots used.
        
        Note: there isn't a memory access bug here - it was merely
        reallocating too early.

M	imap/browse.c

2021-04-24 14:41:20 -0700  Kevin McCarthy  <kevin@8t8.us> (a877a29e)

        * Add $sort_browser_mailboxes configuration variable.
        
        This allows to control file browser sorting and mailbox browser
        sorting separately.

M	browser.c
M	browser.h
M	init.h
M	sort.h

2021-04-24 15:23:49 -0700  Kevin McCarthy  <kevin@8t8.us> (8b7dd25b)

        * Merge branch 'stable'

2021-04-23 18:35:30 -0700  Kevin McCarthy  <kevin@8t8.us> (30e657d3)

        * Improve sidebar drawing in small windows.
        
        Ensure the index window is given at least one column during reflow,
        truncating the sidebar width as necessary.
        
        Change the sidebar to use MuttSidebarWindow->cols instead of directly
        referencing SidebarWidth.

M	curs_lib.c
M	sidebar.c

2021-04-22 15:42:14 -0700  Kevin McCarthy  <kevin@8t8.us> (fe866a19)

        * Disable markers when wrap is at column 1.
        
        This can occur when the user resizes the window to a single column, or
        if they 'set wrap=1'.
        
        In that case, Mutt was outputting the '+' and setting the initial
        output to the second column.  However, if there is only one column,
        nothing would then be printed.  When trying to search or jump to end,
        Mutt would enter an infinite loop because no forward progress would be
        made in the file with each line.
        
        Disable the markers if there is only a single column, so at least one
        character of the message will get printed on each line.

M	pager.c

2021-04-19 18:53:30 -0700  Kevin McCarthy  <kevin@8t8.us> (8162c129)

        * Improve body_pattern and quoting when skipping down.
        
        The previous commit added the MUTT_TYPES flag to the search operation.
        However, adding the flag caused body_pattern and classify_quote
        matching to occur, as part of searching.
        
        Separate those two to only be done when MUTT_SHOWCOLOR is passed.  Keep
        the classify_quote() call in resolve_types(), since otherwise during a
        normal display we would end up matching the regexps twice.
        
        Add a flag so the computation only occurs once, instead of each time
        the line is shown.
        
        For continuation lines, we need to scan from the start of line.
        Otherwise body_patterns and proper quote level coloring won't appear
        if we jump down to the middle of a continuation line.
        
        As part of this commit, I noticed is_cont_hdr was not reset when
        handling a REDRAW_FLOW.  I believe this also fixes the old trac ticket
        issue 3744.

M	pager.c

2021-04-19 14:49:52 -0700  Kevin McCarthy  <kevin@8t8.us> (7bce3182)

        * Add MUTT_TYPES flag for pager search operation.
        
        This allows the display_line() search scanner to also determine the
        type of each line.  Without that, searching down would not be able to
        properly highlight header lines or quote lines.

M	pager.c

2021-04-19 14:48:01 -0700  Kevin McCarthy  <kevin@8t8.us> (f8e405b3)

        * Revert "Add type resolution when searching in the pager."
        
        This reverts commit aa308b67a983918eb59f1d7b5af543817c2cfd04.
        
        This may be what I want to push to master eventually, but this commit
        was accidental.  I need to test it more on a branch and add a better
        commit message before commiting to master.

M	pager.c

2021-04-19 14:45:01 -0700  Kevin McCarthy  <kevin@8t8.us> (aa308b67)

        * Add type resolution when searching in the pager.

M	pager.c

2021-04-19 14:20:47 -0700  Kevin McCarthy  <kevin@8t8.us> (4b6cd846)

        * Add a note about crypto operations being available interactively.
        
        They aren't available in batch mode.  This was mentioned in the "batch
        compose flow" section, but should be mentioned a bit more prominently
        in the manual.

M	doc/manual.xml.head

2021-04-18 14:54:02 -0700  Kevin McCarthy  <kevin@8t8.us> (10c66a53)

        * Mention 8-bit ansi color support in manual.

M	doc/manual.xml.head

2021-04-17 09:34:16 -0700  Kevin McCarthy  <kevin@8t8.us> (36a704cf)

        * Add cc, in-reply-to, and references to default mailto_allow list.
        
        Thanks to Gregory Anders for the ticket and suggested patch, which
        this commit is based upon.

M	doc/manual.xml.head
M	init.c

2021-04-13 18:02:31 -0700  Kevin McCarthy  <kevin@8t8.us> (0684a051)

        * Add a check to make sure pair doesn't overflow.
        
        It's not clear if COLOR_PAIRS can be larger than SHRT_MAX + 1, so make
        sure with a check.

M	color.c

2021-04-11 15:56:42 -0700  Kevin McCarthy  <kevin@8t8.us> (2d683201)

        * Fix ansi colors to use default bg/fg when not set.
        
        Note the ColorList stores COLOR_DEFAULT (-2) not -1, so we need to
        translate those values in mutt_alloc_ansi_color().  If the curses
        backend doesn't support default colors, we abort and just return color
        pair 0.

M	color.c
M	pager.c

2021-04-11 14:19:33 -0700  Kevin McCarthy  <kevin@8t8.us> (c20a5169)

        * Use bkgrndset() as ATTRSET() backend if available.
        
        This function allows more usable color pairs, because it passes the
        pair parameter separately.  The COLOR_PAIR() macro only returns 8-bits
        for a pair, limiting the total pairs used to 256 despite many systems
        having much larger COLOR_PAIRS values.
        
        In order to do this, separate out the pair and attrs values, instead
        of combining attr + COLOR_PAIR(pair) into a single value and storing
        that inside Mutt.  For the older calls, bkgdset() and attrset(), we
        call COLOR_PAIR() at the last minute.
        
        Add COLOR_ATTR to header cache sum calculation, since it is used in
        the HEADER now.

M	Makefile.am
M	color.c
A	color.h
M	commands.c
M	configure.ac
M	curs_main.c
M	hcache.c
M	hcachever.pl
M	menu.c
M	mutt.h
M	mutt_curses.h
M	mutt_menu.h
M	pager.c
M	protos.h
M	score.c
M	sidebar.c
M	thread.c

2021-04-10 11:33:58 +0200  Vincent Lefevre  <vincent@vinc17.net> (869c6cc4)

        * Updated French translation.

M	po/fr.po

2021-04-09 17:51:12 -0700  Kevin McCarthy  <kevin@8t8.us> (6a2e3dea)

        * Clarify -H usage in batch mode is not a "pass through" option.
        
        Mutt runs the file through mutt_prepare_template() in both cases,
        which will decrypt, remove signatures, strip multipart/alternatives.
