Fix handling of message/rfc822 parts
authorJameson Graef Rollins <jrollins@finestructure.net>
Mon, 23 May 2011 07:46:16 +0000 (00:46 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 24 May 2011 19:19:18 +0000 (12:19 -0700)
Since message/rfc822 parts are really just a special kind of
multipart, we here normalize the handling of the two.  This will
provide access to sub-parts of message/rfc822 parts, which was
previously unavailable.

notmuch-show.c

index d11a2b81ef0c73398b1a6cf3063438d1bf08cc0f..65c780e7b8681716c85a1b11e990ffbfd40d6dfb 100644 (file)
@@ -416,7 +416,8 @@ format_part_text (GMimeObject *part, int *part_count)
        show_part_content (part, stream_stdout);
        g_object_unref(stream_stdout);
     }
-    else if (g_mime_content_type_is_type (content_type, "multipart", "*"))
+    else if (g_mime_content_type_is_type (content_type, "multipart", "*") ||
+            g_mime_content_type_is_type (content_type, "message", "rfc822"))
     {
        /* Do nothing for multipart since its content will be printed
         * when recursing. */
@@ -483,7 +484,8 @@ format_part_json (GMimeObject *part, int *part_count)
 
        printf (", \"content\": %s", json_quote_chararray (ctx, (char *) part_content->data, part_content->len));
     }
-    else if (g_mime_content_type_is_type (content_type, "multipart", "*"))
+    else if (g_mime_content_type_is_type (content_type, "multipart", "*") ||
+            g_mime_content_type_is_type (content_type, "message", "rfc822"))
     {
        printf (", \"content\": [");
     }
@@ -500,7 +502,8 @@ format_part_end_json (GMimeObject *part)
 
     content_type = g_mime_object_get_content_type (GMIME_OBJECT (part));
 
-    if (g_mime_content_type_is_type (content_type, "multipart", "*"))
+    if (g_mime_content_type_is_type (content_type, "multipart", "*") ||
+       g_mime_content_type_is_type (content_type, "message", "rfc822"))
        printf ("]");
 
     printf ("}");