summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-01-03wip: add reverse parse, tied to $mbox_lax_parse.kevin/415-mbox-parsingKevin McCarthy
2023-01-03wip: enforce parsable from line after content-length delimited.Kevin McCarthy
2023-01-02wip: enforce newline separators between messages.Kevin McCarthy
2022-12-20mutt_oauth2: Print access token request messageCline, Wade
There are cases when using the 'authcode' grant where the authorization request will succeed but the access token request will fail (for example: if the user's web browser and terminal use different proxy settings). The current implementation of the script does not inform the user that the authorization token is being exchanged for an access code, with the result that it can appear that a request has both succeeded (according to the browser) and failed (according to the terminal output) simultaneously. Add a message to inform the user that a second request is being made so there is less potential for confusion.
2022-12-12Move MuttLisp boolean config note.Kevin McCarthy
I think it probably makes more sense to be inside the (if) function documentation than (equal).
2022-12-12Fix counters for external maildir 'T' flag changes.Kevin McCarthy
The maildir_check_mailbox() code was not updating the context deleted and trashed counts in those cases. This could lead to messages marked as deleted, but no action being taken on a mailbox sync/close. wip: fix ctx counts for maildir 'T' flags updates.
2022-12-07Remove reference to $mark_old inside $mail_check_recent.Kevin McCarthy
There doesn't appear to be any relationship between $mark_old and "new mail" status any more. Commit c26c2531 (from 2002) is the most recent commit that talked about reducing the meaning of $mark_old, and may have been the commit to make that separation.
2022-12-07Add doc note to MuttLisp about boolean config vars.Kevin McCarthy
They evaluate to "yes" and "no", and so need an explicit comparison to those values when using the equal function.
2022-11-21Reset header color after mutt_set_flag().Kevin McCarthy
I partially changed this to lazily update after a thread update in commit c9fa0414, but unfortunately didn't investigate the reason for the color update while setting a flag. Since it was that way, I assumed it was for a purpose. However, it turns out there is no need to actively set the header color in that function. Many places in Mutt already simply reset the color values to 0 to invalidate and cause a recheck later. Setting the color there so can even be detrimental, if the user has slow 'color index' lines. For example doing a <tag-pattern>~A will cause the color to be computed for the *entire* mailbox. Now, the user ought to not have a slow color index line, but if they do, this causes unnecessary pain. Note that the header->color doesn't have an actual "unset" value, which could also help performance. Maybe in the future in master branch.
2022-11-15Filter U+200C in pager.Kevin McCarthy
"U+200C ZERO WIDTH NON-JOINER" is generating '?' on some systems.
2022-11-12automatic post-release commit for mutt-2.2.9mutt-2-2-9-relKevin McCarthy
2022-11-12Update UPDATING file for 2.2.9.Kevin McCarthy
2022-11-12Document the <1234> key syntax for bind.Kevin McCarthy
This is useful for octal values of greater (or less) than three digits.
2022-11-07Fix non-printable keyname printing to use <octal> syntax.Kevin McCarthy
The IsPrint() was grabbing values outside the range of a char. Instead, restrict the range and fall back to the <octal> syntax, which the muttrc actually accepts.
2022-11-07Move AM_PATH_GPG_ERROR before AM_PATH_GPGME.Kevin McCarthy
The former sets $GPGRT_CONFIG which the latter needs to find and use gpgrt-config instead of gpgme-config.
2022-11-07Update gpgme autoconf files to the latest versions.Kevin McCarthy
GPGME is transitioning away from gpgme-config, to gpgrt-config, and the new autoconf files are required to make the transition. Thanks to Vincent Lefèvre for reporting the problem and helping test the required fixes.
2022-11-06Adjust manual concerning IMAP Fcc in batch mode.Kevin McCarthy
Remove the sentence saying it isn't supported from the Batch Composition Flow section of the manual.
2022-11-05automatic post-release commit for mutt-2.2.8mutt-2-2-8-relKevin McCarthy
2022-11-05Update UPDATING file for 2.2.8 release.Kevin McCarthy
2022-11-04Add explicit void to 0-parameter function definitions.Kevin McCarthy
These are the errors output with: -Werror=implicit-int -Werror=implicit-function-declaration -Werror=int-conversion -Werror=strict-prototypes -Werror=old-style-definition
2022-11-03Clarify $uncollapse_new documentation.Kevin McCarthy
Indicate more clearly it is talking about "delivered" messages that arrive in a thread, not about the unread-status of those messages.
2022-11-03Add a check for key->uids in create_recipient_set.Kevin McCarthy
For gpgme < 1.11.0, it used this function to create the encryption key list. The '!' was interpreted differently back then, and it apparently didn't check if the returned key had any uids before referencing it. Add a check to prevent a segv as in the public key block fix.
2022-11-01Fix public key block listing for old versions of gpgme.Kevin McCarthy
Commit 382355a5 accidentally removed the data import for legacy mode, which would cause it to produce empty output.
2022-11-01Fix gpgme crash when listing keys in a public key block.Kevin McCarthy
The gpgme code handling classic application/pgp assumed each key would have a uid. Change it to check for a missing uid list. Also change it to list every uid (instead of only the first), and to put each one on a "uid" line in the output. The output is only for display, so the format change won't affect other parts of the code. Thanks to Mikko Lehto for the high quality bug report, detailing the exact place of the crash with a reproducing example and a workaround patch.
2022-10-13Allow Fcc'ing to IMAP in batch mode.Kevin McCarthy
There are some prompts that can cause it to abruptly fail, but it turns out SMTP has some of those too. For now, abort if $confirmcreate is set. Certificate prompts were fixed in commit c46db2be for 2.2.7.
2022-10-13Add fcc error handling in batch mode.Kevin McCarthy
If $fcc_before_send is set, then abort with an error message. If it's not set (the default), then continue on, as the message is already sent.
2022-10-09Fix scrolling when handling SIGWINCH in the index.Kevin McCarthy
The index had some (very very old) code which reset the scroll top during SIGWINCH handling. This caused a recomputation of the top, which caused the index to jumble around randomly during resizing. The last few commits added SigWinch flag setting whenever mutt_endwin() was called, which meant this jumbling would occur much more often. (For example when piping a message.) After looking more closely, this top reset seems to be unnecessary. A full redraw needs to properly handle the case where "current" is outside the visible range, because a resize could occur in a called menu. Additionally, the menu.c code does just fine without this, and is used for all the other standard menus in Mutt. Thanks to Vincent Lefèvre for helping test the SigWinch changes, and reporting this regression.
2022-10-08Explicitly mention --with-sqlite3 in the INSTALL file.Kevin McCarthy
2022-10-08Set the curses resize policy to use tioctl()Kevin McCarthy
mutt_resize_screen() calls mutt_reflow_windows(), which records window sizes in those data structures. After a endwin(), curses will also check the terminal size, but it if uses a different policy than Mutt, the screen will be drawn incorrectly. I looked into adding a config option to change this, but ran into a chicken-egg problem. initscr() must be called before the config is processed, to allow for color setting. However, use_env() must be called before initscr(). So for now, just set to policy to ignore the env vars, except as a fallback.
2022-10-08Remove unneeded calls in mutt_edit_file().Kevin McCarthy
The mutt_resize_screen() is no longer needed now that mutt_endwin() sets SigWinch. The keypad() and clearok() calls are generally only needed if a program takes over the screen unexpectedly (without Mutt having run endwin()).
2022-10-08Change a few cases of endwin() to call mutt_endwin().Kevin McCarthy
The remaining cases in the Mutt code are special cases, but these two should be fixed. This ensures SigWinch is set.
2022-10-08Add SigWinch = 1 to mutt_endwin().Kevin McCarthy
Since mutt_reflow_window() needs to be called on a resize, and it's possible for programs to block SIGWINCH being sent to Mutt, this is a fail-safe to ensure it's run. The previous commit moved SigWinch handling before refresh() in the menus, which should prevent double-refresh issues.
2022-10-08Move SigWinch handling before refresh in menus.Kevin McCarthy
This will prevent an unneeded double-refresh after an endwin() when we set SigWinch in the next commit. In the pager, change RETWINCH handling to account for a sigwinch while in the handler. Previously a redraw would occur and use/free the Resize data, but since the SigWinch check now occurs before the redraw, keep existing data.
2022-08-30Ensure pop_data is freed for mailbox and fetch-mail usage.Kevin McCarthy
<fetch-mail> was only free'ing the container and not the auth_list or timestamp used in authentication. Mailbox usage was never free'ing the pop_data object. Create a pop_free_pop_data() helper and use that in <fetch-mail> usage where the pop_data was being free'd before. Since the pop code always allocates and assigns a new pop_data object after each mutt_conn_find(), add a call to pop_close_mailbox() too. Just to make sure, reset connection->data before free'ing the pop_data in each case.
2022-08-25Add error handling for cert prompts in batch mode.Kevin McCarthy
It looks like there are no batch mode checks before trying to throw up a curses menu for certificate prompts. This currently affects SMTP, and I guess either hasn't been an issue or people just learned to work around it. Mutt has no great way to deal with this, so at least for now display an error and abort verification gracefully as opposed to whatever was happening before (which could not have been pretty). Alas, this breaks my rule of adding translation strings in stable, but I couldn't find another appropriate string.
2022-08-22Updated Catalan translation.Ivan Vilata i Balaguer
2022-08-07automatic post-release commit for mutt-2.2.7mutt-2-2-7-relKevin McCarthy
2022-08-07Update UPDATING file for 2.2.7 release.Kevin McCarthy
2022-08-05Fix mutt_read_rfc822_line() to use is_email_wsp().Kevin McCarthy
ISSPACE() uses isspace() which is locale-dependent. On some platforms, unexpected 8-bit chars, such as 0xa0 or 0x85 return true. When using $edit_headers, this can result in Subject: lines being truncated if a multi-byte character ending in one of these values is at the end of a line. There are probably other bugs that could be triggered by this, such as in IMAP parsing. However, I need more time to investigate before making large-scale changes that could introduce new bugs.
2022-08-04Drop X509 *cert from sslsockdata, unused.Matthias Andree
Signed-off-by: Matthias Andree <matthias.andree@gmx.de> (cherry picked from commit 0d03501ac9ddd1a4a62a7274651d64da0c4c3865)
2022-07-29Change mutt_display_message() $pager to use %s if present.Kevin McCarthy
Other places in the code all use mutt_do_pager(), which uses mutt_expand_file_fmt(). The use of %s was not documented (and likely not used since it's broken when displaying messages), so add documentation to the $pager option.
2022-07-29Overide SSL_CTX min/max protocol versions.Kevin McCarthy
Newer versions of OpenSSL disable old (insecure) protocols by default. Reset the allowed versions, so that Mutt's configuration variables enabling old protocols actually work if needed. Thanks to Matthias Andree for the patch, which this commit is based upon.
2022-07-28Tighten $query_command parsing to allow empty name field.Kevin McCarthy
The documentation writes the output should be "each line containing a tab separated address then name then some other optional information". The wiki page at <https://gitlab.com/muttmua/mutt/-/wikis/MuttGuide/Aliases> also implies a single tab between each field. Since the function used strtok, consecutive tab delimeters were treated as a single delimiter. This caused a missing name field to use the comment field as the name. Change the function to use strchr instead. This is not without risk, as the functionality is old. Who knows what all programs have been written that might assume initial, or multiple delimiters are acceptable... Thanks to Magnus Groß for reporting the problem along with a patch, which this commit is derived from.
2022-07-28version.sh: fix robustness on git failureMatthias Andree
for instance, with untrusted directory under sudo. Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
2022-07-28de.po: Fix German certificate dialog translation.Matthias Andree
Remove the full-stop to ensure reader will continue reading rather than mistake this as a conclusion. Also, from: to: here translate to von: bis: (not an: which would be spatial not temporal). Finally, fix a mistranslation where SHA256 was translated as SHA1 Reviewed by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
2022-07-06Comment out undesirable default settings in smime.rc.Kevin McCarthy
Some distributions, such as Debian, use the contrib/smime.rc as a default system configuration file (under /etc/Muttrc.d). However settings such as $smime_is_default and $crypt_autosign should not be enabled by default for everyone. Debian previously maintained a patch against the file, commenting out those settings, but the patch somehow got dropped and is causing confusion for Debian users. Since the settings aren't necessarily desirable for anyone who wants to use S/MIME, comment them out in the contrib file.
2022-06-11Decrypt S/MIME when mime-forwarding with $forward_decrypt set.Kevin McCarthy
The code was performing a decode for S/MIME, but this had the effect of running attachments through the autoview routines. Change so it only performs a decrypt. This is also how copying is handled in set_copy_flags(), so I believe the decode was just a mistake.
2022-06-05automatic post-release commit for mutt-2.2.6mutt-2-2-6-relKevin McCarthy
2022-06-05Update UPDATING file for 2.2.6 release.Kevin McCarthy
2022-05-27Fix $pgp_sort_keys sorting.Kevin McCarthy
Both gpgme and pgpkey used nonsensical comparison return values, for example: "return r > 0". Adjust numeric comparisons to use mutt_numeric_cmp() and have the comparator return the result of the actual comparison. Adjust the "trust" sorting of gpgme to be the same as classic-pgp: putting restrictions at the bottom, but reverse sorting validity, length and timestamp values so they come first in the list.