]> granicus.if.org Git - mutt/log
mutt
6 years agoFix AUXSORT usage in compare_spam.
Kevin McCarthy [Sat, 28 Jul 2018 19:59:35 +0000 (12:59 -0700)]
Fix AUXSORT usage in compare_spam.

AUXSORT already checks if the first parameter is zero.

Additionally, the macro expands into more than one statement, so
putting inside an unbracketed if is misleading and generates a
warning on the latest gcc.

Fortunately, both statements checked if the first parameter was zero,
so no actual bug resulted.

6 years agoFix manual.pdf toc page numbers.
Ken Moffat [Thu, 26 Jul 2018 22:34:50 +0000 (15:34 -0700)]
Fix manual.pdf toc page numbers.

When TeX engines are not run sufficient times there are undefined
references - for manual.tex the page numbers in the Table of
Contents and the List of Tables render as '??'.  In this case:

Then shalt thou count to three, no more, no less.

6 years agoAdd message padding to ctx->vsize computation.
Kevin McCarthy [Thu, 26 Jul 2018 01:16:34 +0000 (18:16 -0700)]
Add message padding to ctx->vsize computation.

Use the mx_msg_padding_size() from the previous commit to be more
precise about the correct vsize.

This avoids strange situations where all the message are displayed in
a limit, but the vsize is not equal to the size.

6 years agoAdd mx_ops.msg_padding_size to return the padding for a mx type.
Kevin McCarthy [Thu, 26 Jul 2018 00:52:40 +0000 (17:52 -0700)]
Add mx_ops.msg_padding_size to return the padding for a mx type.

Mbox pads with a 1 byte, while mmdf pads with 10.  Because compress
depends on the child type, we create a mx_ops, which allows compress.c
to delegate to the child ops.

6 years agoSkip sort in mbox_sync_mailbox() when new/reopen occurs.
Kevin McCarthy [Wed, 25 Jul 2018 01:23:25 +0000 (18:23 -0700)]
Skip sort in mbox_sync_mailbox() when new/reopen occurs.

Callers of mx_sync_mailbox() and mx_close_mailbox() already check for
those cases and call update_index().  So remove the need_sort flag
setting when mbox_check_mailbox() returns new/reopen inside
mbox_sync_mailbox().

6 years agoHandle reopen/new_mail when closing mailbox in <imap-logout-all>.
Kevin McCarthy [Wed, 25 Jul 2018 01:12:20 +0000 (18:12 -0700)]
Handle reopen/new_mail when closing mailbox in <imap-logout-all>.

Other callers, such as OP_QUIT, OP_MAIN_CHANGE_FOLDER, and
OP_MAIN_SYNC_FOLDER handle the case where a sync or close_mailbox
fails due to new mail or a reopen.

OP_MAIN_LOGOUT_ALL appears to have been accidentally missed.  Add a
call to update_index() to properly sort and update vcounts.

6 years agoAdd ctx->vsize = 0 in a couple of places.
Vincent Lefevre [Tue, 24 Jul 2018 01:52:41 +0000 (03:52 +0200)]
Add ctx->vsize = 0 in a couple of places.

It is not clear whether this is needed, but in both cases, the old value
(if not 0) is obsolete. If there is a bug somewhere else about vsize, it
will be easier to notice it.

6 years agoImproved limit-to-all detection by skipping leading spaces of the pattern.
Vincent Lefevre [Sun, 22 Jul 2018 00:57:32 +0000 (02:57 +0200)]
Improved limit-to-all detection by skipping leading spaces of the pattern.

There are many equivalent limit-to-all patterns, but in practice, one
may want to limit to " ~A" in order to prevent the pattern from being
recorded in the history. Thus it is important to detect at least this
pattern and similar ones.

6 years agoBug fix: reset ctx->vsize in update_index_unthreaded on reopened mailbox.
Vincent Lefevre [Sat, 21 Jul 2018 23:46:03 +0000 (01:46 +0200)]
Bug fix: reset ctx->vsize in update_index_unthreaded on reopened mailbox.

This fixes a bug observed when doing the following:
1. Start Mutt on some mailbox.
2. Limit the view.
3. Set sort by date (thus unthreaded).
4. Set $status_format to display the size of the messages shown (%L).
5. Copy a message matching the limit pattern to this mailbox.
6. With another Mutt instance, remove this message from this mailbox.
7. Move the cursor to update the view.
Result: one was getting a value equal to twice the initial size.

6 years agoCleanup: avoid an ugly local preprocessor macro.
Vincent Lefevre [Sat, 21 Jul 2018 23:35:32 +0000 (01:35 +0200)]
Cleanup: avoid an ugly local preprocessor macro.

Note: This macro was also hiding the use of a variable, making the code
difficult to read.

6 years agoDisplay matching new messages in a thread-limited index.
Kevin McCarthy [Fri, 20 Jul 2018 03:28:38 +0000 (20:28 -0700)]
Display matching new messages in a thread-limited index.

Previously, the index performed pattern matching first, and then
resorted new mail.  The problem was that thread-limiting patterns,
e.g. ~(pattern), require threading data to properly match against the
new messages.

We already save new messages for the purposes of uncollapsing threads.
To keep the code cleaner, split off update_index() into
update_index_threaded()/unthreaded().  Then for threaded mode, save
the new messages first.  We can then sort (before pattern matching),
and use the save_new array to pattern match the new messages
afterwards.

The $uncollapse_new loop was unnecessarily performing a n^2 search.
Simplify to just iteratate over the save_new instead.

6 years agoMinor documentation fix.
Kevin McCarthy [Tue, 17 Jul 2018 17:04:24 +0000 (10:04 -0700)]
Minor documentation fix.

6 years agoUpdated French translation.
Vincent Lefevre [Tue, 17 Jul 2018 15:06:45 +0000 (17:06 +0200)]
Updated French translation.

6 years agoImprove OAUTHBEARER support.
Brandon Long [Tue, 26 Jun 2018 22:42:08 +0000 (15:42 -0700)]
Improve OAUTHBEARER support.

Move token refresh commands to their own config variables. Consolidate
code for refreshing tokens and generating the SASL OAUTHBEARER
argument in account.c. Add support for OAUTHBEARER to pop.

Fix pop_auth_oauth() mutt_from_base64() call from 1.10.1 release.

6 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 16 Jul 2018 16:58:43 +0000 (09:58 -0700)]
Merge branch 'stable'

6 years agoautomatic post-release commit for mutt-1.10.1 mutt-1-10-1-rel
Kevin McCarthy [Mon, 16 Jul 2018 16:52:23 +0000 (09:52 -0700)]
automatic post-release commit for mutt-1.10.1

6 years agoCheck outbuf length in mutt_from_base64()
Kevin McCarthy [Fri, 13 Jul 2018 21:25:28 +0000 (14:25 -0700)]
Check outbuf length in mutt_from_base64()

The obuf can be overflowed in auth_cram.c, and possibly auth_gss.c.

Thanks to Jeriko One for the bug report.

6 years agoCheck destlen and truncate in url_pct_encode().
Kevin McCarthy [Fri, 13 Jul 2018 20:05:22 +0000 (13:05 -0700)]
Check destlen and truncate in url_pct_encode().

Thanks to Jeriko One for the patch, which this commit is based upon.

6 years agoVerify IMAP status mailbox literal count size.
Kevin McCarthy [Fri, 13 Jul 2018 19:35:50 +0000 (12:35 -0700)]
Verify IMAP status mailbox literal count size.

Ensure the length isn't bigger than the idata->buf.

Thanks to Jeriko One fo the bug report and patch, which this commit is
based upon.

6 years agoHandle NO response without message properly
JerikoOne [Fri, 13 Jul 2018 19:24:58 +0000 (12:24 -0700)]
Handle NO response without message properly

6 years agoDon't overflow tmp in msg_parse_fetch.
Kevin McCarthy [Fri, 13 Jul 2018 19:15:00 +0000 (12:15 -0700)]
Don't overflow tmp in msg_parse_fetch.

Ensure INTERNALDATE and RFC822.SIZE field sizes fit temp buffer.

Thanks to Jeriko One for the bug report and patch, which this patch is
based upon.

6 years agoSelectively cache headers.
Richard Russon [Fri, 13 Jul 2018 18:33:16 +0000 (11:33 -0700)]
Selectively cache headers.

Thanks to NeoMutt and Jeriko One for the patch, which was slightly
modified to apply to the Mutt code.

6 years agoSanitize POP bcache paths.
Kevin McCarthy [Fri, 13 Jul 2018 18:16:33 +0000 (11:16 -0700)]
Sanitize POP bcache paths.

Protect against bcache directory path traversal for UID values.

Thanks for Jeriko One for the bug report and patch, which this commit
is based upon.

6 years agoEnsure UID in fetch_uidl.
JerikoOne [Fri, 13 Jul 2018 17:47:11 +0000 (10:47 -0700)]
Ensure UID in fetch_uidl.

6 years agoFix buffer size check in cmd_parse_lsub.
Kevin McCarthy [Fri, 13 Jul 2018 04:41:17 +0000 (21:41 -0700)]
Fix buffer size check in cmd_parse_lsub.

The size parameter to url_ciss_tostring() was off by one.

6 years agoFix imap_quote_string() length check errors.
Kevin McCarthy [Fri, 13 Jul 2018 03:46:37 +0000 (20:46 -0700)]
Fix imap_quote_string() length check errors.

The function wasn't properly checking for dlen<2 before quoting, and
wasn't properly pre-adjusting dlen to include the initial quote.

Thanks to Jeriko One for reporting these issues.

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 8 Jul 2018 02:34:32 +0000 (19:34 -0700)]
Merge branch 'stable'

6 years agoMention $pgp_decode_command for $pgp_check_gpg_decrypt_status_fd
Kevin McCarthy [Sun, 8 Jul 2018 02:32:57 +0000 (19:32 -0700)]
Mention $pgp_decode_command for $pgp_check_gpg_decrypt_status_fd

It scans $pgp_decode_command for inline and application/pgp mime
types.

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 8 Jul 2018 02:18:55 +0000 (19:18 -0700)]
Merge branch 'stable'

6 years agoProperly quote IMAP mailbox names when (un)subscribing.
Kevin McCarthy [Sun, 8 Jul 2018 02:03:44 +0000 (19:03 -0700)]
Properly quote IMAP mailbox names when (un)subscribing.

When handling automatic subscription (via $imap_check_subscribed), or
manual subscribe/unsubscribe commands, mutt generating a "mailboxes"
command but failed to properly escape backquotes.

Thanks to Jeriko One for the detailed bug report and patch, which this
commit is based upon.

6 years agoUpdated French translation.
Vincent Lefevre [Mon, 2 Jul 2018 10:39:14 +0000 (12:39 +0200)]
Updated French translation.

6 years agoAdd dependencies for keymap_alldefs.h in po/Makefile.in.in
Vincent Lefevre [Mon, 2 Jul 2018 10:25:13 +0000 (12:25 +0200)]
Add dependencies for keymap_alldefs.h in po/Makefile.in.in

These dependencies are based on those from Makefile.am and are needed
so that "make update-po" gets the new strings from OPS, etc.

6 years agosmime_handle_entity() cleanup.
Kevin McCarthy [Mon, 2 Jul 2018 03:43:24 +0000 (20:43 -0700)]
smime_handle_entity() cleanup.

Remove redundant NULL assignments after safe_fclose() calls.

Remove some trailing spaces.

smimeout can't be NULL, so remove the check around the output
translation block.

6 years agoVoid passphrase on s/mime decryption error.
Kevin McCarthy [Mon, 2 Jul 2018 03:13:11 +0000 (20:13 -0700)]
Void passphrase on s/mime decryption error.

Model this after pgp's pgp_decrypt_part(), which checks if fpout is
empty.

6 years agoAdd check-stats function to calculate mailbox statistics.
Anton Lindqvist [Fri, 29 Jun 2018 03:17:23 +0000 (20:17 -0700)]
Add check-stats function to calculate mailbox statistics.

This allows the statistics to be updated without setting
$mail_check_stats or before $mail_check_stats_interval has passed.

6 years agoAdd a reference to $copy in the $record documentation.
Kevin McCarthy [Wed, 27 Jun 2018 16:45:10 +0000 (09:45 -0700)]
Add a reference to $copy in the $record documentation.

6 years agoReset all MonitorContext state on context removal.
Kevin McCarthy [Wed, 27 Jun 2018 16:27:05 +0000 (09:27 -0700)]
Reset all MonitorContext state on context removal.

Reset both the descriptor and changed flag when the current context is
removed.  Don't make this dependent on the context being valid or
being found by monitor_resolve(), in case the context was closed due
to some type of error condition.

6 years agoFix MonitorContextDescriptor update on removal.
Kevin McCarthy [Wed, 27 Jun 2018 02:48:25 +0000 (19:48 -0700)]
Fix MonitorContextDescriptor update on removal.

Reset the context descriptor before checking for the monitor being
shared by another mailbox.  Technically, it would be set properly
during the next add, but it shouldn't be left incorrect.

6 years agoWork around open mailbox monitor code check issue.
Kevin McCarthy [Tue, 26 Jun 2018 00:54:43 +0000 (17:54 -0700)]
Work around open mailbox monitor code check issue.

The monitor code is too fast, and can result in all the changes for a
single directory stat update being missed.

Work around this issue by not recording stat time updates when the
check_mailbox() is triggered by the monitor.  This will cause the next
subsequent check to take another look.

6 years agoGenerate error if makedoc is missing a type.
Kevin McCarthy [Mon, 25 Jun 2018 20:13:55 +0000 (13:13 -0700)]
Generate error if makedoc is missing a type.

Add a comment in init.h to remind devs to update makedoc.c when adding
a new type.

Change makedoc to fail on a missing type.  Otherwise it's too easy to
miss the resulting problem in the documentation.

Credit goes to Eike Rathke for noting that it was too easy to forget
to do this, and something should be fixed.  I found his solution a bit
too complicated though, and opted for just adding comment and program
failure.

6 years agoMake make ctags actually work
Eike Rathke [Sat, 23 Jun 2018 08:25:15 +0000 (10:25 +0200)]
Make make ctags actually work

make ctags broke with

Making ctags in po
make[1]: Entering directory '.../mutt/po'
make[1]: *** No rule to make target 'ctags'.  Stop.
make[1]: Leaving directory '.../mutt/po'
Makefile:867: recipe for target 'ctags-recursive' failed
make: *** [ctags-recursive] Error 1

and once fixed the same in intl/

Note that this ctags target scatters tags files over directories.
If you use exuberant ctags then simply run
ctags -R
once in mutt's root dir instead.

6 years agoRemove uninitialized warning for mutt_get_stat_timespec().
Kevin McCarthy [Fri, 22 Jun 2018 03:42:55 +0000 (20:42 -0700)]
Remove uninitialized warning for mutt_get_stat_timespec().

The switch covers all the types, but in some cases the compiler still
complains.  Explicitly set tv_sec = 0 to silence the warning.

6 years agoUpdated Simplified Chinese translation.
Zero King [Tue, 19 Jun 2018 15:16:33 +0000 (15:16 +0000)]
Updated Simplified Chinese translation.

6 years agomutt_atol: better error handling.
Vincent Lefevre [Tue, 19 Jun 2018 07:45:29 +0000 (09:45 +0200)]
mutt_atol: better error handling.

* Detect overflow on negative numbers too (< LONG_MIN).

* Distinguish between format error and number overflow as already
  expected (e.g. for pgp_timeout and smime_timeout).

6 years agoReset errno to 0 before calling strtol and testing it in mutt_atol.
Vincent Lefevre [Tue, 19 Jun 2018 07:37:56 +0000 (09:37 +0200)]
Reset errno to 0 before calling strtol and testing it in mutt_atol.

Otherwise providing LONG_MAX+1 then LONG_MAX gave an error for LONG_MAX too.

6 years agoAllow larger passphrase timeout values
Eike Rathke [Mon, 18 Jun 2018 20:04:47 +0000 (22:04 +0200)]
Allow larger passphrase timeout values

This came up in the comp.mail.mutt newsgroup where a user wasn't
satisfied with the SHORT_MAX seconds ~9 hours limit on passphrase
timeouts.

For the first time made it necessary for the options parser to be
able to parse numbers as long values. Also, introduced
mutt_add_timeout() to detect possible overflow before adding a
timeout to a time_t value and truncate to TIME_T_MAX instead.

6 years agoUpdated French translation.
Vincent Lefevre [Mon, 18 Jun 2018 15:19:31 +0000 (17:19 +0200)]
Updated French translation.

6 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 18 Jun 2018 11:35:24 +0000 (19:35 +0800)]
Merge branch 'stable'

6 years agocrypt-gpgme: prevent crash on bad S/MIME signature
Philipp Gesang [Mon, 18 Jun 2018 09:21:38 +0000 (11:21 +0200)]
crypt-gpgme: prevent crash on bad S/MIME signature

Inform the user about the fingerprint being unavailable instead
of crashing if the S/MIME signature is bad.

6 years agoConvert context and buffy to use nanosecond timestamps.
Kevin McCarthy [Thu, 14 Jun 2018 08:17:56 +0000 (16:17 +0800)]
Convert context and buffy to use nanosecond timestamps.

The inotify interface has an unfortunate side effect of making Mutt
react too quickly to new mail.  Sometimes, the mail is only
half-delivered when the mailbox is checked.  Because Mutt is using the
stat mtime - seconds resolution - this means it won't realize there
are more messages delivered during the same second.

Nanosecond resolution fields were standardized in POSIX.1-2008, so
check for and use those if they are available.

6 years agoUpdated French translation.
Vincent Lefevre [Thu, 14 Jun 2018 07:10:51 +0000 (09:10 +0200)]
Updated French translation.

6 years agoSupport for using OAUTHBEARER for smtp.
Brandon Long [Tue, 12 Jun 2018 21:11:47 +0000 (14:11 -0700)]
Support for using OAUTHBEARER for smtp.

This also means a bunch of smtp auth stuff is now compiled in by
default (with --enable-smtp) without having sasl

6 years agoInitial support for OAUTHBEARER for IMAP.
Brandon Long [Mon, 11 Jun 2018 17:39:49 +0000 (10:39 -0700)]
Initial support for OAUTHBEARER for IMAP.

Gmail supports RFC 7628 for using OAUTH with IMAP, and they really don't
like you using password based auth.  You can still enable "less secure
apps" and then generate an application specific password, but I figured it
was time to support it.

Being mutt, I punted on some of the "hard" work to an external script, ie
getting/refreshing the OAUTH tokens.  This avoids the issue of how do you
have a client-id and client-secret for an open source project, and the fact
that OAUTH discovery is still nascent, so you'd likely need separate things
for each of the providers.

At least for Gmail, you can use the oauth2.py script from Google's
gmail-oauth2-tools:
https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py

You'd need to get your own oauth client credentials for Gmail here:
https://console.developers.google.com/apis/credentials

Then, you'd use oauth2.py with --generate_oauth2_token to get a refresh
token, and configure mutt with:

set imap_authenticators="oauthbearer"
set imap_user="<email_address>"
set imap_pass=`/path/to/oauth2.py --quiet --user=<email_address>
--client_id=<client_id> --client_secret=<client_secret>
--refresh_token=<refresh_token>`

For this patch, I didn't add any new configuration, but I'm open to
suggestions on that.

The patch also only support SASL-IR to reduce round-trips to the server,
but it's certainly possible to change that if we think there are
OAUTHBEARER IMAP servers that don't support SASL-IR.  It also requires the
connection to be encrypted as the access token is re-usable for an hour or
so.  Again, Gmail only allows encrypted IMAP connections, not sure if any
OAUTHBEARER services allow non-encrypted.

Turns out that auth failure leaves you in SASL mode, so I have a hack to
issue a noop command on error.  Not sure if that's just OAUTHBEARER
oddness, or whether I should be using lower level mutt imap functions.

6 years agoMove mutt_getch() timeout value into curs_lib.c
Kevin McCarthy [Sun, 10 Jun 2018 00:51:30 +0000 (08:51 +0800)]
Move mutt_getch() timeout value into curs_lib.c

Change monitor.c to reference the curs_lib value, instead of
vice-versa.

We need to store the value for both monitor.c's poll and for
mutt_monitor_ch() to perform an initial non-blocking check of ncurses'
getch() buffer.

6 years agoSpelling mistake in debug message.
Vincent Lefevre [Fri, 8 Jun 2018 12:04:16 +0000 (14:04 +0200)]
Spelling mistake in debug message.

6 years agoMissing void in mutt_set_current_menu_redraw_full prototype
Vincent Lefevre [Fri, 8 Jun 2018 11:53:46 +0000 (13:53 +0200)]
Missing void in mutt_set_current_menu_redraw_full prototype

6 years agoGive a prototype for mutt_monitor_poll
Vincent Lefevre [Fri, 8 Jun 2018 11:49:32 +0000 (13:49 +0200)]
Give a prototype for mutt_monitor_poll

6 years agoQuick fix for ncurses buffering issue with inotify polling.
Kevin McCarthy [Wed, 6 Jun 2018 00:38:44 +0000 (17:38 -0700)]
Quick fix for ncurses buffering issue with inotify polling.

Ncurses does its own buffering for some character sequences, notable
Esc-prefixed input.  Add a non-blocking check for getch() before
performing the mutt_monitor_poll() call.

This is a quick fix, which I'll clean up more later.

6 years agoMerge branch 'stable'
Kevin McCarthy [Tue, 5 Jun 2018 04:43:41 +0000 (21:43 -0700)]
Merge branch 'stable'

6 years agoAdd GnuPG status fd checks for inline pgp.
Kevin McCarthy [Tue, 5 Jun 2018 04:31:33 +0000 (21:31 -0700)]
Add GnuPG status fd checks for inline pgp.

The difficulty is that "BEGIN PGP MESSAGE" could be a signed and
armored part, so we can't fail hard if it isn't encrypted.

Change pgp_check_decryption_okay() to return more status codes, with
>=0 indicating an actual decryption; -2 and -1 indicating plaintext
found; and -3 indicating an actual DECRYPTION_FAILED status code seen.

Fail hard on -3, but change the message for -2 and -1 to indicate the
message was not encrypted.

6 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 4 Jun 2018 22:51:25 +0000 (15:51 -0700)]
Merge branch 'stable'

6 years agoAdd $pgp_check_gpg_decrypt_status_fd.
Kevin McCarthy [Mon, 4 Jun 2018 22:40:57 +0000 (15:40 -0700)]
Add $pgp_check_gpg_decrypt_status_fd.

If set (the default) mutt performs more thorough checking of the
$pgp_decrypt_command status output for GnuPG result codes.

Ticket #39 revealed that GnuPG (currently) does not protect against
messages that have been manipulated to contain an empty encryption
packet followed by a plaintext packet.

A huge thanks to Marcus Brinkmann for researching this issue, taking
the time to report it to us (and the GnuPG team), and taking even more
time to clarify exactly what needed to be checked for.   

6 years agoAdd new timeout functions to work with inotify monitors.
Kevin McCarthy [Mon, 4 Jun 2018 01:34:21 +0000 (18:34 -0700)]
Add new timeout functions to work with inotify monitors.

The ncurses timeout() function doesn't affect the new poll inside
mutt_monitor_poll().  This meant that $imap_keepalive and $timeout
were not being respected when the monitor was used.

Create mutt_getch_timeout(), which delegates to timeout() and sets a
timeout value mutt_monitor_poll() uses too.

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 3 Jun 2018 21:54:41 +0000 (14:54 -0700)]
Merge branch 'stable'

6 years agoRevert showing real size for small files in mutt_pretty_size().
Kevin McCarthy [Sun, 3 Jun 2018 21:52:37 +0000 (14:52 -0700)]
Revert showing real size for small files in mutt_pretty_size().

I thought the change made in 0fa64ba9 was small enough not to matter,
but at least one long-time user took the time to track down the change
and request it be reverted.

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 3 Jun 2018 21:42:41 +0000 (14:42 -0700)]
Merge branch 'stable'

6 years agoSwitch build scripts to use `` instead of $()
Kevin McCarthy [Sun, 3 Jun 2018 21:40:31 +0000 (14:40 -0700)]
Switch build scripts to use `` instead of $()

This is for older systems running Bourne shell as /bin/sh.

6 years agoChange direct mutt_getch() callers to handle new mail event.
Kevin McCarthy [Sun, 3 Jun 2018 21:05:13 +0000 (14:05 -0700)]
Change direct mutt_getch() callers to handle new mail event.

The inotify handler now returns -2 (timeout) on a new mail event.
Change the direct callers to ignore, so prompts aren't strangely
aborted.

Also, fix mutt_change_flag() to call mutt_refresh() before the
prompt.  Apparently ncurses getch() was doing this for us, but now
that we are polling STDIN instead, the prompt wasn't displaying.

6 years agoadd feature file monitoring with Linux inotify
GT [Sun, 3 Jun 2018 20:23:57 +0000 (20:23 +0000)]
add feature file monitoring with Linux inotify

6 years agoCorrect spelling mistakes.
Edward Betts [Fri, 1 Jun 2018 09:46:34 +0000 (10:46 +0100)]
Correct spelling mistakes.

6 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 28 May 2018 21:29:45 +0000 (14:29 -0700)]
Merge branch 'stable'

6 years agofix inappropriate use of FREE() in ssl init error path
Oswald Buddenhagen [Sun, 6 Jan 2013 18:24:18 +0000 (19:24 +0100)]
fix inappropriate use of FREE() in ssl init error path

OpenSSL structures need to be freed with dedicated functions.

6 years agoRemove mutt_buffer_new() NULL retval checks.
Kevin McCarthy [Mon, 21 May 2018 22:12:47 +0000 (15:12 -0700)]
Remove mutt_buffer_new() NULL retval checks.

It will fail, rather than return NULL.

Further clean up imap_new_data() since it also had NULL checks for
safe_calloc() that shouldn't happen.

6 years agoFix mutt_strncmp size comparison for 'uncolor header'.
Kevin McCarthy [Mon, 21 May 2018 20:33:14 +0000 (13:33 -0700)]
Fix mutt_strncmp size comparison for 'uncolor header'.

Thanks to Fabian Groffen for pointing out the discrepancy.

mutt_extract_token() null-terminates the token,, so actually there is
no need to use "strncmp" for the comparison in this case.

However, since the token is being checked against Fields there is no
potential harm of a prefix match, so we should fix the number to be
consistent with the other token comparisons.

6 years agoautomatic post-release commit for mutt-1.10.0 mutt-1-10-rel
Kevin McCarthy [Sat, 19 May 2018 17:57:10 +0000 (10:57 -0700)]
automatic post-release commit for mutt-1.10.0

6 years agoUpdated Catalan translation.
Ivan Vilata i Balaguer [Thu, 17 May 2018 19:24:31 +0000 (12:24 -0700)]
Updated Catalan translation.

6 years agoUpdated Japanese translation.
TAKAHASHI Tamotsu [Thu, 17 May 2018 17:10:52 +0000 (10:10 -0700)]
Updated Japanese translation.

6 years agofr.po: updated Project-Id-Version and removed old translations.
Vincent Lefevre [Thu, 17 May 2018 10:45:39 +0000 (12:45 +0200)]
fr.po: updated Project-Id-Version and removed old translations.

6 years agoUpdated German translation.
Olaf Hering [Mon, 14 May 2018 07:12:11 +0000 (09:12 +0200)]
Updated German translation.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoNote that $pgp/smime_self_encrypt now default to set.
Kevin McCarthy [Thu, 10 May 2018 16:12:19 +0000 (09:12 -0700)]
Note that $pgp/smime_self_encrypt now default to set.

6 years agoAdd note about libidn2 v2.0.0 or greater to UPDATING file.
Kevin McCarthy [Thu, 10 May 2018 16:00:21 +0000 (09:00 -0700)]
Add note about libidn2 v2.0.0 or greater to UPDATING file.

6 years agoUpdated Russian translation.
Vsevolod Volkov [Wed, 9 May 2018 16:32:48 +0000 (09:32 -0700)]
Updated Russian translation.

6 years agoUpdated Ukrainian translation.
Vsevolod Volkov [Wed, 9 May 2018 16:30:55 +0000 (09:30 -0700)]
Updated Ukrainian translation.

6 years agoAdd declaration checks for libidn2.
Kevin McCarthy [Wed, 9 May 2018 02:32:12 +0000 (19:32 -0700)]
Add declaration checks for libidn2.

The libidn compatibilty layer was only added in version
2.0.0 (2017-03-29).  idn2.h defines macros, so use AC_CHECK_DECL
instead of AC_CHECK_FUNC.

$with_idn2 doesn't have an "auto" state, so remove a few unneeded
copy/paste checks from idn.

6 years agoUpdated Czech translation.
Petr Pisar [Tue, 8 May 2018 17:11:17 +0000 (10:11 -0700)]
Updated Czech translation.

6 years agoUpdate the UPDATING file for 1.10.0.
Kevin McCarthy [Sat, 5 May 2018 14:35:59 +0000 (07:35 -0700)]
Update the UPDATING file for 1.10.0.

6 years agoUpdated Danish translation.
Morten Bo Johansen [Sun, 6 May 2018 16:43:25 +0000 (09:43 -0700)]
Updated Danish translation.

6 years agoUpdated Simplified Chinese translation.
lilydjwg [Sat, 5 May 2018 14:39:36 +0000 (07:39 -0700)]
Updated Simplified Chinese translation.

6 years agoUpdated French translation.
Vincent Lefevre [Fri, 4 May 2018 00:43:56 +0000 (02:43 +0200)]
Updated French translation.

6 years agoAdd echo command.
Kevin McCarthy [Sun, 29 Apr 2018 22:10:21 +0000 (15:10 -0700)]
Add echo command.

Prints messages using mutt_message().  Sets OPTFORCEREFRESH to allow
updates in the middle of a macro.

Calls mutt_sleep(0) to pause for $sleep_time seconds after displaying
the message.

6 years agoMissing comma.
Vincent Lefevre [Thu, 3 May 2018 10:24:55 +0000 (12:24 +0200)]
Missing comma.

6 years agoUpdate copyright notices.
Kevin McCarthy [Tue, 1 May 2018 22:13:51 +0000 (15:13 -0700)]
Update copyright notices.

6 years agoUpdate pattern documentation.
Kevin McCarthy [Sat, 28 Apr 2018 20:21:42 +0000 (13:21 -0700)]
Update pattern documentation.

Note that ~b, ~B, ~h, ~M, and ~X read the message in, and that this
can be much slower.

Change =b, =B, =h table rows to document just the IMAP behavior.  The
"=" simple string behavior is already covered below, and makes it less
obvious whether "***)" should be added to those entries in the table.

Break up the simple string and imap server-side matching explanation
into two paragraphs.

Add ~M to the list of patterns you can't use message scoring with.

Add equivalent, if briefer, explanations to the muttrc.man page.

6 years agoAdd ~M pattern to match mime Content-Types.
Ammon Riley [Fri, 27 Apr 2018 01:00:00 +0000 (18:00 -0700)]
Add ~M pattern to match mime Content-Types.

6 years agoAdd more explanation of known vs subscribed lists to manual.
Kevin McCarthy [Mon, 30 Apr 2018 23:17:52 +0000 (16:17 -0700)]
Add more explanation of known vs subscribed lists to manual.

Mention in both the "Mailing Lists" and "Handling Mailing Lists"
sections the difference between known and subscribed mailing lists.

Note that the Mail-Followup-To header is generated if any of the
recipients are known mailing lists.  If any of those are subscribed
mailing lists, the sender's address will not be in the header.  If all
of them are known (but not subscribed), the sender's address will be
added to the header.

6 years agoUpdated French translation.
Vincent Lefevre [Mon, 23 Apr 2018 21:48:33 +0000 (23:48 +0200)]
Updated French translation.

6 years agoAdd Error History function and config var.
Kevin McCarthy [Sun, 22 Apr 2018 20:02:06 +0000 (13:02 -0700)]
Add Error History function and config var.

<error-history>, by default unbound, shows a list of the recent error
messages displayed by Mutt via mutt_message() or mutt_error().

$error_history sets the size of the history ring.

For now, I've decided to include mutt_message() messages too.  If this
is too chatty, we can restrict it to mutt_error() easily in the
future.

6 years agoUpdated French translation.
Vincent Lefevre [Fri, 20 Apr 2018 15:28:47 +0000 (17:28 +0200)]
Updated French translation.

6 years agoAdd $sort_browser options for count and unread.
Kevin McCarthy [Thu, 19 Apr 2018 22:40:35 +0000 (15:40 -0700)]
Add $sort_browser options for count and unread.

6 years agoAdd $browser_abbreviate_mailboxes.
Kevin McCarthy [Thu, 19 Apr 2018 20:51:07 +0000 (13:51 -0700)]
Add $browser_abbreviate_mailboxes.

This allows '=' and '~' mailboxes shortcuts to be turned off in the
browser mailbox list.

The default $sort_browser value of "alpha" uses strcoll(3), which
ignores some punctuation.  When using multiple accounts with
dynamically changing values of $folder, this can lead to an
unintuitive sorting order.  (See issue #22 for an example.)

This problem came about because of commit 8328ce68, which enabled
mutt_pretty_mailbox() calls for IMAP and POP mailboxes too.  The
commit had a valid point about consistency and too-wide mailbox
listings, so I don't really want to revert it.

This option provides an alternative to completely enable/disable the
shortcuts for those who run into an issue.