#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,
}
}
+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;
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++;