]> granicus.if.org Git - mutt/log
mutt
9 years agoFix performance regression for ~b/~B searching. (closes #3743)
Seth Forshee [Sun, 26 Apr 2015 02:00:13 +0000 (19:00 -0700)]
Fix performance regression for ~b/~B searching. (closes #3743)

In mutt_is_autoview(), changeset b58cdfacfb89 introduced a call to
rfc1524_mailcap_lookup() before checking if the MIME type should
be autoviewed based on the user's preferences. This caused a major
performance regression for ~b/~B searching.

Rearrange mutt_is_autoview() to check the user preferences first, then
search for a mailcap entry only if the MIME type should be autoviewed.

In order to preserve correct mime_lookup behavior, re-add a call to
mutt_check_lookup_list() before scanning the AutoViewList.

9 years agoAdd $crypt_confirmhook option. (see #3727)
Kevin McCarthy [Sun, 19 Apr 2015 20:15:50 +0000 (13:15 -0700)]
Add $crypt_confirmhook option. (see #3727)

Allow the confirmation prompt for crypt-hooks to be disabled.  This is
useful for multiple crypt-hook users (e.g. encrypted mailing lists), or
just for people who are certain of their crypt-hooks and don't want to
be prompted every time.

Thanks to Dale Woolridge for the original patch.

9 years agoAllow multiple crypt-hooks with the same regexp. (closes #3727).
Kevin McCarthy [Sun, 19 Apr 2015 20:15:48 +0000 (13:15 -0700)]
Allow multiple crypt-hooks with the same regexp. (closes #3727).

Changes the crypt-hook to accumulate a LIST of hooks with
the same regexp, as opposed to replacing the hook data.
This is useful for the case of encrypted mailing lists.

Update pgp classic and gpgme to process a LIST of crypt-hook
values instead of just one.

This version of the patch creates a new _mutt_list_hook() function that
(in theory) other hooks could use if they were changed to return a list.
It also changes the behavior when a crypt-hook is declined: previously
it would immediately use the original recipient for key selection.  Now
it will only do that if all crypt-hooks for a recipient are declined.
This allows all, a subset, or none of the hooks to be used.

Thanks to Rejo Zenger, Remco Rijnders, and Dale Woolridge for their work
on various versions of this patch.

9 years agoFix a few more incorrect documentation lines for hooks.
Kevin McCarthy [Thu, 16 Apr 2015 02:25:46 +0000 (19:25 -0700)]
Fix a few more incorrect documentation lines for hooks.

Hopefully this finishes up aac979f8b529 and ca5aff2a4b6e.

9 years agoUse fingerprints instead of keyIDs internally. (see #3695)
Kevin McCarthy [Thu, 16 Apr 2015 01:57:17 +0000 (18:57 -0700)]
Use fingerprints instead of keyIDs internally. (see #3695)

Add a helper function, pgp_fpr_or_lkeyid(), that returns the fingerprint
if available, otherwise falls back to the long key id.  Convert Mutt to
use that value for pgp command invocation.

Change gpgme to use an equivalent crypt_fpr_or_lkeyid() function in a
couple places too (for keylist generation and sign-as key selection).

Update documentation to mention fingerprints and the --with-fingerprint
option for gpg invocation.

Change pgp_long_ids to default: yes, but add a note mentioning
it's only used for the display of key IDs in a few places.

9 years agoAllow attachments from unencrypted emails to be deleted.
Kevin McCarthy [Thu, 12 Mar 2015 21:48:48 +0000 (14:48 -0700)]
Allow attachments from unencrypted emails to be deleted.

Print a warning if the message is signed or partly signed.

Thanks to David Haguenauer for the original patch!

9 years agoClarify hook pattern vs regexp in muttrc.man page.
Kevin McCarthy [Tue, 7 Apr 2015 01:39:09 +0000 (18:39 -0700)]
Clarify hook pattern vs regexp in muttrc.man page.

Updates to the muttrc.man page were inadvertently not included in
changeset:aac979f8b529.  Fix mbox-hook and crypt-hook to show
they accept a regexp, not a pattern.

9 years agoFix smime.rc typos and spacing issues. (closes #3745)
Kevin McCarthy [Sun, 5 Apr 2015 20:52:52 +0000 (13:52 -0700)]
Fix smime.rc typos and spacing issues. (closes #3745)

Thanks to David J. Weller-Fahy for that patch.

9 years agoFix const errors caused by find_keys() changes.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:58 +0000 (15:45 -0700)]
Fix const errors caused by find_keys() changes.

Part 4 of the oppenc series changed the keyID type to const as part
of some cleanup changes.  At the time, that only propagated to
crypt_getkeybystr(), but with the fingerprint changes, this is starting
to propagate too far.

Create a separate non-const variable to deal with the crypt hook value
and revert crypt_getkeybystr()'s parameter to non-const.

9 years agoAdd ui elements for oppenc mode.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:56 +0000 (15:45 -0700)]
Add ui elements for oppenc mode.

Add a status message to the Security line when oppenc is enabled.

For each send menu, add the ability to toggle it on or off.
When enabled, the menus won't show the (e)ncrypt or (b)oth options,
and the (c)lear function only clears the SIGN bit when it is active.

Change the gpgme_send_menu() to directly use the ENCRYPT and SIGN
flags instead of the PGPENCRYPT/SIGN and SMIMEENCRYPT/SMIME flags.
Using the latter sometimes resulted in the APPLICATION bit unset, which made
oppenc unhappy.

The send_menus previously used a switch statement using choice numbers.
Since the menus now vary based on the oppenc option and message bit
being set, these were all changed to convert the numbers back to a
choice letter.

9 years agoAdd a security bit to the message for oppenc mode.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:55 +0000 (15:45 -0700)]
Add a security bit to the message for oppenc mode.

This allows oppenc to be enabled/disabled on a message level.  If
something initially enables encryption, such as crypt_autoencrypt or
crypt_replyencrypt, oppenc is turned off for the message.

Change the postpone/resume code to persist the oppenc bit.

Also change resend message to enable and invoke oppenc if the option is
set.

9 years agoAdd the crypt_opportunistic_encrypt option and calls.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:54 +0000 (15:45 -0700)]
Add the crypt_opportunistic_encrypt option and calls.

This patch creates the OPTCRYPTOPPORTUNISTICENCRYPT option and
documentation.

It also adds calls to crypt_opportunistic_encrypt() during initial
message composition, after updating to, cc, or bcc, and after editing
the message (if edit_headers is enabled).

9 years agoImplement crypt_opportunistic_encrypt().
Kevin McCarthy [Mon, 30 Mar 2015 22:45:53 +0000 (15:45 -0700)]
Implement crypt_opportunistic_encrypt().

This function will be called to flip encryption on and off based on
message recipients.

9 years agoImplement oppenc_mode in the find_keys methods.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:52 +0000 (15:45 -0700)]
Implement oppenc_mode in the find_keys methods.

oppenc_mode is used by crypt_opportunistic_encrypt to determine whether
there are valid keys for all recipients of a message, without prompting
the user.

The patch wraps around prompts, and makes getkeybyaddr methods return a
valid address-matching key without prompting.

The patch also fixes a small problem with gpgme's getkeybyaddr.  When
determining if there were multiple strong matches, it was comparing the
crypt_key_t instead of its kobj member (gpgme_key_t).

The patch also enables a call to crypt_is_numerical_keyid() in
find_keys(), so that crypt-hooks can actually be checked without
prompting when gpgme is enabled.  (The addition was patterned off of the
pgp_findKeys() function).

9 years agoPull is_numerical_keyid() into crypt.c.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:51 +0000 (15:45 -0700)]
Pull is_numerical_keyid() into crypt.c.

A subsequent patch (re?)-introduces a call to is_numerical_keyid inside
find_keys().  Rather than duplicate the function, this patch pulls it
into crypt.c, where find_keys() and pgp_findKeys() can both call it.

9 years agoIntroduce an oppenc_mode parameter
Kevin McCarthy [Mon, 30 Mar 2015 22:45:49 +0000 (15:45 -0700)]
Introduce an oppenc_mode parameter

It's added to the parameter lists through the call stack down to the
find_keys calls.

No functionality is implemented yet.  This patch is separated just to
keep other patches more readable.

9 years agoRefactor the address list generation out of the find_keys routines.
Kevin McCarthy [Mon, 30 Mar 2015 22:45:47 +0000 (15:45 -0700)]
Refactor the address list generation out of the find_keys routines.

All four find_keys routines have a similar set up code for generating a
single address list out of the to, cc, bcc lists.  This patch pulls all
the code into crypt_get_keys.

This is done to simplify the functions before later patches make them
more complicated (with the oppenc_mode parameter).

9 years agoDocument limitation of color index and server-side searches. (see #3723)
Kevin McCarthy [Tue, 17 Mar 2015 23:28:56 +0000 (16:28 -0700)]
Document limitation of color index and server-side searches. (see #3723)

9 years agoAdd entries for =B and =h in pattern modifier table.
Kevin McCarthy [Tue, 17 Mar 2015 23:28:56 +0000 (16:28 -0700)]
Add entries for =B and =h in pattern modifier table.

Since these operate differently for IMAP, it's worth adding explicit
entries to the table for these two.

9 years agoClarify hook documentation to specify regexp instead of pattern.
Kevin McCarthy [Tue, 17 Mar 2015 23:28:54 +0000 (16:28 -0700)]
Clarify hook documentation to specify regexp instead of pattern.

Account-hook, crypt-hook, and mbox-hook accept a regexp parameter, not a
pattern.

9 years agoFix pgp_application_pgp_handler to remove all tempfiles.
Kevin McCarthy [Thu, 5 Mar 2015 03:24:31 +0000 (19:24 -0800)]
Fix pgp_application_pgp_handler to remove all tempfiles.

If multiple PGP blocks are present in an email, Mutt only cleans up the
tempfiles for the last block.  Thanks to Dennis Preiser for the patch
and sample mbox file demonstrating the problem.

This patch also fixes the argument to mutt_perror for the pgpout
tempfile.

9 years agomerge stable
Kevin McCarthy [Thu, 19 Feb 2015 19:00:32 +0000 (11:00 -0800)]
merge stable

9 years agoAllow fingerprint user input for key selection. (see #3695)
Eike Rathke [Wed, 11 Feb 2015 20:38:37 +0000 (21:38 +0100)]
Allow fingerprint user input for key selection. (see #3695)

Accept and check input of a fingerprint and find the matching key.

Note that for both to work, match against and display of fingerprint, the
pgp_list_pubring_command and pgp_list_secring_command need to contain the
--with-fingerprint option, or have with-fingerprint in ~/.gnupg/gpg.conf.

9 years agoAdd fingerprint record parsing for pgp list keys. (see #3695)
Kevin McCarthy [Sun, 15 Feb 2015 18:09:10 +0000 (10:09 -0800)]
Add fingerprint record parsing for pgp list keys. (see #3695)

Modify parse_pub_line to parse fpr records and add the fingerprint to
the pgp_key_t's fingerprint field.

Add "--with-fingerprint --with-fingerprint" to the
pgp_list_pubring_command and pgp_list_secring_command commands in
contrib/gpg.rc.  The second invocation generates fpr records for subkeys
too.

9 years agoConvert pgp_key_t fingerprint to a char* (see #3695)
Kevin McCarthy [Sun, 15 Feb 2015 18:08:58 +0000 (10:08 -0800)]
Convert pgp_key_t fingerprint to a char* (see #3695)

Currently only pgppubring.c is using the fingerprint field, and is using
it to store a binary version of the fingerprint.

Convert the field to store a null-terminated string.
Modify pgppubring.c to use to use the new field.

9 years agoProtect addr with NONULL in pgp_getkeybyaddr.
Kevin McCarthy [Tue, 10 Feb 2015 20:14:20 +0000 (12:14 -0800)]
Protect addr with NONULL in pgp_getkeybyaddr.

This was introduced by bb3b01f41ed2, but wasn't included in the NONULL
checks added in 9a75aa4bd69e.

9 years agoFix buffer underread for empty header values. (closes #3736)
Peter Wu [Tue, 10 Feb 2015 17:29:24 +0000 (18:29 +0100)]
Fix buffer underread for empty header values. (closes #3736)

When a header has no value (*p == '\0' so l == 0), do not read outside
the buffer but print the newline anyway when a tag is already printed
(col != 0).

Caught by ASAN while opening a draft with no Subject.

9 years agoCache uid validity in crypt_key_t.
Kevin McCarthy [Sun, 8 Feb 2015 22:19:41 +0000 (14:19 -0800)]
Cache uid validity in crypt_key_t.

In order to find the validity for a crypt_key_t, the code has to loop
through the key->kobj->uids list up to the correct index.  This is a
bit silly since the uid is available when the crypt_key_t is created in
get_candidates().

This patch adds a validity field, and changes the various places to use
that instead of looping.

Also fix a bug in _crypt_compare_trust(): it was using the validity of
the first uid instead of the corresponding uid's validity.

9 years agoFix pgp-gpgme to set revoke/expired/disabled flags.
Kevin McCarthy [Sun, 8 Feb 2015 21:44:10 +0000 (13:44 -0800)]
Fix pgp-gpgme to set revoke/expired/disabled flags.

The code wasn't settings those flags in get_candidates().
This patch adds it to the pgp path.  I don't know if these flags apply
to SMIME so am leaving them out for the smime branch.

Fix up crypt_select_key() to follow the same logic as pgp_select_key().

9 years agoChange the smime_encrypt_with default to aes256.
Kevin McCarthy [Tue, 3 Feb 2015 23:39:08 +0000 (15:39 -0800)]
Change the smime_encrypt_with default to aes256.

Openssl supports -aes256 at least since 2004, and it's a stronger
algorithm than des3.

Also:
- Remove the incorrect documentation comment about defaulting to 3des if unset.
- Change the default set in contrib/smime.rc.

9 years agoProtect SmimeDefaultKey for postpone/resume.
Kevin McCarthy [Wed, 4 Feb 2015 19:04:08 +0000 (11:04 -0800)]
Protect SmimeDefaultKey for postpone/resume.

PgpSignAs is saved and restored in ci_send_message(), but
SmimeDefaultKey was not.

Also, fix a bug where an empty PgpSignAs was not restored back to empty
if the postponed email contained a SignAs value.

9 years agoFix mutt_parse_crypt_hdr() sign_as behavior.
Kevin McCarthy [Mon, 2 Feb 2015 21:25:17 +0000 (13:25 -0800)]
Fix mutt_parse_crypt_hdr() sign_as behavior.

Currently, if a message is postponed with only the E encryption flag,
when it is resumed, pgp_sign_as will be overwritten (with an empty
string).

This intention of the behavior was probably to restore the exact state
of pgp_sign_as upon resuming.  However, if the message wasn't marked for
signing, the state of pgp_sign_as is not known.  This patch changes the
mutt_parse_crypt_hdr() to only set an empty pgp_sign_as if there is an S
flag (and if set_empty_signas is true).

mutt_edit_headers() also uses the function, but it doesn't want to
overwrite pgp_sign_as with just an S flag.  The set_signas parameter is
renamed to (a hopefully clearer) "set_empty_signas".

9 years agoUpdate smime_encrypt_with documentation to list all algorithms.
Kevin McCarthy [Sun, 1 Feb 2015 04:05:30 +0000 (20:05 -0800)]
Update smime_encrypt_with documentation to list all algorithms.

Thanks to Michael Schwipps for the patch!

9 years agoSend the IMAP \Draft flag when postponing a message.
Kevin McCarthy [Thu, 15 Jan 2015 22:18:53 +0000 (14:18 -0800)]
Send the IMAP \Draft flag when postponing a message.

This patch adds a mx_open_new_message() flag, M_SET_DRAFT.  It also adds
a MESSAGE->flags.draft flag.

mutt_write_fcc() passes the M_SET_DRAFT flag to mx_open_new_message(),
which then sets MESSAGE->flags.draft.  Then, imap_append_message() is
able to see this flag and so adds the \Draft flag.

The imap_append_message() function started to have a bit too many flags,
so this version of the patch separates out the flag generating code into
a simpler version.

9 years agogpgme: typo in previous commit
Brendan Cully [Sat, 31 Jan 2015 19:53:47 +0000 (11:53 -0800)]
gpgme: typo in previous commit

9 years agogpgme: guard mail-key on presence of gpgme_op_export_keys
Brendan Cully [Sat, 31 Jan 2015 19:21:52 +0000 (11:21 -0800)]
gpgme: guard mail-key on presence of gpgme_op_export_keys

This function is too new to be assumed present.

9 years agoUpdated French translation.
Vincent Lefevre [Fri, 30 Jan 2015 13:17:27 +0000 (14:17 +0100)]
Updated French translation.

9 years agoClean up sasl warnings.
Kevin McCarthy [Thu, 29 Jan 2015 23:40:34 +0000 (15:40 -0800)]
Clean up sasl warnings.

These were caused by assigning callback functions to the
sasl_callback_t.proc member.  The callback type doesn't list any
parameters, because parameters vary by callback.  The fix was simply
assigning a cast.

Cyrus-sasl2 has a sasl_callback_ft typedef that their sample code uses
for this purpose, but it is in a different header, saslplug.h, and
isn't in their 1.5 tree.  Since this is probably not portable to other
implementations, I just added an equivalent cast.

9 years agoClean up gnutls warnings.
Kevin McCarthy [Wed, 28 Jan 2015 00:15:31 +0000 (16:15 -0800)]
Clean up gnutls warnings.

Most of the warning were caused by deprecated types:
  gnutls_certificate_credentials
  gnutls_certificate_status
  gnutls_datum
  gnutls_digest_algorithm
  gnutls_session
  gnutls_transport_ptr
  gnutls_x509_crt
Even though I believe the replacements have been around for a while, the
patch adds autoconf checks and fallback typedefs.

One warning was caused by casting an int to a pointer for the second
parameter to gnutls_transport_set_ptr().  Recent gnutls has a
replacement gnutls_transport_set_int() macro, but this macro simply
(eventually) casts the parameter using "(gnutls_transport_ptr_t)(long)".
So this patch just does the same.

9 years agoRemove GPG_AGENT_INFO check for GnuPG 2.1 compatibility. (closes #3715)
Kevin McCarthy [Mon, 26 Jan 2015 02:09:56 +0000 (18:09 -0800)]
Remove GPG_AGENT_INFO check for GnuPG 2.1 compatibility.  (closes #3715)

GnuPG version 2.1 stops exporting the GPG_AGENT_INFO environment
variable, so mutt can't check for the presence of that to ensure the
agent is running.

For GPGME, we can check for the OpenPGP protocol being present.  For
classic pgp, we have to trust the user setting.

This patch is based on the patches sent by CustaiCo and muffins.  Thank
you both for reporting the problem and creating a patch.

9 years agoUpdated French translation.
Vincent Lefevre [Mon, 26 Jan 2015 23:52:02 +0000 (00:52 +0100)]
Updated French translation.

9 years agoCorrected various spelling mistakes (most of them reported by codespell).
Vincent Lefevre [Mon, 26 Jan 2015 12:07:25 +0000 (13:07 +0100)]
Corrected various spelling mistakes (most of them reported by codespell).

9 years agoImplement mail-key, Esc-K, for gpgme. (closes #3488)
Kevin McCarthy [Fri, 23 Jan 2015 18:33:32 +0000 (10:33 -0800)]
Implement mail-key, Esc-K, for gpgme. (closes #3488)

This patch implements the make-key-attachment function for gpgme,
modeled after the pgp version.

It also adds an optional tempf parameter to data_object_to_tempfile() so
the function can be reused for make-key-attachment.

9 years agopgp_getkeybystr: Pull key matching out of the address match loop.
Kevin McCarthy [Mon, 19 Jan 2015 23:58:38 +0000 (15:58 -0800)]
pgp_getkeybystr: Pull key matching out of the address match loop.

Since the key is invariant inside the address loop, there is no need to
match against it with each address.

All the keys should have at least one address record (see bb3b01f41ed2),
but in case a record was malformed, add a check for that to keep the
same logic.

9 years agoHEAD is dead, remove wrong instruction from doc/devel-notes.txt
Eike Rathke [Wed, 21 Jan 2015 09:14:17 +0000 (10:14 +0100)]
HEAD is dead, remove wrong instruction from doc/devel-notes.txt

Branch HEAD was closed over a year ago. If one was following the instruction
to update -C HEAD you'd end up with an empty source tree and had to checkout
the default branch again.

9 years agoAllow short and long key ID user input in crypt_getkeybystr()
Eike Rathke [Sun, 18 Jan 2015 16:50:42 +0000 (17:50 +0100)]
Allow short and long key ID user input in crypt_getkeybystr()

The following did not work, e.g. when leaving a key list, and at the "Sign as"
or "Encrypt to" prompt attempting to enter a key ID:
* set pgp_long_ids=no
  * enter a long key ID, with or without leading 0x
* set pgp_long_ids=yes
  * enter a short key ID without leading 0x

Specifically entering a long key ID should always be possible as evil32.com
has shown.

This also cleans up the logic used to determine the matching condition, which
was quite convoluted.. it even slightly speeds up the loop as less string
operations are involved in the inner condition.

This only changes how the result obtained from the crypt_* gpgme interface is
filtered.

9 years agoAllow short and long key ID user input in pgp_getkeybystr()
Eike Rathke [Sun, 18 Jan 2015 16:45:41 +0000 (17:45 +0100)]
Allow short and long key ID user input in pgp_getkeybystr()

The following did not work, e.g. when leaving a key list, and at the "Sign as"
or "Encrypt to" prompt attempting to enter a key ID:
* set pgp_long_ids=no
  * enter a long key ID, with or without leading 0x
* set pgp_long_ids=yes
  * enter a short key ID without leading 0x

Specifically entering a long key ID should always be possible as evil32.com
has shown.

This also cleans up the logic used to determine the matching condition, which
was quite convoluted.. it even slightly speeds up the loop as less string
operations are involved in the inner condition.

This only changes how the result obtained from the pgp_* command line
interface is filtered.

9 years agoFix some context, data, and key memory leaks in gpgme.
Kevin McCarthy [Sat, 17 Jan 2015 22:34:13 +0000 (14:34 -0800)]
Fix some context, data, and key memory leaks in gpgme.

The context and data cleanup just involved adding missing
gpgme_release() and gpgme_data_release() calls in a few places.

The key usage was a little more involved:
  * Fix crypt_free_key().  It wasn't freeing the key passed in, and
    didn't work properly if multiple keys were passed in.  It also was
    missing a call to gpgme_key_unref().

  * Add free_recipient_set() to properly unref all the keys before
    freeing the array.

  * Fix get_candidates() to ref keys added to the crypt_key_t list, and
    unref the keys returned by gpgme_op_keylist_next().

  * Change usages of gpgme_key_release() to gpgme_key_unref().  The former
    was deprecated in gpgme version 0.4.1 (2003-06-06).

9 years agoFix the hcache type punning warning.
Kevin McCarthy [Sat, 17 Jan 2015 22:42:28 +0000 (14:42 -0800)]
Fix the hcache type punning warning.

This patch fixes the type punning warning by switching from (safe but
perhaps not elegant) casting to using a union.

Thanks to Vincent Lefevre for his input and suggestion to use the union
as a better solution to the problem!

9 years agoAlso colorize the initial mutt_enter_fname prompt.
Vincent Lefevre [Thu, 15 Jan 2015 12:19:14 +0000 (13:19 +0100)]
Also colorize the initial mutt_enter_fname prompt.

Note: the new prompt obtained after a key is typed was already colorized.

10 years agoFix segfault of extract-keys (^K) under gpgme. (closes #3698)
Kevin McCarthy [Thu, 1 Jan 2015 04:35:38 +0000 (20:35 -0800)]
Fix segfault of extract-keys (^K) under gpgme. (closes #3698)

This patch is based on the patch by Ben Price, which relocated the
safe_fclose (&in) after its use by keydata in pgp_gpgme_extract_keys.
Thank you for the patch!

In addition, this patch:
  * removes spurious (debug?) output when the extract keys is finished.
  * adds a gpgme_data_release() call to free the keydata.

10 years agoFix a memory leak in mutt_query_complete.
Kevin McCarthy [Fri, 10 Oct 2014 06:17:09 +0000 (14:17 +0800)]
Fix a memory leak in mutt_query_complete.

When a single result was returned, it was written to the buffer and
returned, but the query result was never freed.

This patch creates a free_query function and changes the code to use
that everywhere.

10 years agoFix variable name in configure.ac.
Kevin McCarthy [Fri, 15 Aug 2014 03:12:28 +0000 (20:12 -0700)]
Fix variable name in configure.ac.

$ac_cv_search_STRINGPREP_CHECK_VERSION should be
$ac_cv_search_stringprep_check_version, to match the first parameter of
the AC_SEARCH_LIBS([stringprep_check_version] above.

Running configure was giving a "test: =: unary operator expected" error.

10 years agoRemove duplicate SmimeCryptAlg declaration in globals.h
Kevin McCarthy [Sun, 28 Dec 2014 17:41:09 +0000 (09:41 -0800)]
Remove duplicate SmimeCryptAlg declaration in globals.h

Thank you Elias Diem for the patch.

10 years agoRevert write_one_header() to skip space and tab. (closes #3716)
Kevin McCarthy [Mon, 1 Dec 2014 22:19:24 +0000 (14:19 -0800)]
Revert write_one_header() to skip space and tab.  (closes #3716)

This patch fixes CVE-2014-9116 in the stable branch.  It reverts
write_one_header() to the pre [f251d523ca5a] code for skipping
whitespace.

Thanks to Antonio Radici and Tomas Hoger for their analysis and patches
to mutt, which this patch is based off of.

9 years agoFix segv in pgp_getkeybystr(). (closes #3725)
Kevin McCarthy [Tue, 6 Jan 2015 02:28:59 +0000 (18:28 -0800)]
Fix segv in pgp_getkeybystr().  (closes #3725)

When searching for keys, and the user supplies "" to match against,
pgp_getkeybystr will have values:
  p = "";
  l = 0;
After returning from pgp_select_key(), it will try to assign to
p[l-1].

(As a note, the function is chopping off and restoring the trailing
"!" character because of ticket #1928.)

10 years agomutt_sasl: fix double negative in iptostring result check (fixes #3705)
Brendan Cully [Sun, 7 Sep 2014 18:04:54 +0000 (11:04 -0700)]
mutt_sasl: fix double negative in iptostring result check (fixes #3705)

10 years agomutt_sasl: whitespace only
Brendan Cully [Sun, 7 Sep 2014 17:52:21 +0000 (10:52 -0700)]
mutt_sasl: whitespace only

10 years agoAdd a scratch buffer to the history ring. (closes #3082)
Kevin McCarthy [Tue, 12 Aug 2014 21:04:55 +0000 (14:04 -0700)]
Add a scratch buffer to the history ring. (closes #3082)

This patch creates an extra slot in the history ring for a scratch
buffer (at h->last).  If you are editing inside that buffer, it is
preserved when you scroll up/down through the history.  Editing while in
other places in history are *not* preserved with this patch.

Another behavior change worth noting with this patch: the position in
history is now reset to the scratch buffer after each input entry.
Before, the position would be stay wherever it was - you didn't restart
at the "bottom" each time.

10 years agoUpdated French translation.
Vincent Lefevre [Fri, 25 Jul 2014 18:43:05 +0000 (20:43 +0200)]
Updated French translation.

10 years agoUpdated Catalan translation.
Ivan Vilata i Balaguer [Thu, 13 Mar 2014 23:37:01 +0000 (23:37 +0000)]
Updated Catalan translation.

10 years agoUpdated Ukrainian translation.
Vsevolod Volkov [Thu, 13 Mar 2014 17:41:29 +0000 (17:41 +0000)]
Updated Ukrainian translation.

10 years agoUpdated Russian translation.
Vsevolod Volkov [Thu, 13 Mar 2014 17:41:01 +0000 (17:41 +0000)]
Updated Russian translation.

10 years agofix typo in man page.
Jonathan Wakely [Thu, 13 Mar 2014 17:36:01 +0000 (17:36 +0000)]
fix typo in man page.

10 years agoUpdated Czech translation
Petr Pisar [Thu, 13 Mar 2014 03:56:39 +0000 (03:56 +0000)]
Updated Czech translation

10 years agomutt-1.5.23 signed
Brendan Cully [Wed, 12 Mar 2014 16:44:43 +0000 (09:44 -0700)]
mutt-1.5.23 signed

10 years agoAdded tag mutt-1-5-23-rel for changeset b8a63730c848
Brendan Cully [Wed, 12 Mar 2014 16:28:10 +0000 (09:28 -0700)]
Added tag mutt-1-5-23-rel for changeset b8a63730c848

10 years agoautomatic post-release commit for mutt-1.5.23 mutt-1-5-23-rel
Brendan Cully [Wed, 12 Mar 2014 16:28:10 +0000 (09:28 -0700)]
automatic post-release commit for mutt-1.5.23

10 years agobuild-release: make sure version is picked up by autoconf
Brendan Cully [Wed, 12 Mar 2014 16:25:57 +0000 (09:25 -0700)]
build-release: make sure version is picked up by autoconf

10 years agomkchangelog: only show log entries on current branch
Brendan Cully [Wed, 12 Mar 2014 16:25:27 +0000 (09:25 -0700)]
mkchangelog: only show log entries on current branch

10 years agoNo more devel
Brendan Cully [Wed, 12 Mar 2014 16:15:35 +0000 (09:15 -0700)]
No more devel

10 years agoadd user visible changes since 1.5.22 release.
Michael Elkins [Tue, 11 Mar 2014 17:04:47 +0000 (10:04 -0700)]
add user visible changes since 1.5.22 release.

10 years agoFix buffer overrun caused by not updating a string length after address expansion.
Michael Elkins [Tue, 11 Mar 2014 16:40:09 +0000 (09:40 -0700)]
Fix buffer overrun caused by not updating a string length after address expansion.

11 years agoAdd option to encrypt postponed messages. (closes #3665)
Kevin McCarthy [Wed, 6 Nov 2013 21:07:04 +0000 (13:07 -0800)]
Add option to encrypt postponed messages. (closes #3665)

This patch is based on Christian Brabandt's patch sent
to mutt-users.

Add two new configuration variables: $postpone_encrypt and
$postpone_encrypt_as.  When $postpone_encrypt is set and a message is
marked for encryption, the message will be encrypted using the key
specified in $postpone_encrypt_as before saving the message.

In this patch, $postpone_encrypt_as must be specified.  I experimented
with passing safe_strdup( NONULL (PostponeEncryptAs)) when unspecified,
but although gpg.conf has a default-key setting, I could not get it to
work properly. (pgpclassic gave an error message and gpgme sefaulted.)

Although not necessary, this patch turns off signing during encryption
of the postponed message (and turns it back on before saving), since
there is no need to sign the message yet.

9 years agoAdd color type for prompts.
Kevin McCarthy [Fri, 9 Jan 2015 22:22:01 +0000 (14:22 -0800)]
Add color type for prompts.

This adds a new color type, MT_COLOR_PROMPT, that can be used to
colorize prompts (fields, yes/no, multi_choice).

Thanks to Ben Boeckel for the patch!

11 years agoAdd gpg signature name. (closes #3478)
Kevin McCarthy [Wed, 30 Oct 2013 01:25:52 +0000 (18:25 -0700)]
Add gpg signature name. (closes #3478)

Some mail clients display "noname" for the gpg signature
attachment.  This patch sets the mime name to "signature.asc".

The patch is based on
http://dev.mutt.org/trac/attachment/ticket/3478/gpg_signature_name.patch
with the changes:
  - removes the configuration options
  - removes mime description

9 years agomerge stable
Kevin McCarthy [Tue, 6 Jan 2015 22:38:27 +0000 (14:38 -0800)]
merge stable

9 years agomerge stable
Kevin McCarthy [Tue, 6 Jan 2015 22:31:48 +0000 (14:31 -0800)]
merge stable

9 years agoChange bounce to use mutt_parse_adrlist() for address parsing.
Kevin McCarthy [Sat, 3 Jan 2015 19:33:10 +0000 (11:33 -0800)]
Change bounce to use mutt_parse_adrlist() for address parsing.

When prompting for recipients, forwarding, replying, and mailing all use
mutt_parse_adrlist() to parse the addresses.  This allows for addresses
to be separated by spaces.

Bounce message currently uses rfc822_parse_adrlist(), which doesn't
allow the spaces.  This one-line patch simply changes bounce to behave
the same as mail, reply, and forwarding for the address prompt.

Thanks to Roger Cornelius for the patch!

10 years agoFix segfault of extract-keys (^K) under gpgme. (closes #3698)
Kevin McCarthy [Thu, 1 Jan 2015 04:35:38 +0000 (20:35 -0800)]
Fix segfault of extract-keys (^K) under gpgme. (closes #3698)

This patch is based on the patch by Ben Price, which relocated the
safe_fclose (&in) after its use by keydata in pgp_gpgme_extract_keys.
Thank you for the patch!

In addition, this patch:
  * removes spurious (debug?) output when the extract keys is finished.
  * adds a gpgme_data_release() call to free the keydata.

10 years agoWrap pgp_uid_t->addr in NONULL(). (closes #3564)
Kevin McCarthy [Tue, 12 Aug 2014 21:33:17 +0000 (14:33 -0700)]
Wrap pgp_uid_t->addr in NONULL(). (closes #3564)

The previous patch introduced the possibility for addr to be null.  Mutt
is surprisingly robust against null strings, but there are a few places
that should be wrapped in NONULL().

10 years agoFix parse_pub_line to allow an empty User-ID field for a pub record. (see #3564)
Kevin McCarthy [Tue, 12 Aug 2014 21:33:17 +0000 (14:33 -0700)]
Fix parse_pub_line to allow an empty User-ID field for a pub record. (see #3564)

A key whose primary uid record has an empty User-ID will result in the
user being unable to use the key to encrypt an email in mutt.  This is
because the mutt functions for key selection iterate through the address
fields of a key for matching against and for displaying to the user.

This change allows a pgp_uid_t record to be created for a pub record
whose User-ID field is blank.  So the key will have one address record,
albeit with a null addr field.

11 years agoOverride draft headers with arguments. (closes #3580)
Kevin McCarthy [Sun, 3 Nov 2013 03:12:41 +0000 (20:12 -0700)]
Override draft headers with arguments. (closes #3580)

Currently, if the -H option is used, it is not possible to redefine the
recipient addresses with positional argument. This patch fixes it as
well as CC, Bcc, and Subject headers.

This patch is based on the patch by Petr Písař at
http://dev.mutt.org/trac/attachment/ticket/3580/override_draft_headers_with_arguments.patch

This version of the patch merges the To, Cc, and Bcc commandline
arguments into the template, and fixes a few small problems with the
previous patch.

This patch also moves the fin close outside the "if (tempfile)" block,
since it is opened outside that block.

10 years agoEnable %a format string for all pgp command configs. (closes #3699)
Kevin McCarthy [Sat, 21 Jun 2014 20:51:38 +0000 (13:51 -0700)]
Enable %a format string for all pgp command configs. (closes #3699)

Currently, the documentation states that, with the exception of
pgp_getkeys_command, all the PGP format commands should be available to
the pgp_*_command configuration variables.

However, the %a format is actually only enabled for
pgp_clearsign_command, pgp_encrypt_sign_command, and pgp_sign_command.

Philip Rinn discovered this problem when he was trying to add a
"--encrypt-to %a" to pgp_encrypt_only_command.  Rather than just fix
the one configuration he was having the problem with, this patch
enables %a usage for all of them. (With the exception of the documented
pgp_getkeys_command.)

11 years agoNote correct usage of $edit_headers. (closes #3673)
Kevin McCarthy [Thu, 19 Dec 2013 03:19:30 +0000 (19:19 -0800)]
Note correct usage of $edit_headers. (closes #3673)

Ticket 3673 shows that it isn't necessarily obvious a blank
line is needed between the headers and body of a message when using
$edit_headers.  This patch adds a small note to the documentation,
indicating the blank line should be preserved between the headers and
body.

Thank you Sinan Kaan Yerli for the patch.

10 years agoClarify PGPPATH usage in manpages.
Kevin McCarthy [Wed, 13 Aug 2014 20:46:40 +0000 (13:46 -0700)]
Clarify PGPPATH usage in manpages.

Make more clear that, when used with the original PGP program, mutt and
pgpring rely on this being set.

10 years agoFix a memory leak in mutt_query_complete.
Kevin McCarthy [Fri, 10 Oct 2014 06:17:09 +0000 (14:17 +0800)]
Fix a memory leak in mutt_query_complete.

When a single result was returned, it was written to the buffer and
returned, but the query result was never freed.

This patch creates a free_query function and changes the code to use
that everywhere.

10 years agoRemove unused variable t in start_debug().
Kevin McCarthy [Fri, 22 Aug 2014 01:41:07 +0000 (18:41 -0700)]
Remove unused variable t in start_debug().

t was set but never used.  This was generating a compiler warning.

10 years agoFix variable name in configure.ac.
Kevin McCarthy [Fri, 15 Aug 2014 03:12:28 +0000 (20:12 -0700)]
Fix variable name in configure.ac.

$ac_cv_search_STRINGPREP_CHECK_VERSION should be
$ac_cv_search_stringprep_check_version, to match the first parameter of
the AC_SEARCH_LIBS([stringprep_check_version] above.

Running configure was giving a "test: =: unary operator expected" error.

10 years agoRemove duplicate SmimeCryptAlg declaration in globals.h
Kevin McCarthy [Sun, 28 Dec 2014 17:41:09 +0000 (09:41 -0800)]
Remove duplicate SmimeCryptAlg declaration in globals.h

Thank you Elias Diem for the patch.

10 years agoDisable SSLv3 by default.
David Champion [Wed, 5 Nov 2014 05:40:10 +0000 (23:40 -0600)]
Disable SSLv3 by default.

Since Oct. 14 2014 SSLv3 is no longer considered safe. See POODLE:
https://en.wikipedia.org/wiki/Transport_Layer_Security#POODLE_attack

10 years agohcache tcdb debug logging
Brendan Cully [Sat, 11 Oct 2014 20:20:54 +0000 (13:20 -0700)]
hcache tcdb debug logging

10 years agoadd check-syntax target for flymake
Brendan Cully [Sat, 11 Oct 2014 18:05:21 +0000 (11:05 -0700)]
add check-syntax target for flymake

10 years agoignore generated pgpewrap/pgpring man pages
Brendan Cully [Sat, 11 Oct 2014 17:59:34 +0000 (10:59 -0700)]
ignore generated pgpewrap/pgpring man pages

10 years agoignore gnu global tags
Brendan Cully [Sat, 11 Oct 2014 17:58:38 +0000 (10:58 -0700)]
ignore gnu global tags

10 years agomerge stable
Brendan Cully [Sun, 7 Sep 2014 19:00:28 +0000 (12:00 -0700)]
merge stable

10 years agomerge stable
Brendan Cully [Sun, 7 Sep 2014 17:36:33 +0000 (10:36 -0700)]
merge stable

10 years agoFix deprecated gnutls_protocol_set_priority. (closes #3515)
Kevin McCarthy [Sat, 23 Aug 2014 01:51:38 +0000 (18:51 -0700)]
Fix deprecated gnutls_protocol_set_priority.  (closes #3515)

This patch is based off of the patch at
http://dev.mutt.org/trac/attachment/ticket/3515/624058-gnutls-deprecated-set-priority.patch

The mutt source has changed since then, with more TLS options being
added.  This patch therefore uses a slightly different strategy for generating the
priority string.

The patch also adds autoconf support, as requested by brendan at
http://dev.mutt.org/trac/ticket/3515#comment:1

10 years agoUpdated Dutch translation
Benno Schulenberg [Sat, 8 Feb 2014 18:24:22 +0000 (10:24 -0800)]
Updated Dutch translation

11 years agoMerge stable into default
Brendan Cully [Tue, 29 Oct 2013 07:11:16 +0000 (00:11 -0700)]
Merge stable into default