Modify format_headers_sprinter so that it returns all headers in the sexp, instead of a fixed set of headers.
This is required in order for the elisp variable `notmuch-message-headers' to work. See this bug report: https://notmuchmail.org/pipermail/notmuch/2017/026069.html --- notmuch-show.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/notmuch-show.c b/notmuch-show.c index 21792a57..6bd1cf73 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -255,6 +255,37 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message, sp->string (sp, g_mime_message_get_date_string (sp, message)); } + if (!reply) { + GMimeHeaderList *header_list; + GMimeHeader *header; + int header_count; + /* Headers requiring some special treatment in formatting */ + const char* special_headers[] = { + "Subject", "From", "To", "Cc", "Bcc", "Reply-To", "In-reply-to", + "References", "Date"}; + bool special; + + header_list = g_mime_object_get_header_list (GMIME_OBJECT(message)); + header_count = g_mime_header_list_get_count(header_list); + + for (int i = 0; i < header_count; i++) { + header = g_mime_header_list_get_header_at(header_list, i); + + special = false; + for (int k = 0; k < (int)ARRAY_SIZE(special_headers); k++) + if (!STRNCMP_LITERAL(g_mime_header_get_name(header), + special_headers[k])) { + special = true; + break; + } + if (special) + continue; + + sp->map_key (sp, g_mime_header_get_name(header)); + sp->string (sp, g_mime_header_get_value(header)); + } + } + sp->end (sp); talloc_free (local); } -- 2.21.0 (Apple Git-122) _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch