Re: (emacs) Parsing problems replying to encrypted html

Subject: Re: (emacs) Parsing problems replying to encrypted html

Date: Sun, 03 Apr 2016 19:42:04 +0100

To: David Bremner, Matthew Lear

Cc:, Mark Walters

From: David Edmondson

On Sat, Apr 02 2016, David Bremner <> wrote:
> Matthew Lear <> writes:
>>>> Hmm. I can't duplicate the problem replying from show mode with the test
>>>> message you provided.  Is the appropriate key in your gpg keyring?
>>> Yes it is. I get the gpg gui prompt when opening the encrypted email and
>>> can decrypt it prior to show. As I suspected earlier in the thread, I
>>> wondered if this was related to some emacs config settings/options that I
>>> have. I can't immediately think what they would be though, and why they
>>> would trigger this particular issue for html only. Strange...
>> Do you have the following in your .emacs ?
>> (setq notmuch-multipart/alternative-discouraged '("text/plain"))
>> I think that's the work/not-work switch. I'm not sure if it makes sense
>> or not in terms of seeing the behaviour I do.
> OK, with that setting I can duplicate the problem replying to encrypted
> HTML mail.
> It's also true that notmuch-reply doesn't include the content in the
> html version of the multipart/alternative. Unlike notmuch show, it
> doesn't have the ability to send parts later, so I guess that's a
> problem there.
> The following patch seems to fix it for me. What I haven't worked out is
> if it will break other things. Perhaps David E or Mark (in copy) can
> comment on whether this is a sensible change, given that we now give the
> user control of showing the part on the emacs side.

As an alternative, could you try the patch in I think that this is
really a failure on the emacs side rather than in notmuch proper.

> diff --git a/notmuch-reply.c b/notmuch-reply.c
> index 3c6d685..cd88d79 100644
> --- a/notmuch-reply.c
> +++ b/notmuch-reply.c
> @@ -690,7 +690,7 @@ notmuch_reply_format_sprinter(void *ctx,
>      /* Start the original */
>      sp->map_key (sp, "original");
> -    format_part_sprinter (ctx, sp, node, TRUE, TRUE, FALSE);
> +    format_part_sprinter (ctx, sp, node, TRUE, TRUE, TRUE);
>      /* End */
>      sp->end (sp);