X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-show.c;h=cbfc2d1cb6efb28a4202c5053fd6d22d0ad58b69;hp=7234caa7827ab15c35ea66d7b371dfbdd0ae0bc6;hb=da6d66e2864d32d4e6238691b66204ff86c9961e;hpb=35860e00d1a1f1c4116b03a23c2bbeb0089aa4a1 diff --git a/notmuch-show.c b/notmuch-show.c index 7234caa7..cbfc2d1c 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -600,14 +600,26 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, } static void -format_omitted_part_meta_sprinter (sprinter_t *sp, GMimeObject *meta) +format_omitted_part_meta_sprinter (sprinter_t *sp, GMimeObject *meta, GMimePart *part) { const char *content_charset = g_mime_object_get_content_type_parameter (meta, "charset"); + const char *cte = g_mime_object_get_header (meta, "content-transfer-encoding"); + GMimeDataWrapper *wrapper = g_mime_part_get_content_object (part); + GMimeStream *stream = g_mime_data_wrapper_get_stream (wrapper); + ssize_t content_length = g_mime_stream_length (stream); if (content_charset != NULL) { sp->map_key (sp, "content-charset"); sp->string (sp, content_charset); } + if (cte != NULL) { + sp->map_key (sp, "content-transfer-encoding"); + sp->string (sp, cte); + } + if (content_length >= 0) { + sp->map_key (sp, "content-length"); + sp->integer (sp, content_length); + } } void @@ -699,7 +711,7 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, sp->string_len (sp, (char *) part_content->data, part_content->len); g_object_unref (stream_memory); } else { - format_omitted_part_meta_sprinter (sp, meta); + format_omitted_part_meta_sprinter (sp, meta, GMIME_PART (node->part)); } } else if (GMIME_IS_MULTIPART (node->part)) { sp->map_key (sp, "content");