diff options
author | Jameson Graef Rollins <jrollins@finestructure.net> | 2011-06-05 17:29:28 -0700 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2011-09-05 22:58:52 -0300 |
commit | 12de016686351b78631546299ed35cced01f1e77 (patch) | |
tree | 8ef581a63a329005a8b4681a060ba4e86bc531aa /notmuch-reply.c | |
parent | c8598d9a99ca003cd905b4b28d16bda2b9ca785b (diff) |
Improve handling of message/rfc822 parts by adding a new header_message_part function to the formating structure.
This new function takes a GMimeMessage as input, and outputs the
formatted headers. This allows for message/rfc822 parts to be
formatted on output in a similar way to full messages (see previous
patch that overhauls the multipart test for more info).
Diffstat (limited to 'notmuch-reply.c')
-rw-r--r-- | notmuch-reply.c | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/notmuch-reply.c b/notmuch-reply.c index 362e1987..f4b1a61b 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -25,12 +25,15 @@ #include "gmime-filter-headers.h" static void +reply_headers_message_part (GMimeMessage *message); + +static void reply_part_content (GMimeObject *part); static const notmuch_show_format_t format_reply = { "", "", NULL, - "", NULL, "", + "", NULL, reply_headers_message_part, ">\n", "", NULL, NULL, @@ -63,6 +66,28 @@ show_reply_headers (GMimeMessage *message) } static void +reply_headers_message_part (GMimeMessage *message) +{ + InternetAddressList *recipients; + const char *recipients_string; + + printf ("> From: %s\n", g_mime_message_get_sender (message)); + recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO); + recipients_string = internet_address_list_to_string (recipients, 0); + if (recipients_string) + printf ("> To: %s\n", + recipients_string); + recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_CC); + recipients_string = internet_address_list_to_string (recipients, 0); + if (recipients_string) + printf ("> Cc: %s\n", + recipients_string); + printf ("> Subject: %s\n", g_mime_message_get_subject (message)); + printf ("> Date: %s\n", g_mime_message_get_date_as_string (message)); +} + + +static void reply_part_content (GMimeObject *part) { GMimeContentType *content_type = g_mime_object_get_content_type (GMIME_OBJECT (part)); @@ -95,6 +120,10 @@ reply_part_content (GMimeObject *part) if (stream_stdout) g_object_unref(stream_stdout); } + else if (g_mime_content_type_is_type (content_type, "message", "rfc822")) + { + /* Output nothing, since rfc822 subparts will be handled individually. */ + } else { if (disposition && |