]> granicus.if.org Git - neomutt/log
neomutt
8 years agofix: don't crash when the imap connection dies
Richard Russon [Fri, 4 Nov 2016 14:55:41 +0000 (14:55 +0000)]
fix: don't crash when the imap connection dies

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Fri, 28 Oct 2016 15:01:14 +0000 (16:01 +0100)]
merge: upstream fixes (mutt/default)

 * Add root-message function to jump to root message in thread.
 * Updated French translation.
 * Prevent an integer overflow in mutt_mktime() (closes #3880)
 * Fix pager segfault when lineInfo.chunks overflows. (closes #3888)
 * Perform charset conversion on text attachments when piping. (closes #3773) (see #3886)

8 years agoPerform charset conversion on text attachments when piping. (closes #3773) (see ...
Kevin McCarthy [Sun, 23 Oct 2016 22:11:56 +0000 (15:11 -0700)]
Perform charset conversion on text attachments when piping. (closes #3773) (see #3886)

When piping a text attachment, there is no reliable way to know the
charset used.

Vincent Lefèvre says:
  It was decided in the past that when there is no information on the
  charset in a transmission to an external command (e.g. as for mail
  composing), texts are expected to be transmitted in the local
  charset.

Add a MUTT_CHARSET flag to enable charset conversion on text
attachments for both when $attach_split is set and unset.

8 years agoFix pager segfault when lineInfo.chunks overflows. (closes #3888)
Kevin McCarthy [Sun, 23 Oct 2016 21:46:37 +0000 (14:46 -0700)]
Fix pager segfault when lineInfo.chunks overflows. (closes #3888)

The reporter had an html attachment with extremely long lines,
combined with a color pattern of "color body default default ."
This overflowed the lineInfo.chunks, causing a segfault.

Abort the body color patterns if this happens.

8 years agoPrevent an integer overflow in mutt_mktime() (closes #3880)
Kevin McCarthy [Sun, 23 Oct 2016 20:43:56 +0000 (13:43 -0700)]
Prevent an integer overflow in mutt_mktime() (closes #3880)

Check to make sure the year passed in isn't bigger than can be
represented using time_t on the platform.

Also add a (time_t) cast to an intermediate "years * 365" calculation
to prevent an overflow there.

Thanks to TAKAHASHI Tamotsu for his patch, and to Vincent Lefèvre for
his improvement.  I merely took their code and commited it.

8 years agoUpdated French translation.
Vincent Lefevre [Thu, 20 Oct 2016 08:30:36 +0000 (10:30 +0200)]
Updated French translation.

8 years agoAdd root-message function to jump to root message in thread.
Kevin McCarthy [Wed, 19 Oct 2016 20:21:16 +0000 (13:21 -0700)]
Add root-message function to jump to root message in thread.

This seems like a useful feature that was brought up for discussion on
mutt-users.  Proposed solutions involved collapsing/uncollapsing
threads, but it's not hard to modify the mutt_parent_message()
function to return the root instead.

8 years agoNeoMutt 2016-10-28 (1.7.1) neomutt-20161028
Richard Russon [Fri, 28 Oct 2016 11:56:10 +0000 (12:56 +0100)]
NeoMutt 2016-10-28 (1.7.1)

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Fri, 28 Oct 2016 10:13:24 +0000 (11:13 +0100)]
merge: upstream fixes (mutt/default)

 * Fix POP3 SASL authentication mechanism DIGEST-MD5. (closes #3862)
 * Add a few explanatory comments to pop_auth_sasl().  (see #3862)
 * Fix GPGME signature zero timestamp and locale awareness issues. (closes #3882)
 * Handle presence of '--' delimiter in $sendmail. (closes #3168)
 * Allow IPv6 literal addresses in URLs. (closes #3681)
 * Fix gpgme segfault in create_recipient_set().
 * Use mutt_strlen and mutt_strncmp in sidebar.c.
 * Change sidebar to only match $folder prefix on a $sidebar_divider_char. (closes #3887)
 * Actually fix gpgme segfault in create_recipient_set().

8 years agoActually fix gpgme segfault in create_recipient_set().
Kevin McCarthy [Mon, 17 Oct 2016 18:22:13 +0000 (11:22 -0700)]
Actually fix gpgme segfault in create_recipient_set().

Changeset 6e44bfa16096 did not fix the segv.  (Sorry, I made the fix
based off a report on IRC but didn't trigger the segv myself: it was
caused by an out-of-tree patch).

The actual problem was that the rset was only resized on a successful
gpgme_get_key().  However, on error, the array still needs to be
NULL-terminated before calling free_recipient_set().

Move the resize so it always takes place.  This obviates the need for
the NULL check added in 6e44bfa16096.

8 years agoChange sidebar to only match $folder prefix on a $sidebar_divider_char. (closes ...
Kevin McCarthy [Sun, 16 Oct 2016 22:44:17 +0000 (15:44 -0700)]
Change sidebar to only match $folder prefix on a $sidebar_divider_char. (closes #3887)

The reporter had a $spoolfile of ~/Mailbox and a $folder of ~/Mail.
The sidebar was truncating the spoolfile to "ox" because it only
looked at a substring prefix match.

8 years agoUse mutt_strlen and mutt_strncmp in sidebar.c.
Kevin McCarthy [Sun, 16 Oct 2016 22:12:33 +0000 (15:12 -0700)]
Use mutt_strlen and mutt_strncmp in sidebar.c.

This prevents a segv if folder is unset.

8 years agoFix gpgme segfault in create_recipient_set().
Kevin McCarthy [Sun, 16 Oct 2016 21:16:47 +0000 (14:16 -0700)]
Fix gpgme segfault in create_recipient_set().

If gpgme_get_key() errors on the first key, the rset will not be
allocated yet.  Attempting to null-terminate (and then free) the array
causes a segfault.

8 years agoAllow IPv6 literal addresses in URLs. (closes #3681)
Kevin McCarthy [Sat, 15 Oct 2016 21:45:55 +0000 (14:45 -0700)]
Allow IPv6 literal addresses in URLs. (closes #3681)

RFCs 2732 and 3986 specify a literal IPv6 address be surrounded by
"[]".

This patch removes the "[]" delimiters when parsing the URL, but adds
them back in url_ciss_tostring() if the host name contains a ':'.

Thanks to Evgeni Golov for the original patch.

8 years agoHandle presence of '--' delimiter in $sendmail. (closes #3168)
Kevin McCarthy [Thu, 13 Oct 2016 01:10:35 +0000 (18:10 -0700)]
Handle presence of '--' delimiter in $sendmail. (closes #3168)

If the delimiter exists, additional sendmail flags will be inserted
before the delimiter.  Any arguments after the delimiter will be
preserved as recipients.

8 years agoFix GPGME signature zero timestamp and locale awareness issues. (closes #3882)
TAKAHASHI Tamotsu [Wed, 12 Oct 2016 02:42:14 +0000 (19:42 -0700)]
Fix GPGME signature zero timestamp and locale awareness issues. (closes #3882)

GPGME signature information has two minor problems.

[-- Begin signature information --]
*BAD* signature from: Name <user@example.com>
                 aka: Name <user@example.org>
             created: Thu Jan  1 09:00:00 1970
[-- End signature information --]

First, the created timestamp is incorrect when the message is not
verified successfully.

Second, as the code itself has some "TODO" comments, "aka" and
"created" lines are not properly-aligned when LC_MESSAGES != English.

8 years agoAdd a few explanatory comments to pop_auth_sasl(). (see #3862)
Kevin McCarthy [Tue, 11 Oct 2016 01:09:00 +0000 (18:09 -0700)]
Add a few explanatory comments to pop_auth_sasl().  (see #3862)

8 years agoFix POP3 SASL authentication mechanism DIGEST-MD5. (closes #3862)
Unknown [Mon, 10 Oct 2016 23:33:13 +0000 (16:33 -0700)]
Fix POP3 SASL authentication mechanism DIGEST-MD5. (closes #3862)

sasl_client_step() returns SASL_OK after the fourth step: server auth
confirmation.  However, the protocol requires the client send one more
blank line to the server, to which the server then replies with "+OK".
See https://tools.ietf.org/html/rfc5034#section-6.

The code currently only sends a final response if sasl_client_step
returns data to send.  Change it to always send a final client message
after the SASL_OK.

8 years agoRevert "fix: display correct help key"
Richard Russon [Fri, 28 Oct 2016 10:11:33 +0000 (11:11 +0100)]
Revert "fix: display correct help key"

This reverts commit c36a04b235c37aa705dc629a2b0f5a0df1553200.
The change wasn't needed, after all.

8 years agodocs: light tidying
Richard Russon [Thu, 27 Oct 2016 01:25:21 +0000 (02:25 +0100)]
docs: light tidying

[ci skip]

8 years agosidebar: consider description when using whitelist
Doug Stone-Weaver [Wed, 26 Oct 2016 15:35:52 +0000 (16:35 +0100)]
sidebar: consider description when using whitelist

Closes: #174
8 years agofix sensible-browser/notmuch changing mailbox
Richard Russon [Wed, 26 Oct 2016 14:51:44 +0000 (15:51 +0100)]
fix sensible-browser/notmuch changing mailbox

When sensible-browser tries to change mailbox, it gets confused because
mutt_get_parent_path() didn't understand notmuch paths.

Fixes: #197
8 years agotravis: install doc dependencies
Richard Russon [Tue, 25 Oct 2016 16:33:35 +0000 (17:33 +0100)]
travis: install doc dependencies

8 years agobuild: fix install/dist/distcheck targets
Richard Russon [Tue, 25 Oct 2016 13:46:25 +0000 (14:46 +0100)]
build: fix install/dist/distcheck targets

Closes: #103
8 years agobuild: fix a couple of build warnings
Richard Russon [Mon, 24 Oct 2016 18:22:37 +0000 (19:22 +0100)]
build: fix a couple of build warnings

8 years agobuild: Look for tgetent in ncurses, fallback to tinfo only if not found
Pietro Cerutti [Fri, 21 Oct 2016 12:38:14 +0000 (12:38 +0000)]
build: Look for tgetent in ncurses, fallback to tinfo only if not found

On some platforms, autoconf caused neomutt to be linked against both
ncurses and ncursesw.

8 years agofix: display correct help key
Richard Russon [Mon, 24 Oct 2016 22:16:38 +0000 (23:16 +0100)]
fix: display correct help key

If you remap the help key, then press an unbound key, mutt still tells
you to press '?' for help.  This change makes mutt display a correct
binding.

Fixes: #214
8 years agofix: remove stray line introduced by pager fix
Richard Russon [Mon, 24 Oct 2016 22:03:15 +0000 (23:03 +0100)]
fix: remove stray line introduced by pager fix

8 years agonotmuch: Add a fake "Folder" header to viewed emails
Ismaël Bouya [Thu, 20 Oct 2016 12:37:47 +0000 (14:37 +0200)]
notmuch: Add a fake "Folder" header to viewed emails

When viewing an email from a virtual folder, you can't tell where the
real email lives.  This commit adds a fake header, "Folder:" showing
that location.

Closes: #210
8 years agoPossible fix for random pager crashes.
Richard Russon [Sun, 23 Oct 2016 17:18:08 +0000 (18:18 +0100)]
Possible fix for random pager crashes.

The crashes have been observed:
- in both local and remote mailboxes
- with/without notmuch
- always are some time has passed
- always have an invalid header pointer

Scenario:
- The Context holds an array of HEADER pointers.
- The pager is given a HEADER to display.
- Time passes and the mailbox changes.

mx_check_mailbox() adds new mails to the end of the Context's array,
calling mx_alloc_memory() if necessary.  The Context's totals are
updated by mx_update_context().

The only way a HEADER pointer could become invalid is if they email were
deleted/moved.  If we detect this has happened, we leave the pager.

8 years agomerge: forgotten-attachment
Richard Russon [Wed, 19 Oct 2016 23:47:14 +0000 (00:47 +0100)]
merge: forgotten-attachment

 * Fix checking logic.
 * Ignore lines matching quote_regexp.
 * Update docs regarding $quote_regexp.

Resolves: #178
Closes: #206
8 years agoforgotten-attachment: Update docs regarding $quote_regexp.
Steven! Ragnarök [Wed, 19 Oct 2016 14:40:46 +0000 (10:40 -0400)]
forgotten-attachment: Update docs regarding $quote_regexp.

8 years agoforgotten-attachment: Ignore lines matching quote_regexp.
Steven! Ragnarök [Wed, 19 Oct 2016 00:05:29 +0000 (20:05 -0400)]
forgotten-attachment: Ignore lines matching quote_regexp.

Ignore quoted text in the email when searching for attachment
indicators.

8 years agoforgotten-attachment: Fix checking logic.
Steven! Ragnarök [Tue, 18 Oct 2016 20:45:26 +0000 (16:45 -0400)]
forgotten-attachment: Fix checking logic.

Don't bother searching the email for attachment keywords, if:
- The feature is disabled
- There's an attachment

8 years agofix: "inbox" sorting function
Pietro Cerutti [Tue, 18 Oct 2016 14:25:31 +0000 (14:25 +0000)]
fix: "inbox" sorting function

Make mutt_is_inbox only consider an "INBOX" string following a '/'

Fixes: #205
8 years agofix crash in hdrline
Richard Russon [Tue, 11 Oct 2016 11:01:00 +0000 (12:01 +0100)]
fix crash in hdrline

This commit should prevent the crash detailed in this bug report.
    http://bugs.debian.org/838064

However, it's just fixing the symptom, not the cause.

8 years agofix: overhaul the index/pager updates
Richard Russon [Tue, 11 Oct 2016 11:01:00 +0000 (12:01 +0100)]
fix: overhaul the index/pager updates

Wherever you are in the index/pager, you will be notified of new mail
when it arrives.

Make sure the last message displayed is the one saying "new mail".

Notes:
    If you have a mail filtering system that marks mail as read, you
    won't get notifications when it arrives in a mailbox.

    When you send an email, the "sent" copy won't trigger a new mail
    notification.

Fixes: #20 - Notification of sent mail
Fixes: #195 - Cursor loses position when leaving pager
8 years agopager: skip to body for skip-quoted
David Sterba [Mon, 17 Oct 2016 11:57:34 +0000 (13:57 +0200)]
pager: skip to body for skip-quoted

In mails with many headers that fill the whole screen, it's convenient
to jump to the body, implemented as a side-efect of the <skip-quoted>
command.

Closes: #201
Signed-off-by: David Sterba <dsterba@suse.cz>
8 years agonntp: fix resource leak
Richard Russon [Tue, 18 Oct 2016 15:40:18 +0000 (16:40 +0100)]
nntp: fix resource leak

Every $nntp_poll seconds, NNTP checks the file $newsrc
Unfortunately, it didn't release the file handle afterwards.

After a day's use, this would leak 1440 file handles leading most users
to the error "Too many open files".

Fixes: #204
8 years agonntp: use safe_{fopen,fclose}
Richard Russon [Tue, 18 Oct 2016 15:40:02 +0000 (16:40 +0100)]
nntp: use safe_{fopen,fclose}

8 years agouse a more expressive coverity scan badge
toogley [Mon, 17 Oct 2016 17:11:23 +0000 (19:11 +0200)]
use a more expressive coverity scan badge

8 years agoreplace the ugly strfcpy() macro with a function
Darshit Shah [Fri, 14 Oct 2016 22:59:42 +0000 (23:59 +0100)]
replace the ugly strfcpy() macro with a function

8 years agoNeoMutt 2016-10-14 (1.7.1) neomutt-20161014
Richard Russon [Fri, 14 Oct 2016 13:26:57 +0000 (14:26 +0100)]
NeoMutt 2016-10-14 (1.7.1)

8 years agobuild: update references to 1.7.1
Richard Russon [Fri, 14 Oct 2016 12:51:21 +0000 (13:51 +0100)]
build: update references to 1.7.1

8 years agodocs: update notmuch references
Richard Russon [Fri, 14 Oct 2016 12:44:42 +0000 (13:44 +0100)]
docs: update notmuch references

8 years agofix updates when pager is open
Richard Russon [Mon, 10 Oct 2016 16:03:39 +0000 (17:03 +0100)]
fix updates when pager is open

This is an update to #19 - new-mail doesn't fire if pager open

Issue #19 changed NeoMutt so that it would notify the user of incoming
mail, even when they were in the pager.  However, there was one case
where it didn't work -- new mail arriving in the current mailbox.

8 years agofix crash when neither $spoolfile, $folder are set
Richard Russon [Sat, 8 Oct 2016 12:54:08 +0000 (13:54 +0100)]
fix crash when neither $spoolfile, $folder are set

When neither $spoolfile, nor $folder are set realpath() is passed a NULL
parameter.  On MacOS, this crashes whereas the glibc version returns
NULL.

Fixing this, revealed other problems in mx_open_mailbox() and the
Sidebar.  These were caused by empty paths.

Fixes: #187
8 years agosidebar: Make sure INBOX appears first in the list.
Pietro Cerutti [Mon, 10 Oct 2016 13:01:36 +0000 (13:01 +0000)]
sidebar: Make sure INBOX appears first in the list.

This affects (and makes consistent) the order of folders in the sidebar
and the folder browser.

Closes: #190
8 years agoforgotten-attachment: fix empty regex expression
Richard Russon [Mon, 10 Oct 2016 08:51:05 +0000 (09:51 +0100)]
forgotten-attachment: fix empty regex expression

The original regex was of the form "abc(|def)" to check for both "abc"
and "abcdef".  Unfortunately, the regex libraries on BSDs/MacOS don't
like this use of an empty sub-expression.

Expanding the regex to: "(abc|abcdef)" fixes the problem.

Fixes: neomutt/homebrew-neomutt#15
8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Sun, 9 Oct 2016 10:39:58 +0000 (11:39 +0100)]
merge: upstream fixes (mutt/default)

 * Preserve forwarded attachment names in d_filename.
 * Updated Czech translation.
 * Mark IMAP fast-trash'ed messages as read before copying. (see #3860)
 * automatic post-release commit for mutt-1.7.1

8 years agoautomatic post-release commit for mutt-1.7.1
Kevin McCarthy [Sat, 8 Oct 2016 19:56:22 +0000 (12:56 -0700)]
automatic post-release commit for mutt-1.7.1

8 years agoMark IMAP fast-trash'ed messages as read before copying. (see #3860)
Kevin McCarthy [Thu, 6 Oct 2016 19:35:38 +0000 (12:35 -0700)]
Mark IMAP fast-trash'ed messages as read before copying. (see #3860)

Regular copying/saving messages in mutt via a UID COPY first calls
imap_sync_message().  However that function is designed to sync all
flags (including deleted), and so isn't useful for the fast-trash
code.

As an easier solution, instead add a UID STORE to set \\Seen for the
same msgset as the trashed messages.

8 years agoUpdated Czech translation.
Petr Pisar [Wed, 5 Oct 2016 22:04:57 +0000 (15:04 -0700)]
Updated Czech translation.

8 years agoPreserve forwarded attachment names in d_filename.
Kevin McCarthy [Tue, 4 Oct 2016 18:13:24 +0000 (11:13 -0700)]
Preserve forwarded attachment names in d_filename.

When forwarding an attachment with an non-ascii name, mutt_copy_body()
mangles the filename when calling mutt_adv_mktemp.  Preserve
the original attachment filename in d_filename.

Remove the double copy of b->filename, which is a memory leak.

8 years agofix: status-color when pager_index_lines > 0
Richard Russon [Sun, 9 Oct 2016 10:29:46 +0000 (11:29 +0100)]
fix: status-color when pager_index_lines > 0

mutt_pager() was missing a call to mutt_draw_statusline().

Fixes: #189
8 years agofix buffer underrun when no menu item is selected
Richard Russon [Sat, 8 Oct 2016 13:44:47 +0000 (14:44 +0100)]
fix buffer underrun when no menu item is selected

8 years agonotmuch: Synchronise tags to flags
Kevin Velghe [Sun, 14 Aug 2016 22:24:20 +0000 (00:24 +0200)]
notmuch: Synchronise tags to flags

Currently, flags are synced to tags, but the reverse isn't true. If you
mark a mail as unread "the mutt way", you'll be able to find this mail
using tag:unread, however if you remove the tag unread, the flags aren't
adjusted, and it's still marked unread in mutt.

This functionality is provided by notmuch, but means that any mail has
to be synced to disc when the labels are modified, which conflicts with
the way synchronisation to disk works in mutt.

To solve this properly, it's best to just check if the changes performed
in the tags involve some flags handled by mutt, and if so, update the
header in mutt. When mutt syncs to disc, the flags will be adjusted on
disc as well.

Some remarks:

- The parsing code is currently duplicated. I'll fix this.
- The labels are currently hard-coded. It seems like notmuch doesn't
  allow customisation of these labels, but mutt-kz does for unread.
- The draft and passed labels are currently ignored, as they aren't
  handled by mutt.

Closes: karelzak/mutt-kz#148
8 years agofix: crash handling keywords/labels
Richard Russon [Thu, 6 Oct 2016 14:01:20 +0000 (15:01 +0100)]
fix: crash handling keywords/labels

When an email is read by NeoMutt the labels are stored in linked list of
strings.  These strings are used as keys in a hash table of all labels.

If NeoMutt reads another email with the same label, it's given a
reference to the same hash.

Now imagine that the first email is deleted -- the list of labels is
also deleted, so that hash now has invalid keys.

This commit maintains a linked list of all labels and uses that for the
hash table keys.  It's not very efficient, but it avoids having to
change the hash table code.

Note: dgc (the keywords author) has created a new version which will
supplant this one, soon.

Fixes: #164
8 years agofix: strfcpy() improvement
Richard Russon [Tue, 4 Oct 2016 12:19:09 +0000 (13:19 +0100)]
fix: strfcpy() improvement

A quick string copying history.

In the beginning was: strcpy (DST, SRC);
If the SRC was bigger than DST, then bad things happened.

Then came: strncpy (DST, SRC, LEN);
If SRC is longer than LEN, then the string in DST isn't NULL terminated.
Bad things happened.

Next, Mutt created a macro strfcpy() based on the BSD function.  It
guarantees a length limit AND a NULL termination.

    #define strfcpy(DST,SRC,LEN) strncpy(DST,SRC,LEN), *(DST+(LEN)-1)=0

Because of the way it works, it triggers a warning in Coverity (a static
analysis tool).  It fills DST (without NULL), then writes the NULL.

My testing shows it works correctly, but I may missed something.

    #define strfcpy(DST,SRC,LEN) do { if ((LEN) > 0) { *(DST+(LEN)-1)=0; strncpy(DST,SRC,(LEN)-1); } } while (0)

8 years agoNeoMutt 2016-10-03 (1.7.0) neomutt-20161003
Richard Russon [Mon, 3 Oct 2016 11:21:11 +0000 (12:21 +0100)]
NeoMutt 2016-10-03 (1.7.0)

8 years agoMerge pull request #175 from gahr/neomutt
Pietro Cerutti [Mon, 3 Oct 2016 10:41:53 +0000 (11:41 +0100)]
Merge pull request #175 from gahr/neomutt

build: fix "make install"

8 years agobuild: fix "make install" 175/head
Pietro Cerutti [Mon, 3 Oct 2016 10:38:17 +0000 (10:38 +0000)]
build: fix "make install"

8 years agobuild: fix "make dist"
Richard Russon [Sun, 2 Oct 2016 19:52:37 +0000 (20:52 +0100)]
build: fix "make dist"

A renamed file broke the build.

8 years agoNeoMutt 2016-10-02 (1.7.0) neomutt-20161002
Richard Russon [Sun, 2 Oct 2016 15:13:51 +0000 (16:13 +0100)]
NeoMutt 2016-10-02 (1.7.0)

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Sun, 2 Oct 2016 15:05:55 +0000 (16:05 +0100)]
merge: upstream fixes (mutt/default)

 * Fix gpgme segfault when querying candidates with a '+' in the address. (closes #3873)
 * Use body color for gpgme output. (closes #3872)
 * Check for NULL mx_ops in mx.c
 * Mark some gpgme pgp menu keybinding translations as fuzzy. (closes #3874)
 * Don't abort the menu editor on sigwinch. (closes #3875)
 * Clear pager position when toggling headers.
 * Reset invalid parsed received dates to 0.  (closes #3878)
 * RFC2047-decode mailto header values. (closes #3879)
 * RFC2047-decode mailto url headers after RFC2822 parsing. (closes #3879)
 * Ensure signatures exist when verifying multipart/signed emails. (closes #3881).

8 years agoEnsure signatures exist when verifying multipart/signed emails. (closes #3881).
Kevin McCarthy [Sat, 1 Oct 2016 23:21:59 +0000 (16:21 -0700)]
Ensure signatures exist when verifying multipart/signed emails. (closes #3881).

TAKAHASHI Tamotsu reported that when gpg2 isn't in PATH, the
gpgme_op_verify() won't return an error, but instead will return a
result with no signatures.

verify_one() was only returning an error if a signature actually
failed, so in this case the function was defaulting to returning
success.

Other callers of gpgme_op_verify() check to make sure the
result->signatures exist before processing signatures.  Add a check
for verify_one() too.

8 years agoRFC2047-decode mailto url headers after RFC2822 parsing. (closes #3879)
Kevin McCarthy [Sat, 1 Oct 2016 20:58:35 +0000 (13:58 -0700)]
RFC2047-decode mailto url headers after RFC2822 parsing. (closes #3879)

Commit 55819a7e6169 performed the RFC2047 decode before the parsing.
This works okay for headers such as subject, but for others such as
address fields could lead to parsing errors.

Change to perform a decode on envelope headers after all the calls to
mutt_parse_rfc822_line(), using the same list of fields as
mutt_read_rfc822_header().

Change the do_2047 parameter of mutt_read_rfc822_line() to true, so
that user headers are decoded if needed.

8 years agoRFC2047-decode mailto header values. (closes #3879)
Kevin McCarthy [Wed, 28 Sep 2016 01:15:25 +0000 (18:15 -0700)]
RFC2047-decode mailto header values. (closes #3879)

RFC 6068 specifies that the header values (with the exception of body)
may contain RFC 2047-encoded values.

8 years agoReset invalid parsed received dates to 0. (closes #3878)
Kevin McCarthy [Sun, 25 Sep 2016 20:11:03 +0000 (13:11 -0700)]
Reset invalid parsed received dates to 0.  (closes #3878)

The actual problem in the ticket would be solved by d3f31cf9239e (see
#3798).  However there is still the bug that Mutt considers a
(hdr->received != 0) to be set and usable, despite not checking the
return value of mutt_parse_date().

Change mutt_read_rfc822_header() to unset an invalid received value
back to 0.  We don't do this inside mutt_read_rfc822_line() because
that would cause the next received line to be parsed.

8 years agoClear pager position when toggling headers.
Kevin McCarthy [Fri, 23 Sep 2016 23:07:36 +0000 (16:07 -0700)]
Clear pager position when toggling headers.

It doesn't make sense to try to preserve the pager position when
toggling headers: the purpose of toggling headers is to see the
headers in full or weeded state.  So, reset the position back to the
top.

8 years agoDon't abort the menu editor on sigwinch. (closes #3875)
Kevin McCarthy [Thu, 22 Sep 2016 21:07:18 +0000 (14:07 -0700)]
Don't abort the menu editor on sigwinch. (closes #3875)

getch() will return ERR on sigwinch when timeout() is called with a
positive value.  mutt_getch() will therefore return ch==-2 for both a
timeout and a sigwinch in this case.

The imap code in km_dokey() exits out of the ImapKeepalive loop for a
SigWinch, and was skipping past the check for MENU_EDITOR and
tmp.ch==-2.  Move this check below the gotkey: label so the
ImapKeepalive loop behaves the same as the Timeout code.

Thanks to nicop for reporting the problem and for the initial patch!

8 years agoMark some gpgme pgp menu keybinding translations as fuzzy. (closes #3874)
Antonio Radici [Thu, 22 Sep 2016 01:10:33 +0000 (18:10 -0700)]
Mark some gpgme pgp menu keybinding translations as fuzzy. (closes #3874)

Some translations for crypt-gpgme.c are marked as fuzzy but the keybindings
attached to these translations are not, this creates confusions for the users
who see the english message but have the keybindings for a message in their own
language available.

As long as the translations are fuzzy, the keybindings should stay fuzzy.

8 years agoCheck for NULL mx_ops in mx.c
Kevin McCarthy [Wed, 21 Sep 2016 20:51:01 +0000 (22:51 +0200)]
Check for NULL mx_ops in mx.c

Eike Rathke reported this happening when in an IMAP index view the
underlying connection was terminated, ctx->mx_ops was NULL and thus
accessing ctx->mx_ops->check segfaulted.

Thanks also to Eike Rathke for the initial patch, for which I expanded
the checks to other functions.

8 years agoUse body color for gpgme output. (closes #3872)
Antonio Radici [Tue, 20 Sep 2016 22:51:13 +0000 (15:51 -0700)]
Use body color for gpgme output. (closes #3872)

When switching from pgp_* commands to crypt_use_gpgme=yes, Peter
Colberg noticed that the output was colored 'brightyellow'.

The issue is that crypt-gpgme.c uses state_attach_puts in various
places where it should use state_puts to maintain compatibility with
the previous behavior in pgp.c.

8 years agoFix gpgme segfault when querying candidates with a '+' in the address. (closes #3873)
Antonio Radici [Tue, 20 Sep 2016 20:58:47 +0000 (13:58 -0700)]
Fix gpgme segfault when querying candidates with a '+' in the address. (closes #3873)

list_to_pattern() was not allocating enough space for the '+' to '%2B'
transformation.

8 years agodocs: fix notmuch vim syntax file
Richard Russon [Sun, 2 Oct 2016 12:04:09 +0000 (13:04 +0100)]
docs: fix notmuch vim syntax file

8 years agobuild fix for strndup / malloc
Richard Russon [Sun, 2 Oct 2016 12:01:06 +0000 (13:01 +0100)]
build fix for strndup / malloc

Some systems don't have strndup() and rely on our version.
I changed it to use Mutt's safe_malloc(), but unfortunately it gets
compiled into some tools which don't have that function.

8 years agotravis: install the kyoto-cabinet dev files
Richard Russon [Fri, 30 Sep 2016 18:51:32 +0000 (19:51 +0100)]
travis: install the kyoto-cabinet dev files

Now, we will be able to test the kyoto build automatically.

8 years agodocs: fix the alignment in a 'nested-if' example
Richard Russon [Fri, 30 Sep 2016 16:03:21 +0000 (17:03 +0100)]
docs: fix the alignment in a 'nested-if' example

8 years agofix a typo in the version string
Richard Russon [Fri, 30 Sep 2016 15:56:24 +0000 (16:56 +0100)]
fix a typo in the version string

8 years agofix: change gcc build options to prevent crashes
Richard Russon [Fri, 30 Sep 2016 14:04:16 +0000 (15:04 +0100)]
fix: change gcc build options to prevent crashes

A GCC optimisation "-O2" enables "-fdelete-null-pointer-checks" which
was causing some pointer checks to be optimised out of the code.
This was causing some crashes, most notably in the pager.

8 years agofix: bulletproof the pager
Richard Russon [Fri, 30 Sep 2016 13:11:18 +0000 (14:11 +0100)]
fix: bulletproof the pager

Put some more checks into the pager, just in case the Context
disappears, e.g. when a network connection goes down.

8 years agobuild source before docs
Richard Russon [Fri, 30 Sep 2016 13:10:45 +0000 (14:10 +0100)]
build source before docs

The Makefile tried to build the docs before the IMAP source.
Change the build order to prioritise the code.

8 years agofixed typo of devel mailinglist name
Tobias Angele [Fri, 30 Sep 2016 14:43:29 +0000 (16:43 +0200)]
fixed typo of devel mailinglist name

8 years agoadded Mailinglist mailto links to "Where is NeoMutt" section
Tobias Angele [Fri, 30 Sep 2016 14:42:18 +0000 (16:42 +0200)]
added Mailinglist mailto links to "Where is NeoMutt" section

8 years agoquasi-delete: check there's a selection
Richard Russon [Fri, 16 Sep 2016 18:51:47 +0000 (19:51 +0100)]
quasi-delete: check there's a selection

If you created a vfolder with no contents, then tried to quasi-delete
something, it would crash.

8 years agodocs: fix the layout of the syntax file
Richard Russon [Sun, 25 Sep 2016 20:57:04 +0000 (21:57 +0100)]
docs: fix the layout of the syntax file

8 years agodocs: make the license clear to github
Richard Russon [Sun, 25 Sep 2016 20:18:54 +0000 (21:18 +0100)]
docs: make the license clear to github

8 years agoFixes repaint problem with $pager_index_lines #159
Christopher John CZETTEL [Sun, 25 Sep 2016 12:48:14 +0000 (14:48 +0200)]
Fixes repaint problem with $pager_index_lines #159

Commit 6b4c4ca changed the behaviour of mutt_pager to build the
pager index even if pager_index_lines was set to 0 to (fixing #143).

The code redrawing the pager status line was relying on the pager index
being NULL to determine if a redraw should take place. Now
index_window->rows is used as an additional safeguard.

Also added a check if pager index is set to the terminal status line
update code as it was unguarded and old default behaviour might be
introduced later.

Fixes #159

8 years agomerge: feature compose-to-sender
Richard Russon [Sat, 24 Sep 2016 10:25:04 +0000 (11:25 +0100)]
merge: feature compose-to-sender

 * add ident to PATCHES
 * feature: compose-to-sender
 * Add compose-to-sender documentation

Closes #30

8 years agoAdd compose-to-sender documentation
Guillaume Brogi [Tue, 20 Sep 2016 20:11:35 +0000 (22:11 +0200)]
Add compose-to-sender documentation

8 years agofeature: compose-to-sender
Guillaume Brogi [Mon, 19 Sep 2016 21:07:59 +0000 (23:07 +0200)]
feature: compose-to-sender

Compose a new email to the sender.
This works on tagged messages too.

8 years agoadd ident to PATCHES
Guillaume Brogi [Mon, 19 Sep 2016 21:07:59 +0000 (23:07 +0200)]
add ident to PATCHES

8 years agoOptimize LMDB's hcache backend.
Pietro Cerutti [Mon, 19 Sep 2016 15:29:24 +0000 (15:29 +0000)]
Optimize LMDB's hcache backend.

Thanks to Clemens Lang for his help with the fix.

See: https://dev.mutt.org/trac/ticket/3691
Closes: #77
8 years agomerge: feature kyoto-cabinet
Richard Russon [Fri, 23 Sep 2016 16:05:16 +0000 (17:05 +0100)]
merge: feature kyoto-cabinet

 * add ident to PATCHES
 * feature: Add Kyoto Cabinet header cache
 * doc: Document the Kyoto cabinet hcache backend

8 years agodoc: Document the Kyoto cabinet hcache backend
Clemens Lang [Sat, 17 Sep 2016 22:37:53 +0000 (23:37 +0100)]
doc: Document the Kyoto cabinet hcache backend

Additionally, fix a couple of references in other parts of the
documentation that now also work with Kyoto Cabinet (and LMDB).

8 years agofeature: Add Kyoto Cabinet header cache
Clemens Lang [Sat, 17 Sep 2016 21:46:19 +0000 (23:46 +0200)]
feature: Add Kyoto Cabinet header cache

Tokyo Cabinet's website now "strongly recommends" using Kyoto Cabinet
instead of Tokyo Cabinet because it claims to be superior. Add Kyoto
Cabinet as an option.

In some preliminary testing, the performance seems to be on-par with
Tokyo Cabinet, but not better. Kyoto Cabinet seems to need a little more
space, but the difference is probably not significant.

Signed-off-by: Clemens Lang <neverpanic@gmail.com>
8 years agoadd ident to PATCHES
Richard Russon [Sat, 17 Sep 2016 22:34:24 +0000 (23:34 +0100)]
add ident to PATCHES

8 years agoChange 'attach_keyword' option from string to regex
Johannes Weißl [Wed, 21 Sep 2016 18:10:15 +0000 (20:10 +0200)]
Change 'attach_keyword' option from string to regex

A regular expression is much more useful than a single word to check for
forgotten attachments, especially when writing in multiple languages.

This is inspired by the muttng patchset abort_noattach [1], which I use
for years, but newly implemented to make minimal changes to the neomutt
source code.

The keyword is no longer mentioned in the error message as regular
expressions tend to be longer.

The option 'attach_keyword' could be renamed 'attach_remind_regex' as in
the muttng patch.

[1] https://github.com/codito/muttng-patchset/blob/master/patches/muttng.abort_noattach.diff

Closes: #138
8 years agodocs: Add badges to README.neomutt
toogley [Sun, 18 Sep 2016 20:05:10 +0000 (22:05 +0200)]
docs: Add badges to README.neomutt

Added travis build status, coverity status and license badges to
README.neomutt