X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=notmuch-config.c;h=34482b4e1e4e82a77ed437d61a34cec23b8b616e;hb=1c747a501c0ed7df5eaa2b994b9ad11d8981c62c;hp=c42835762e959e72973b3227144e292d2db97aa7;hpb=dd9112e7d8e89e8566b90379f5f3b1461a2d2845;p=notmuch diff --git a/notmuch-config.c b/notmuch-config.c index c4283576..34482b4e 100644 --- a/notmuch-config.c +++ b/notmuch-config.c @@ -248,7 +248,7 @@ get_config_from_file (notmuch_config_t *config, bool create_new) notmuch_config_t * notmuch_config_open (notmuch_database_t *notmuch, const char *filename, - notmuch_command_mode_t config_mode) + bool create) { char *notmuch_config_env = NULL; @@ -272,13 +272,9 @@ notmuch_config_open (notmuch_database_t *notmuch, config->key_file = g_key_file_new (); - if (config_mode & NOTMUCH_COMMAND_CONFIG_OPEN) { - bool create_new = (config_mode & NOTMUCH_COMMAND_CONFIG_CREATE) != 0; - - if (! get_config_from_file (config, create_new)) { - talloc_free (config); - return NULL; - } + if (! get_config_from_file (config, create)) { + talloc_free (config); + return NULL; } if (config->is_new) @@ -582,13 +578,14 @@ _set_db_config (notmuch_database_t *notmuch, const char *key, int argc, char **a } static int -notmuch_config_command_set (notmuch_config_t *config, notmuch_database_t *notmuch, +notmuch_config_command_set (notmuch_database_t *notmuch, int argc, char *argv[]) { char *group, *key; config_key_info_t *key_info; + notmuch_config_t *config; bool update_database = false; - int opt_index; + int opt_index, ret; char *item; notmuch_opt_desc_t options[] = { @@ -629,6 +626,11 @@ notmuch_config_command_set (notmuch_config_t *config, notmuch_database_t *notmuc if (_item_split (item, &group, &key)) return 1; + config = notmuch_config_open (notmuch, + notmuch_config_path (notmuch), false); + if (! config) + return 1; + /* With only the name of an item, we clear it from the * configuration file. * @@ -649,7 +651,11 @@ notmuch_config_command_set (notmuch_config_t *config, notmuch_database_t *notmuc break; } - return notmuch_config_save (config); + ret = notmuch_config_save (config); + + notmuch_config_close (config); + + return ret; } static @@ -685,8 +691,7 @@ notmuch_config_command_list (notmuch_database_t *notmuch) } int -notmuch_config_command (notmuch_config_t *config, notmuch_database_t *notmuch, - int argc, char *argv[]) +notmuch_config_command (notmuch_database_t *notmuch, int argc, char *argv[]) { int ret; int opt_index; @@ -716,7 +721,7 @@ notmuch_config_command (notmuch_config_t *config, notmuch_database_t *notmuch, } ret = notmuch_config_command_get (notmuch, argv[1]); } else if (strcmp (argv[0], "set") == 0) { - ret = notmuch_config_command_set (config, notmuch, argc, argv); + ret = notmuch_config_command_set (notmuch, argc, argv); } else if (strcmp (argv[0], "list") == 0) { ret = notmuch_config_command_list (notmuch); } else {