]> granicus.if.org Git - mutt/log
mutt
6 years agoMerge branch 'stable'
Kevin McCarthy [Thu, 18 Jan 2018 03:20:04 +0000 (19:20 -0800)]
Merge branch 'stable'

6 years agoFix one more dev site reference in the manual.
Kevin McCarthy [Thu, 18 Jan 2018 03:19:01 +0000 (19:19 -0800)]
Fix one more dev site reference in the manual.

6 years agoMerge branch 'stable'
Kevin McCarthy [Thu, 18 Jan 2018 03:00:50 +0000 (19:00 -0800)]
Merge branch 'stable'

6 years agoFix a couple memory leaks in pattern.c
Kevin McCarthy [Thu, 18 Jan 2018 02:57:49 +0000 (18:57 -0800)]
Fix a couple memory leaks in pattern.c

BUFFER.data was not being freed in a couple cases.

The pattern and simple search were not being freed if imap_search()
failed.

6 years agoMerge branch 'stable'
Kevin McCarthy [Thu, 18 Jan 2018 02:18:20 +0000 (18:18 -0800)]
Merge branch 'stable'

6 years agoChange bug reporting URL to gitlab issues.
Kevin McCarthy [Thu, 18 Jan 2018 02:05:28 +0000 (18:05 -0800)]
Change bug reporting URL to gitlab issues.

6 years agoPull latest Polish translation from master.
Kevin McCarthy [Thu, 18 Jan 2018 02:01:31 +0000 (18:01 -0800)]
Pull latest Polish translation from master.

6 years agoUpdate manual to point to gitlab.com as development site.
Kevin McCarthy [Thu, 18 Jan 2018 00:21:53 +0000 (16:21 -0800)]
Update manual to point to gitlab.com as development site.

6 years agoRemove muttbug and flea.
Kevin McCarthy [Thu, 18 Jan 2018 00:16:10 +0000 (16:16 -0800)]
Remove muttbug and flea.

We have pretty much transitioned over to gitlab.com.

6 years agoUpdate po
Olaf Hering [Tue, 16 Jan 2018 08:40:11 +0000 (09:40 +0100)]
Update po

Followup for untranslate Copyright list.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoSplit Copyright and Thanks in help output.
Olaf Hering [Tue, 16 Jan 2018 08:40:06 +0000 (09:40 +0100)]
Split Copyright and Thanks in help output.

The Copyright string is changing often, and its content is obvious.
It does not need translation. The remaining string can be translated.
This change avoids a stale translation once one of the years change.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoUpdate po
Olaf Hering [Tue, 16 Jan 2018 08:39:57 +0000 (09:39 +0100)]
Update po

Preparation for following changes.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoadd clang static analysis to builds brendan/gitlab-ci
Brendan Cully [Tue, 16 Jan 2018 04:20:17 +0000 (20:20 -0800)]
add clang static analysis to builds

6 years agogitlab-ci: build against openssl and gnutls
Brendan Cully [Tue, 16 Jan 2018 02:40:20 +0000 (18:40 -0800)]
gitlab-ci: build against openssl and gnutls

6 years agoAdd pgp_default_key and smime_sign_as info to contrib rc files.
Kevin McCarthy [Tue, 16 Jan 2018 00:06:30 +0000 (16:06 -0800)]
Add pgp_default_key and smime_sign_as info to contrib rc files.

Explain $pgp_default_key vs $pgp_sign_as in gpg.rc.

Explain $smime_default_key vs $smime_sign_as in smime.rc.

6 years agoAdd pages to .gitlab-ci.yml
Kevin McCarthy [Mon, 15 Jan 2018 22:20:28 +0000 (14:20 -0800)]
Add pages to .gitlab-ci.yml

Use this to regenerate the manual and store it in the pages for the
project.

6 years agoUpdate smime.rc: Typo fix, consistent headings
Konstantin Stephan [Mon, 15 Jan 2018 14:43:53 +0000 (14:43 +0000)]
Update smime.rc: Typo fix, consistent headings

6 years agouse mutt/ubuntu build image, build with everything on
Brendan Cully [Sun, 14 Jan 2018 23:50:34 +0000 (15:50 -0800)]
use mutt/ubuntu build image, build with everything on

6 years agoskeleton .gitlab-ci.yml to compile commits
Brendan Cully [Sat, 13 Jan 2018 22:49:35 +0000 (14:49 -0800)]
skeleton .gitlab-ci.yml to compile commits

6 years agoFixed GPGME translations that weren’t shown but affected the keyboard
Grzegorz Szymaszek [Sat, 13 Jan 2018 20:21:35 +0000 (21:21 +0100)]
Fixed GPGME translations that weren’t shown but affected the keyboard

6 years agoUpdate pl.po
Grzegorz Szymaszek [Sat, 13 Jan 2018 19:27:11 +0000 (20:27 +0100)]
Update pl.po

6 years agoFix typo in de.po
Olaf Hering [Sat, 13 Jan 2018 08:47:09 +0000 (09:47 +0100)]
Fix typo in de.po

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoexamine_directory: set directory/symlink size to zero
Olaf Hering [Tue, 3 Dec 2013 15:42:39 +0000 (16:42 +0100)]
examine_directory: set directory/symlink size to zero

The size of a directory or symlink in the folder browser is not meaningful.
For directories it means just how many blocks were allocated to hold all
entries. It does not mean that the entries are still present in the directory.
For symlinks its the size of the target.
Set both to zero to simplify the folder browser output.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agomutt_pretty_size: show real number for small files
Olaf Hering [Tue, 3 Dec 2013 15:43:49 +0000 (16:43 +0100)]
mutt_pretty_size: show real number for small files

If a file is smaller than a certain size it is unfriendly to print 0K or
0,1K as number of mails or as file size. Instead use the real number.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
6 years agoMerge branch 'stable'
Kevin McCarthy [Thu, 11 Jan 2018 23:16:07 +0000 (15:16 -0800)]
Merge branch 'stable'

6 years agoAdd missing setup calls when resuming encrypted drafts.
Kevin McCarthy [Thu, 11 Jan 2018 23:08:30 +0000 (15:08 -0800)]
Add missing setup calls when resuming encrypted drafts.

Calls to get the passphrase were missing for app/pgp and app/smime.
App/smime was also missing a call to crypt_smime_getkeys().

If a failure occurs, report it back, rather than just continuing.
Otherwise, postponed messages could be completely lost.

6 years agoCreate pgp and s/mime default and sign_as key vars. (see #3983)
Kevin McCarthy [Thu, 11 Jan 2018 21:24:30 +0000 (13:24 -0800)]
Create pgp and s/mime default and sign_as key vars. (see #3983)

The $postpone_encrypt and $(pgp/smime)_self_encrypt configuration
variables have created a somewhat messier situation for users.  Many
of them now have to specify their keys across multiple configuration
variables.

(Trac) Ticket #3983 had a reasonable request: "if my encrypt and
signing keys are the same, why can't I just specify my key once in my
.muttrc?"

The problem currently is that $smime_default_key and $pgp_sign_as are
both used to specify signing keys, and are set by the "sign (a)s"
security menu choice.  So we can't store encryption keys there because
some users have separate sign-only capability keys.

Create $pgp_default_key to store the default encryption key.  Change
signing to use $pgp_default_key, unless overridden by $pgp_sign_as.
The pgp "sign (a)s" will continue setting $pgp_sign_as.

Create $smime_sign_as.  Change signing to use $smime_default_key
unless overridden by $smime_sign_as.  Change s/mime "sign (a)s" menu
to set $smime_sign_as instead.

Change $postpone_encrypt and $(pgp/smime)_self_encrypt to use
$(pgp/smime)_default_key by default.

Mark $(pgp/smime)_self_encrypt_as deprecated.  They are now aliases
for the $(pgp/smime)_default_key config vars.

Change $(pgp/smime)_self_encrypt default to set.

The intent is that most users now need only set
$(pgp/smime)_default_key.  If they have a sign-only key, or have
separate signing and encryption keys, they can put that in
$(pgp/smime)_sign_as.  This also enables to default self_encrypt on
and solve a very common request.

Thanks to Michele Marcionelli and Vincent Lefèvre for gently pushing
me towards a solution.

6 years agoUpdated French translation.
Vincent Lefevre [Tue, 9 Jan 2018 03:09:11 +0000 (04:09 +0100)]
Updated French translation.

6 years agoChange the default of NewMailCmd to 0.
Kevin McCarthy [Tue, 9 Jan 2018 02:07:24 +0000 (18:07 -0800)]
Change the default of NewMailCmd to 0.

This is so the documentation is generated consistently for unset
strings.

6 years agoNewMailCmd: optionally execute a command upon new mail arrival
Yoshiki Vázquez Baeza [Sun, 7 Jan 2018 13:49:45 +0000 (14:49 +0100)]
NewMailCmd: optionally execute a command upon new mail arrival

This setting allows to run any external program to e.g. produce a
notification on the desktop when Mutt finds new mail.

Signed-off-by: Fabian Groffen <grobian@gentoo.org>
6 years agocmd_handle_fatal: make error message a bit more descriptive
Fabian Groffen [Sun, 7 Jan 2018 12:06:56 +0000 (13:06 +0100)]
cmd_handle_fatal: make error message a bit more descriptive

When there are multiple IMAP connections available, "Mailbox closed"
doesn't give a hint as to which one.  Use account info to identify which
mailbox was closed.

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 7 Jan 2018 20:18:37 +0000 (12:18 -0800)]
Merge branch 'stable'

6 years agoFix imap status count range check.
Kevin McCarthy [Sun, 7 Jan 2018 20:12:42 +0000 (12:12 -0800)]
Fix imap status count range check.

The strtoul() call for parsing the STATUS count wasn't checking the
range properly, because it was assigning to an unsigned int.

Change to assign to a unsigned long, and also add the conversion check
from mutt_atoui().

Thanks to Charles (@chdiza) for quickly noticing the problem!

6 years agoMerge branch 'stable'
Kevin McCarthy [Sun, 7 Jan 2018 00:15:39 +0000 (16:15 -0800)]
Merge branch 'stable'

6 years agoChange imap literal counts to parse and store unsigned ints.
Kevin McCarthy [Sat, 6 Jan 2018 23:55:17 +0000 (15:55 -0800)]
Change imap literal counts to parse and store unsigned ints.

IMAP literals are of type number.  Change imap_get_literal_count() to
use mutt_atoui() instead of atoi().  Change the return type variables
used to store the count to type unsigned int.

It's doubtful this was a real issue, but as long as we're cleaning up
incorrect atoi() usage, we should fix this too.

6 years agoFix improper signed int conversion of IMAP uid and msn values.
Kevin McCarthy [Sat, 6 Jan 2018 04:39:50 +0000 (20:39 -0800)]
Fix improper signed int conversion of IMAP uid and msn values.

Several places in the imap code, when parsing "number" and "nz-number"
values from the IMAP data, use atoi() and strtol().  This is
incorrect, and can result in failures when a uid value happens to be
larger than 2^31.

Create a helper function, mutt_atoui() and use that instead.  One
place was using strtol() and relying on the endptr parameter, and so
was changed to use strtoul() instead.

Thanks to Paul Saunders for the bug report and original patch, which
this commit is based on.

6 years agoUpdated French translation.
Vincent Lefevre [Thu, 4 Jan 2018 16:59:20 +0000 (17:59 +0100)]
Updated French translation.

6 years agoDisable message security if the backend is not available.
Kevin McCarthy [Sun, 31 Dec 2017 03:10:16 +0000 (19:10 -0800)]
Disable message security if the backend is not available.

Gitlab issue #3 exposed an awkward corner case: if mutt is configured
without PGP or S/MIME, and with GPGME, but $crypt_use_gpgme is unset.
In this case, no backend will be available, but WithCrypto will be set
with both APPLICATION_PGP and APPLICATION_SMIME bits.

That will allow various config vars to enable encryption or signing,
even though there will be no backend available to perform them.  The
message security flag might then be set, but when the user hits send,
will end up back at the compose menu due to the error.

The pgp or smime menu might not even be available to clear the
security setting!

Add a check in send.c before the compose menu is invoked, and give a
warning message for the menu ops inside the compose menu.

I believe this should prevent the issue.  However this is a corner
case combined with user misconfiguration, so I don't believe is worth
a large effort to completely eradicate.

7 years agoConverted po/pl.po from ISO-8859-2 to UTF-8
Grzegorz Szymaszek [Fri, 29 Dec 2017 14:20:38 +0000 (15:20 +0100)]
Converted po/pl.po from ISO-8859-2 to UTF-8

I’ve converted the Polish translation file to UTF-8 using iconv 2.25.

7 years agoMention self_encrypt options in the documentation. (closes #3983)
Kevin McCarthy [Thu, 28 Dec 2017 21:07:21 +0000 (13:07 -0800)]
Mention self_encrypt options in the documentation. (closes #3983)

Add a paragraph to the "Sending Cryptographically Signed/Encrypted
Messages" section of the manual.

7 years agoMerge branch 'stable'
Kevin McCarthy [Tue, 26 Dec 2017 23:09:28 +0000 (15:09 -0800)]
Merge branch 'stable'

7 years agoUpdate wiki link in manual.
Kevin McCarthy [Tue, 26 Dec 2017 23:09:07 +0000 (15:09 -0800)]
Update wiki link in manual.

7 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 18 Dec 2017 21:02:17 +0000 (13:02 -0800)]
Merge branch 'stable'

7 years agoDetermine latest tag using git describe.
Kevin McCarthy [Mon, 18 Dec 2017 20:55:20 +0000 (12:55 -0800)]
Determine latest tag using git describe.

Commit 8648db83 relies on `sort -V` which is unavailable on some
platforms.  Instead just use `git describe` with --abbrev=0 to only
output the tag.  We still manually compute the distance to avoid the
problem mentioned in that commit.

Additionally, add Vincent's fix from commit 3b142cea to the stable
branch.

7 years agoFixed git repo detection: for worktrees, .git is a plain file.
Vincent Lefevre [Mon, 18 Dec 2017 02:01:07 +0000 (03:01 +0100)]
Fixed git repo detection: for worktrees, .git is a plain file.

7 years agomanually touch atime when reading a mbox file
Adam Borowski [Sun, 17 Dec 2017 12:36:21 +0000 (13:36 +0100)]
manually touch atime when reading a mbox file

The only common use of atime left is local mail agents leaving a mark on
mbox file after the mail has been read.  And, since POSIX-2008, it is
possible to use futimens() to alter atime even on filesystems mounted with
noatime.

There's no extra cost for doing this on when atime updates are enabled:
the inode will be dirty already.

7 years agoAdd config.cache to .gitignore file.
Kevin McCarthy [Sun, 17 Dec 2017 20:16:10 +0000 (12:16 -0800)]
Add config.cache to .gitignore file.

7 years agoMerge branch 'stable'
Kevin McCarthy [Fri, 15 Dec 2017 23:56:39 +0000 (15:56 -0800)]
Merge branch 'stable'

7 years agoautomatic post-release commit for mutt-1.9.2 mutt-1-9-2-rel
Kevin McCarthy [Fri, 15 Dec 2017 23:31:23 +0000 (15:31 -0800)]
automatic post-release commit for mutt-1.9.2

7 years agoMerge branch 'stable'
Kevin McCarthy [Fri, 15 Dec 2017 20:18:12 +0000 (12:18 -0800)]
Merge branch 'stable'

7 years agoFix s/mime certificate deletion bug. (closes #3982)
Kevin McCarthy [Fri, 15 Dec 2017 20:09:42 +0000 (12:09 -0800)]
Fix s/mime certificate deletion bug. (closes #3982)

Commit c1bcf4ba exposed a bug in the s/mime encryption code.  It was
errorneously calling unlink on the list of generated cert files to
use.

Prior to that commit, the list had an initial space, which apparently
made the unlink fail.  After that commit, encrypting to a single
certificate would end up deleting the certificate.

Remove the calls to unlink the cert file.  Add some missing cleanup if
the call to openssl fails.

7 years agoMerge branch 'stable'
Kevin McCarthy [Fri, 15 Dec 2017 00:21:04 +0000 (16:21 -0800)]
Merge branch 'stable'

7 years agoUpdate mkchangelog.sh to use git.
Kevin McCarthy [Fri, 15 Dec 2017 00:16:27 +0000 (16:16 -0800)]
Update mkchangelog.sh to use git.

The output isn't quite as nice as the hg generated version, but is
close.

With Mercurial, and now Git, I'm not sure of the usefulness of
maintaining a ChangeLog file in the repos, but that is another
discussion.

7 years agoRemove hg-commit and Makefile commit target.
Kevin McCarthy [Wed, 13 Dec 2017 03:09:42 +0000 (19:09 -0800)]
Remove hg-commit and Makefile commit target.

I haven't ever used this script, and we only update the ChangeLog
during releases now.

doc/devel-notes already mentions running check_sec.sh.  Add a mention
of the 'make validate' target too.

7 years agoMerge branch 'stable'
Kevin McCarthy [Wed, 13 Dec 2017 02:27:24 +0000 (18:27 -0800)]
Merge branch 'stable'

7 years agoMinor tweaks to the version.sh fixes from last commit.
Kevin McCarthy [Wed, 13 Dec 2017 02:17:10 +0000 (18:17 -0800)]
Minor tweaks to the version.sh fixes from last commit.

Add back a check for whether the git program exists.

Don't show distance if it is zero.

Remove the dirty flag.

Remove the initial "g" prefix from the commitid.  This is added by git
describe, but I don't think we need to preserve it.

7 years agoChange version.sh to manually compute version and distance.
Aaron Schrab [Tue, 12 Dec 2017 02:46:30 +0000 (21:46 -0500)]
Change version.sh to manually compute version and distance.

In some cases `git describe` gives bizarre results (see URL below),
instead get the highest version-numbered tag contained in HEAD then
count the number of commits that aren't included in it.

https://public-inbox.org/git/20161205232712.GA23868@pug.qqx.org/

7 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 11 Dec 2017 04:06:05 +0000 (20:06 -0800)]
Merge branch 'stable'

7 years agoUpdate some of the documentation to refer to git.
Kevin McCarthy [Mon, 11 Dec 2017 04:03:30 +0000 (20:03 -0800)]
Update some of the documentation to refer to git.

Also update the repos URL.

7 years agoMerge branch 'stable'
Kevin McCarthy [Mon, 4 Dec 2017 02:15:21 +0000 (18:15 -0800)]
Merge branch 'stable'

7 years agoConvert version.sh to work with git.
Kevin McCarthy [Mon, 4 Dec 2017 01:55:59 +0000 (17:55 -0800)]
Convert version.sh to work with git.

Use the built-in `git describe` to get the tag, distance, and
revision id.

7 years agoConvert to .gitignore file.
Kevin McCarthy [Sun, 3 Dec 2017 03:27:14 +0000 (19:27 -0800)]
Convert to .gitignore file.

7 years agoConvert to .gitignore file.
Kevin McCarthy [Sun, 3 Dec 2017 03:27:14 +0000 (19:27 -0800)]
Convert to .gitignore file.

7 years agoUpdated French translation.
Vincent Lefevre [Wed, 29 Nov 2017 03:21:26 +0000 (04:21 +0100)]
Updated French translation.

7 years agoUpdate copyright notices.
Kevin McCarthy [Wed, 29 Nov 2017 03:01:15 +0000 (19:01 -0800)]
Update copyright notices.

7 years agoEnable full address matching during message scoring. (closes #2179) (see #3243)
Kevin McCarthy [Wed, 22 Nov 2017 02:22:26 +0000 (18:22 -0800)]
Enable full address matching during message scoring. (closes #2179) (see #3243)

The tickets are old, but it seems reasonable to expect the pattern
matching to behave the same in scoring as when applying limits or
searching.

I don't foresee a huge performance hit, and there are no arguments
against the change in the tickets.

Thanks to the muttng devs (noted in ticket 2179) and Kornilios Kourtis
(from the Debian ticket referenced in ticket 3243).

7 years agoAdd NONULL to debug statement in fold_one_header().
Anton Lindqvist [Sun, 19 Nov 2017 23:47:45 +0000 (15:47 -0800)]
Add NONULL to debug statement in fold_one_header().

7 years agoFix ansi escape sequences with both reset and color parameters. (closes #3689)
Kevin McCarthy [Sun, 19 Nov 2017 03:13:08 +0000 (19:13 -0800)]
Fix ansi escape sequences with both reset and color parameters. (closes #3689)

The initial 0 "reset/normal" was setting attr = ANSI_OFF, which was
subsequently being or'ed with ANSI_COLOR.

The color resolution was then checking for the ANSI_OFF bit and
turning all coloring off, even though ANSI_COLOR was also set.

Change the color resolution to check for "attr == ANSI_OFF" instead, so
the color isn't reset unless the reset occurs last in the sequence.

7 years agoRemove useless else branch in the $smart_wrap code. (see #3857)
Kevin McCarthy [Wed, 15 Nov 2017 22:53:24 +0000 (14:53 -0800)]
Remove useless else branch in the $smart_wrap code. (see #3857)

Thanks to Vincent Lefèvre for noticing the nested else was redundant,
since buf_ptr is already set to "buf + cnt" after the format_line()
call.

This allows us to merge the inner and outer if statement, resulting in
simpler code.

7 years agoFix $smart_wrap to not be disabled by whitespace-prefixed lines. (closes #3857)
Kevin McCarthy [Wed, 15 Nov 2017 22:53:19 +0000 (14:53 -0800)]
Fix $smart_wrap to not be disabled by whitespace-prefixed lines. (closes #3857)

changeset:737102af74eb fixed a folded header display issue with $smart_wrap
by disabling $smart_wrap for lines beginning with whitespace.

Unfortunately, this turns off smart wrapping in the body of an email
too, even when the line has other whitespace breaks in it.

An earlier commit, changeset:125076e0fdfa added an infinite loop fix
when MUTT_PAGER_NSKIP is set, by disabling the smart_wrap if the space
backtracking went to the beginning of the line.  That is, a line
beginning with 1+ whitespace followed by a single long word.

Extend this second commit by always disabling the smart_wrap in that
case, not just when MUTT_PAGER_NSKIP is set.  This also solves the
folded header issue without other side effects.

7 years agoAdd $change_folder_next option to control mailbox suggestion order.
Kevin McCarthy [Sat, 11 Nov 2017 23:49:15 +0000 (15:49 -0800)]
Add $change_folder_next option to control mailbox suggestion order.

This patch is out of the Gentoo package maintained by Fabian Groffen.
From the link below, it appears the original author was Simon Burge.

I made some minor changes to get it to apply correctly, and cleaned up
the documentation a bit.

Original patch description:
This patch brings back the original behaviour of change-folder, which
some people find more useful.  It suggests the next folder in your
mailboxes list that has new mail measured from the current folder,
instead of the first folder from your mailboxes list in any case.  This
prevents starvation of folders defined at the back of your list ;)
See discussion: http://thread.gmane.org/gmane.mail.mutt.devel/12457

7 years agoUpdated French translation.
Vincent Lefevre [Sat, 11 Nov 2017 18:13:40 +0000 (19:13 +0100)]
Updated French translation.

7 years agoAdd %R (number of read messages) for $status_format.
Vincent Lefevre [Sat, 11 Nov 2017 17:59:31 +0000 (18:59 +0100)]
Add %R (number of read messages) for $status_format.

7 years agoAdd message count to $move quadoption prompt.
Kevin McCarthy [Fri, 10 Nov 2017 21:06:43 +0000 (13:06 -0800)]
Add message count to $move quadoption prompt.

Display the number of messages that will be moved in the quadoption
prompt, which might prove helpful for some people.

Thank you to Daan van Rossum for suggesting the improvement.

7 years agoMake sure that fgets and fgetc are undefined before their redefinition.
Vincent Lefevre [Thu, 9 Nov 2017 14:06:19 +0000 (15:06 +0100)]
Make sure that fgets and fgetc are undefined before their redefinition.

This fixes a potential issue from changeset e0a103845344.

7 years agoUse fgets_unlocked and fgetc_unlocked if available.
David Wilson [Wed, 8 Nov 2017 21:40:34 +0000 (13:40 -0800)]
Use fgets_unlocked and fgetc_unlocked if available.

Since mutt does not use threads, there is no reason it should use the
locked variants of the FILE* IO functions. This checks if the unlocked
functions are available, and if so enables them globally via mutt.h.

Cuts load time for a 56k message, 1.8GB /var/mail mailbox from 14
seconds to ~6 seconds, since we avoid acquiring and releasing a mutex
for every character of input read.

Before: 0m14.376s

    74.98%          mutt  libc-2.18.so        [.] _IO_getc
    11.87%          mutt  mutt                [.] mbox_parse_mailbox
     0.94%          mutt  [kernel.kallsyms]   [k] copy_user_generic_string
     0.83%          mutt  libc-2.18.so        [.] __strchr_sse2
     0.53%          mutt  libc-2.18.so        [.] __memcpy_sse2
     0.44%          mutt  libc-2.18.so        [.] _int_malloc

After: 6 seconds

    68.92%     mutt  mutt                  [.] mbox_parse_mailbox
     2.25%     mutt  [kernel.kallsyms]     [k] copy_user_generic_string
     1.73%     mutt  libc-2.18.so          [.] __strchr_sse2
     1.24%     mutt  libc-2.18.so          [.] __memcpy_sse2
     1.17%     mutt  libc-2.18.so          [.] _int_malloc
     0.87%     mutt  libc-2.18.so          [.] __strspn_sse42

7 years agoNote which ssl config vars are GnuTLS or OpenSSL only. (closes #3781)
Kevin McCarthy [Wed, 8 Nov 2017 20:57:50 +0000 (12:57 -0800)]
Note which ssl config vars are GnuTLS or OpenSSL only. (closes #3781)

It was not obvious that the ssl_ca_certificates_file was only for
GnuTLS, or that the ssl_usesystemcerts was only for OpenSSL.

7 years agoAdd polling for the IDLE command. (closes #3957)
Kevin McCarthy [Sun, 15 Oct 2017 07:13:18 +0000 (15:13 +0800)]
Add polling for the IDLE command. (closes #3957)

Add $imap_poll_timeout poll for IDLE, since this is also a command
that will freeze after waking if $imap_idle is set.

7 years agomerge stable
Kevin McCarthy [Sun, 1 Oct 2017 02:16:56 +0000 (19:16 -0700)]
merge stable

7 years agoFix address group terminator "exact address" printing to display trailing semicolon.
Kevin McCarthy [Sun, 1 Oct 2017 02:15:08 +0000 (19:15 -0700)]
Fix address group terminator "exact address" printing to display trailing semicolon.

The exact-address handling for comma and colon are different because
those are added outside the exact-address printing.

The semicolon needs to be inside the address->val field of the address
group terminator.

7 years agoEnable $reply_self for group-reply, even with $metoo unset.
Roger Pau Monne [Thu, 28 Sep 2017 18:57:56 +0000 (11:57 -0700)]
Enable $reply_self for group-reply, even with $metoo unset.

For a (r)eply, the $metoo variable does not have any effect because
there is a single recipient.

However with (g)roup reply, the To was initially set to the sender,
but subsequently removed my $nometoo.  The empty To line is then
replaced with the Cc line, resulting in a (logically correct but)
surprising outcome.

Change the behavior such that $nometoo will not strip a single To
recipient when $reply_self is set.

7 years agoMake cmd_parse_fetch() more precise about setting reopen/check flags.
Kevin McCarthy [Wed, 27 Sep 2017 20:45:36 +0000 (13:45 -0700)]
Make cmd_parse_fetch() more precise about setting reopen/check flags.

Previously any FETCH with FLAGS would result in either
  idata->reopen |= IMAP_EXPUNGE_PENDING;
  -or-
  idata->check_status = IMAP_FLAGS_PENDING;
being set.

This is unnecessary in the case of responses to FLAGS.SILENT updates
sent by mutt (which seem to commonly happen now-a-days).

Change imap_set_flags() to compare the old server flags against the
new ones, and report when _those_ updates would/did result in a local
header flag change.  Only set one of the reopen/check_status flags in
the event of an actual change (or potential change if a local change
has been made to the header.)

7 years agomerge stable
Kevin McCarthy [Wed, 27 Sep 2017 02:45:23 +0000 (19:45 -0700)]
merge stable

7 years agoFix uses of context->changed as a counter.
Kevin McCarthy [Wed, 27 Sep 2017 02:44:11 +0000 (19:44 -0700)]
Fix uses of context->changed as a counter.

The first was in mx_update_tables(), but only when "not committing".
This is used by mh/maildir during an "occult" update, and in imap when
expunging the mailbox.  It meant to simply turn on changed when a
single changed header is seen.

The second use was in imap_sync_message_for_copy().  Previously this
was used for a server side copy/save, but is now also used for
fast-trash copying.  Remove the code that was trying to decrement the
counter: this function is not capable of properly setting a status
bit.

7 years agoChange maildir and mh check_mailbox to use dynamic sized hash. (closes #3973)
Kevin McCarthy [Tue, 26 Sep 2017 01:40:32 +0000 (18:40 -0700)]
Change maildir and mh check_mailbox to use dynamic sized hash. (closes #3973)

The original patch is by Matt Fleming, originally posted at
http://www.codeblueprint.co.uk/2017/01/15/a-kernel-devs-approach-to-improving2

The comments there indicate Matt tried to submit to trac and mutt-dev,
but ran into registration problems.  Thank you for the patch, and
sorry for those problems, Matt.

I modified the patch by making the same change to the
mh_check_mailbox() code too.

7 years agomerge stable
Kevin McCarthy [Sat, 23 Sep 2017 18:41:25 +0000 (11:41 -0700)]
merge stable

7 years agomutt-1.9.1 signed
Kevin McCarthy [Sat, 23 Sep 2017 18:40:44 +0000 (11:40 -0700)]
mutt-1.9.1 signed

7 years agoAdded tag mutt-1-9-1-rel for changeset 869633ef393e
Kevin McCarthy [Sat, 23 Sep 2017 18:39:54 +0000 (11:39 -0700)]
Added tag mutt-1-9-1-rel for changeset 869633ef393e

7 years agoautomatic post-release commit for mutt-1.9.1 mutt-1-9-1-rel
Kevin McCarthy [Sat, 23 Sep 2017 18:39:45 +0000 (11:39 -0700)]
automatic post-release commit for mutt-1.9.1

7 years agomerge stable
Kevin McCarthy [Fri, 22 Sep 2017 18:26:19 +0000 (11:26 -0700)]
merge stable

7 years agoAdd missing IMAP_CMD_POLL flag in imap buffy check.
Kevin McCarthy [Fri, 22 Sep 2017 18:14:27 +0000 (11:14 -0700)]
Add missing IMAP_CMD_POLL flag in imap buffy check.

I missed adding the flag to one of the imap_exec() calls inside the
loop, when a different server is encountered in the mailboxes list.

7 years agoClose the imap socket for the selected mailbox on error.
Kevin McCarthy [Fri, 22 Sep 2017 18:12:25 +0000 (11:12 -0700)]
Close the imap socket for the selected mailbox on error.

The new $imap_poll_timeout calls the cmd_handle_fatal() error handler
on timeout, which is supposed to close and cleanup.

However, for the currently selected mailbox, the error handler was not
closing the socket after closing up the mailbox.  This left extra
SSL/GnuTLS data around and was causing errors on an attempt to
reconnect.

Thanks to Fabian Groffen for reporting the issue.

7 years agoFix imap sync segfault due to inactive headers during an expunge. (closes #3971)
Kevin McCarthy [Fri, 22 Sep 2017 18:07:27 +0000 (11:07 -0700)]
Fix imap sync segfault due to inactive headers during an expunge.  (closes #3971)

Mutt has several places where it turns off h->active as a hack.  For
example to avoid FLAG updates, or to exclude from imap_exec_msgset.

Unfortunately, when a reopen is allowed and the IMAP_EXPUNGE_PENDING
flag becomes set (e.g. a flag update to a modified header),
imap_expunge_mailbox() will be called by imap_cmd_finish().

The mx_update_tables() would free and remove these "inactive" headers,
despite that an EXPUNGE was not received for them.  This would result
in memory leaks and segfaults due to dangling pointers in the
msn_index and uid_hash.

There should probably be a more elegant solution, removing the initial
hacks.  However, this is causing a segfault, and the best solution
right now is to turn active back on for non-expunged messages in
imap_expunge_mailbox().

Extra thanks to chdiza, who bravely runs tip and found this issue
quickly.

7 years agoUpdated French translation.
Vincent Lefevre [Fri, 22 Sep 2017 15:52:16 +0000 (17:52 +0200)]
Updated French translation.

7 years agoDisplay an error message when delete mailbox fails. (see #3968)
Kevin McCarthy [Wed, 20 Sep 2017 17:43:33 +0000 (10:43 -0700)]
Display an error message when delete mailbox fails. (see #3968)

7 years agomerge stable
Kevin McCarthy [Thu, 14 Sep 2017 19:48:26 +0000 (12:48 -0700)]
merge stable

7 years agoImprove imap fetch handler to accept an initial UID. (closes #3969)
Kevin McCarthy [Thu, 14 Sep 2017 19:43:32 +0000 (12:43 -0700)]
Improve imap fetch handler to accept an initial UID. (closes #3969)

Gmail sends flag updates with a UID before the FLAGS.  The handler was
very simple, and so ignored the flag update in that case.

Pull the code from msg_parse_fetch(), paring down to just UID and
FLAGS.  This will handle arbitrary order data items.

7 years agomerge stable
Kevin McCarthy [Wed, 13 Sep 2017 22:54:31 +0000 (15:54 -0700)]
merge stable

7 years agoChange imap copy/save and trash to sync flags, excluding deleted. (closes #3966)...
Kevin McCarthy [Wed, 13 Sep 2017 22:48:16 +0000 (15:48 -0700)]
Change imap copy/save and trash to sync flags, excluding deleted. (closes #3966) (closes #3860)

imap_copy_messages() uses a helper to sync the flags before performing
a server-side copy.  However, it had a bug that the "deleted" flag on
a local message, if set, will be propagated to the copy too.

Change the copy sync helper to ignore the deleted flag.  Then, change
the imap trash function to use the same helper.

Thanks to Anton Lindqvist for his excellent bug report, suggested
fixes, and help testing.

7 years agoRemove \Seen flag setting for imap trash. (see #3966) (see #3860)
Kevin McCarthy [Wed, 13 Sep 2017 22:48:13 +0000 (15:48 -0700)]
Remove \Seen flag setting for imap trash.  (see #3966) (see #3860)

Commit 323e3d6e5e4c has a side effect where spurious FETCH flag
updates after setting the \Seen flag can cause a sync to abort.

Remove manually setting \Seen for all trashed message before copying.

The next commit will change the imap trash function to use the same
code as the imap copy/save function for syncing the message before
server-side copying.