aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-reply.c
diff options
context:
space:
mode:
authorGravatar Jameson Graef Rollins <jrollins@finestructure.net>2011-06-05 17:29:28 -0700
committerGravatar David Bremner <bremner@debian.org>2011-09-05 22:58:52 -0300
commit12de016686351b78631546299ed35cced01f1e77 (patch)
tree8ef581a63a329005a8b4681a060ba4e86bc531aa /notmuch-reply.c
parentc8598d9a99ca003cd905b4b28d16bda2b9ca785b (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.c31
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 &&