2022-02-19 10:42:53 -0800  Kevin McCarthy  <kevin@8t8.us> (58b6b76a)

        * Update UPDATING file for 2.2.1 release.

M	UPDATING

2022-02-17 14:38:04 -0800  Kevin McCarthy  <kevin@8t8.us> (30d18234)

        * Make sure username is included in header and body cache paths.
        
        Commit 960afab4 changed URL generation to preserve the data originally
        in the mailbox URL, to fix some internal comparison problems.
        
        Unfortunately, it also affected header and body cache generation.
        Since those could easily be shared across multi-muttrc situations,
        it's important the username be part of the pathname.
        
        Thanks to exg on the #mutt IRC channel for reporting the regression!

M	account.c
M	account.h
M	bcache.c
M	imap/command.c
M	imap/imap.c
M	imap/util.c
M	mutt_socket.c
M	pop.c

2022-02-15 00:15:28 +0300  Emir SARI  <emir_sari@icloud.com> (6457ac67)

        * Fix ambiguity in translation

M	po/tr.po

2022-02-12 10:57:33 -0800  Kevin McCarthy  <kevin@8t8.us> (7160e05a)

        * automatic post-release commit for mutt-2.2.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

2022-02-12 10:49:21 -0800  Kevin McCarthy  <kevin@8t8.us> (a5175478)

        * Set release date for 2.2.0 in UPDATING file.

M	UPDATING

2022-02-11 13:37:27 +0100  Grzegorz Szymaszek  <gszymaszek@short.pl> (cc7578a1)

        * Update the Polish translation for Mutt 2.2.0

M	po/pl.po

2022-02-09 22:58:23 +0300  Emir SARI  <emir_sari@icloud.com> (1c47970f)

        * Improve Turkish translations

M	po/tr.po

2022-02-06 14:53:01 -0800  Kevin McCarthy  <kevin@8t8.us> (70958893)

        * Fix mutt_paddstr() to properly filter unprintable chars.
        
        The original version of this function had no "replacement character"
        functionality, so it simply directly called addnstr() to display the
        characters if everything was okay.
        
        Commit a080fd35 added replacement logic, similar to
        mutt_format_string(), but forgot to change addnstr to use the
        replacement character.
        
        This means garbage characters could goof up the mutt display, for
        things such as the subject in the compose menu.
        
        We could add calls to wcrtomb() like in mutt_format_string(), but
        mutt_addwch() already does this, and properly calls wcrtomb() a second
        time to add a shift sequence if needed.

M	curs_lib.c

2022-02-05 14:01:39 -0800  Kevin McCarthy  <kevin@8t8.us> (fe3dd705)

        * Change mailto_allow to be exact match only.
        
        The code was previously reusing mutt_matches_ignore(), but that allows
        prefixes.  For mailto accepted headers we should be more picky.

M	url.c

2022-02-05 13:54:19 -0800  Kevin McCarthy  <kevin@8t8.us> (5c3c6e52)

        * Filter headers passed via the command line.
        
        The values passed via '-s' and mailto urls were not sufficiently
        sanitized, allowing an embedded newline that could be used to inject a
        header.

M	main.c
M	parse.c
M	protos.h
M	url.c

2022-02-05 09:22:44 -0800  Kevin McCarthy  <kevin@8t8.us> (d3b4ff88)

        * Fix mbox.man asctime(3) reference.
        
        The section number should not be part of the BR text.
        
        Thanks to @hmartink and the manpage-l10n project for the bug report!

M	doc/mbox.man

2022-02-04 18:33:34 -0500  Aaron Schrab  <aaron@schrab.com> (7d2a53ee)

        * Clarify description of $local_date_header
        
        When I reexamined the documentation of the $local_date_header option, I
        wasn't very confident about what it actually does. Much of what I did
        get from it came from a vague recollection of the discussion around when
        it was added, and I referred back to the commit which added this to
        solidify that understanding.
        
        Viewing this as a user (without looking at the internal implementation),
        I don't think the date is being converted, to me that implies that it
        was received from somewhere else in some other format; rather I'd view
        it as being initially generated in the local timezone.
        
        The reference to the "sender's timezone" makes me think that this would
        be operating on dates in messages received from other people; I've
        changed that to "your" to help clarify that it's about messages created
        locally.
        
        Finally, add information about what is done if this option is unset,
        along with some reasoning on why someone might want to unset this.

M	init.h

2022-02-02 12:51:08 -0800  Kevin McCarthy  <kevin@8t8.us> (c2ed716b)

        * Don't queue IMAP close commands.
        
        Commit e7df4d5a changed the close commands to queue up, on the theory
        that it will always be followed by a SELECT or a LOGOUT.
        
        However, performing a <recall-message> while in the inbox will open a
        *new* connection.  mutt_conn_find() prepends the new conection to the
        Connections list.  The next mailbox opened will use that *new*
        connection.
        
        The effect will be the queued CLOSE won't occur before that mailbox is
        opened, and so "\Deleted" messages won't be expunged on the server
        right away.
        
        If the user had $move set and reopened their $spoolfile, they would
        find the read messages marked for delete but not yet expunged from the
        server.

M	imap/imap.c

2022-02-02 06:47:45 -0800  Kevin McCarthy  <kevin@8t8.us> (92686e5d)

        * Update Finnish translation.

M	po/fi.po

2022-01-31 06:31:43 +0100  Flammie Pirinen  <flammie@iki.fi> (b485d04f)

        * update Finnish translations

M	po/fi.po

2022-01-30 10:15:20 -0800  Ivan Vilata i Balaguer  <ivan@selidor.net> (553f016e)

        * Updated Catalan translation.

M	po/ca.po

2022-01-30 09:21:58 -0800  Vsevolod Volkov  <vvv@mutt.org.ua> (c7053420)

        * Updated Russian translation.

M	po/ru.po

2022-01-30 09:19:01 -0800  Vsevolod Volkov  <vvv@mutt.org.ua> (db9ac4ad)

        * Updated Ukrainian translation.

M	po/uk.po

2022-01-29 14:24:52 -0800  Kevin McCarthy  <kevin@8t8.us> (8a6472f0)

        * Fix argc==0 handling.
        
        At least on Debian Linux, after invoking getopt() with argc==0, optind
        seems to remain at the default value of 1.
        
        mutt_dotlock was checking for optind==argc to report a missing
        parameter, and would end up invoking the function with the first
        environment variable instead.
        
        mutt, pgpewrap, and mutt_pgpring were assuming argv[0] was non-null,
        so just add a check and hardcode the value in that case to avoid a
        possible segv.
        
        mutt_pgpring allows no arguments.  Its parameters to
        pgpring_find_candidates() would pass the environment list and a
        negative nhints in that case.  The code seem to handle the case, but
        set optind=argc to be clear about it.

M	dotlock.c
M	main.c
M	pgpewrap.c
M	pgppubring.c

2022-01-29 11:46:56 -0800  Helge Kreutzmann  <debian@helgefjell.de> (46ff6ccb)

        * Update de.po.

M	po/de.po

2022-01-29 09:34:04 -0800  Helge Kreutzmann  <debian@helgefjell.de> (17452c87)

        * Update de.po.

M	po/de.po

2022-01-28 12:38:00 -0800  Emir SARI  <emir_sari@icloud.com> (7ae08fd5)

        * Update Turkish translations.

M	po/tr.po

2022-01-28 20:15:02 +0100  Petr Písař  <petr.pisar@atlas.cz> (df4eb293)

        * Update Czech translation for mutt-2.2.0

M	po/cs.po

2022-01-28 09:34:39 -0800  Kevin McCarthy  <kevin@8t8.us> (0864ef75)

        * Update translation files copyright string.
        
        Thanks to Vincent Lefèvre for reminding me to do this too.

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/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

2022-01-28 15:11:18 +0100  Vincent Lefevre  <vincent@vinc17.net> (7f5ff5f2)

        * Updated French translation.

M	po/fr.po

2022-01-27 15:35:30 -0800  Kevin McCarthy  <kevin@8t8.us> (821803cd)

        * Fix $status_format documentation of $sort_thread_groups expando.

M	init.h

2022-01-27 14:29:35 -0800  Kevin McCarthy  <kevin@8t8.us> (890eb88c)

        * Initial draft of UPDATING file changes for 2.2.0.

M	UPDATING

2022-01-27 13:04:37 -0800  Kevin McCarthy  <kevin@8t8.us> (23ef6eb1)

        * Update source file copyright lines based on commit history.
        
        This is based on the copyright-updater script.  That script only
        updates existing copyright lines in the headers.  Other copyright is
        stored in the commit history.

M	background.c
M	buffer.c
M	buffer.h
M	buffy.c
M	hcachever.pl
M	send.h
M	sidebar.c

2022-01-27 12:18:57 -0800  Kevin McCarthy  <kevin@8t8.us> (ed65fe18)

        * Update manual and program copyright notices.

M	COPYRIGHT
M	doc/manual.xml.head
M	doc/mutt.man
M	main.c

2022-01-27 14:18:06 +0100  Vincent Lefevre  <vincent@vinc17.net> (4f9eac94)

        * Updated French translation.

M	po/fr.po

2021-12-31 18:30:17 -0800  Kevin McCarthy  <kevin@8t8.us> (2e8b6fea)

        * Add very basic cd path completion.
        
        This uses existing code to partially complete, and then launch the
        browser for selection.
        
        Unfortunately, completing a path argument brings up other issues, such
        as quoting, which this currently doesn't handle.  It also might be
        better to rotate through completions rather than launching the file
        brower.
        
        Add a "select directory" mode to the browser, modeled on the IMAP
        "enter vs select a mailbox with children" behavior: using <view-file>
        to select the directory and <select-entry> to enter the directory.

M	browser.c
M	enter.c
M	init.c
M	mutt.h

2021-12-31 15:24:01 -0800  Kevin McCarthy  <kevin@8t8.us> (2362c114)

        * Simplify the mutt_select_file() call for MUTT_CMD completion.
        
        Flags never has both MUTT_CMD and MUTT_MAILBOX, so there is no need
        for the test.

M	enter.c

2021-12-31 15:10:25 -0800  Kevin McCarthy  <kevin@8t8.us> (bc01beeb)

        * Add memcpy on MUTT_CMD completion to invoke the file selector.
        
        It looks like commit 844a133f (21 years ago) accidentally removed the
        memcpy while refactoring, but without it the mutt_select_file() won't
        be called on the second tab keypress.

M	enter.c

2022-01-22 14:10:24 -0800  Kevin McCarthy  <kevin@8t8.us> (05b0dd2c)

        * Enable $rfc2047_parameters by default.
        
        20+ years later, Mutt still gets bug reports about attachment names in
        2047 encoded form.
        
        Although there is a tiny chance an attachment could legimately want to
        be named like that, it's far far more likely the sending MUA has
        incorrectly encoded the value.
        
        When a user has this problem, the "solution" is also difficult to
        find, unless they are initimately familiar with RFC2047 vs 2231.  So I
        think users would benefit much more from this being set by default.

M	init.h

2022-01-17 15:36:55 -0800  Kevin McCarthy  <kevin@8t8.us> (4015c9a0)

        * Set environ for sendmail execvp() call.
        
        The code previously tried to use execvpe(), but that's a glibc
        extension.  However, it's not hard to manually set environ before an
        execvp() call to accomplish the same thing.

M	sendlib.c

2022-01-17 09:54:11 +0100  Vincent Lefevre  <vincent@vinc17.net> (fcd3d956)

        * Updated French translation.

M	po/fr.po

2022-01-14 15:17:38 -0800  Kevin McCarthy  <kevin@8t8.us> (2387728b)

        * Convert SMTP cyrus sasl to use buffers.
        
        Use the smtp_get_auth_response() added for gsasl, to allow
        multi-response lines and arbitrary length server response lines.  The
        rfc notes that SASL lines are not constrained by the SMTP line length
        limits.
        
        Since everything was a bit tangled together before, change the output
        and base64 conversion to use buffers too.

M	smtp.c

2022-01-15 12:31:16 -0800  Robert Bartel  <r.bartel@gmx.net> (44269756)

        * Move hard_redraw() after sendmail invocation.
        
        If a curses gpg pinentry is displayed by the $sendmail program, the
        keypad() needs to called afterwards for it to re-enable function/arrow
        keys.

M	sendlib.c

2022-01-15 11:19:05 -0800  Kevin McCarthy  <kevin@8t8.us> (100d6f3b)

        * Revert "Add $reply_prefix."
        
        This reverts commit 9c1ce59874ce1c8e97d0c5bd71847596dafb1d50.
        
        The change is controversial, and probably ill-advised.  Thanks to
        everyone for the feedback.

M	globals.h
M	init.h
M	send.c

2022-01-13 14:35:20 -0800  Kevin McCarthy  <kevin@8t8.us> (5b8e4605)

        * Add config.h dependency for keymap_defs.h generation.
        
        Ensure the header is regenerated if configure is re-run.  The $(OPS)
        list might change as a result of re-configure, but the timestamps of
        those files won't.  However, config.h will change so we can check that
        as a dependency.

M	Makefile.am

2022-01-10 17:53:09 -0800  Kevin McCarthy  <kevin@8t8.us> (4eff6049)

        * Force resort_init if $reply_regexp changes.
        
        Simply changing real_subj isn't enough to make sure the change is
        reflected in the current index.  There may actually be a more subtle
        way to achieve this, but for now I'll just dump the subj_hash and
        force rethreading.

M	init.c
M	init.h

2022-01-10 14:37:06 -0800  Kevin McCarthy  <kevin@8t8.us> (9c1ce598)

        * Add $reply_prefix.
        
        Allow the user to modify the subject prefix used in a reply.
        Hopefully this would be used sparingly, but nothing prevented a user
        from manually modifying the prefix themselves before.

M	globals.h
M	init.h
M	send.c

2022-01-10 14:00:40 -0800  Kevin McCarthy  <kevin@8t8.us> (466d3b8b)

        * Localize $reply_regexp.
        
        This will allow translators to add additional reply prefixes common to
        their locale.
        
        Add more documentation to the option, to explain the parts of the
        regular expression.  Give an example of adding more prefixes.
        
        Note that the result of this is stored in the header cache.  Probably
        people rarely were affected by this before, but with the new
        localization, people may experiment and need to be aware to turn the
        header cache off while testing.

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

2022-01-09 15:28:23 -0800  Kevin McCarthy  <kevin@8t8.us> (cd3a5c85)

        * Fix $reply_regexp default value.
        
        The default value happened to work, but didn't make logical sense.  It
        was using a bracket expression that *included* a backslash, and
        left-bracket, 0-9, and again a backslash.  The first ']' closed the
        bracket expression, and then '+' matched that 1 or more times,
        followed by ']'.  Fortunately the whole parenthisized expression had a
        '*' so it would repeat matching, but as far as I can tell, it was
        working accidentally.
        
        Because even the fixed version is hard to understand, add some
        explanation of the parts to the documentation.

M	init.h

2022-01-09 14:57:07 -0800  Kevin McCarthy  <kevin@8t8.us> (3ca96fab)

        * Fix manual generation string_unescape() of backslash values.
        
        Since the values are shown as if double-quoted, backslash also needs
        to be properly escaped.

M	doc/makedoc.pl

2021-12-30 12:58:28 -0800  Kevin McCarthy  <kevin@8t8.us> (2926cf8c)

        * Merge branch 'stable'

2021-12-30 12:50:49 -0800  Kevin McCarthy  <kevin@8t8.us> (31b18ae9)

        * automatic post-release commit for mutt-2.1.5

M	ChangeLog
M	VERSION

2021-12-30 11:09:31 +0300  Emir Sarı  <bitigchi@me.com> (da60500d)

        * Improve Turkish translations

M	po/tr.po

2021-12-28 13:42:43 -0800  Kevin McCarthy  <kevin@8t8.us> (7855611a)

        * Add pager REDRAW_FLOW redraw flag when popping a menu.
        
        A setting change or window resize could take place in the called menu,
        which will require reflowing the pager when returning to it.
        
        When converting to the menu stack, I left in manual REDRAW_FULL redraw
        assignments, to be cautious and because it wasn't causing an problems.
        However, with the REDRAW_FLOW added, the pager menu needs to have
        those assignments removed after a menu call.

M	menu.c
M	pager.c

2021-12-28 13:25:54 -0800  Kevin McCarthy  <kevin@8t8.us> (5c7e2bce)

        * Merge branch 'stable'

2021-12-27 12:59:49 -0800  Kevin McCarthy  <kevin@8t8.us> (938f91de)

        * Add config variable mentions to Forwarding and Bouncing Mail.
        
        Mention $forward_attribution_intro, $forward_attribution_trailer, and
        $forward_format.

M	doc/manual.xml.head

2021-12-27 12:25:24 -0800  Kevin McCarthy  <kevin@8t8.us> (752a1b44)

        * Merge branch 'stable'

2021-12-25 14:00:02 -0800  Kevin McCarthy  <kevin@8t8.us> (89681e9e)

        * Merge branch 'stable'

2021-12-23 17:30:27 -0800  Kevin McCarthy  <kevin@8t8.us> (4fd19957)

        * Add new gsasl files to POTFILES.in.

M	po/POTFILES.in

2021-12-15 17:50:00 -0800  Kevin McCarthy  <kevin@8t8.us> (68caf914)

        * Add GNU SASL support for authentication.
        
        It turns out Cyrus SASL's license may not be compatible with GPL
        programs, see Debian Bug 999672.
        
        So, add support for the GNU SASL library, using configure option
        --with-gsasl.
        
        I haven't touched the Cyrus SASL code in Mutt all that much in the
        past, but I've done my best to keep the gsasl code clean and simple.
        There are likely mistakes to be fixed and additions to be made,
        though.
        
        I queried the gsasl mailing list about the need for a socket
        wrapper (as is done for the cyrus code), and it seems this should no
        longer be needed.  As long as GSASL_QOP is left at the
        default (qop-auth), the client should ask for authentication, and not
        negotiate integrity or confidentiality.  (Thanks to Phil Pennock and
        Simon Josefsson for their reponses - although the blame is fully
        on *me* if this turns out to be incorrect).  Therefore there is no
        CONNECTION wrapping in this implementation.
        
        Add multiline response support for SMTP authentication (which is
        probably not actually needed).  Also add arbitrary line length for the
        SASL server responses (the RFCs note that for SASL, the protocol line
        lengths don't apply).

M	Makefile.am
M	ascii.h
M	configure.ac
M	doc/makedoc-defs.h
M	imap/Makefile.am
M	imap/auth.c
M	imap/auth.h
A	imap/auth_sasl_gnu.c
M	main.c
A	mutt_sasl_gnu.c
A	mutt_sasl_gnu.h
M	pop_auth.c
M	smtp.c

2021-12-21 18:29:26 -0800  Kevin McCarthy  <kevin@8t8.us> (e3faeb03)

        * Add mutt_socket_buffer_readln().
        
        This will be useful for SMTP and POP SASL reading, where line of
        arbitrary length are required to be supported.

M	mutt_socket.c
M	mutt_socket.h

2021-12-20 15:37:16 -0800  Kevin McCarthy  <kevin@8t8.us> (22736484)

        * Merge branch 'stable'

2021-12-19 21:45:12 -0500  Mike Frysinger  <vapier@gentoo.org> (a4da1664)

        * simplify envelope subject handling code a little
        
        Avoid excess defines.  Compiled code is the same.

M	init.c

2021-12-14 13:36:15 -0800  Kevin McCarthy  <kevin@8t8.us> (80ba3a49)

        * Merge branch 'stable'

2021-12-13 18:55:14 -0800  Kevin McCarthy  <kevin@8t8.us> (f1cc1309)

        * Merge branch 'stable'

2021-12-11 13:22:40 -0800  Kevin McCarthy  <kevin@8t8.us> (fcecddaa)

        * Merge branch 'stable'

2021-12-07 14:46:12 -0800  Kevin McCarthy  <kevin@8t8.us> (ac348e19)

        * Merge branch 'stable'

2021-12-05 12:02:34 +0000  Torsten Franz  <torsten.franz@ubuntu.com> (9dbde32c)

        * Update de.po

M	po/de.po

2021-12-02 15:44:37 -0800  Kevin McCarthy  <kevin@8t8.us> (32c03d3d)

        * Fix sidebar counters with $maildir_trash.
        
        On close, the sidebar decrements deleted messages, but should not when
        $maildir_trash is set.

M	mx.c

2021-12-02 15:36:59 -0800  Kevin McCarthy  <kevin@8t8.us> (29ed0c2e)

        * Improve the statusbar modified flag for $maildir_trash.
        
        Add a context counter for the trash status flag.  Compare that to the
        number of deleted messages to determine modified state.
        
        Note that "undeleting" a trashed message will set context->changed.
        Without that we couldn't do a simple counter comparison.  But with
        context->changed checked first, we can assume equal trash and deleted
        flags then means there are no "delete" modifications pending.

M	init.h
M	mutt.h
M	mx.c
M	status.c

2021-12-01 18:12:11 -0800  Kevin McCarthy  <kevin@8t8.us> (ede3cf58)

        * Ignore $delete when sync'ing with $maildir_trash set.
        
        When closing a mailbox, the $delete quadoption is not consulted to
        determine whether to write out the T flags.  However, for some reason,
        sync was doing so.
        
        Since we aren't "purging" the messages, the prompt doesn't make sense.
        Make close and sync consistent by skipping the $delete check for sync.

M	init.h
M	mx.c

2021-11-24 13:51:32 -0600  Aaron Poffenberger  <akp@hypernote.com> (e8a01c1a)

        * Fix unused variable warning.

M	mutt_ssl.c

2021-11-20 14:21:29 -0800  Kevin McCarthy  <kevin@8t8.us> (04a7f1d9)

        * Allow an empty To: address prompt.
        
        If the user has $askcc or $askbcc configured, they may want to put
        addresses in those without filling in the To field.
        
        Instead check to make sure at least one of the fields is filled in
        after all the prompt before aborting.

M	send.c

2021-11-11 15:05:33 -0800  Kevin McCarthy  <kevin@8t8.us> (543e1151)

        * Convert COLOR_DEFAULT constant to -1.
        
        Previously, "mono" assigned -1 to fg/bg to indicate "unset" values.
        
        NCurses uses -1 to indicate "default" color (when supported), but
        COLOR_DEFAULT was assigned the value -2 and swapped at the last
        moment.  While it worked, I personally found this confusing.
        
        To make the logic clearer, create a COLOR_UNSET constant with value
        -2, and switch COLOR_DEFAULT to -1.  Then remove the last-minute
        translation when allocating the color.
        
        Change the "not set" initialization and testing to use COLOR_UNSET for
        clarity.
        
        Because map_getvaluebyname() returns -1 for a missing value,
        create a new lookup function that returns the matching mapping_t or
        NULL if not found.

M	color.c
M	init.c
M	mapping.h

2021-11-08 20:45:03 +0100  Charalampos Kardaris  <ckardaris@outlook.com> (f210e9a0)

        * [Fix] poll to use PollFdsCount and no PollFdsLen
        
        PollFdsLen tracks the maximum elements of the pollfd struct before
        needing reallocation, whereas PollFdsCount tracks the number of actual
        elements in it. Polling has to be done only on the actual number of
        elements.

M	monitor.c

2021-10-26 14:42:17 -0700  Kevin McCarthy  <kevin@8t8.us> (623eeb26)

        * Add a few mutt variable configure dependency comments.
        
        Add dependency comments to a few variables where it might not be
        obvious are dependent on the feature being enabled.
        
        While reviewing the dependencies, I noticed a couple #if could be
        indented for more uniformity in the file.

M	init.h

2021-10-22 18:08:48 -0700  Kevin McCarthy  <kevin@8t8.us> (75be20d6)

        * Fix color object case insensitive comparisons.
        
        In most of the color code, mutt_getvaluebyname() is used to compare
        against valid tables, which is (ascii) case insensitive.
        
        However, 'uncolor' and 'color quoted' for some reason used case
        sensitive comparison.
        
        The uncolor code can use object comparison instead, as the matching
        Fields value was just retrieve.  For 'color quoted', switch to using
        ascii_strncasecmp() instead.

M	color.c

2021-10-20 14:30:48 -0700  Kevin McCarthy  <kevin@8t8.us> (9c1c9182)

        * Correct multipart/alternative manual section slightly.
        
        Step three only selects from enriched, plain, and then html; not _any_
        text type.
        
        Step four considers any text type as one that Mutt can handle
        internally.

M	doc/manual.xml.head

2021-10-19 18:48:47 -0700  Kevin McCarthy  <kevin@8t8.us> (60ab5f11)

        * Add internal mutt_ctime() implementation.
        
        ctime() is marked obsolescent in the POSIX guide, so we ought to stop
        using it to ensure future portability.

M	from.c
M	mx.c
M	protos.h

2021-10-12 13:31:13 -0700  Kevin McCarthy  <kevin@8t8.us> (534f3ae0)

        * Improve pattern compiler whitespace skipping.
        
        Commit 564b515c fixed a problem with nested patterns, where trailing
        whitespace could cause a compilation error.  That fix added missing
        SKIPWS() calls in a couple branches.
        
        However, the real problem is that the loop doesn't ensure whitespace
        is skipped *before* checking for *ps.dptr.
        
        Rather than relying on all the case branches (and "eater" functions)
        to skip the whitespace after processing, rearrange the logic so the
        SKIPWS() is after the switch statement.

M	pattern.c

2021-10-09 19:55:00 +0200  Vincent Lefevre  <vincent@vinc17.net> (6270278f)

        * Updated French translation.

M	po/fr.po

2021-10-07 17:40:50 -0700  Kevin McCarthy  <kevin@8t8.us> (986e9e74)

        * Remove trailing slashes when opening maildir/mh mailboxes.
        
        IMAP cleans this up already (and file-based mailboxes don't allow it).
        
        It's easy to have this happen by tab-completing a maildir mailbox at
        the change folder prompt.  Removing the slash makes the display more
        uniform, and prevents some problems such as $trash folder comparison.

M	mh.c

2021-10-07 13:02:29 -0700  Kevin McCarthy  <kevin@8t8.us> (14618717)

        * Note that IMAP mailboxes polling doesn't support flag counts.
        
        The IMAP protocol only supports unread and total counts, but the
        manual had no mention of this.

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

2021-09-28 15:02:34 -0700  Kevin McCarthy  <kevin@8t8.us> (466432b5)

        * Add $attach_save_charset_convert quadoption.
        
        This prompts to allow charset conversion of received text-type
        attachments.
        
        Mutt automatically converts when sending to a value from
        $send_charset.  If an attachment were automatically converted from
        utf-8 to iso-8859-1 on the sending side, then on the receiving
        side (also 99.9% likely to be utf-8 nowadays) it may not be helpful to
        save the the originally utf-8 attachment as iso-8859-1.  This can be
        especially destructive for attached patches or translation updates.
        
        Add the quadoption, defaulting to ask-yes so people know about it.
        With a quadoption, it can be easily completely turned off or made the
        default if the user desires.
        
        Add code to skip the prompt if converting from ascii to extended
        ascii (e.g. utf-8 or iso-8859-*).  There may be others too but this
        should cover almost all cases nowadays.

M	attach.c
M	init.h
M	mutt.h
M	muttlib.c
M	protos.h
M	recvattach.c

2021-09-25 14:28:18 -0700  Kevin McCarthy  <kevin@8t8.us> (769e5086)

        * Remove unneeded type save/restores around mutt_decode_attachment().
        
        The type save/restore seems to have been copied around the other crypt
        code calls to mutt_decode_attachment().  Remove it, because
        mutt_decode_attachment() makes no such changes.
        
        Note run_decode_and_handler() *does* need to save/restore because it
        manually assigns to b->type itself.

M	crypt-gpgme.c
M	pgp.c
M	smime.c

2021-09-24 16:23:35 -0700  Kevin McCarthy  <kevin@8t8.us> (c0536334)

        * Improve smime_verify_one() error handling and general flow.
        
        mutt_decode_attachment() does not change offset, length, or type.  The
        previous commit added a const modifier to its BODY parameter to assert
        that point.
        
        The save/restore appears to be copy/pasted from other code.  The
        length/type are assigned to if the BODY is passed to a helper function
        after the decode, but that's not the case here.  Remove the
        backup/restore code of the sigbdy fields.
        
        The smime_invoke_verify() call uses the signedfile directly, not the
        STATE parameter.  Remove the code to swap s->fpin before calling
        smime_invoke_verify().
        
        Improve the error handling to properly close file handles and unlink
        all temp files.

M	smime.c

2021-09-24 19:12:35 -0700  Kevin McCarthy  <kevin@8t8.us> (2077f72e)

        * Assert mutt_decode_attachment() doesn't modify body fields.
        
        Some old smime (and other parts of the code) have out of date comments
        asserting mutt_decode_attachment() modifies the body length, offset,
        and type fields.
        
        Add a const modifier to the parameter and called functions to assert
        this is not the case.

M	crypt.c
M	handler.c
M	mutt_crypt.h
M	muttlib.c
M	protos.h

2021-09-23 14:58:54 -0700  Kevin McCarthy  <kevin@8t8.us> (d0d40a33)

        * Don't use subtraction for qsort numeric value comparisons.
        
        Subtraction can overflow, resulting in incorrect sorts.  This is
        especially a concern for the date and size sorting, whose fields are
        greater than an 'int' size.
        
        The index values should be okay, but it's better to be consistent and
        avoid any possible issues.
        
        Define a macro, mutt_numeric_cmp(), that uses direct comparison rather
        than subtraction.

M	imap/imap.c
M	lib.h
M	sort.c
M	thread.c

2021-09-23 13:29:25 -0700  Kevin McCarthy  <kevin@8t8.us> (4153ae96)

        * Fix alias menu multi-select documentation.
        
        The manual mistakenly said to use <select-entry>, which is not (and
        never has been) supported by the code.  Change it to <tag-entry>, and
        note that <Space> is bound to <tag-entry> in the alias menu.

M	doc/manual.xml.head

2021-09-23 13:14:46 -0700  Kevin McCarthy  <kevin@8t8.us> (64d09812)

        * Implement <select-entry> as <display-message> in index menu.
        
        The default keybindings of <display-message> overshadow those of
        <select-entry>.  However, for someone who rebinds (globally or just in
        the index menu), it's still possible to invoke <select-entry> inside
        the index.
        
