X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.c;h=2ddc8fbcdb0b388b1c4b1dc9c6bd44387bf24321;hp=539ac58c445a6e4dd222e987f3e255dde5aa4519;hb=38dacf009c4feb5d4820bbdd9222d7e7be067903;hpb=7ac96b149f5a0e5c03b64856d7c20789dab3c628 diff --git a/notmuch.c b/notmuch.c index 539ac58c..2ddc8fbc 100644 --- a/notmuch.c +++ b/notmuch.c @@ -26,7 +26,7 @@ * Notmuch subcommand hook. * * The return value will be used as notmuch exit status code, - * preferrably EXIT_SUCCESS or EXIT_FAILURE. + * preferably EXIT_SUCCESS or EXIT_FAILURE. */ typedef int (*command_function_t) (notmuch_config_t *config, int argc, char *argv[]); @@ -99,39 +99,36 @@ int notmuch_minimal_options (const char *subcommand_name, 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" }, + { .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)) +notmuch_process_shared_indexing_options (notmuch_database_t *notmuch) { if (indexing_cli_choices.opts == NULL) indexing_cli_choices.opts = notmuch_database_get_default_indexopts (notmuch); - if (indexing_cli_choices.try_decrypt_set) { + 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_try_decrypt (indexing_cli_choices.opts, indexing_cli_choices.try_decrypt); + 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 try_decrypt to %s. (%s)\n", - indexing_cli_choices.try_decrypt ? "True" : "False", notmuch_status_to_string (status)); + 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_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; } @@ -167,6 +164,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." } }; @@ -181,6 +182,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 * @@ -355,7 +358,7 @@ notmuch_help_command (unused (notmuch_config_t * config), int argc, char *argv[] */ static int notmuch_command (notmuch_config_t *config, - unused(int argc), unused(char *argv[])) + unused(int argc), unused(char **argv)) { char *db_path; struct stat st; @@ -460,7 +463,7 @@ main (int argc, char *argv[]) local = talloc_new (NULL); - g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); + g_mime_init (); #if !GLIB_CHECK_VERSION(2, 35, 1) g_type_init (); #endif @@ -480,7 +483,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",