]> granicus.if.org Git - neomutt/log
neomutt
7 years agomutt-1.8.0 signed
Kevin McCarthy [Fri, 24 Feb 2017 18:55:23 +0000 (10:55 -0800)]
mutt-1.8.0 signed

7 years agoAdded tag mutt-1-8-rel for changeset d897983752f9
Kevin McCarthy [Fri, 24 Feb 2017 18:50:19 +0000 (10:50 -0800)]
Added tag mutt-1-8-rel for changeset d897983752f9

7 years agoautomatic post-release commit for mutt-1.8.0
Kevin McCarthy [Fri, 24 Feb 2017 18:50:02 +0000 (10:50 -0800)]
automatic post-release commit for mutt-1.8.0

7 years agoUpdated Japanese translation.
TAKAHASHI Tamotsu [Thu, 23 Feb 2017 16:56:27 +0000 (08:56 -0800)]
Updated Japanese translation.

7 years agoUpdated Dutch translation.
Benno Schulenberg [Wed, 22 Feb 2017 23:58:15 +0000 (15:58 -0800)]
Updated Dutch translation.

7 years agoUpdated Esperanto translation.
Benno Schulenberg [Wed, 22 Feb 2017 20:58:24 +0000 (12:58 -0800)]
Updated Esperanto translation.

7 years agoMinor touchups to documentation and UPDATING file.
Kevin McCarthy [Wed, 22 Feb 2017 20:50:02 +0000 (12:50 -0800)]
Minor touchups to documentation and UPDATING file.

7 years agoMention $XDG_CONFIG_HOME/mutt/ in the manual.
Kevin McCarthy [Mon, 20 Feb 2017 02:51:36 +0000 (18:51 -0800)]
Mention $XDG_CONFIG_HOME/mutt/ in the manual.

7 years agoReword some of the UPDATING entries.
Kevin McCarthy [Mon, 20 Feb 2017 02:30:51 +0000 (18:30 -0800)]
Reword some of the UPDATING entries.

Thanks to Matthias Andree for his feedback and suggestions!

7 years agoAdd 1.8.0 entries to the UPDATING file.
Kevin McCarthy [Sat, 18 Feb 2017 23:15:01 +0000 (15:15 -0800)]
Add 1.8.0 entries to the UPDATING file.

7 years agoPrevent null pointer exception for h->ai_canonname
Athanasios Douitsis [Sat, 18 Feb 2017 21:30:27 +0000 (21:30 +0000)]
Prevent null pointer exception for h->ai_canonname

The getaddrinfo call in line 54 sets &h to a struct addrinfo. If a
canonical name cannot be found for the node argument of getaddrinfo,
h->ai_canonname is set to NULL. In that case, the strchr call in line
58 can lead to segfault. This behavior was observed on a macos sierra
while the hostname was 192.168.1.3 (unfortunately this happens quite
often in macos).

The fix is simple, just check h->ai_canonname for the NULL value.

7 years agoUpdated Catalan translation.
Ivan Vilata i Balaguer [Sat, 18 Feb 2017 04:02:46 +0000 (20:02 -0800)]
Updated Catalan translation.

7 years agoUpdated Russian translation.
Vsevolod Volkov [Thu, 16 Feb 2017 20:44:06 +0000 (12:44 -0800)]
Updated Russian translation.

7 years agoUpdated Ukrainian translation.
Vsevolod Volkov [Thu, 16 Feb 2017 20:41:09 +0000 (12:41 -0800)]
Updated Ukrainian translation.

7 years agoUpdated Danish translation.
Morten Bo Johansen [Thu, 16 Feb 2017 19:22:49 +0000 (11:22 -0800)]
Updated Danish translation.

7 years agoUpdated Czech translation.
Petr Pisar [Mon, 13 Feb 2017 20:26:30 +0000 (12:26 -0800)]
Updated Czech translation.

7 years agoShow SHA1 fp in interactive cert check menu.
Matthias Andree [Sun, 12 Feb 2017 21:03:03 +0000 (13:03 -0800)]
Show SHA1 fp in interactive cert check menu.

While here, fix a few compiler warnings about sign mismatch in comparison.

7 years agoFix potential cert memory leak in check_certificate_by_digest().
Kevin McCarthy [Sun, 12 Feb 2017 20:24:51 +0000 (12:24 -0800)]
Fix potential cert memory leak in check_certificate_by_digest().

Thanks to Matthias Andree's debugging, it appears the cert is not
freed when PEM_read_X509() encounters EOF.  Change the return value
check to not overwrite cert.  It is already updated via the second
parameter.

7 years agoPlug memory leak in weed-expired-certs code.
Matthias Andree [Sun, 12 Feb 2017 17:59:48 +0000 (09:59 -0800)]
Plug memory leak in weed-expired-certs code.

X509_STORE_add_cert() creates a copy of the certificate we're offering,
so we need to free our copy afterwards.  This isn't documented, but from
observed behaviour in OpenSSL 1.0.2 and its master branch source code.

Change PEM_read_X509() call to reuse cert to avoid free/reallocation
overhead.

7 years agoFilter expired local certs for OpenSSL verification.
Kevin McCarthy [Sun, 12 Feb 2017 17:59:41 +0000 (09:59 -0800)]
Filter expired local certs for OpenSSL verification.

OpenSSL has trouble establishing the chain and verifying when
duplicate expired certs are loaded in from $certificate_file.  A
warning about this is mentioned in
SSL_CTX_load_verify_locations(3SSL).

Filter out expired certs when loading verify certs.  Note that the
full certicates file is still used for verification in
check_certificate_by_digest().

7 years agoChange "allow_dups" into a flag at hash creation.
Kevin McCarthy [Fri, 10 Feb 2017 21:01:21 +0000 (13:01 -0800)]
Change "allow_dups" into a flag at hash creation.

Instead of having an "allow_dups" parameter for hash_insert(), add a
flag, MUTT_HASH_ALLOW_DUPS, to hash_create().

Currently ReverseAlias, subj_hash, and thread_hash allow duplicate
keys.  Change those hashes to pass the flag at creation, and remove
the last parameter from all callers of hash_insert().

7 years agoUpdated Czech translation.
Petr Pisar [Fri, 10 Feb 2017 20:56:42 +0000 (12:56 -0800)]
Updated Czech translation.

7 years agoUpdated French translation.
Vincent Lefevre [Fri, 10 Feb 2017 11:51:17 +0000 (12:51 +0100)]
Updated French translation.

7 years agoFix build for bdb.
Kevin McCarthy [Wed, 8 Feb 2017 15:48:07 +0000 (07:48 -0800)]
Fix build for bdb.

Changeset fca7e504ab6a removed #else/#endif around two blocks of code
that won't compile with bdb enabled.  Restore those directives.

Thanks to Richard Russon for pointing out the problem and saving me
from having egg all over my face with the 1.8 release!

7 years agoCreate function to free header cache data.
Kevin McCarthy [Wed, 8 Feb 2017 03:36:43 +0000 (19:36 -0800)]
Create function to free header cache data.

Kyoto Cabinet documents that data from it should be freed via
kcfree().

LMDB claims ownership of the data returned, so convert its free
operation to be a noop and remove the malloc from its fetch function.

7 years agoAdd Kyoto Cabinet support to the header cache.
Kevin McCarthy [Wed, 8 Feb 2017 03:36:37 +0000 (19:36 -0800)]
Add Kyoto Cabinet support to the header cache.

Retain the defaults as they are, although we might switch to Kyoto
Cabinet for the next major release.

7 years agoFixes to the LMDB header cache. (closes #3691)
Kevin McCarthy [Sat, 4 Feb 2017 20:53:52 +0000 (12:53 -0800)]
Fixes to the LMDB header cache. (closes #3691)

Use mdb_txn_abort() to free up readonly/reset transactions, and avoid
leaking memory.

Fix hcache_delete() key generation - looks like this was an incorrect
copy/paste from the bdb code.

Use dprint, not fprintf, for debugging messages.

Remove strange blending of enum and bitfield logic for the txn_mode
state.

Remove some duplicate code from store/fetch raw.

7 years agoAdd LMDB backend support for header cache. (see #3691)
Kevin McCarthy [Sat, 4 Feb 2017 20:53:38 +0000 (12:53 -0800)]
Add LMDB backend support for header cache. (see #3691)

Based on the original from JP Mens:
https://gist.github.com/jpmens/15969d9d678a3d450e4e

The following performance patch was manually applied on top of the
original patch:
https://github.com/neomutt/neomutt/commit/7e5380cd4c40d119ff83b2cf5f51f2cdb8a95ab3

A variant of this patch was added to handle larger mailboxes:
https://github.com/neomutt/neomutt/commit/6d337642e701b1dde4b5d0812e01c85f41ba65ca

Thanks to all the developers and contributors to this patch, and to
Fabian Groffen for bundling and posting this to mutt-dev.

7 years agoMinor fix to ~y completion.
Kevin McCarthy [Tue, 31 Jan 2017 23:02:21 +0000 (15:02 -0800)]
Minor fix to ~y completion.

Make sure the entire ~y is before curpos when enabling completion.

7 years agoSimplify mutt_label_complete().
Kevin McCarthy [Tue, 31 Jan 2017 22:27:36 +0000 (14:27 -0800)]
Simplify mutt_label_complete().

It was derived from mutt_command_complete(), which had more complex
requirements.  For labels, we just need to skip whitespace and
complete based on the passed in buffer.

Therefore, we don't need the pos parameter, or to work backwards from
the end of the buffer.

7 years agoPermit tab completion of pattern expressions with ~y (labels).
Kevin McCarthy [Tue, 31 Jan 2017 22:27:28 +0000 (14:27 -0800)]
Permit tab completion of pattern expressions with ~y (labels).

Thanks to David Champion for the original patch.  This version is
slightly different, as I couldn't get the original patch working.
This version simply scans backward for the first ~, and if it is ~y,
invokes completion.

7 years agoFix the mutt_label_complete() pos parameter.
Kevin McCarthy [Tue, 31 Jan 2017 22:27:09 +0000 (14:27 -0800)]
Fix the mutt_label_complete() pos parameter.

i is the state->wbuf index, not the end of the buf.  It was "working"
only because the contents of buf past the null were not "space" most
of the time.

7 years agoFix the x-label update code check location.
Kevin McCarthy [Sun, 29 Jan 2017 19:02:50 +0000 (11:02 -0800)]
Fix the x-label update code check location.

The x-label comparison was outside the "beginning of header" block.

This meant that it could theoretically match a continuation line.
Additionally, the continuation lines of x-labels would not be
stripped, because the comparison was after the ignore variable was
reset.

Move the comparison inside the block and before the ignore reset.

7 years agoImprove the label completion hash table usage.
Kevin McCarthy [Sun, 29 Jan 2017 02:48:08 +0000 (18:48 -0800)]
Improve the label completion hash table usage.

Move the hash table inside the Context.  Hook message arrival/deletion
to update the label hash.

Change the label hash to strdup keys.

Use hash_find_elem when updating the counter, to reduce unnecessary
add/delete operations.

7 years agoAdds label completion.
David Champion [Sun, 29 Jan 2017 02:47:57 +0000 (18:47 -0800)]
Adds label completion.

A global label hash is added, to which labels are added as they're parsed
from a mailbox file or edited manually by the user.  Reference counts are
kept in the hash table so that unused labels are removed from available
completions.  Completion is available in the label editor only, but it
may be feasible to add for search expressions if the preceding text ends
with '~y'.

7 years agoAdd hash_find_elem to get the hash element.
Kevin McCarthy [Sun, 29 Jan 2017 02:47:48 +0000 (18:47 -0800)]
Add hash_find_elem to get the hash element.

This will be used in the following patch for directly manipulating the
label counter.

7 years agoAdd reentrant hash_walk() function for iterating down a hash table.
David Champion [Sun, 29 Jan 2017 02:47:41 +0000 (18:47 -0800)]
Add reentrant hash_walk() function for iterating down a hash table.

7 years agoMinor fixes to the x-label patch from David.
Kevin McCarthy [Sun, 29 Jan 2017 02:47:26 +0000 (18:47 -0800)]
Minor fixes to the x-label patch from David.

Add L10N comment to sort menu.  Mark a couple strings for localization.

Use ascii_strncasecmp() for the X-Label header comparison.

Simplify label_message() using mutt library routines.

Bind label editing to "Y" instead of "y".  "y" is already used in the
default sample muttrc to display mailboxes.

7 years agoAdds capability to edit x-labels inside mutt, and to sort by label.
David Champion [Sun, 29 Jan 2017 02:47:15 +0000 (18:47 -0800)]
Adds capability to edit x-labels inside mutt, and to sort by label.

7 years agoAllow "unsubjectrc *" to remove all patterns.
Kevin McCarthy [Tue, 24 Jan 2017 23:33:23 +0000 (15:33 -0800)]
Allow "unsubjectrc *" to remove all patterns.

Thanks to Aaron Schrab for the original patch.

7 years agoAdd subjectrx command to replace matching subjects with something else.
David Champion [Tue, 24 Jan 2017 03:01:50 +0000 (19:01 -0800)]
Add subjectrx command to replace matching subjects with something else.

This lets you define regular expressions-replacement pairs for subject
display.  When a Subject: matches the regular expression, the replacement
value will be displayed instead in the message index.  Backreferences
are supported.

This is especially nice for simplifying subjects that are overly wordy,
such as mailing list posts (with [Listname] tags, etc), mail from
ticketing systems or bug trackers, etc.  It lets you reduce clutter in
your mutt display without altering the messages themselves.

7 years agoAbstract the SPAM_LIST as a generic REPLACE_LIST
David Champion [Tue, 24 Jan 2017 03:01:36 +0000 (19:01 -0800)]
Abstract the SPAM_LIST as a generic REPLACE_LIST

REPLACE_LIST can be used more generally as a list of pattern
match-replace settings.  SPAM_LIST was a special case of this, so
spam handling has been been changed to use REPLACE_LIST instead, and
SPAM_LIST was removed.

A generic function for performing a REPLACE_LIST replacement has
been added in mutt_apply_replace().

Commited by Kevin McCarthy with some buffer overflow fixes in
mutt_apply_replace().

7 years agoImprove Reply-to vs From comparison when replying. (closes #3909)
Kevin McCarthy [Tue, 24 Jan 2017 02:46:16 +0000 (18:46 -0800)]
Improve Reply-to vs From comparison when replying. (closes #3909)

Prior to this patch, if the Reply-to mailbox matched the From mailbox,
mutt would always use the From address.  This was probably done to
preserve the display name, as the Reply-to address is often missing one.

Unfortunately, there are circumstances where the Reply-to display-name
has significance, such as in ticket 3909.

Change mutt so that it only uses the From address if the Reply-To has
no display-name.

7 years agoFix sidebar references to the "new count" to be "unread". (closes #3908)
Kevin McCarthy [Thu, 19 Jan 2017 22:58:13 +0000 (14:58 -0800)]
Fix sidebar references to the "new count" to be "unread". (closes #3908)

%N in $sidebar_format and "new"in $sidebar_sort_method actually use
the unread message count.  Update the documentation to mention that.

Add an "unread" method to $sidebar_sort_method, but preserve "new" for
compatibility.

Change the SORT_COUNT_NEW constant to SORT_UNREAD, so the code is also
consistent with the meaning.

Thanks to cri for reporting the problem and suggesting where to fix it
in the code.

7 years agoFix several alias hashtable issues.
Kevin McCarthy [Wed, 18 Jan 2017 00:09:16 +0000 (16:09 -0800)]
Fix several alias hashtable issues.

Convert to use the strdup keys hash.  Addresses can be converted back
and forth from intl to local forms.  This frees and recreates a new
addr->mailbox string, resulting in the hash table key being a dangling
pointer.

Change alias hash table insert/remove to ensure the address is in intl
form.  The alias menu (previously) converted address entries to local
form when performing a completion.  Even with the pointer issue fixed,
the entries may not be removed from the hash if the intl and local
forms are different.

Lastly, there is no reason for the alias menu to manually convert to
local form before writing the address to the output buffer.
rfc822_write_address() has a display parameter that will call
mutt_addr_for_display() instead when set.  Change to set the display
parameter and remove the conversion calls.

This last change obviates the first two changes, but they are a good idea
in any case.

7 years agoAdd casecmp and strdup_key flags to hash_create()
Kevin McCarthy [Wed, 18 Jan 2017 00:09:11 +0000 (16:09 -0800)]
Add casecmp and strdup_key flags to hash_create()

Aliases and (in the future), X-Label hashes will require a hash that
strdups the key.  Convert the casecmp parameter of hash_create() to a
flags parameter, and add a flag to strdup the keys.

7 years agoImprove error handling in mbox magic detection.
Kevin McCarthy [Sun, 15 Jan 2017 18:00:55 +0000 (10:00 -0800)]
Improve error handling in mbox magic detection.

Thanks to Simon Ruderich for pointing out several small issues with
the previous commit.

7 years agoAllow initial blank lines in local mailboxes.
David Champion [Sun, 15 Jan 2017 03:18:45 +0000 (19:18 -0800)]
Allow initial blank lines in local mailboxes.

Some mailbox-creation tools erroneously append a blank line to a file
before appending a UNIXv7-format mail message, resulting in mailboxes
that are intended to be valid "mbox" folders but are not.  Notably old
versions of Mailman do this, making archive files that cannot be read by
mutt.

This patch causes mutt to skip leading NLs and CRs when detecting magic.

8 years agoFix minor documentation issues.
Simon Ruderich [Tue, 10 Jan 2017 22:48:08 +0000 (14:48 -0800)]
Fix minor documentation issues.

manual.xml:
Wrap line for clarity.

muttrc.man:
Remove superfluous spaces in brackets.
Add missing error object in color command.
Sort the prompt object.
Add sidebar color objects.

8 years agoConvert cmd_parse_search to use the uid hash. (closes #3905)
Kevin McCarthy [Fri, 6 Jan 2017 22:37:48 +0000 (14:37 -0800)]
Convert cmd_parse_search to use the uid hash. (closes #3905)

Replace the linear scan for each result with a hash lookup.  This
should greatly improve performance for large mailboxes.

8 years agoCreate a uid hash for imap. (see #3905)
Kevin McCarthy [Fri, 6 Jan 2017 22:23:28 +0000 (14:23 -0800)]
Create a uid hash for imap. (see #3905)

This hash will allow for more efficient UID SEARCH processing,
replacing a linear scan with a hash lookup.

8 years agoConvert HASH to be indexable by unsigned int. (see #3905)
Kevin McCarthy [Fri, 6 Jan 2017 22:17:10 +0000 (14:17 -0800)]
Convert HASH to be indexable by unsigned int. (see #3905)

Convert the HASH to be usable for either string or unsigned int keys,
so that a uid hash can be added for imap.

To keep hash-usage code disruption to a minimum, this introduces new
create/insert/find/delete functions for the int hash, but keeps the
old function names for string keys.

This implementation makes the key a union.  It may have been a better
idea to introduce a whole new structure, but this way allows minimum
changes to and maximum reuse of the existing hash code.

8 years agoFix imap server-side search to call uid2msgno() only once. (see #3905)
Kevin McCarthy [Thu, 5 Jan 2017 03:45:59 +0000 (19:45 -0800)]
Fix imap server-side search to call uid2msgno() only once. (see #3905)

After performing a UID SEARCH, the results are parsed in
cmd_parse_search().  This was accidentally calling uid2msgno() twice.
Since that function does a linear search, this has a noticable impact
on large search results.

8 years agoAdd a pattern_cache_t to speed up a few repeated matches.
Kevin McCarthy [Tue, 3 Jan 2017 02:08:17 +0000 (18:08 -0800)]
Add a pattern_cache_t to speed up a few repeated matches.

Vincent Lefèvre reported experiencing an index display performance
issue.  This occurred with messages containing many recipients.  He
had many index color lines containing ~l.  The ~l ended up being run
over and over on these messages, resulting in a noticable slowdown
displaying the index.

This patch adds caching for just a few of the pattern operations (~l,
~u, ~p, ~P) that are potentially expensive and also don't have
arguments.  The caching is only enabled for operations repeatedly
matching against the same message: color, hooks, scoring.

The caching is fairly targeted, but isn't that invasive or
complicated.

8 years agoCanonicalize line endings for GPGME S/MIME encryption. (closes #3904)
Kevin McCarthy [Sun, 1 Jan 2017 03:57:07 +0000 (19:57 -0800)]
Canonicalize line endings for GPGME S/MIME encryption. (closes #3904)

This matches the behavior for S/MIME classic mode: OpenSSL converts
the line endings to cr/lf before encrypting.  Although Mutt always
canonicalizes the line endings before verifying the signature, some
clients do not do this for encrypted messages.

Thanks to cooler for the patch!

8 years agoMake to_chars and status_chars accept mulitibyte characters. (closes #3024)
Kevin McCarthy [Tue, 27 Dec 2016 23:23:37 +0000 (15:23 -0800)]
Make to_chars and status_chars accept mulitibyte characters. (closes #3024)

Change Tochars and StChars to use the mbchars_table type introduced in
the last commit.

8 years agoCreate mbchar_table type for multibyte character arrays. (see #3024)
Kevin McCarthy [Tue, 27 Dec 2016 23:23:19 +0000 (15:23 -0800)]
Create mbchar_table type for multibyte character arrays. (see #3024)

This type is to allow multibyte characters in to_chars and
status_chars while preserving efficient indexing to each character.

The arrays are tokenized during initialization, and are re-tokenized
as the values are unset, reset, and set.

8 years agoIn the manual, replaced 2 para by example (similar to the first example).
Vincent Lefevre [Sun, 25 Dec 2016 22:31:01 +0000 (23:31 +0100)]
In the manual, replaced 2 para by example (similar to the first example).

8 years agoAdd option to control whether threads uncollapse when new mail arrives.
David Champion [Tue, 13 Dec 2016 20:19:05 +0000 (12:19 -0800)]
Add option to control whether threads uncollapse when new mail arrives.

Adds $uncollapse_new: when set, the default, a collapsed thread into
which a new message arrives will be uncollapsed to reveal the new
message.

8 years agoRemove unused OPS
Richard Russon [Tue, 13 Dec 2016 20:02:08 +0000 (12:02 -0800)]
Remove unused OPS

OP_MAIN_FIRST_MESSAGE and OP_MAIN_LAST_MESSAGE were added to the
code 19 years ago.  They weren't used then; they haven't been used since.

8 years agoRework OpenSSL certificate verification to support alternative chains. (closes #3903)
Michał Kępień [Tue, 13 Dec 2016 19:16:10 +0000 (11:16 -0800)]
Rework OpenSSL certificate verification to support alternative chains. (closes #3903)

The way Mutt currently verifies SSL certificates using OpenSSL does
not support alternative chains, which may cause confusion when some
popular mail providers (e.g. Gmail) are used with specific sets of
trusted CA certificates.

Replace the "manual" verification done by mutt in
check_certificate_by_signer() with SSL_set_verify() using a callback.
OpenSSL then does the certificate verification, including properly
looking at alternative chains.  The callback still provides the
opportunity to override using ~/.mutt_certificates or an interactive
prompt.

8 years agoAdd setenv/unsetenv commands.
David Champion [Mon, 12 Dec 2016 02:56:59 +0000 (18:56 -0800)]
Add setenv/unsetenv commands.

These can be used to add and remove environment variables passed to
children via mutt_system().

Commited by Kevin McCarthy with some cleanup.

8 years agoMove '@' pattern modifier documentation to the right section.
Kevin McCarthy [Wed, 7 Dec 2016 03:07:32 +0000 (19:07 -0800)]
Move '@' pattern modifier documentation to the right section.

Somehow, the patch got out of date and the documentation shifted to
another section.  Relocate back to the "Pattern Modifier" section.

8 years agomerge stable
Kevin McCarthy [Mon, 5 Dec 2016 00:04:29 +0000 (16:04 -0800)]
merge stable

8 years agomutt-1.7.2 signed
Kevin McCarthy [Mon, 5 Dec 2016 00:03:00 +0000 (16:03 -0800)]
mutt-1.7.2 signed

8 years agoAdded tag mutt-1-7-2-rel for changeset 99f5624d1f52
Kevin McCarthy [Mon, 5 Dec 2016 00:01:49 +0000 (16:01 -0800)]
Added tag mutt-1-7-2-rel for changeset 99f5624d1f52

8 years agoautomatic post-release commit for mutt-1.7.2
Kevin McCarthy [Mon, 5 Dec 2016 00:01:32 +0000 (16:01 -0800)]
automatic post-release commit for mutt-1.7.2

8 years agomerge stable
Kevin McCarthy [Sun, 4 Dec 2016 23:41:33 +0000 (15:41 -0800)]
merge stable

8 years agoChange sidebar_spoolfile coloring to be lower precedence.
Kevin McCarthy [Sat, 3 Dec 2016 23:24:32 +0000 (15:24 -0800)]
Change sidebar_spoolfile coloring to be lower precedence.

Give sidebar_new and sidebar_flagged higher precedence than
sidebar_spoolfile, so that new and flagged message colors will show up
for the spoolfile in the sidebar.

Thanks to Till Smejkal for the original patch.

8 years agoReturn to pager upon aborting a jump operation. (closes #3901)
Kevin McCarthy [Wed, 30 Nov 2016 01:48:33 +0000 (17:48 -0800)]
Return to pager upon aborting a jump operation. (closes #3901)

8 years agoAdd mutt_array_size macro, change interactive_check_cert() to use it. (see #3899)
Kevin McCarthy [Wed, 30 Nov 2016 01:44:37 +0000 (17:44 -0800)]
Add mutt_array_size macro, change interactive_check_cert() to use it.  (see #3899)

While I have reservations about the construct, it does make the
interactive_check_cert() menu->max and part loop less fragile.

8 years agoImprove openssl interactive_check_cert. (closes #3899)
Kevin McCarthy [Wed, 30 Nov 2016 01:44:31 +0000 (17:44 -0800)]
Improve openssl interactive_check_cert. (closes #3899)

Don't use X509_NAME_oneline() with a fixed size buffer, which could
truncate the string, perhaps leaving off the CN field entirely.
Instead, work directly off the X509_NAME.

Rather than use strstr to tokenize it, call
X509_NAME_get_text_by_NID() with the nid types.  Although
X509_NAME_get_text_by_NID() is "legacy", it is the most directly
useful for mutt in this simple interactive prompt.

The function was set up to include the ST and C fields in the prompt,
but the loop limit was too low.  I believe this was an oversight, so
increase the loop to include those two fields.

8 years agoFix build failure with GPGME 1.8: do not steal the gpgme_ prefix.
Vincent Lefevre [Fri, 25 Nov 2016 23:57:42 +0000 (00:57 +0100)]
Fix build failure with GPGME 1.8: do not steal the gpgme_ prefix.

8 years agoFix build failure with GPGME 1.8: do not steal the gpgme_ prefix.
Vincent Lefevre [Fri, 25 Nov 2016 23:57:42 +0000 (00:57 +0100)]
Fix build failure with GPGME 1.8: do not steal the gpgme_ prefix.

8 years agoCorrected comment.
Vincent Lefevre [Tue, 22 Nov 2016 02:48:10 +0000 (03:48 +0100)]
Corrected comment.

8 years agoRevert db13010a2e8d but add a comment. (see #3870)
Kevin McCarthy [Tue, 22 Nov 2016 02:03:20 +0000 (18:03 -0800)]
Revert db13010a2e8d but add a comment. (see #3870)

X509_NAME_oneline() always NULL-terminates the string, even when it
has to truncate the data to fit in buf.

8 years agoMake sure that the output of X509_NAME_oneline is null-terminated.
Vincent Lefevre [Mon, 21 Nov 2016 22:10:47 +0000 (23:10 +0100)]
Make sure that the output of X509_NAME_oneline is null-terminated.

8 years agoMinor resource and error logic cleanup in tunnel_socket_open()
Kevin McCarthy [Mon, 21 Nov 2016 00:19:18 +0000 (16:19 -0800)]
Minor resource and error logic cleanup in tunnel_socket_open()

Free the conn->sockdata on failure.  conn->fd is not set until the
bottom, and before it is set, conn->conn_close() will not be called.

Close the pin pipe if the pout pipe fails.

Call mutt_perror first on a fork failure.  Calling after the close()
may cause errno to be changed on a close failure.

8 years agoDon't close stderr when opening a tunnel. (closes #3726)
Kevin McCarthy [Mon, 21 Nov 2016 00:19:17 +0000 (16:19 -0800)]
Don't close stderr when opening a tunnel. (closes #3726)

Instead of closing stderr, redirect it to /dev/null in
tunnel_socket_open().  Otherwise a program can accidentally open a
file into handle 2 and then unknowingly use that when trying to print
to stderr.

Thanks to lotheac for the original patch, which I just modified
slightly.

8 years agoMore openssl1.1 fixes: remove uses of X509->name in debugging. (closes #3870)
Kevin McCarthy [Sun, 20 Nov 2016 03:35:07 +0000 (19:35 -0800)]
More openssl1.1 fixes: remove uses of X509->name in debugging. (closes #3870)

X509->name was a shortcut for the longer
  name = X509_NAME_oneline (X509_get_subject_name (cert),
    buf, sizeof (buf));
invocation.  Change the debugging to print the cert name and chain
names in the ssl_check_certificate() loop instead.

8 years agoMore openssl1.1 fixes: remove uses of X509->name in debugging. (closes #3870)
Kevin McCarthy [Sun, 20 Nov 2016 03:35:07 +0000 (19:35 -0800)]
More openssl1.1 fixes: remove uses of X509->name in debugging. (closes #3870)

X509->name was a shortcut for the longer
  name = X509_NAME_oneline (X509_get_subject_name (cert),
    buf, sizeof (buf));
invocation.  Change the debugging to print the cert name and chain
names in the ssl_check_certificate() loop instead.

8 years agoUpdated French translation.
Vincent Lefevre [Sun, 20 Nov 2016 00:41:49 +0000 (01:41 +0100)]
Updated French translation.

8 years agoFix mark-message translation and keybind menu.
Kevin McCarthy [Fri, 18 Nov 2016 23:54:27 +0000 (15:54 -0800)]
Fix mark-message translation and keybind menu.

Move the OP_MARK_MESSAGE and hotkey macro from MENU_GENERIC to the
MENU_MAIN keymap.  Putting the macro under generic prevents it from
overriding a keybinding in the index (even if the function is bound to
noop).  Additionally, the macro can only be executed from the index,
so it doesn't make sense as a generic keybinding.

Use the term "hotkey" in both the OPS and km_bind description.

Mark the km_bind description translatable.

Add L10N messages for the new translation strings.

8 years agoImprove two compress translation messages.
Kevin McCarthy [Fri, 18 Nov 2016 22:20:54 +0000 (14:20 -0800)]
Improve two compress translation messages.

Change the "Error executing" to "Error running", which is used in
multiple places elsewhere in mutt.  This also removes the
unnecessary newline.

Remove the leading space in the "Error compressing" message, and
change it to match the error message in editmsg.c.

8 years agoUpdated French translation.
Vincent Lefevre [Fri, 18 Nov 2016 17:17:02 +0000 (18:17 +0100)]
Updated French translation.

8 years agoMake a string translatable.
Vincent Lefevre [Fri, 18 Nov 2016 16:00:23 +0000 (17:00 +0100)]
Make a string translatable.

8 years agoMake a string translatable. Add a missing space at the end.
Vincent Lefevre [Fri, 18 Nov 2016 15:59:22 +0000 (16:59 +0100)]
Make a string translatable. Add a missing space at the end.

8 years agoUpdated French translation (except for 1 string).
Vincent Lefevre [Fri, 18 Nov 2016 12:07:59 +0000 (13:07 +0100)]
Updated French translation (except for 1 string).

8 years agoUpdated requirement on the C compiler.
Vincent Lefevre [Fri, 18 Nov 2016 11:32:46 +0000 (12:32 +0100)]
Updated requirement on the C compiler.

8 years agoRevert changes made to mutt_find_cfg() in 3c6d322912e3
Kevin McCarthy [Fri, 18 Nov 2016 01:54:35 +0000 (17:54 -0800)]
Revert changes made to mutt_find_cfg() in 3c6d322912e3

The usage of MUTT_VERSION in mutt_find_cfg() was fine before the
commit: it wasn't using MUTT_VERSION inlined into a string with format
string substitution.

Revert to the version of mutt_find_cfg() before that changeset.

8 years agoAdds <mark-message> binding to create "hotkeys" for messages.
David Champion [Thu, 17 Nov 2016 23:57:42 +0000 (15:57 -0800)]
Adds <mark-message> binding to create "hotkeys" for messages.

<mark-message>foo<enter> will create a new macro "'foo" which will
return to the current message by searching for that message's
message id.  The initial character of the macro is defined by
$mark_macro_prefix, and defaults to "'" for verisimilitude vs. vi.

Pushed by Kevin McCarthy with a minor fix.

8 years agoBackout inlining of MUTT_VERSION in 42fee7585fae.
Kevin McCarthy [Thu, 17 Nov 2016 23:07:14 +0000 (15:07 -0800)]
Backout inlining of MUTT_VERSION in 42fee7585fae.

If MUTT_VERSION contains a %, this will result in problems.

8 years agoAdds the '@' pattern modifier to limit matches to known aliases.
David Champion [Thu, 17 Nov 2016 00:05:02 +0000 (16:05 -0800)]
Adds the '@' pattern modifier to limit matches to known aliases.

Example: ~f joe matches messages from joe. @~f joe matches messages from
any joe who is defined as an alias.

Pushed by Kevin McCarthy with two minor cosmetic fixes.

8 years agoWhen $flag_safe is set, flagged messages cannot be deleted.
David Champion [Wed, 16 Nov 2016 23:43:50 +0000 (15:43 -0800)]
When $flag_safe is set, flagged messages cannot be deleted.

This saves them from bulk operations on threads and tagged messages.  To
remove a flagged message, first unflag it.

8 years agoFix muttbug to check $XDG_CONFIG_HOME.
Kevin McCarthy [Tue, 15 Nov 2016 20:04:16 +0000 (12:04 -0800)]
Fix muttbug to check $XDG_CONFIG_HOME.

Fall back to $HOME/.config if $XDG_CONFIG_HOME is not set.

8 years agoFix loop terminator in in mutt_find_cfg().
Kevin McCarthy [Tue, 15 Nov 2016 20:03:58 +0000 (12:03 -0800)]
Fix loop terminator in in mutt_find_cfg().

Keep searching even if home is NULL.

8 years agoEnsure the compressed documentation is always built.
Kevin McCarthy [Mon, 14 Nov 2016 19:02:17 +0000 (11:02 -0800)]
Ensure the compressed documentation is always built.

Add USE_COMPRESSED to makedoc-defs.h so any conditional documentation
will always be built.

8 years agoCompress: check mailbox type if possible when appending.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:36 +0000 (20:02 -0800)]
Compress: check mailbox type if possible when appending.

If an append hook isn't defined, then mutt has to decompress the
mailbox.  In that case, we can check the type of the decompressed
mailbox instead of defaulting to DefaultMagic.

8 years agoCompress: escape single quotes when invoking the compress/decompress commands.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:36 +0000 (20:02 -0800)]
Compress: escape single quotes when invoking the compress/decompress commands.

The format strings are placed in single quotes.  mutt_system() invokes
sh, so escape the single quotes using bourne-shell syntax: '\''

8 years agoCompress: fix check_mailbox and sync_mailbox.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:35 +0000 (20:02 -0800)]
Compress: fix check_mailbox and sync_mailbox.

Change check_mailbox to delegate to the child_ops->check_mailbox if
the compressed mailbox has changed.  This allows the mailbox to
properly recover if both the decompressed mailbox and compressed file
have changed.

Change sync_mailbox to call check_mailbox before attempting to sync.
This will prevent overwriting external changes to the compressed
mailbox.