X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.c;h=2d193aa8814aa0cb4aca79977dff2da8dbc59acd;hp=02148f2e3bf654253ee3f33778561a26329e3cc9;hb=94dc81a91b2f300d1c583cc10956869d29c645a8;hpb=0f314c0c99befea599a68bea51d759b4133efef6 diff --git a/notmuch.c b/notmuch.c index 02148f2e..2d193aa8 100644 --- a/notmuch.c +++ b/notmuch.c @@ -96,6 +96,51 @@ 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_keyword = &indexing_cli_choices.decrypt_policy, + .present = &indexing_cli_choices.decrypt_policy_set, .keywords = + (notmuch_keyword_t []){ { "false", NOTMUCH_DECRYPT_FALSE }, + { "true", NOTMUCH_DECRYPT_TRUE }, + { "auto", NOTMUCH_DECRYPT_AUTO }, + { "nostash", NOTMUCH_DECRYPT_NOSTASH }, + { 0, 0 } }, + .name = "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.decrypt_policy_set) { + notmuch_status_t status; + if (indexing_cli_choices.opts == NULL) + return NOTMUCH_STATUS_OUT_OF_MEMORY; + status = notmuch_indexopts_set_decrypt_policy (indexing_cli_choices.opts, indexing_cli_choices.decrypt_policy); + if (status != NOTMUCH_STATUS_SUCCESS) { + fprintf (stderr, "Error: Failed to set index decryption policy to %d. (%s)\n", + indexing_cli_choices.decrypt_policy, 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_decrypt_policy (indexing_cli_choices.opts) != NOTMUCH_DECRYPT_FALSE) { + 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 +172,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." } }; @@ -141,6 +190,8 @@ static help_topic_t help_topics[] = { "Common search term syntax." }, { "hooks", "Hooks that will be run before or after certain commands." }, + { "properties", + "Message property conventions and documentation." }, }; static command_t * @@ -440,7 +491,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",