- notmuch_config_t *config;
- notmuch_database_t *notmuch;
- notmuch_query_t *query;
- notmuch_messages_t *messages;
- notmuch_message_t *message;
- char *query_string;
- int i;
- int part = 0;
-
- for (i = 0; i < argc && argv[i][0] == '-'; i++) {
- if (strcmp (argv[i], "--") == 0) {
- i++;
- break;
- }
- if (STRNCMP_LITERAL (argv[i], "--part=") == 0) {
- part = atoi(argv[i] + sizeof ("--part=") - 1);
- } else {
- fprintf (stderr, "Unrecognized option: %s\n", argv[i]);
- return 1;
- }
- }
+ notmuch_query_t *query;
+ char *query_string;
+ int opt_index, ret;
+ const notmuch_show_format_t *formatter;
+ sprinter_t *sprinter;
+ notmuch_show_params_t params = {
+ .part = -1,
+ .duplicate = 0,
+ .offset = 0,
+ .limit = -1, /* unlimited */
+ .omit_excluded = true,
+ .output_body = true,
+ .crypto = { .decrypt = NOTMUCH_DECRYPT_AUTO },
+ };
+ int format = NOTMUCH_FORMAT_NOT_SPECIFIED;
+ bool exclude = true;
+ bool entire_thread_set = false;
+ bool single_message;
+ bool unthreaded = FALSE;
+ notmuch_status_t status;
+ int sort = NOTMUCH_SORT_NEWEST_FIRST;
+
+ notmuch_opt_desc_t options[] = {
+ { .opt_keyword = &sort, .name = "sort", .keywords =
+ (notmuch_keyword_t []){ { "oldest-first", NOTMUCH_SORT_OLDEST_FIRST },
+ { "newest-first", NOTMUCH_SORT_NEWEST_FIRST },
+ { 0, 0 } } },
+ { .opt_keyword = &format, .name = "format", .keywords =
+ (notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
+ { "text", NOTMUCH_FORMAT_TEXT },
+ { "sexp", NOTMUCH_FORMAT_SEXP },
+ { "mbox", NOTMUCH_FORMAT_MBOX },
+ { "raw", NOTMUCH_FORMAT_RAW },
+ { 0, 0 } } },
+ { .opt_int = ¬much_format_version, .name = "format-version" },
+ { .opt_bool = &exclude, .name = "exclude" },
+ { .opt_bool = ¶ms.entire_thread, .name = "entire-thread",
+ .present = &entire_thread_set },
+ { .opt_bool = &unthreaded, .name = "unthreaded" },
+ { .opt_int = ¶ms.part, .name = "part" },
+ { .opt_keyword = (int *) (¶ms.crypto.decrypt), .name = "decrypt",
+ .keyword_no_arg_value = "true", .keywords =
+ (notmuch_keyword_t []){ { "false", NOTMUCH_DECRYPT_FALSE },
+ { "auto", NOTMUCH_DECRYPT_AUTO },
+ { "true", NOTMUCH_DECRYPT_NOSTASH },
+ { "stash", NOTMUCH_DECRYPT_TRUE },
+ { 0, 0 } } },
+ { .opt_bool = ¶ms.crypto.verify, .name = "verify" },
+ { .opt_bool = ¶ms.output_body, .name = "body" },
+ { .opt_bool = ¶ms.include_html, .name = "include-html" },
+ { .opt_int = ¶ms.duplicate, .name = "duplicate" },
+ { .opt_int = ¶ms.limit, .name = "limit" },
+ { .opt_int = ¶ms.offset, .name = "offset" },
+ { .opt_inherit = notmuch_shared_options },
+ { }
+ };