X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=notmuch-reply.c;h=3b2b58d194dfb8f1be470dfd6d04fbf2393af45c;hb=ad7bb423fb26f2b2fb801d3c2e3ceef9c7e3e622;hp=ef450b24d46acafd0ac7e5d5f4737a690f24d2e4;hpb=1bf3720b6eaca6698f25781a7d299afcbd7a4be8;p=obsolete%2Fnotmuch-old diff --git a/notmuch-reply.c b/notmuch-reply.c index ef450b24..3b2b58d1 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -34,6 +34,10 @@ show_reply_headers (GMimeMessage *message) g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream_stdout), FALSE); stream_filter = g_mime_stream_filter_new(stream_stdout); if (stream_filter) { + // g_mime_object_write_to_stream will produce + // RFC2047-encoded headers, but we want to present the + // user with decoded headers and let whatever + // ultimately sends the mail do the RFC2047 encoding. g_mime_stream_filter_add(GMIME_STREAM_FILTER(stream_filter), g_mime_filter_headers_new()); g_mime_object_write_to_stream(GMIME_OBJECT(message), stream_filter); @@ -697,13 +701,13 @@ notmuch_reply_format_headers_only(void *ctx, enum { FORMAT_DEFAULT, FORMAT_JSON, + FORMAT_SEXP, FORMAT_HEADERS_ONLY, }; int -notmuch_reply_command (void *ctx, int argc, char *argv[]) +notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) { - notmuch_config_t *config; notmuch_database_t *notmuch; notmuch_query_t *query; char *query_string; @@ -729,8 +733,10 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) { NOTMUCH_OPT_KEYWORD, &format, "format", 'f', (notmuch_keyword_t []){ { "default", FORMAT_DEFAULT }, { "json", FORMAT_JSON }, + { "sexp", FORMAT_SEXP }, { "headers-only", FORMAT_HEADERS_ONLY }, { 0, 0 } } }, + { NOTMUCH_OPT_INT, ¬much_format_version, "format-version", 0, 0 }, { NOTMUCH_OPT_KEYWORD, &reply_all, "reply-to", 'r', (notmuch_keyword_t []){ { "all", TRUE }, { "sender", FALSE }, @@ -749,16 +755,17 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) reply_format_func = notmuch_reply_format_headers_only; } else if (format == FORMAT_JSON) { reply_format_func = notmuch_reply_format_sprinter; - sp = sprinter_json_create (ctx, stdout); + sp = sprinter_json_create (config, stdout); + } else if (format == FORMAT_SEXP) { + reply_format_func = notmuch_reply_format_sprinter; + sp = sprinter_sexp_create (config, stdout); } else { reply_format_func = notmuch_reply_format_default; } - config = notmuch_config_open (ctx, NULL, NULL); - if (config == NULL) - return 1; + notmuch_exit_if_unsupported_format (); - query_string = query_string_from_args (ctx, argc-opt_index, argv+opt_index); + query_string = query_string_from_args (config, argc-opt_index, argv+opt_index); if (query_string == NULL) { fprintf (stderr, "Out of memory\n"); return 1; @@ -779,7 +786,7 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) return 1; } - if (reply_format_func (ctx, config, query, ¶ms, reply_all, sp) != 0) + if (reply_format_func (config, config, query, ¶ms, reply_all, sp) != 0) return 1; notmuch_crypto_cleanup (¶ms.crypto);