X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.c;h=fa866d8645ee72ee00f7bc410a2a239e653f53f4;hp=02148f2e3bf654253ee3f33778561a26329e3cc9;hb=de80ede3dfa88d50a3a4d34cedfcd71b8bde165b;hpb=0f314c0c99befea599a68bea51d759b4133efef6 diff --git a/notmuch.c b/notmuch.c index 02148f2e..fa866d86 100644 --- a/notmuch.c +++ b/notmuch.c @@ -96,6 +96,46 @@ int notmuch_minimal_options (const char *subcommand_name, return opt_index; } + +struct _notmuch_client_indexing_cli_choices indexing_cli_choices = { }; +const notmuch_opt_desc_t notmuch_shared_indexing_options [] = { + { .opt_bool = &indexing_cli_choices.try_decrypt, + .present = &indexing_cli_choices.try_decrypt_set, + .name = "try-decrypt" }, + { } +}; + + +notmuch_status_t +notmuch_process_shared_indexing_options (notmuch_database_t *notmuch, g_mime_3_unused(notmuch_config_t *config)) +{ + if (indexing_cli_choices.opts == NULL) + indexing_cli_choices.opts = notmuch_database_get_default_indexopts (notmuch); + if (indexing_cli_choices.try_decrypt_set) { + notmuch_status_t status; + if (indexing_cli_choices.opts == NULL) + return NOTMUCH_STATUS_OUT_OF_MEMORY; + status = notmuch_indexopts_set_try_decrypt (indexing_cli_choices.opts, indexing_cli_choices.try_decrypt); + if (status != NOTMUCH_STATUS_SUCCESS) { + fprintf (stderr, "Error: Failed to set try_decrypt to %s. (%s)\n", + indexing_cli_choices.try_decrypt ? "True" : "False", notmuch_status_to_string (status)); + notmuch_indexopts_destroy (indexing_cli_choices.opts); + indexing_cli_choices.opts = NULL; + return status; + } + } +#if (GMIME_MAJOR_VERSION < 3) + if (indexing_cli_choices.opts && notmuch_indexopts_get_try_decrypt (indexing_cli_choices.opts)) { + const char* gpg_path = notmuch_config_get_crypto_gpg_path (config); + if (gpg_path && strcmp(gpg_path, "gpg")) + fprintf (stderr, "Warning: deprecated crypto.gpg_path is set to '%s'\n" + "\tbut ignoring (use $PATH instead)\n", gpg_path); + } +#endif + return NOTMUCH_STATUS_SUCCESS; +} + + static command_t commands[] = { { NULL, notmuch_command, NOTMUCH_CONFIG_OPEN | NOTMUCH_CONFIG_CREATE, "Notmuch main command." }, @@ -127,6 +167,10 @@ static command_t commands[] = { "Re-index all messages matching the search terms." }, { "config", notmuch_config_command, NOTMUCH_CONFIG_OPEN, "Get or set settings in the notmuch configuration file." }, +#if WITH_EMACS + { "emacs-mua", NULL, 0, + "send mail with notmuch and emacs." }, +#endif { "help", notmuch_help_command, NOTMUCH_CONFIG_CREATE, /* create but don't save config */ "This message, or more detailed help for the named command." } }; @@ -440,7 +484,8 @@ main (int argc, char *argv[]) notmuch_process_shared_options (command_name); command = find_command (command_name); - if (!command) { + /* if command->function is NULL, try external command */ + if (!command || !command->function) { /* This won't return if the external command is found. */ if (try_external_command(argv + opt_index)) fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",