Re: [BUG] Custom headers in `notmuch-message-headers` are broken

Subject: Re: [BUG] Custom headers in `notmuch-message-headers` are broken

Date: Thu, 26 Jul 2018 12:33:52 +0800

To: Amin Bandali


From: David Bremner

Amin Bandali <> writes:

> I got bitten by this today.
> I only had a brief look at the format_headers_sprinter function
> in notmuch-show.c.  Would you, David, or anyone else be able to
> point out if the following makes sense, for generalizing
> format_headers_sprinter to handle any arbitrary headers?
> I saw this bit near the bottom of that function:
> --8<---------------cut here---------------start------------->8---
> if (reply) {
> 	sp->map_key (sp, "In-reply-to");
> 	sp->string (sp, g_mime_object_get_header (GMIME_OBJECT (message), "In-reply-to"));
> 	sp->map_key (sp, "References");
> 	sp->string (sp, g_mime_object_get_header (GMIME_OBJECT (message), "References"));
> }
> --8<---------------cut here---------------end--------------->8---
> So I had a look at GMimeObject's docs on [0], and saw
> g_mime_object_get_header_list, which returns a GMimeHeaderList*
> list of headers [1], which seems to be what we're looking for.
> From there, we'd walk over 0..(g_mime_header_list_get_count-1)
> indices and use g_mime_header_list_get_header_at to get each
> header, and pass it to g_mime_header_get_name to get the name
> which we'll pass to sp->map_key and also use to get its value
> from g_mime_object_get_header.

Sounds roughly correct. Note that

1) You'll want to avoid duplicating headers already emitted

2) This will most likely require updating the test suite to add new
headers to the expected output. If that is too burdensome we could
consider bumping the version in devel/schemata, but I'd rather not.

3) We should think carefully about whether we want to blindly send
   certain large headers like "Received". Some people use notmuch via
   ssh or equivalent, and it might (dunno) be a concern.

4) Your plan _might_ only be working with gmime 3.0+.  That's ok, it
just means I would need to finally apply the patches I've got kicking
around removing gmime-2.6 support.

notmuch mailing list