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;
{ 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 },
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;
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);