During formatted output, if a content type of a text/plain part has a "format" paramter, include it in the output. --- devel/schemata | 2 ++ notmuch-show.c | 13 +++++++++++++ 2 files changed, 15 insertions(+)
diff --git a/devel/schemata b/devel/schemata index 42b1bcf3..194933d4 100644 --- a/devel/schemata +++ b/devel/schemata @@ -93,6 +93,8 @@ part = { # otherwise (leaf parts): filename?: string, content-charset?: string, + # if content-type is "text/plain" and a "format" parameter exists: + format?: string, # A leaf part's body content is optional, but may be included if # it can be correctly encoded as a string. Consumers should use # this in preference to fetching the part content separately. diff --git a/notmuch-show.c b/notmuch-show.c index 07e9a5db..92d18bb8 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -708,6 +708,19 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, } if (GMIME_IS_PART (node->part)) { + /* Include the format parameter of text/plain parts if it + * exists, allowing the UI to adapt the display of the part as + * appropriate. + */ + if (g_mime_content_type_is_type (content_type, "text", "plain")) { + const char *format = + g_mime_object_get_content_type_parameter (node->part, "format"); + if (format) { + sp->map_key (sp, "format"); + sp->string (sp, format); + } + } + /* For non-HTML text parts, we include the content in the * JSON. Since JSON must be Unicode, we handle charset * decoding here and do not report a charset to the caller. -- 2.11.0 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch