X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-show.c;h=1f359a917a2fcb4196912fe45102c3326fa18da2;hp=5c2d56e8884367e2d85da7aa3b7ea6066a3ce15c;hb=32819f74d3ac2eee25cf234d988688cc82ecbc0a;hpb=e1b7d32db00ea8afaa1f2ae31bdaa5cb423dda96 diff --git a/notmuch-show.c b/notmuch-show.c index 5c2d56e8..1f359a91 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -201,10 +201,9 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message, /* Any changes to the JSON or S-Expression format should be * reflected in the file devel/schemata. */ - InternetAddressList *recipients; char *recipients_string; const char *reply_to_string; - char *date_string; + void *local = talloc_new (sp); sp->begin_map (sp); @@ -212,33 +211,30 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message, sp->string (sp, g_mime_message_get_subject (message)); sp->map_key (sp, "From"); - sp->string (sp, g_mime_message_get_sender (message)); + sp->string (sp, g_mime_message_get_from_string (message)); - recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO); - recipients_string = internet_address_list_to_string (recipients, 0); + recipients_string = g_mime_message_get_address_string (message, GMIME_ADDRESS_TYPE_TO); if (recipients_string) { sp->map_key (sp, "To"); sp->string (sp, recipients_string); g_free (recipients_string); } - recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_CC); - recipients_string = internet_address_list_to_string (recipients, 0); + recipients_string = g_mime_message_get_address_string (message, GMIME_ADDRESS_TYPE_CC); if (recipients_string) { sp->map_key (sp, "Cc"); sp->string (sp, recipients_string); g_free (recipients_string); } - recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_BCC); - recipients_string = internet_address_list_to_string (recipients, 0); + recipients_string = g_mime_message_get_address_string (message, GMIME_ADDRESS_TYPE_BCC); if (recipients_string) { sp->map_key (sp, "Bcc"); sp->string (sp, recipients_string); g_free (recipients_string); } - reply_to_string = g_mime_message_get_reply_to (message); + reply_to_string = g_mime_message_get_reply_to_string (local, message); if (reply_to_string) { sp->map_key (sp, "Reply-To"); sp->string (sp, reply_to_string); @@ -252,12 +248,11 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message, sp->string (sp, g_mime_object_get_header (GMIME_OBJECT (message), "References")); } else { sp->map_key (sp, "Date"); - date_string = g_mime_message_get_date_as_string (message); - sp->string (sp, date_string); - g_free (date_string); + sp->string (sp, g_mime_message_get_date_string (sp, message)); } sp->end (sp); + talloc_free (local); } /* Write a MIME text part out to the given stream. @@ -513,7 +508,6 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, if (GMIME_IS_MESSAGE (node->part)) { GMimeMessage *message = GMIME_MESSAGE (node->part); - InternetAddressList *recipients; char *recipients_string; char *date_string; @@ -521,20 +515,17 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, if (node->envelope_file) g_mime_stream_printf (stream, "%s\n", _get_one_line_summary (ctx, node->envelope_file)); g_mime_stream_printf (stream, "Subject: %s\n", g_mime_message_get_subject (message)); - g_mime_stream_printf (stream, "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); + g_mime_stream_printf (stream, "From: %s\n", g_mime_message_get_from_string (message)); + recipients_string = g_mime_message_get_address_string (message, GMIME_ADDRESS_TYPE_TO); if (recipients_string) g_mime_stream_printf (stream, "To: %s\n", recipients_string); g_free (recipients_string); - recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_CC); - recipients_string = internet_address_list_to_string (recipients, 0); + recipients_string = g_mime_message_get_address_string (message, GMIME_ADDRESS_TYPE_CC); if (recipients_string) g_mime_stream_printf (stream, "Cc: %s\n", recipients_string); g_free (recipients_string); - date_string = g_mime_message_get_date_as_string (message); + date_string = g_mime_message_get_date_string (node, message); g_mime_stream_printf (stream, "Date: %s\n", date_string); - g_free (date_string); g_mime_stream_printf (stream, "\fheader}\n"); g_mime_stream_printf (stream, "\fbody{\n"); @@ -1055,18 +1046,6 @@ static const notmuch_show_format_t *formatters[] = { [NOTMUCH_FORMAT_RAW] = &format_raw, }; -enum { - ENTIRE_THREAD_DEFAULT = -1, - ENTIRE_THREAD_FALSE = FALSE, - ENTIRE_THREAD_TRUE = TRUE, -}; - -/* The following is to allow future options to be added more easily */ -enum { - EXCLUDE_TRUE, - EXCLUDE_FALSE, -}; - int notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) { @@ -1082,8 +1061,11 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) .output_body = TRUE, }; int format = NOTMUCH_FORMAT_NOT_SPECIFIED; - int exclude = EXCLUDE_TRUE; - int entire_thread = ENTIRE_THREAD_DEFAULT; + int exclude = TRUE; + + /* This value corresponds to neither true nor false being passed + * on the command line */ + int entire_thread = -1; notmuch_bool_t single_message; notmuch_opt_desc_t options[] = { @@ -1095,15 +1077,8 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) { "raw", NOTMUCH_FORMAT_RAW }, { 0, 0 } } }, { NOTMUCH_OPT_INT, ¬much_format_version, "format-version", 0, 0 }, - { NOTMUCH_OPT_KEYWORD, &exclude, "exclude", 'x', - (notmuch_keyword_t []){ { "true", EXCLUDE_TRUE }, - { "false", EXCLUDE_FALSE }, - { 0, 0 } } }, - { NOTMUCH_OPT_KEYWORD, &entire_thread, "entire-thread", 't', - (notmuch_keyword_t []){ { "true", ENTIRE_THREAD_TRUE }, - { "false", ENTIRE_THREAD_FALSE }, - { "", ENTIRE_THREAD_TRUE }, - { 0, 0 } } }, + { NOTMUCH_OPT_BOOLEAN, &exclude, "exclude", 'x', 0 }, + { NOTMUCH_OPT_BOOLEAN, &entire_thread, "entire-thread", 't', 0 }, { NOTMUCH_OPT_INT, ¶ms.part, "part", 'p', 0 }, { NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.decrypt, "decrypt", 'd', 0 }, { NOTMUCH_OPT_BOOLEAN, ¶ms.crypto.verify, "verify", 'v', 0 }, @@ -1148,7 +1123,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) /* Default is entire-thread = FALSE except for format=json and * format=sexp. */ - if (entire_thread == ENTIRE_THREAD_DEFAULT) { + if (entire_thread != FALSE && entire_thread != TRUE) { if (format == NOTMUCH_FORMAT_JSON || format == NOTMUCH_FORMAT_SEXP) params.entire_thread = TRUE; else @@ -1228,7 +1203,7 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]) } } - if (exclude == EXCLUDE_FALSE) { + if (exclude == FALSE) { notmuch_query_set_omit_excluded (query, FALSE); params.omit_excluded = FALSE; }