]> granicus.if.org Git - neomutt/log
neomutt
7 years agodocs: remove reference to non-existent file 595/head
Bo YU [Sat, 27 May 2017 08:35:03 +0000 (16:35 +0800)]
docs: remove reference to non-existent file

7 years agoFix crash if no from is set or founds 598/head
Werner Fink [Tue, 30 May 2017 12:52:12 +0000 (12:52 +0000)]
Fix crash if no from is set or founds

On multi folder mailbox setup and without a set 'From:' line in
~/.muttrc the mutt crash with SIGSEGV on a NULL pointer at
msg->env->from

Fixes: #577
7 years agoFix typos in 'color compose'
Richard Russon [Mon, 5 Jun 2017 12:50:50 +0000 (13:50 +0100)]
Fix typos in 'color compose'

7 years agocorrect spelling mistake
Edward Betts [Mon, 5 Jun 2017 07:16:51 +0000 (08:16 +0100)]
correct spelling mistake

7 years agocorrect spelling mistake
Edward Betts [Mon, 5 Jun 2017 07:14:52 +0000 (08:14 +0100)]
correct spelling mistake

7 years agofix ifdef command
Richard Russon [Sat, 3 Jun 2017 23:12:40 +0000 (00:12 +0100)]
fix ifdef command

Recent changes to the output of `mutt -v` broke the `ifdef` command.

Tidy a couple of version strings.
Update all the examples in the docs.

Closes #607

7 years agounbind mappings before overwriting in vim-keys
Pig Monkey [Sun, 4 Jun 2017 02:21:40 +0000 (19:21 -0700)]
unbind mappings before overwriting in vim-keys

As per #583, these must be unbound to prevent warnings.

7 years agobuild: allow xsltproc and w3m calls to fail
Zero King [Sat, 3 Jun 2017 14:28:31 +0000 (14:28 +0000)]
build: allow xsltproc and w3m calls to fail

7 years agoadd missing changelog entry
Richard Russon [Fri, 2 Jun 2017 16:29:02 +0000 (17:29 +0100)]
add missing changelog entry

7 years agoNeoMutt Release 2017-06-02 neomutt-20170602
Richard Russon [Fri, 2 Jun 2017 11:52:57 +0000 (12:52 +0100)]
NeoMutt Release 2017-06-02

7 years agomerge: sync to mutt/stable
Richard Russon [Fri, 2 Jun 2017 11:49:56 +0000 (12:49 +0100)]
merge: sync to mutt/stable

7 years agoupdate translations
Richard Russon [Fri, 2 Jun 2017 11:39:12 +0000 (12:39 +0100)]
update translations

7 years agoclang-format source
Richard Russon [Fri, 2 Jun 2017 11:30:48 +0000 (12:30 +0100)]
clang-format source

7 years agoUpdate en_GB.po
Richard Russon [Fri, 2 Jun 2017 11:29:01 +0000 (12:29 +0100)]
Update en_GB.po

7 years agoFixed translations of shortkeys in the PGP-menu
Elimar Riesebieter [Sat, 27 May 2017 14:20:16 +0000 (16:20 +0200)]
Fixed translations of shortkeys in the PGP-menu

7 years agoupdate mailmap
Richard Russon [Fri, 2 Jun 2017 10:34:07 +0000 (11:34 +0100)]
update mailmap

7 years agoversion: 2017-06-02
Richard Russon [Fri, 2 Jun 2017 11:12:48 +0000 (12:12 +0100)]
version: 2017-06-02

7 years agomerge: fix some trivial problems
Richard Russon [Thu, 1 Jun 2017 19:35:26 +0000 (20:35 +0100)]
merge: fix some trivial problems

 * remove unused option: SmimeSignOpaqueCommand
 * remove unused macros
 * fix safe_calloc args
 * remove unnecessary include
 * rename a param that shadow's a global symbol
 * docs: fix sidebar howto examples

7 years agodocs: fix sidebar howto examples
Richard Russon [Thu, 1 Jun 2017 19:32:33 +0000 (20:32 +0100)]
docs: fix sidebar howto examples

7 years agorename a param that shadow's a global symbol
Richard Russon [Thu, 1 Jun 2017 13:53:46 +0000 (14:53 +0100)]
rename a param that shadow's a global symbol

7 years agoremove unnecessary include
Richard Russon [Wed, 31 May 2017 21:01:10 +0000 (22:01 +0100)]
remove unnecessary include

This was accidentally added by IWYU.
Rename some macro params to avoid the problem in future.

7 years agofix safe_calloc args
Richard Russon [Tue, 30 May 2017 17:24:11 +0000 (18:24 +0100)]
fix safe_calloc args

7 years agoremove unused macros
Richard Russon [Tue, 30 May 2017 15:14:42 +0000 (16:14 +0100)]
remove unused macros

7 years agoremove unused option: SmimeSignOpaqueCommand
Richard Russon [Fri, 26 May 2017 23:37:42 +0000 (00:37 +0100)]
remove unused option: SmimeSignOpaqueCommand

It was never used.

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Thu, 1 Jun 2017 18:38:57 +0000 (19:38 +0100)]
merge: upstream fixes (mutt/default)

 * Convert classic s/mime to space delimit findKeys output.
 * Add self-encrypt options for PGP and S/MIME.
 * Change $postpone_encrypt to use self-encrypt variables first.
 * automatic post-release commit for mutt-1.8.3
 * Add note about message scoring and thread patterns. (see #3947)

7 years agoAdd note about message scoring and thread patterns. (see #3947)
Kevin McCarthy [Wed, 31 May 2017 23:18:29 +0000 (16:18 -0700)]
Add note about message scoring and thread patterns. (see #3947)

Because scoring occurs before the mailbox is sorted, thread patterns
don't work.  Document a suggested workaround of pushing the score
command in a folder hook.

Also, fix the link target for the score command synopsis.

7 years agoautomatic post-release commit for mutt-1.8.3
Kevin McCarthy [Tue, 30 May 2017 19:47:01 +0000 (12:47 -0700)]
automatic post-release commit for mutt-1.8.3

7 years agoChange $postpone_encrypt to use self-encrypt variables first.
Kevin McCarthy [Mon, 29 May 2017 18:48:43 +0000 (11:48 -0700)]
Change $postpone_encrypt to use self-encrypt variables first.

The concept of postpone encryption is similar to self-encrypting on
send.  The problem is the $postpone_encrypt_as option doesn't take
into account whether PGP or S/MIME is being used.

Since we need to add the new options for self-encryption, modify
$postpone_encrypt to use them by default instead, falling back to
$postpone_encrypt_as if they are unset.  Note $postpone_encrypt_as is
deprecated in the documentation.

7 years agoAdd self-encrypt options for PGP and S/MIME.
Kevin McCarthy [Mon, 29 May 2017 18:48:42 +0000 (11:48 -0700)]
Add self-encrypt options for PGP and S/MIME.

Add $pgp_self_encrypt, $pgp_self_encrypt_as, $smime_self_encrypt,
$smime_self_encrypt_as.

$pgp_sign_as and $smime_default_key are inappropriate to use, as they
specify signing key/certs.  In some cases, this is a different value
than the encryption key/cert.

7 years agoConvert classic s/mime to space delimit findKeys output.
Kevin McCarthy [Mon, 29 May 2017 18:48:41 +0000 (11:48 -0700)]
Convert classic s/mime to space delimit findKeys output.

Unlike gpgme and classic pgp, smime used a "cert\ncert\n" pattern.
Convert to use a space-delimited format, so the self-encrypt option
code can be uniform across pgp, s/mime, and gpgme.

7 years agoDo not try to create Maildir if it is an NNTP URI (#600)
Pietro Cerutti [Thu, 1 Jun 2017 14:04:16 +0000 (15:04 +0100)]
Do not try to create Maildir if it is an NNTP URI (#600)

Fixes #599

7 years agoAdd note about message scoring and thread patterns. (see #3947)
Kevin McCarthy [Wed, 31 May 2017 23:18:29 +0000 (16:18 -0700)]
Add note about message scoring and thread patterns. (see #3947)

Because scoring occurs before the mailbox is sorted, thread patterns
don't work.  Document a suggested workaround of pushing the score
command in a folder hook.

Also, fix the link target for the score command synopsis.

7 years agofix: nntp group selection
Richard Russon [Wed, 31 May 2017 16:05:59 +0000 (17:05 +0100)]
fix: nntp group selection

Any fields of the URL that mutt_account_tourl() doesn't set are set to
NULL.  NNTP should set the path after the call.

7 years agomutt-1.8.3 signed
Kevin McCarthy [Tue, 30 May 2017 19:48:25 +0000 (12:48 -0700)]
mutt-1.8.3 signed

7 years agoAdded tag mutt-1-8-3-rel for changeset fe5275246e13
Kevin McCarthy [Tue, 30 May 2017 19:47:18 +0000 (12:47 -0700)]
Added tag mutt-1-8-3-rel for changeset fe5275246e13

7 years agoautomatic post-release commit for mutt-1.8.3
Kevin McCarthy [Tue, 30 May 2017 19:47:01 +0000 (12:47 -0700)]
automatic post-release commit for mutt-1.8.3

7 years agoFail early if ncursesw cannot be found
Pietro Cerutti [Fri, 26 May 2017 11:39:45 +0000 (11:39 +0000)]
Fail early if ncursesw cannot be found

Also, remove a leftover of when we used to have m4/curslib.m4.

Issue: #585

7 years agofix status color
Richard Russon [Tue, 30 May 2017 09:40:23 +0000 (10:40 +0100)]
fix status color

An upstream change moved a block of code which neomutt had modified.
This lead to a mistake when merging.

Fixes #571

7 years agotidy up S/MIME contrib
Richard Russon [Fri, 26 May 2017 22:57:48 +0000 (23:57 +0100)]
tidy up S/MIME contrib

7 years agodocs: add missing docs for expandos 561/head
Richard Russon [Fri, 26 May 2017 22:36:31 +0000 (23:36 +0100)]
docs: add missing docs for expandos

7 years agoUpdate smime-notes.txt
Zero King [Sun, 30 Apr 2017 05:46:38 +0000 (05:46 +0000)]
Update smime-notes.txt

7 years agoFix smime_keys_test.pl
Zero King [Sat, 29 Apr 2017 13:41:23 +0000 (13:41 +0000)]
Fix smime_keys_test.pl

7 years agoRemove contrib/ca-bundle.crt
Zero King [Sat, 29 Apr 2017 13:24:40 +0000 (13:24 +0000)]
Remove contrib/ca-bundle.crt

7 years agobuild: fix silent rules
Richard Russon [Fri, 26 May 2017 13:17:56 +0000 (14:17 +0100)]
build: fix silent rules

7 years agoNeoMutt Release 2017-05-26 neomutt-20170526
Richard Russon [Fri, 26 May 2017 12:24:59 +0000 (13:24 +0100)]
NeoMutt Release 2017-05-26

7 years agosync translations
Richard Russon [Fri, 26 May 2017 12:08:43 +0000 (13:08 +0100)]
sync translations

7 years agobuild: clang-format source code
Richard Russon [Fri, 26 May 2017 12:06:43 +0000 (13:06 +0100)]
build: clang-format source code

7 years agoupdate mailmap
Richard Russon [Fri, 26 May 2017 11:49:22 +0000 (12:49 +0100)]
update mailmap

7 years agoversion: 2017-05-26
Richard Russon [Fri, 26 May 2017 12:21:17 +0000 (13:21 +0100)]
version: 2017-05-26

7 years agobuild: drop silent rules
Richard Russon [Thu, 25 May 2017 23:17:56 +0000 (00:17 +0100)]
build: drop silent rules

Older versions of make don't support the 'magic' that we need.

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Thu, 25 May 2017 23:28:30 +0000 (00:28 +0100)]
merge: upstream fixes (mutt/default)

 * Move the IMAP msn field to IMAP_HEADER_DATA. (see #3942)
 * Fix imap expunge to match msn and fix index. (see #3942)
 * Fix cmd_parse_fetch() to match against MSN. (see #3942)
 * Start fixing imap_read_headers() to account for MSN gaps. (see #3942)
 * Add msn_index and max_msn to find and check boundaries by MSN. (see #3942)
 * Properly adjust fetch ranges when handling new mail. (see #3942)
 * Small imap fetch fixes. (see #3942)
 * Don't abort header cache evaluation when there is a hole. (see #3942)
 * Fix mfc overflow check and uninitialized variable.
 * Fix potential segv if mx_open_mailbox is passed an empty string. (closes #3945)
 * Don't clean up idata when closing an open-append mailbox.
 * Don't clean up msn idata when closing an open-append mailbox. (see #3942)
 * Fix memory leak when closing mailbox and using the sidebar.
 * Change imap body cache cleanup to use the uid_hash.

7 years agoChange imap body cache cleanup to use the uid_hash.
Kevin McCarthy [Wed, 24 May 2017 22:46:41 +0000 (15:46 -0700)]
Change imap body cache cleanup to use the uid_hash.

This should speed up $message_cache_clean cleanup when syncing.

7 years agoFix memory leak when closing mailbox and using the sidebar.
Kevin McCarthy [Tue, 23 May 2017 22:53:30 +0000 (15:53 -0700)]
Fix memory leak when closing mailbox and using the sidebar.

The code updating the sidebar counts decremented the msgcount, but did
not set it back to the original value.  Which means fastclose was not
freeing all the headers.

Update the sidebar only when something is deleted, since I don't
believe it's required otherwise and the code is a bit cleaner that
way.

7 years agoDon't clean up msn idata when closing an open-append mailbox. (see #3942)
Kevin McCarthy [Tue, 23 May 2017 01:30:38 +0000 (18:30 -0700)]
Don't clean up msn idata when closing an open-append mailbox. (see #3942)

This is a continuation of commit 59a2125b49f2 with changes made in the
default branch.

Thanks again to Will Yardley for helping test the imap read-headers
changes and discovering this bug.

7 years agoDon't clean up idata when closing an open-append mailbox.
Kevin McCarthy [Tue, 23 May 2017 01:18:29 +0000 (18:18 -0700)]
Don't clean up idata when closing an open-append mailbox.

open-append borrows the idata just for the connection.  The "mailbox
specific" part of the idata may be being used by a normal
open-mailbox.

Don't free the idata "mailbox specific" part when closing an
open-append mailbox.

Thanks to Will Yardley for discovering the bug as part of testing the
revised IMAP fetch_headers code (in the default branch).

7 years agoFix potential segv if mx_open_mailbox is passed an empty string. (closes #3945)
TAKAHASHI Tamotsu [Mon, 22 May 2017 12:08:58 +0000 (05:08 -0700)]
Fix potential segv if mx_open_mailbox is passed an empty string. (closes #3945)

If path is "", ctx->path will be NULL.  realpath() generally will segv
if the first parameter is NULL.

7 years agoFix mfc overflow check and uninitialized variable.
Kevin McCarthy [Mon, 22 May 2017 11:43:24 +0000 (04:43 -0700)]
Fix mfc overflow check and uninitialized variable.

The check borrowed from mx_alloc_memory() works because it is
incremented 25 at a time.  I don't believe it will work for the direct
set case used in imap_alloc_msn_index().  Instead, use a more
conservative check.

In imap_read_headers(), make sure mfhrc is initialized.  It would be
tested without being set if imap_cmd_step() returned OK right away.

7 years agoDon't abort header cache evaluation when there is a hole. (see #3942)
Kevin McCarthy [Mon, 22 May 2017 01:45:09 +0000 (18:45 -0700)]
Don't abort header cache evaluation when there is a hole. (see #3942)

Instead, find the first missing MSN and generate a more complicated
sequence set specifying the missing ranges.

This removes the assumption that the header cache query returned
results in MSN order.

7 years agoSmall imap fetch fixes. (see #3942)
Kevin McCarthy [Mon, 22 May 2017 01:45:08 +0000 (18:45 -0700)]
Small imap fetch fixes. (see #3942)

Add an integer overflow test, pulled from mx_alloc_memory(), since the
count comes from a potentially hostile server.

After reviewing the RFC a bit, it turns out the server is not supposed
to send EXPUNGE responses during a FETCH.  Change the comment, but
keep the conservative code.

7 years agoProperly adjust fetch ranges when handling new mail. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 17:51:38 +0000 (10:51 -0700)]
Properly adjust fetch ranges when handling new mail. (see #3942)

When pulling down headers, it is possible for expunge responses to
happen too.  If we get a new mail count, we need to take into account
changes to the max_msn due to the expunges.

7 years agoAdd msn_index and max_msn to find and check boundaries by MSN. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 01:52:18 +0000 (18:52 -0700)]
Add msn_index and max_msn to find and check boundaries by MSN. (see #3942)

Since there can be gaps in MSNs, the largest MSN in the context is not
necessarily ctx->msgcount.

Use max_msn instead of ctx->msgcount for:
  - the starting MSN of new mail header fetching
  - boundary checking in fetch, expunge, and other places

Use msn_index to efficiently look up headers by MSN.  This makes the
expunge code slightly more efficient.  It also makes FETCH handling, and
duplicate FETCH FLAG handling efficient.

7 years agoStart fixing imap_read_headers() to account for MSN gaps. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 01:52:16 +0000 (18:52 -0700)]
Start fixing imap_read_headers() to account for MSN gaps. (see #3942)

Change the parameters to pass MSN instead of index, to make a bit
simpler.

Change header cache evaluation to look at the largest MSN retrieved
instead of ctx->msgcount for the next fetch start point.  This still
depends on the assumption that MSNs are retrieved in ascending order,
which needs to be fixed.

Simplify the header cache inner loop termination and memory cleanup
logic.  Fix a memory leak if a hole in the header cache occured.

Fix the header retrieval logic to take into account MSN gaps in the
results.  Loop only as long as we get IMAP_CMD_CONTINUE instead of
over a fixed count.  Simplify the inner loop termination and memory
cleanup logic too.

Simplify the "new mail while fetching" logic by creating a third outer
loop to handle re-fetches.

Fix msg_fetch_header() to return -2 if msg_parse_fetch() encounters a
corrupt FETCH response.  Previously it would pass on the rc of
msg_parse_fetch(), meaning it would return -1 even though the response
was corrupt.

7 years agoFix cmd_parse_fetch() to match against MSN. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 01:52:14 +0000 (18:52 -0700)]
Fix cmd_parse_fetch() to match against MSN. (see #3942)

7 years agoFix imap expunge to match msn and fix index. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 01:52:13 +0000 (18:52 -0700)]
Fix imap expunge to match msn and fix index. (see #3942)

The expunge needs to match against the MSN now.  Since
cmd_parse_expunge() does not automatically fix h->index anymore,
change imap_expunge_mailbox() to fix up the h->index values.

7 years agoMove the IMAP msn field to IMAP_HEADER_DATA. (see #3942)
Kevin McCarthy [Sun, 21 May 2017 01:52:12 +0000 (18:52 -0700)]
Move the IMAP msn field to IMAP_HEADER_DATA. (see #3942)

Ticket 3942 revealed that it is possible for a FETCH to have gaps in
the MSN numbers of the results.  The code makes many assumptions that
equate context index counts and MSN.  This is the first in a series of
commits fixing that assumption.

The header->index field is supposed to hold the SORT_ORDER index
number of the message.  If there are gaps in the MSN, than the highext
MSN can in fact be out of the range 0..ctx->msgcount-1.

After studying the code, I believe curs_main.c would actually work
with header->index values out of the range, at least for IMAP.  But
some other parts of the code, such as mutt_reopen_mailbox(), do rely
on the values being a valid index to ctx->hdrs[].  And the
intertwining of menu->oldcurrent with header->index values makes me
nervous about future changes.

So, to be safe, move the MSN to its own field in IMAP_HEADER_DATA.

The next commit will fix the EXPUNGE behavior.

7 years agoFix memory leak when closing mailbox and using the sidebar.
Kevin McCarthy [Tue, 23 May 2017 22:53:30 +0000 (15:53 -0700)]
Fix memory leak when closing mailbox and using the sidebar.

The code updating the sidebar counts decremented the msgcount, but did
not set it back to the original value.  Which means fastclose was not
freeing all the headers.

Update the sidebar only when something is deleted, since I don't
believe it's required otherwise and the code is a bit cleaner that
way.

7 years agotidy wcscasecmp
Richard Russon [Wed, 26 Apr 2017 01:40:48 +0000 (02:40 +0100)]
tidy wcscasecmp

Remove some unnecessary variables.

7 years agodrop obsolete forget option
Richard Russon [Sat, 13 May 2017 16:34:35 +0000 (17:34 +0100)]
drop obsolete forget option

The rest of the code for this obsolete option was dropped a while ago.

7 years agofix some bools
Richard Russon [Mon, 22 May 2017 12:06:41 +0000 (13:06 +0100)]
fix some bools

Replace 0/1 with false/true

7 years agoadd names prototype arguments
Richard Russon [Sat, 20 May 2017 14:05:34 +0000 (15:05 +0100)]
add names prototype arguments

Header files are easier to understand if the arguments are named.
e.g., replace:
    int mutt_copy_stream(FILE *, FILE *);
with:
    int mutt_copy_stream(FILE *fin, FILE *fout);

7 years agoabbreviate pointer tests against NULL
Richard Russon [Tue, 23 May 2017 13:13:41 +0000 (14:13 +0100)]
abbreviate pointer tests against NULL

Replace:
    if (x == NULL)  ->  if (!x)
    if (x != NULL)  ->  if (x)

The conditions have only been changed for variables, not functions, e.g.
    if (fn(x) == NULL)

7 years agoinitialise pointers to NULL
Richard Russon [Fri, 19 May 2017 14:58:23 +0000 (15:58 +0100)]
initialise pointers to NULL

7 years agoreduce the scope of for loop variables
Richard Russon [Mon, 22 May 2017 18:53:00 +0000 (19:53 +0100)]
reduce the scope of for loop variables

Quite often, the loop variable in a 'for' loop isn't used elsewhere.
C99 allows us to reduce the scope to *just* the 'for' loop.

7 years agorun clang-format on the code
Richard Russon [Mon, 22 May 2017 19:31:47 +0000 (20:31 +0100)]
run clang-format on the code

This commit only changes the formatting, nothing else.
It tidies up after all the renaming that's happened.

7 years agodoc: fix doc
Richard Russon [Tue, 23 May 2017 10:12:44 +0000 (11:12 +0100)]
doc: fix doc

By renaming all the structs in *.[ch], I broke the doc build which is
perl.

7 years agoDon't clean up idata when closing an open-append mailbox.
Kevin McCarthy [Tue, 23 May 2017 01:18:29 +0000 (18:18 -0700)]
Don't clean up idata when closing an open-append mailbox.

open-append borrows the idata just for the connection.  The "mailbox
specific" part of the idata may be being used by a normal
open-mailbox.

Don't free the idata "mailbox specific" part when closing an
open-append mailbox.

Thanks to Will Yardley for discovering the bug as part of testing the
revised IMAP fetch_headers code (in the default branch).

7 years agorename the remaining plain structs
Richard Russon [Fri, 19 May 2017 00:41:07 +0000 (01:41 +0100)]
rename the remaining plain structs

struct b64_context            struct B64Context
struct binding_t              struct Binding
struct browser_state          struct BrowserState
struct command_t              struct Command
struct compile_options        struct CompileOptions
struct coord                  struct Coord
struct crypt_cache            struct CryptCache
struct crypt_module_functions struct CryptModuleFunctions
struct crypt_module_specs     struct CryptModuleSpecs
struct dn_array_s             struct DnArrayS
struct enriched_state         struct EnrichedState
struct extkey                 struct Extkey
struct fgetconv_not           struct FgetConvNot
struct fgetconv_s             struct FgetConvS
struct folder_file            struct FolderFile
struct hash_elem              struct HashElem
struct hash_walk_state        struct HashWalkState
struct hdr_format_info        struct HdrFormatInfo
struct header_cache           struct HeaderCache
struct history                struct History
struct keymap_t               struct Keymap
struct line_t                 struct Line
struct maildir                struct Maildir
struct mapping_t              struct Mapping
struct md5_ctx                struct Md5Ctx
struct mh_data                struct MhData
struct mh_sequences           struct MhSequences
struct m_update_t             struct MUpdate
struct mx_ops                 struct MxOps
struct nm_ctxdata             struct NmCtxdata
struct nm_hdrdata             struct NmHdrdata
struct nm_hdrtag              struct NmHdrtag
struct option_t               struct Option
struct pattern_flags          struct PatternFlags
struct pgp_cache              struct PgpCache
struct pgp_command_context    struct PgpCommandContext
struct q_class_t              struct QClass
struct range_regexp           struct RangeRegex
struct resize                 struct Resize
struct rfc2231_parameter      struct Rfc2231Parameter
struct smime_command_context  struct SmimeCommandContext
struct syntax_t               struct Syntax
struct sysexits               struct Sysexits
struct _tlssockdata           struct TlsSockData
struct tz_t                   struct Tz
struct uri_tag                struct UriTag

7 years agoFix potential segv if mx_open_mailbox is passed an empty string. (closes #3945)
TAKAHASHI Tamotsu [Mon, 22 May 2017 12:08:58 +0000 (05:08 -0700)]
Fix potential segv if mx_open_mailbox is passed an empty string. (closes #3945)

If path is "", ctx->path will be NULL.  realpath() generally will segv
if the first parameter is NULL.

7 years agofix idna problems
Richard Russon [Thu, 18 May 2017 16:24:35 +0000 (17:24 +0100)]
fix idna problems

7 years agobuild: restore missing INTLLIBS/INTLDEPS
Richard Russon [Thu, 18 May 2017 14:47:52 +0000 (15:47 +0100)]
build: restore missing INTLLIBS/INTLDEPS

Restore the dependencies on libintl.
I removed them because I couldn't find any references to them
I didn't look hard enough!

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Thu, 18 May 2017 14:06:30 +0000 (15:06 +0100)]
merge: upstream fixes (mutt/default)

 * Turn IMAP_EXPUNGE_EXPECTED back off when syncing. (closes #3940).
 * Add $history_remove_dups option to remove dups from history ring.
 * Also remove duplicates from the history file.
 * Don't filter new entries when compacting history save file.

7 years agoDon't filter new entries when compacting history save file.
Kevin McCarthy [Sat, 13 May 2017 16:48:28 +0000 (09:48 -0700)]
Don't filter new entries when compacting history save file.

If new entries are added between the two passes, they won't be in the
dup_hash.  The original intent was to filter added duplicates, but the
check would also filter brand new entries.

7 years agoAlso remove duplicates from the history file.
Kevin McCarthy [Sat, 13 May 2017 01:31:41 +0000 (18:31 -0700)]
Also remove duplicates from the history file.

When $history_remove_dups is set, remove duplicates from the history
file when it is periodically compacted.

7 years agoAdd $history_remove_dups option to remove dups from history ring.
Kevin McCarthy [Sat, 13 May 2017 01:31:36 +0000 (18:31 -0700)]
Add $history_remove_dups option to remove dups from history ring.

When set, duplicate entries will be removed from the history ring when
a new entry is added.  The duplicate removal rearranges the history
ring such that created empty slots are right after the "last" position
in the ring, preserving the most history.

Rewrite the next/prev functions to take into account that blank slots can
now be in the middle of the array.

7 years agoTurn IMAP_EXPUNGE_EXPECTED back off when syncing. (closes #3940).
Kevin McCarthy [Fri, 12 May 2017 16:15:00 +0000 (09:15 -0700)]
Turn IMAP_EXPUNGE_EXPECTED back off when syncing. (closes #3940).

imap_sync_mailbox() turned on IMAP_EXPUNGE_EXPECTED when issuing a
EXPUNGE command during a sync.  However, it forgot to turn it back off.

That meant that an unexpected EXPUNGE that occurred during a
mx_check_mailbox -> imap_check_mailbox() -> imap_cmd_finish() call was
not setting
  idata->check_status = IMAP_EXPUNGE_PENDING;
and so imap_check_mailbox() was not returning MUTT_REOPENED.

This meant that although the Context had been changed, the index did
not run update_index(), resulting in a possible segfault.

Thanks to Uroš Juvan for reporting the issue, and his invaluable
description of how to reproduce the problem.

7 years agobuild: remove --enable-mailtool configure option 557/head
toogley [Fri, 28 Apr 2017 13:21:59 +0000 (15:21 +0200)]
build: remove --enable-mailtool configure option

Leave the code enabled, but hide the option.
The feature may be useful to someone.
The code isn't complicated or risky.

7 years agobuild: move crypto files to ncrypt dir
Richard Russon [Mon, 15 May 2017 11:20:48 +0000 (12:20 +0100)]
build: move crypto files to ncrypt dir

7 years agomerge: minor build fixes/tidying
Richard Russon [Thu, 18 May 2017 11:42:50 +0000 (12:42 +0100)]
merge: minor build fixes/tidying

 * remove unused definitions
 * update distcheck build flags
 * move configure-generated files
 * drop docs timestamps
 * add silent rules, but default to off
 * tidy po/Makevars
 * light tidy
 * strerror

7 years agobuild: strerror 579/head
Richard Russon [Sat, 13 May 2017 13:21:22 +0000 (14:21 +0100)]
build: strerror

strerror will always be there to use.

7 years agobuild: light tidy
Richard Russon [Sat, 13 May 2017 13:23:19 +0000 (14:23 +0100)]
build: light tidy

7 years agobuild: tidy po/Makevars
Richard Russon [Sat, 13 May 2017 13:02:25 +0000 (14:02 +0100)]
build: tidy po/Makevars

Remove all the variables that weren't used.
Remove the obvious comments.
Add a custom build rule to quieten the output.

7 years agobuild: add silent rules, but default to off
Richard Russon [Sat, 13 May 2017 13:28:26 +0000 (14:28 +0100)]
build: add silent rules, but default to off

This extends the silent build to all make commands, e.g.

old make output:
```
( \
(gcc -v >/dev/null 2>&1 && gcc -v) || \
(gcc --version >/dev/null 2>&1 && gcc --version) || \
(gcc -V >/dev/null 2>&1 && gcc -V) || \
echo "unknown compiler"; \
) 2>&1 | ./txt2c.sh cc_version >conststrings_c
echo "-Wall -pedantic -Wno-long-long -g -Wall -O0 -Werror=format-security -fno-delete-null-pointer-checks  -fno-delete-null-pointer-checks" | ./txt2c.sh cc_cflags >>conststrings_c
grep ac_cs_config= config.status | \
cut -d= -f2- | \
sed -e 's/^"//' -e 's/"$//' | ./txt2c.sh configure_options >>conststrings_c
mv -f conststrings_c conststrings.c
```

new make output:
```
  GEN      conststrings.c
```

7 years agobuild: split up mutt.h, protos.h 580/head
Richard Russon [Sun, 7 May 2017 00:54:44 +0000 (01:54 +0100)]
build: split up mutt.h, protos.h

Move various structs out of mutt.h into their own header files.
Then run IWYU (include-what-you-use) on all files.

7 years agobuild: drop docs timestamps
Richard Russon [Sat, 13 May 2017 13:27:38 +0000 (14:27 +0100)]
build: drop docs timestamps

The build of the docs generated several empty timestamp files to keep
track of what had been built.  They weren't necessary.

7 years agobuild: move configure-generated files
Richard Russon [Sat, 13 May 2017 13:13:22 +0000 (14:13 +0100)]
build: move configure-generated files

This small change moves 6 configure-generated files into a directory we
won't see (.build-aux)
    compile
    config.guess
    config.sub
    depcomp
    install-sh
    missing

7 years agobuild: update distcheck build flags
Richard Russon [Sat, 13 May 2017 13:10:47 +0000 (14:10 +0100)]
build: update distcheck build flags

"make dist" creates a .tar of the source.
"make distcheck" does a complete build on that .tar
Make sure we have an up-to-date list of configure options.

7 years agobuild: remove unused definitions
Richard Russon [Sat, 13 May 2017 13:08:37 +0000 (14:08 +0100)]
build: remove unused definitions

INTLLIBS, INTLDEPS, DEBUGGER aren't used anywhere.

7 years agoKill useless crypthash.h file 581/head
Pietro Cerutti [Mon, 15 May 2017 12:14:31 +0000 (12:14 +0000)]
Kill useless crypthash.h file

7 years agomerge: typedefs -> plain structs
Richard Russon [Wed, 17 May 2017 16:23:45 +0000 (17:23 +0100)]
merge: typedefs -> plain structs

 * ACCOUNT               -> struct Account
 * ADDRESS               -> struct Address
 * ALIAS                 -> struct Alias
 * ansi_attr             -> struct AnsiAttr
 * ATTACH_MATCH          -> struct AttachMatch
 * ATTACHPTR             -> struct AttachPtr
 * BODY                  -> struct Body
 * body_cache_t          -> struct BodyCache
 * BUFFER                -> struct Buffer
 * BUFFY                 -> struct Buffy
 * CHILD_CTX             -> struct ChildCtx
 * ciss_url_t            -> struct CissUrl
 * COLOR_LINE            -> struct ColorLine
 * COLOR_LIST            -> struct ColorList
 * compose_redraw_data_t -> struct ComposeRedrawData
 * COMPRESS_INFO         -> struct CompressInfo
 * CONNECTION            -> struct Connection
 * CONTENT               -> struct Content
 * CONTENT_STATE         -> struct ContentState
 * CONTEXT               -> struct Context
 * crypt_entry_t         -> struct CryptEntry
 * crypt_key_t           -> struct CryptKeyinfo
 * crypt_module_t        -> struct CryptModule
 * ENTER_STATE           -> struct EnterState
 * ENTRY                 -> struct Entry
 * ENVELOPE              -> struct Envelope
 * event_t               -> struct Event
 * FETCH_CTX             -> struct FetchCtx
 * flowed_state_t        -> struct FlowedState
 * FOLDER                -> struct Folder
 * group_t               -> struct Group
 * group_context_t       -> struct GroupContext
 * HASH                  -> struct Hash
 * hcache_db_ctx_t       -> struct HcacheDbCtx
 * hcache_lmdb_ctx_t     -> struct HcacheLmdbCtx
 * HEADER                -> struct Header
 * HOOK                  -> struct Hook
 * imap_auth_t           -> struct ImapAuth
 * IMAP_CACHE            -> struct ImapCache
 * IMAP_COMMAND          -> struct ImapCommand
 * IMAP_DATA             -> struct ImapData
 * IMAP_HEADER           -> struct ImapHeader
 * IMAP_HEADER_DATA      -> struct ImapHeaderData
 * IMAP_LIST             -> struct ImapList
 * IMAP_MBOX             -> struct ImapMbox
 * IMAP_STATUS           -> struct ImapStatus
 * LIST                  -> struct List
 * mbchar_table          -> struct MbCharTable
 * MUTTMENU              -> struct Menu
 * MESSAGE               -> struct Message
 * MIXCHAIN              -> struct MixChain
 * THREAD                -> struct MuttThread
 * mutt_window_t         -> struct MuttWindow
 * myvar_t               -> struct MyVar
 * NEWSRC_ENTRY          -> struct NewsrcEntry
 * NNTP_ACACHE           -> struct NntpAcache
 * NNTP_DATA             -> struct NntpData
 * NNTP_HEADER_DATA      -> struct NntpHeaderData
 * NNTP_SERVER           -> struct NntpServer
 * pager_t               -> struct Pager
 * pager_redraw_data_t   -> struct PagerRedrawData
 * PARAMETER             -> struct Parameter
 * pattern_t             -> struct Pattern
 * pattern_cache_t       -> struct PatternCache
 * pgp_entry_t           -> struct PgpEntry
 * pgp_key_t             -> struct PgpKeyInfo
 * pgp_sig_t             -> struct PgpSignature
 * pgp_uid_t             -> struct PgpUid
 * pop_auth_t            -> struct PopAuth
 * POP_CACHE             -> struct PopCache
 * POP_DATA              -> struct PopData
 * progress_t            -> struct Progress
 * QUERY                 -> struct Query
 * REGEXP                -> struct Regex
 * REMAILER              -> struct Remailer
 * REPLACE_LIST          -> struct ReplaceList
 * rfc1524_entry         -> struct Rfc1524MailcapEntry
 * RX_LIST               -> struct RxList
 * SASL_DATA             -> struct SaslData
 * SBENTRY               -> struct SbEntry
 * SCORE                 -> struct Score
 * SHA1_CTX              -> struct Sha1Ctx
 * smime_key_t           -> struct SmimeKey
 * sslsockdata           -> struct SslSockData
 * STATE                 -> struct State
 * TUNNEL_DATA           -> struct TunnelData

7 years agoreplace 'TUNNEL_DATA' with 'struct TunnelData' 582/head
Richard Russon [Tue, 16 May 2017 13:18:39 +0000 (14:18 +0100)]
replace 'TUNNEL_DATA' with 'struct TunnelData'