]> granicus.if.org Git - neomutt/log
neomutt
7 years agoRemove most ascii_ functions 327/head
Pietro Cerutti [Tue, 24 Jan 2017 11:35:58 +0000 (11:35 +0000)]
Remove most ascii_ functions

Issue: #325

7 years agoAssume ANSI C headers are there
Pietro Cerutti [Mon, 23 Jan 2017 17:11:47 +0000 (17:11 +0000)]
Assume ANSI C headers are there

Issue: #325

7 years agoRemove in-house implementation of mkdtemp
Pietro Cerutti [Mon, 23 Jan 2017 16:55:22 +0000 (16:55 +0000)]
Remove in-house implementation of mkdtemp

Issue: #325

7 years agoMention that strcasestr doesn't exist on AIX
Pietro Cerutti [Mon, 23 Jan 2017 16:40:54 +0000 (16:40 +0000)]
Mention that strcasestr doesn't exist on AIX

Issue: #325

7 years agoRemove in-house implementation of strtok_r
Pietro Cerutti [Mon, 23 Jan 2017 16:33:35 +0000 (16:33 +0000)]
Remove in-house implementation of strtok_r

Issue: #325

7 years agoRemove in-house implementation of strsep
Pietro Cerutti [Mon, 23 Jan 2017 16:18:14 +0000 (16:18 +0000)]
Remove in-house implementation of strsep

Issue: #325

7 years agoRemove in-house implementation of setenv
Pietro Cerutti [Mon, 23 Jan 2017 14:45:25 +0000 (14:45 +0000)]
Remove in-house implementation of setenv

Issue: #325

7 years agoRemove str(n)casecmp declarations
Pietro Cerutti [Mon, 23 Jan 2017 14:33:49 +0000 (14:33 +0000)]
Remove str(n)casecmp declarations

Issue: #325

7 years agoRemove in-house implementations of strcasecmp and strncasecmp
Pietro Cerutti [Mon, 23 Jan 2017 13:58:08 +0000 (13:58 +0000)]
Remove in-house implementations of strcasecmp and strncasecmp

Issue: #325

7 years agonotmuch: fix toggle labels
Richard Russon [Tue, 24 Jan 2017 18:58:38 +0000 (18:58 +0000)]
notmuch: fix toggle labels

Fix the comparison of labels when toggling.

Thanks to Pietro Cerutti (@gahr) for spotting this.

7 years agonotmuch: Allow <modify-labels> to toggle labels
Bryan Bennett [Tue, 24 Jan 2017 15:49:14 +0000 (10:49 -0500)]
notmuch: Allow <modify-labels> to toggle labels

<modify-labels> can, now:
    tag     add a tag
    +tag    add a tag
    -tag    remove a tag
    !tag    toggle a tag

Closes #326
Closes #328

7 years agofix bug in "Support for aborting mailbox loading"
Richard Russon [Tue, 24 Jan 2017 17:20:27 +0000 (17:20 +0000)]
fix bug in "Support for aborting mailbox loading"

A typo would have prevented mbox_parse_mailbox() from working correctly.
Also, add a few comments.

Thanks to Pietro Cerutti (@gahr) for spotting this.

7 years agoAvoid breaking relative paths when avoiding cyclic checks on pipes..
Pietro Cerutti [Tue, 24 Jan 2017 16:48:25 +0000 (16:48 +0000)]
Avoid breaking relative paths when avoiding cyclic checks on pipes..

Pull: #290

7 years agoRevert "Avoid cyclic checks on pipes"
Pietro Cerutti [Tue, 24 Jan 2017 16:42:43 +0000 (16:42 +0000)]
Revert "Avoid cyclic checks on pipes"

This reverts commit 0cdb4ad8e5c41c2e6fd3b5a5608f965a2046cc0b.

7 years agoAvoid cyclic checks on pipes
Pietro Cerutti [Tue, 24 Jan 2017 16:28:45 +0000 (16:28 +0000)]
Avoid cyclic checks on pipes

Pull: #290

7 years agoSupport for aborting mailbox loading
Guyzmo [Tue, 10 Jan 2017 17:10:13 +0000 (18:10 +0100)]
Support for aborting mailbox loading

- Added new return value for mx_ops.open() signature: -2 value means
  aborted mailbox load ;
- Added check for SigInt in mail loading routine

Added support for Notmuch, Maildir and mbox.

Closes #248
Closes #292

7 years agoDo a buffy check after shell escape
Ian Zimmerman [Fri, 6 Jan 2017 00:18:16 +0000 (16:18 -0800)]
Do a buffy check after shell escape

Closes #284

7 years agomerge: add a recursive mkdir function
Richard Russon [Mon, 23 Jan 2017 16:15:43 +0000 (16:15 +0000)]
merge: add a recursive mkdir function

 * lib: add mutt_mkdir
 * create tmpdir
 * bcache: use mutt_mkdir()
 * nntp: use mutt_mkdir
 * hcache: use mutt_mkdir
 * Optimise the case of an existing cache file

Closes #287

7 years agoOptimise the case of an existing cache file
Pietro Cerutti [Thu, 12 Jan 2017 12:27:11 +0000 (12:27 +0000)]
Optimise the case of an existing cache file

7 years agohcache: use mutt_mkdir
Richard Russon [Mon, 9 Jan 2017 00:53:31 +0000 (00:53 +0000)]
hcache: use mutt_mkdir

Use mutt_mkdir() to recursively create the directories that the header
cache needs.

7 years agonntp: use mutt_mkdir
Richard Russon [Mon, 9 Jan 2017 00:53:31 +0000 (00:53 +0000)]
nntp: use mutt_mkdir

Use mutt_mkdir() to recursively create the directories that NNTP needs.

7 years agobcache: use mutt_mkdir()
Richard Russon [Sat, 7 Jan 2017 17:34:24 +0000 (17:34 +0000)]
bcache: use mutt_mkdir()

Use mutt_mkdir() to recursively create the directories that the message
cache needs.

7 years agocreate tmpdir
Richard Russon [Sat, 7 Jan 2017 16:23:29 +0000 (16:23 +0000)]
create tmpdir

Call mutt_mkdir() to recursively create the directories we need.

7 years agolib: add mutt_mkdir
Richard Russon [Sat, 7 Jan 2017 15:32:55 +0000 (15:32 +0000)]
lib: add mutt_mkdir

Make directories recursively

7 years agodocs: fix docbook validation
Richard Russon [Mon, 23 Jan 2017 14:00:20 +0000 (14:00 +0000)]
docs: fix docbook validation

7 years agocontrib: fix vim syntax file for index-color commands
Marcin Rajner lenovo [Tue, 10 Jan 2017 06:19:04 +0000 (07:19 +0100)]
contrib: fix vim syntax file for index-color commands

color higlighting of muttrc file in vim was not correct
for entries like:

color index_subject color... color...  "!~D ~sSPAM"

This was problem for all colors specified like `color index_...`
from patch-index-color-neomutt

Closes #289

7 years agoAdd option for missing subject replacement
Pietro Cerutti [Fri, 20 Jan 2017 09:31:49 +0000 (09:31 +0000)]
Add option for missing subject replacement

If you replied to an email which had no subject, then mutt defaulted to
the hard-coded string "Re: your mail".

This has been replaced by a config variable '$empty_subject'

Closes #299

7 years agocontrib: add .editorconfig
toogley [Sat, 21 Jan 2017 14:38:12 +0000 (15:38 +0100)]
contrib: add .editorconfig

Closes #313

7 years agobuild: Kill any references to strdup
Pietro Cerutti [Thu, 12 Jan 2017 17:11:32 +0000 (17:11 +0000)]
build: Kill any references to strdup

Closes #296

7 years agobuild: Start migrating to stdbool logic
Guyzmo [Tue, 10 Jan 2017 14:48:11 +0000 (15:48 +0100)]
build: Start migrating to stdbool logic

C99 has <stdbool.h> which defines true and false.

Closes #291

7 years agoSupport of relative paths sourcing and cyclic source detection
Guyzmo [Tue, 10 Jan 2017 12:59:40 +0000 (13:59 +0100)]
Support of relative paths sourcing and cyclic source detection

Added HEAP/FILO structure and global singleton to contain the the list
of config files that have been sourced, and detect cyclic sourcing.
Implemented with a simple heap API:

- `path_heap_push()`
- `path_heap_pop()`
- `path_heap_front()`
- `path_heap_find()`

Added a new method `to_absolute_path()` to convert a path into an absolute
path, relatively to another config file's path. Using POSIX methods to
do so, adding libgen's header in `mutt.h`.

Closes #282
Closes #290

7 years agoSupport of multiple config files as CLI arguments
Guyzmo [Thu, 12 Jan 2017 01:14:21 +0000 (02:14 +0100)]
Support of multiple config files as CLI arguments

- changed the Muttrc global to a LIST*
- set it up to parse in order of parsing
- updated AliasFile to be a LIST* as well

Closes #234

7 years agodocs: Describe the new message ranges
Ian Zimmerman [Fri, 16 Dec 2016 18:42:36 +0000 (10:42 -0800)]
docs: Describe the new message ranges

Closes: #311
7 years agofix: minor bugs in relative-msgno
Richard Russon [Sat, 21 Jan 2017 13:02:15 +0000 (13:02 +0000)]
fix: minor bugs in relative-msgno

A locale problem with the regex code caused some character classes to
not work.

Fix a few typos

7 years agoExtend the ~m pattern to allow relative ranges
Ian Zimmerman [Fri, 16 Dec 2016 18:42:36 +0000 (10:42 -0800)]
Extend the ~m pattern to allow relative ranges

The ~m pattern now accepts absolute ranges, relative ranges and has some
mnemonics (shortcuts).

There are shortcuts for some emails:
    ^   First email
    .   Current email
    $   Last email

These shortcuts can be used anywhere a number is used in the examples
below.

Relative ranges have a comma ',' in them:
    -3,.    Previous 3 emails plus the current one
    .,$     Current email and all the later ones
    -2,2    Previous 2, current and next 2 emails
    0,1     Current and next email

Absolute range:
    3-10    Emails 3-10
    -10     Emails 1-10
    10-     Emails 10-last
    7       Just email 7

Closes: #269
Closes: #283
8 years agoImplement SASL's PLAIN mechanism as a standalone authenticator
Pietro Cerutti [Tue, 15 Nov 2016 17:10:15 +0000 (17:10 +0000)]
Implement SASL's PLAIN mechanism as a standalone authenticator

Closes: #232
8 years agodocs: add documentation for -DS command line switch
Guyzmo [Wed, 18 Jan 2017 17:26:16 +0000 (18:26 +0100)]
docs: add documentation for -DS command line switch

8 years agoAdd support for sensitive config options
Pietro Cerutti [Tue, 17 Jan 2017 08:18:15 +0000 (08:18 +0000)]
Add support for sensitive config options

Add a `-S` option to `mutt -D` to hide the value of sensitive config,
such as passwords.

Closes: #236
Closes: #302
8 years agoFix sorting when using '/' as a namespace separator
Pietro Cerutti [Tue, 17 Jan 2017 12:34:07 +0000 (12:34 +0000)]
Fix sorting when using '/' as a namespace separator

Closes: #301
8 years agomerge: notmuch search windows
Richard Russon [Wed, 18 Jan 2017 16:57:02 +0000 (16:57 +0000)]
merge: notmuch search windows

 * Searching with a window over notmuch vfolders
 * Fix of the sidebar item highlight when matched by current search
 * Makes the sidebar show the real msg count on the current mailbox
 * Add doxygen documentation comments
 * Improving the API naming and typing

Closes: #285
8 years agoImproving the API naming and typing
Guyzmo [Wed, 18 Jan 2017 14:49:13 +0000 (15:49 +0100)]
Improving the API naming and typing

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
8 years agoAdd doxygen documentation comments
Richard Russon [Mon, 16 Jan 2017 19:11:29 +0000 (19:11 +0000)]
Add doxygen documentation comments

8 years agoMakes the sidebar show the real msg count on the current mailbox
Bernard Pratz [Sat, 7 Jan 2017 18:08:53 +0000 (19:08 +0100)]
Makes the sidebar show the real msg count on the current mailbox

run a notmuch count when loading values for the currently highlighted
mailbox when drawing the sidebar up, to show the request's total number
instead of just the window's number.

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
8 years agoFix of the sidebar item highlight when matched by current search
Bernard Pratz [Sat, 7 Jan 2017 17:52:55 +0000 (18:52 +0100)]
Fix of the sidebar item highlight when matched by current search

Because searches done manually (or shifted with a window) have an
absolute path to the current Maildir within the URI, whereas the one
declared with the virtual-mailboxes command usually have implicit
Maildir path specification, this patch parses the given URL of a mailbox
and re-builds it to contain the full path.

For that purpose has been added:

- nm_normalize_uri() function

Has been modified:

- get_query_string (in mutt_notmuch): earned an argument to disable
  adding of a window in the context of the nm_normalize_uri function.
- mutt_parse_virtual_mailboxes: the path value is sent through the
  nm_normalize_uri() function to be normalized.

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
8 years agoSearching with a window over notmuch vfolders
Bernard Pratz [Sun, 15 Jan 2017 19:53:09 +0000 (19:53 +0000)]
Searching with a window over notmuch vfolders

following up on #278

Instead of adding a new command for searches that will result in
windowed searches, this commit patches a lower function of the search
mechanism, the `get_query_string()` function.

There, any search is buffered in the `nm_query_window_current_search`
global variable. And a newly introduced non-exposed function
`window_query_from_query` is taking a `data->db_query` and adds a
`date:` field implementing the window.

That function won't add a `date:` field if there's no duration set or if
there's already a date field in the query (to avoid risks of an empty
intersection).

To disable the feature, just set `nm_query_window_duration` to `0`.

Finally, only two public functions are exposed:

- `vfolder-window-forward`
- `vfolder-window-backward`

to slide the window over the search.

The improvements over #278 implementation is that now it's working with
any search done with notmuch, whether it's a `virtual-mailbox` or using
the `vfolder-from-query` command.

Have been removed:

- `windowed-vfolder-from-query`

Have been renamed:

- `windowed-vfolder-forward` -> `vfolder-window-forward`
- `windowed-vfolder-backward` -> `vfolder-window-backward`

8 years agodocs: remove reference to missing keybinding
Richard Russon [Tue, 17 Jan 2017 22:36:04 +0000 (22:36 +0000)]
docs: remove reference to missing keybinding

Thanks to Vrihub on GitHub for spotting the mistake.

[ci skip]

8 years agodoc: fix typos in section on config locations
Christian Dröge [Tue, 17 Jan 2017 21:26:12 +0000 (21:26 +0000)]
doc: fix typos in section on config locations

[ci skip]

8 years agoreformat the source to mutt standards
Richard Russon [Sun, 15 Jan 2017 01:22:48 +0000 (01:22 +0000)]
reformat the source to mutt standards

reindent - 2 spaces
braces {} on new line
indent case statements
bracket logic - () around complex bools
rename static functions - drop "nm_" prefix
move functions - static first
move mx_ops functions to end
fix typos
reorder includes
add some doxygen comments

8 years agoNeoMutt 2017-01-13 (1.7.2) neomutt-20170113
Richard Russon [Fri, 13 Jan 2017 13:40:54 +0000 (13:40 +0000)]
NeoMutt 2017-01-13 (1.7.2)

8 years agomerge: translations
Richard Russon [Fri, 13 Jan 2017 14:33:30 +0000 (14:33 +0000)]
merge: translations

 * L10N document PGP/SMIME options
 * don't wrap messages
 * update German translation
 * update Spanish translation
 * sync po files to source

8 years agosync po files to source
Richard Russon [Fri, 13 Jan 2017 14:33:22 +0000 (14:33 +0000)]
sync po files to source

8 years agoupdate Spanish translation
Rubén Llorente [Mon, 28 Nov 2016 23:54:50 +0000 (23:54 +0000)]
update Spanish translation

8 years agoupdate German translation
André Berger [Fri, 25 Nov 2016 11:02:24 +0000 (11:02 +0000)]
update German translation

8 years agodon't wrap messages
Richard Russon [Sun, 27 Nov 2016 14:34:43 +0000 (14:34 +0000)]
don't wrap messages

8 years agoL10N document PGP/SMIME options
Richard Russon [Sun, 27 Nov 2016 14:34:23 +0000 (14:34 +0000)]
L10N document PGP/SMIME options

8 years agoRevert "Searching with a window over notmuch vfolders"
Richard Russon [Fri, 13 Jan 2017 14:22:08 +0000 (14:22 +0000)]
Revert "Searching with a window over notmuch vfolders"

This is the first version of Bernard's search windows.
As the final version is slightly different, I'm removing it from this
release to save confusion.

This reverts commit 426f0c27b1e3a0458405c87b7a0270f451f49bea.

8 years agodocs: tidy $status_chars description
Richard Russon [Fri, 13 Jan 2017 13:26:01 +0000 (13:26 +0000)]
docs: tidy $status_chars description

8 years agonotmuch: drop strndup, replace with mutt_substrdup
Richard Russon [Wed, 11 Jan 2017 13:18:18 +0000 (13:18 +0000)]
notmuch: drop strndup, replace with mutt_substrdup

Closes: #242
8 years agofix coverity warnings
Richard Russon [Fri, 6 Jan 2017 13:20:06 +0000 (13:20 +0000)]
fix coverity warnings

Closes: #286
8 years agobuild: fix function prototypes
Richard Russon [Thu, 5 Jan 2017 15:12:47 +0000 (15:12 +0000)]
build: fix function prototypes

8 years agoAllow custom status flags in index_format
somini [Sun, 1 Jan 2017 12:37:54 +0000 (12:37 +0000)]
Allow custom status flags in index_format

The commit introduces the variable $flag_chars.
It allows the user to customise the status flags show in the index.
$flag_chars affects both %S and %Z.

$flag_chars defaults to "*!DdrONon- "

Char  | Default | Description
------|---------|----------------------------------------------
1     | *       | The mail is tagged
2     | !       | The mail is flagged as important
3     | D       | The mail is marked for deletion
4     | d       | The mail has attachments marked for deletion
5     | r       | The mail has been replied to
6     | O       | The mail is Old (Unread but seen)
7     | N       | The mail is New (Unread but not seen)
8     | o       | The mail thread is Old (Unread but seen)
9     | n       | The mail thread is New (Unread but not seen)
10    | -       | The mail is read - %S expando
11    | <space> | The mail is read - %Z expando

Closes: #275
8 years agoSearching with a window over notmuch vfolders
Bernard 'Guyzmo' Pratz [Mon, 2 Jan 2017 00:42:58 +0000 (01:42 +0100)]
Searching with a window over notmuch vfolders

When searching over a very large result, the result will be very slow for mutt
to load. So, inspired by sup's feature to iteratively load the results, I figured
adding a couple of commands to move an user set window backward/forward in time
could be useful. And a new command extending the default vfolder-from-query function
is being exposed.

The current window information is user settable, so the user can make a macro that
would do useful stuff about a search (like moving the window's position around, or
further tweaking current search).

* addition of four configuration variables, the first two are aimed at configuring
    the behaviour of the feature, the last two are exposing internals to make it
    hacking friendly:
  - nm_query_window_duration: duration for each window
  - nm_query_window_timebase: time base for each window
  - nm_query_window_current_search: the search being displayed as vfolder
  - nm_query_window_current_position: the current window's position
* addition of three bindable commands:
  - windowed-vfolder-from-query: execute a search with a window applied
  - windowed-vfolder-backward: move the window backwards in time
  - windowed-vfolder-forward: move the window forwards in time

Closes: #278
8 years agonotmuch: make 'Folder' and 'Tags' respect (un)ignore
Riad S. Wahby [Tue, 3 Jan 2017 03:45:04 +0000 (19:45 -0800)]
notmuch: make 'Folder' and 'Tags' respect (un)ignore

To get the previous behaviour, add this to your muttrc:

    unignore folder tags

Closes: #279
8 years agorefactor mutt_matches_ignore
Riad S. Wahby [Tue, 3 Jan 2017 03:42:35 +0000 (19:42 -0800)]
refactor mutt_matches_ignore

Previous function called mutt_matches_ignore is now mutt_matches_list.
mutt_matches_ignore now calls mutt_matches_list on Ignored and UnIgnored.

Naming is now consistent with functionality; simplified mutt_matches_ignore()
call makes writing correct conditionals easier.

Fixed invocations in parse.c, copy.c, and url.c

8 years agobuild: fix "make dist" target
Richard Russon [Sun, 1 Jan 2017 12:13:17 +0000 (12:13 +0000)]
build: fix "make dist" target

8 years agofix: rework initials to allow unicode characters
Richard Russon [Tue, 20 Dec 2016 15:15:39 +0000 (15:15 +0000)]
fix: rework initials to allow unicode characters

Take a name, e.g. "John F. Kennedy" and reduce it to initials "JFK".
The function saves the first character from each word.  Words are
delimited by whitespace, or hyphens (so "Jean-Pierre" becomes "JP").

8 years agomanually touch 'atime' when reading a mbox file
Adam Borowski [Wed, 21 Dec 2016 22:10:02 +0000 (23:10 +0100)]
manually touch 'atime' when reading a mbox file

futimens is a new thing, coming from POSIX-2008, yet all modern Unices added
it almost immediately.  If it isn't implemented, silently ignoring that is
no worse than current state.

While performance issues related to atime updates have been greatly reduced
by relatime and lazytime, it is an abomination for other reasons: CoW
filesystems (btrfs, zfs, ...), CoWed VM images, deduplicating thin
provisioning, etc lose significant space for every snapshot.  It also causes
wear on flash-based storage prevalent on SoCs, and so on.  Thus, it is
prudent to mount everything with noatime.

There is only one real use for atime these days: new mail notification on
mbox files.  With only a limited number of readers (mutt is one), let's
do atime updates manually.

This can be done unconditionally: while redundant without noatime, there's
no performance loss as the inode will be dirty already in such case.

Closes: #272
8 years agodocs: fix 301 redirects
Richard Russon [Sat, 31 Dec 2016 14:13:04 +0000 (14:13 +0000)]
docs: fix 301 redirects

8 years agomerge: upstream fixes (mutt/default)
Richard Russon [Sat, 31 Dec 2016 16:45:35 +0000 (16:45 +0000)]
merge: upstream fixes (mutt/default)

 * search muttrc file according to XDG Base Specification (closes #3207)
 * Fix loop terminator in in mutt_find_cfg().
 * Backout inlining of MUTT_VERSION in 42fee7585fae.
 * Revert changes made to mutt_find_cfg() in 3c6d322912e3
 * Improve openssl interactive_check_cert. (closes #3899)
 * Add mutt_array_size macro, change interactive_check_cert() to use it. (see #3899)
 * Return to pager upon aborting a jump operation. (closes #3901)
 * Change sidebar_spoolfile coloring to be lower precedence.
 * automatic post-release commit for mutt-1.7.2
 * Move '@' pattern modifier documentation to the right section.
 * Add setenv/unsetenv commands.
 * Rework OpenSSL certificate verification to support alternative chains. (closes #3903)
 * Remove unused OPS
 * Add option to control whether threads uncollapse when new mail arrives.
 * In the manual, replaced 2 para by example (similar to the first example).
 * Create mbchar_table type for multibyte character arrays. (see #3024)
 * Make to_chars and status_chars accept mulitibyte characters. (closes #3024)
 * sync xdg config file handling
 * sync Fromchars to upstream version

8 years agosync Fromchars to upstream version
Richard Russon [Sat, 31 Dec 2016 16:16:39 +0000 (16:16 +0000)]
sync Fromchars to upstream version

8 years agosync xdg config file handling
Richard Russon [Wed, 28 Dec 2016 22:54:37 +0000 (22:54 +0000)]
sync xdg config file handling

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 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 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 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 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 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 agosearch muttrc file according to XDG Base Specification (closes #3207)
Damien Riegel [Mon, 14 Nov 2016 02:45:35 +0000 (18:45 -0800)]
search muttrc file according to XDG Base Specification (closes #3207)

First of all, the MUTT_VERSION symbol is now concatenated (when
possible) at compile time.

Then, the logic to find the config file has been changed a bit to remove
unnecessary calls to access(), so now each possible locations for the
config file is only tested once, and it stops as soon as a valid one has
been found. So instead of:

  access("/home/dkc/.muttrc-1.7.1", F_OK) = -1 ENOENT (No such file or directory)
  access("/home/dkc/.muttrc", F_OK)       = 0
  access("/home/dkc/.muttrc", F_OK)       = 0
  access("/home/dkc/.muttrc", F_OK)       = 0
  [... Tests for Muttrc ... ]
  access("/home/dkc/.muttrc", F_OK)       = 0

We now have:

  access("/home/dkc/.muttrc-1.7+13 (f658e517960e)", F_OK) = -1 ENOENT (No such file or directory)
  access("/home/dkc/.muttrc", F_OK)       = 0

It also cleans up the case where -F is passed on the command line but
points to a non-existent file by moving the error path closer to the
actual fail condition.

Finally, it adds partial support for the XDG Base Directory
Specification. mutt will now try to locate its config at:

  $XDG_CONFIG_HOME/mutt/muttrc-MUTT_VERSION
  $XDG_CONFIG_HOME/mutt/muttrc.

If XDG_CONFIG_HOME is not set, it will use '~/.config' as a default.

8 years agobuild: ignore some configure temp files
Richard Russon [Fri, 30 Dec 2016 17:48:59 +0000 (17:48 +0000)]
build: ignore some configure temp files

8 years agonotmuch: add "virtual-unmailboxes" command
Richard Russon [Sat, 23 Jul 2016 22:08:53 +0000 (23:08 +0100)]
notmuch: add "virtual-unmailboxes" command

This new command removes virtual mailboxes (notmuch queries).

Closes: karelzak/mutt-kz#76
Closes: karelzak/mutt-kz#144
8 years agofix: some more places that may get NULL pointers
Richard Russon [Sat, 24 Dec 2016 00:26:58 +0000 (00:26 +0000)]
fix: some more places that may get NULL pointers

8 years agofix: don't reset the alarm unless we set it
Richard Russon [Sat, 24 Dec 2016 00:02:00 +0000 (00:02 +0000)]
fix: don't reset the alarm unless we set it

8 years agobuild: add missing #ifdef for nntp
Richard Russon [Tue, 13 Dec 2016 01:00:20 +0000 (01:00 +0000)]
build: add missing #ifdef for nntp

8 years agobuild: remove unnecessary #ifdef's
Richard Russon [Tue, 13 Dec 2016 01:02:23 +0000 (01:02 +0000)]
build: remove unnecessary #ifdef's

Several source files contain #ifdef's around all the code.
They aren't necessary -- their inclusion is handled by the Makefile.

8 years agobuild: fix check_sec.sh warnings
Richard Russon [Tue, 13 Dec 2016 20:35:04 +0000 (20:35 +0000)]
build: fix check_sec.sh warnings

check_sec.sh checks for calls to malloc(), free(), etc.

8 years agofix: restore limit current thread
Richard Russon [Tue, 20 Dec 2016 17:43:50 +0000 (17:43 +0000)]
fix: restore limit current thread

This feature was accidentally disabled by a bad merge.

8 years agobuild: generate devel version suffix
Richard Russon [Tue, 13 Dec 2016 22:06:37 +0000 (22:06 +0000)]
build: generate devel version suffix

When developing, a typical version string might look like:

    NeoMutt 20161126-4-bee236-dirty (1.7.1)

Components:
- Date of last release
- Number of commits since release
- Git commit hash of last commit
- 'dirty' if there are uncommitted changes
- Upstream Mutt version

It's appended wherever a version string is displayed, e.g. "User-Agent:"

The version suffix (-4-bee236-dirty) is checked EVERY time you run make.
However, unlike the original version, changes will only require the
rebuilding of git-ver.c

To keep things simple for the downstream distros, there are some
limitations in place:

The NeoMutt date (20161126) and the upstream Mutt version (1.7.1) are
hard-coded into configure.ac and hence the Makefile.

The suffix will be empty if:
- git isn't present
- The source isn't in a git repo
- There aren't any "neomutt-*" tags

8 years agofix: increase the max lmdb database size
Richard Russon [Mon, 12 Dec 2016 22:33:19 +0000 (22:33 +0000)]
fix: increase the max lmdb database size

A user, with over 400,000 emails was getting the error:

    MDB_MAP_FULL: Environment mapsize limit reached

This commit increases the maximum database size to 2GiB.
The file is mmap(2)'d into memory, so mutt shouldn't actually use this
much memory.

Fixes: #267
8 years agobuild: Bail if a selected hcache backend cannot be found
Pietro Cerutti [Wed, 7 Dec 2016 15:52:19 +0000 (15:52 +0000)]
build: Bail if a selected hcache backend cannot be found

8 years agofix: pick smarter default for $sidebar_divider_char
Ivan Tham [Sun, 16 Oct 2016 14:50:08 +0000 (22:50 +0800)]
fix: pick smarter default for $sidebar_divider_char

If the user hasn't set $sidebar_divider_char, then pick a character for
them, whilst respecting $ascii_chars.

Closes: #183