]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-reply.c
NEWS: fix some old typos and trailing whitespace
[notmuch] / notmuch-reply.c
index 362e19872f6061192fbf2280f45ae7fd4eb8019f..7ac879f94419aa4d7783a0cb6d0be8912baad79b 100644 (file)
 #include "gmime-filter-reply.h"
 #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,
@@ -62,13 +65,45 @@ 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));
     GMimeContentDisposition *disposition = g_mime_object_get_content_disposition (part);
 
-    if (g_mime_content_type_is_type (content_type, "text", "*") &&
+    if (g_mime_content_type_is_type (content_type, "multipart", "*") ||
+       g_mime_content_type_is_type (content_type, "message", "rfc822"))
+    {
+       /* Output nothing, since multipart subparts will be handled individually. */
+    }
+    else if (g_mime_content_type_is_type (content_type, "application", "pgp-encrypted") ||
+            g_mime_content_type_is_type (content_type, "application", "pgp-signature"))
+    {
+       /* Ignore PGP/MIME cruft parts */
+    }
+    else if (g_mime_content_type_is_type (content_type, "text", "*") &&
        !g_mime_content_type_is_type (content_type, "text", "html"))
     {
        GMimeStream *stream_stdout = NULL, *stream_filter = NULL;
@@ -593,6 +628,8 @@ notmuch_reply_command (void *ctx, int argc, char *argv[])
     params.part = -1;
     params.cryptoctx = NULL;
 
+    argc--; argv++; /* skip subcommand argument */
+
     for (i = 0; i < argc && argv[i][0] == '-'; i++) {
        if (strcmp (argv[i], "--") == 0) {
            i++;