Comments
Patch
From 7fd7ad00f4b8f8a2610eb15eeee98a1c0bb4351e Mon Sep 17 00:00:00 2001
From: David Edmondson <dme@dme.org>
Date: Fri, 12 Feb 2010 15:01:06 +0000
Subject: [PATCH] show: Make message/rfc822 parts explicit in show output.
show: Display header information for message/rfc822 parts.
---
notmuch-show.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
@@ -97,6 +97,34 @@ show_part_content (GMimeObject *part)
}
static void
+show_message_rfc822 (GMimeObject *part, int *part_count,
+ void (*show_part) (GMimeObject *part, int *part_count))
+{
+ GMimeMessage *message;
+ const char *headers[] = {
+ "Subject", "From", "To", "Cc", "Bcc", "Date"
+ };
+ const char *name, *value;
+ unsigned int i;
+
+ *part_count = *part_count + 1;
+
+ message = g_mime_message_part_get_message (GMIME_MESSAGE_PART (part));
+
+ printf ("\n");
+ for (i = 0; i < ARRAY_SIZE (headers); i++) {
+ name = headers[i];
+ value = g_mime_object_get_header (GMIME_OBJECT (message), name);
+ if (value)
+ printf ("%s: %s\n", name, value);
+ }
+ printf ("\n");
+
+ show_part (g_mime_message_get_mime_part (message),
+ part_count);
+}
+
+static void
show_part (GMimeObject *part, int *part_count)
{
GMimeContentDisposition *disposition;
@@ -137,6 +165,10 @@ show_part (GMimeObject *part, int *part_count)
{
show_part_content (part);
}
+ else if (g_mime_content_type_is_type (content_type, "message", "rfc822"))
+ {
+ show_message_rfc822 (part, part_count, show_part);
+ }
else
{
printf ("Non-text part: %s\n",
--
1.6.6.1