]> granicus.if.org Git - neomutt/log
neomutt
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 ago$forward_references includes References: header on forwards
Serge Gebhardt [Sat, 19 Nov 2016 22:15:21 +0000 (23:15 +0100)]
$forward_references includes References: header on forwards

By default a forwarded message does not reference the messages it
contains. This commit introduces a new boolean option
`$forward_references`. When it is set, a forwarded message includes the
`In-Reply-To:` and `References:` headers, just like a reply would. Hence
the forwarded message becomes part of the original thread instead of
starting a new one.

Closes: #252
8 years agoMake sure gdbm's symbols are not resolved in QDBM's compatibility layer
Pietro Cerutti [Thu, 24 Nov 2016 15:07:18 +0000 (15:07 +0000)]
Make sure gdbm's symbols are not resolved in QDBM's compatibility layer

8 years agoGive myself some credit
Richard Russon [Thu, 24 Nov 2016 15:26:13 +0000 (15:26 +0000)]
Give myself some credit

8 years agoInitialize imap_authenticate's return value to something meaningful
Pietro Cerutti [Tue, 22 Nov 2016 14:29:39 +0000 (14:29 +0000)]
Initialize imap_authenticate's return value to something meaningful

Closes: #256
8 years agomerge: hcache refactor
Richard Russon [Thu, 24 Nov 2016 14:02:48 +0000 (14:02 +0000)]
merge: hcache refactor

 * Support compilation of multiple hcache backends and run-time selection
 * More hcache-related cleanup and consistency in autoconf land
 * Hcache backends list
 * Hcache backends list up tidying
 * Implement mutt_hcache_free to dispose of header cache data

8 years agoImplement mutt_hcache_free to dispose of header cache data
Pietro Cerutti [Tue, 22 Nov 2016 09:57:37 +0000 (09:57 +0000)]
Implement mutt_hcache_free to dispose of header cache data

8 years agoHcache backends list up tidying
Pietro Cerutti [Mon, 21 Nov 2016 16:55:21 +0000 (16:55 +0000)]
Hcache backends list up tidying

8 years agoHcache backends list
Pietro Cerutti [Mon, 21 Nov 2016 16:18:49 +0000 (16:18 +0000)]
Hcache backends list

8 years agoMore hcache-related cleanup and consistency in autoconf land
Pietro Cerutti [Fri, 18 Nov 2016 12:54:31 +0000 (12:54 +0000)]
More hcache-related cleanup and consistency in autoconf land

8 years agoSupport compilation of multiple hcache backends and run-time selection
Pietro Cerutti [Thu, 10 Nov 2016 13:33:16 +0000 (13:33 +0000)]
Support compilation of multiple hcache backends and run-time selection

Backend specific APIs have been moved to hcache-backend.h

This commits introduces the support for multiple backends and an option to
configure the one to use at run time (header_cache_backend). Backends are not
mutual exclusive anymore, and several can be compiled in by specifying multiple
--with-<backend> configure options.

For backwards compatibility, the header_cache_backend option can be left empty,
in which case the first (configure.ac order) compiled-in backend is selected.
In the case of distros building with a single backend enabled - as they are
forced to do today - the hcache functionality is unchanged.

8 years agolib: Implement mutt_strchrnul()
Pietro Cerutti [Mon, 21 Nov 2016 14:09:57 +0000 (14:09 +0000)]
lib: Implement mutt_strchrnul()

Closes: #253
8 years agodocs: <escape> and \e means refers to both alt and escape key
toogley [Sun, 20 Nov 2016 13:14:21 +0000 (14:14 +0100)]
docs: <escape> and \e means refers to both alt and escape key

8 years agomerge: upstream adoption of compress
Richard Russon [Sat, 19 Nov 2016 01:39:44 +0000 (01:39 +0000)]
merge: upstream adoption of compress

 * Compress patch from the neomutt repository.
 * Compress: prefix external functions with "mutt_"
 * Compress: remove buffy stats "improvisation".
 * Compress: fix several logic and memory bugs.
 * Compress: add delegate calls to open_append and close mx_ops functions.
 * Compress: safe_fopen() the tempfile, to prevent tempfile attacks.
 * Compress: pull the lock/unlock operations into the open,close,sync operations.
 * Create mx_ops.sync operation. Refactor compress to use the mx_ops.sync.
 * Compress: fix check_mailbox and sync_mailbox.
 * Compress: escape single quotes when invoking the compress/decompress commands.
 * Compress: check mailbox type if possible when appending.
 * Ensure the compressed documentation is always built.
 * Improve two compress translation messages.
 * Revert "Compress: remove buffy stats "improvisation"."

8 years agoRevert "Compress: remove buffy stats "improvisation"."
Richard Russon [Sat, 19 Nov 2016 01:38:08 +0000 (01:38 +0000)]
Revert "Compress: remove buffy stats "improvisation"."

I think this is an improvement which should stay.

This reverts commit d273f8c1e5e1eb8695d26d1b6ce55b15a7f0a01a.

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

8 years agoCreate mx_ops.sync operation. Refactor compress to use the mx_ops.sync.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:35 +0000 (20:02 -0800)]
Create mx_ops.sync operation. Refactor compress to use the mx_ops.sync.

Change compress.sync_mailbox() to lock the compressed mailbox around
both the tempfile sync and compress operations.  This will prevent
changes made inbetween the two syncs from being overwritten.

Thanks to Damien Riegel for his original patch refactoring
mx_ops.sync, which this patch is partially based upon.

8 years agoCompress: pull the lock/unlock operations into the open,close,sync operations.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:35 +0000 (20:02 -0800)]
Compress: pull the lock/unlock operations into the open,close,sync operations.

Some operations, such as open_append and sync, need an exclusive lock
across a longer period than a single compress/decompress.  Remove it
from the execute_command and pull into the outer callers.  Store lock
information inside compress_info.

Sync and check_mailbox need more fixes, which will be addressed in
subsequent patches.

8 years agoCompress: safe_fopen() the tempfile, to prevent tempfile attacks.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:35 +0000 (20:02 -0800)]
Compress: safe_fopen() the tempfile, to prevent tempfile attacks.

8 years agoCompress: add delegate calls to open_append and close mx_ops functions.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:34 +0000 (20:02 -0800)]
Compress: add delegate calls to open_append and close mx_ops functions.

The open_append and close were partially duplicating mbox open_append
and close operations internally.  Change it to call the actual
delegate functions instead.

Inline the open_read() function inside open_mailbox().  Having it
split improved nothing and just complicated the code (i.e. added
error-handling checks in open_mailbox() that in reality could not
fail).

8 years agoCompress: fix several logic and memory bugs.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:34 +0000 (20:02 -0800)]
Compress: fix several logic and memory bugs.

setup_paths leaks memory: realpath is already set in mx_open_mailbox()

restore_paths is unneeded.  mx_fastclose_mailbox() will free stuff,
and nothing is looking at the path once we are closing or aborting.

Make a copy of the hooks.  Otherwise 'unhook *' will leave dangling
pointers.

Add compress_info freeing inside mx_fastclose_mailbox().  Only free
inside compress.c when we want to prevent close() from doing anything.

close_mailbox() didn't preserve ctx->path on error.

execute_command() didn't return an error if the mutt_system() command
failed.

mx_open_mailbox_append() should check mutt_comp_can_append() only for
the case that the mailbox doesn't exist.  When it exists,
mx_get_magic() has already looked at the file contents before checking
for matching open_hooks.

In open_append_mailbox() if no append hook is defined, it should't
call ci->open() if the mailbox doesn't exist.  It should act just like
append and create a temporary file.

check_mailbox() needs more work.  For now, at least have it properly
close the mailbox on error.

8 years agoCompress: remove buffy stats "improvisation".
Kevin McCarthy [Mon, 14 Nov 2016 04:02:34 +0000 (20:02 -0800)]
Compress: remove buffy stats "improvisation".

Mutt doesn't support polling compressed mailboxes.  This code creates
a false impression and dirties mutt_save_message() in the process.  I
don't like it, so am taking it out.

8 years agoCompress: prefix external functions with "mutt_"
Kevin McCarthy [Mon, 14 Nov 2016 04:02:33 +0000 (20:02 -0800)]
Compress: prefix external functions with "mutt_"

Also, include compress.h in compress.c so the mx_comp_ops doesn't need
to be redeclared.

8 years agoCompress patch from the neomutt repository.
Kevin McCarthy [Mon, 14 Nov 2016 04:02:33 +0000 (20:02 -0800)]
Compress patch from the neomutt repository.

With the following changes:
- po/de.po changes trimmed to just the compress additions.

- Move the sample muttrc to contrib, and add it to the Makefile.am so it is
  distributed.  Remove the sample vimrc.

- Remove extra fluff from manual.

Thanks to Roland Rosenfeld for the original patch, and to the NeoMutt
team for their work cleaning up the patch.

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Fri, 18 Nov 2016 14:03:30 +0000 (14:03 +0000)]
merge: upstream fixes (mutt/default)

 * attach_format: add new %F placeholder
 * compose: add operation to rename an attachment
 * Chain %d->%F->%f in the attachment menu.
 * Move mbox close-append logic inside mbox_close_mailbox().

8 years agoMove mbox close-append logic inside mbox_close_mailbox().
Kevin McCarthy [Tue, 8 Nov 2016 20:42:56 +0000 (12:42 -0800)]
Move mbox close-append logic inside mbox_close_mailbox().

The mx_fastclose_mailbox() calls mx_ops->close(), which invokes
mbox_close_mailbox().

Also, close the ctx->fp inside mbox_close_mailbox().  This way, the
(to be added) compress logic can call the mx_ops->close() instead of
"knowing" to close the fp before recompressing.

mx_fastclose_mailbox() will safe_fclose() the fp again, but I'm
leaving it there just in case I missed a usage of the fp in some other
part of the code.

Thanks to Damien Riegel for the original patch.

8 years agoChain %d->%F->%f in the attachment menu.
Kevin McCarthy [Tue, 8 Nov 2016 02:10:27 +0000 (18:10 -0800)]
Chain %d->%F->%f in the attachment menu.

Previously, %d would use %f if there was no description set.

Place the new %F option in between %d and %f.  This way, %d will fall
back on %F, which will fall back on %f.  This allows the standard
attachment menu to show d_filename.

This is useful for forwarding attachments or editing draft files with
attachments.  In these cases the actual filename is sanitized but the
attachment name is preserved in d_filename.

8 years agocompose: add operation to rename an attachment
Damien Riegel [Tue, 8 Nov 2016 02:10:22 +0000 (18:10 -0800)]
compose: add operation to rename an attachment

As opposed to rename-file, which actually renames the underlying file
of the attachment, rename-attachment puts a value in d_filename, which
is used in the Content-Disposition header.

8 years agoattach_format: add new %F placeholder
Damien Riegel [Tue, 8 Nov 2016 02:06:13 +0000 (18:06 -0800)]
attach_format: add new %F placeholder

This new placeholder allows to print the attachment name as it will be
seen on the recipient side.

8 years agohooks: define hooks for startup and shutdown
Thomas Adam [Wed, 26 Oct 2016 22:58:16 +0000 (23:58 +0100)]
hooks: define hooks for startup and shutdown

Having hooks which run when mutt first starts (startup-hook) but before the
fist mbox is opened, and when mutt closes the mbox (shutdown-hook) before
exiting, allows for those notmuch users to run commands to sync the state of
their caches, etc.

support GLOBALHOOK type

There's now a few hooks (startup/shutdown/timeout) which don't operate on a
mbox or pattern, but are instead global to mutt.  Therefore, don't require the
hooks themselves to needlessly define these parameters.

Closes: #184
8 years agobuild: Improve discovery for the Berkeley Database
Pietro Cerutti [Sun, 13 Nov 2016 16:52:13 +0000 (16:52 +0000)]
build: Improve discovery for the Berkeley Database

- Drop support for old BDB versions and fix autoconf discovery
- Be more verbose when looking for BDB
- Hardcode a couple of commonly used prefixes
- Workaround empty path component expansion
- Do not clobber LIBS with BDB libraries

Closes: #228
8 years agoFix crash when doing collapse_all on an empty folder
Pietro Cerutti [Mon, 14 Nov 2016 09:01:30 +0000 (09:01 +0000)]
Fix crash when doing collapse_all on an empty folder

Closes: #230
8 years agofix: crash when browsing empty dir
Richard Russon [Sun, 13 Nov 2016 00:57:39 +0000 (00:57 +0000)]
fix: crash when browsing empty dir

The sensible-browser avoids selecting '..' when possible.
However, it *should* select '..' if there's no other option.

8 years agodocs: don't use smart quotes in manual examples
Richard Russon [Fri, 11 Nov 2016 18:54:04 +0000 (18:54 +0000)]
docs: don't use smart quotes in manual examples

[ci skip]

8 years agoSplit hcache code into per-backend files
Pietro Cerutti [Wed, 26 Oct 2016 12:29:29 +0000 (12:29 +0000)]
Split hcache code into per-backend files

Also,
- make configure arguments consistent in the form of --with-<backend>[=DIR]
- rename WITH_DB4 macro to WITH_BDB (db5 is supported as well)

Issue: #216

8 years agoadd $collapse_all to close threads automatically
Pietro Cerutti [Fri, 11 Nov 2016 13:35:53 +0000 (13:35 +0000)]
add $collapse_all to close threads automatically

Implement collapse_all option to collapse all threads when entering a folder.

Closes: #226
8 years agodocs: fix links in README
Richard Russon [Tue, 8 Nov 2016 18:05:42 +0000 (18:05 +0000)]
docs: fix links in README

8 years agotravis: install libraries for all the hcache backends
Richard Russon [Tue, 8 Nov 2016 13:19:37 +0000 (13:19 +0000)]
travis: install libraries for all the hcache backends

8 years agodocs: fix docbook validation
Richard Russon [Sun, 6 Nov 2016 15:50:14 +0000 (15:50 +0000)]
docs: fix docbook validation

8 years agodocs: add a version number to the generated vimrc
Richard Russon [Sun, 6 Nov 2016 14:47:24 +0000 (14:47 +0000)]
docs: add a version number to the generated vimrc

Also, fix a BSD build bug with "$^" (thanks to Thomas Adam).

8 years agobuild: update PATCHES list
Richard Russon [Sun, 6 Nov 2016 13:50:46 +0000 (13:50 +0000)]
build: update PATCHES list

8 years agodocs: add notes to features
Richard Russon [Sun, 6 Nov 2016 13:46:31 +0000 (13:46 +0000)]
docs: add notes to features

8 years agoadded mailmap file
toogley [Sun, 6 Nov 2016 13:33:18 +0000 (14:33 +0100)]
added mailmap file

Source for the tips at the top:
https://github.com/docker/docker/blob/master/.mailmap

8 years agodocs: fix entries for beep and new-mail-command
Jack Stratton [Sun, 6 Nov 2016 02:35:14 +0000 (02:35 +0000)]
docs: fix entries for beep and new-mail-command

Their documentation got switched around by accident.

8 years agodoc: fix date typo
Richard Russon [Sun, 6 Nov 2016 02:31:55 +0000 (02:31 +0000)]
doc: fix date typo

8 years agodoc: expand example command options for compress
Richard Russon [Sun, 6 Nov 2016 02:28:55 +0000 (02:28 +0000)]
doc: expand example command options for compress

8 years agorename vim-keybindings to vim-keys
Richard Russon [Sun, 6 Nov 2016 01:30:30 +0000 (01:30 +0000)]
rename vim-keybindings to vim-keys

8 years agobuild: fix sidebar indent
Richard Russon [Sun, 6 Nov 2016 01:21:24 +0000 (01:21 +0000)]
build: fix sidebar indent

8 years agodocs: add since date for features
Richard Russon [Sun, 6 Nov 2016 00:12:20 +0000 (00:12 +0000)]
docs: add since date for features

[ci skip]

8 years agodocs: new-mail bug is fixed
Richard Russon [Sat, 5 Nov 2016 19:18:24 +0000 (19:18 +0000)]
docs: new-mail bug is fixed

Closes: 223
8 years agoNeoMutt 2016-11-04 (1.7.1) neomutt-20161104
Richard Russon [Fri, 4 Nov 2016 16:39:03 +0000 (16:39 +0000)]
NeoMutt 2016-11-04 (1.7.1)

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Fri, 4 Nov 2016 14:59:07 +0000 (14:59 +0000)]
merge: upstream fixes (mutt/default)

 * Add a --disable-doc configuration option.
 * Make ncurses and ncursesw header checking the same.
 * Attempt to silence a clang range warning. (closes #3891)
 * Fixed issue from changeset 4da647a80c55. (closes #3892)
 * Define PATH_MAX, it's missing on the GNU Hurd. (closes #3815)

8 years agoDefine PATH_MAX, it's missing on the GNU Hurd. (closes #3815)
Kevin McCarthy [Thu, 3 Nov 2016 22:49:50 +0000 (15:49 -0700)]
Define PATH_MAX, it's missing on the GNU Hurd. (closes #3815)

I believe this patch originally came from Debian.

Modified based on a suggestion from Fabian Groffen.

8 years agoFixed issue from changeset 4da647a80c55. (closes #3892)
Vincent Lefevre [Thu, 3 Nov 2016 09:17:13 +0000 (10:17 +0100)]
Fixed issue from changeset 4da647a80c55. (closes #3892)

Shell variables cannot be used in the first argument of AC_CHECK_HEADERS.

8 years agoAttempt to silence a clang range warning. (closes #3891)
Kevin McCarthy [Thu, 3 Nov 2016 01:54:06 +0000 (18:54 -0700)]
Attempt to silence a clang range warning. (closes #3891)

When TM_YEAR_MAX > INT_MAX, clang complains the comparison is always false.

Note that this is really a compiler bug, which was fixed by gcc 9 years ago.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=12963

Thanks to Vincent Lefèvre for the suggested fix and the gcc bug reference.

8 years agoMake ncurses and ncursesw header checking the same.
Kevin McCarthy [Thu, 3 Nov 2016 01:27:09 +0000 (18:27 -0700)]
Make ncurses and ncursesw header checking the same.

Previously, ncurses.h wasn't searched for directly in the include
directory for ncursesw.

Also, fix a test in case $withval is empty.

Thanks to Sylvain Bertrand for the original patch.

8 years agoAdd a --disable-doc configuration option.
Kevin McCarthy [Tue, 1 Nov 2016 03:30:44 +0000 (20:30 -0700)]
Add a --disable-doc configuration option.

This allows mutt to be built without the documentation.

Thanks to Sylvain Bertrand for the original patch.

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>