aboutsummaryrefslogtreecommitdiff
path: root/notmuch-config.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-02-14 13:46:13 -0400
committerDavid Bremner <david@tethera.net>2021-03-27 09:26:14 -0300
commitf055e945627b3b0563262d4d273ac15a53766ef3 (patch)
treef5fe592e5f7ea11bc56a410cc7bd99508812e184 /notmuch-config.c
parentb76da87d29b6c9714e3d62fd8d459733df084f92 (diff)
CLI/config: use notmuch_database_reopen
This allows `notmuch config` to use the common configuration information carried by the notmuch_database_t opened at the top level.
Diffstat (limited to 'notmuch-config.c')
-rw-r--r--notmuch-config.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/notmuch-config.c b/notmuch-config.c
index 0c618d51..2278ab2f 100644
--- a/notmuch-config.c
+++ b/notmuch-config.c
@@ -696,9 +696,8 @@ notmuch_config_command_get (notmuch_database_t *notmuch, char *item)
}
static int
-_set_db_config (notmuch_config_t *config, const char *key, int argc, char **argv)
+_set_db_config (notmuch_database_t *notmuch, const char *key, int argc, char **argv)
{
- notmuch_database_t *notmuch;
const char *val = "";
if (argc > 1) {
@@ -711,12 +710,11 @@ _set_db_config (notmuch_config_t *config, const char *key, int argc, char **argv
val = argv[0];
}
- if (notmuch_database_open (notmuch_config_get_database_path (config),
- NOTMUCH_DATABASE_MODE_READ_WRITE, &notmuch))
+ if (print_status_database ("notmuch config", notmuch,
+ notmuch_database_reopen (notmuch,
+ NOTMUCH_DATABASE_MODE_READ_WRITE)))
return EXIT_FAILURE;
- /* XXX Handle UUID mismatch? */
-
if (print_status_database ("notmuch config", notmuch,
notmuch_database_set_config (notmuch, key, val)))
return EXIT_FAILURE;
@@ -729,7 +727,8 @@ _set_db_config (notmuch_config_t *config, const char *key, int argc, char **argv
}
static int
-notmuch_config_command_set (notmuch_config_t *config, char *item, int argc, char *argv[])
+notmuch_config_command_set (notmuch_config_t *config, notmuch_database_t *notmuch, char *item,
+ int argc, char *argv[])
{
char *group, *key;
config_key_info_t *key_info;
@@ -744,7 +743,7 @@ notmuch_config_command_set (notmuch_config_t *config, char *item, int argc, char
return 1;
if (key_info && key_info->in_db) {
- return _set_db_config (config, item, argc, argv);
+ return _set_db_config (notmuch, item, argc, argv);
}
if (_item_split (item, &group, &key))
@@ -842,7 +841,7 @@ notmuch_config_command (notmuch_config_t *config, notmuch_database_t *notmuch,
"one argument.\n");
return EXIT_FAILURE;
}
- ret = notmuch_config_command_set (config, argv[1], argc - 2, argv + 2);
+ ret = notmuch_config_command_set (config, notmuch, argv[1], argc - 2, argv + 2);
} else if (strcmp (argv[0], "list") == 0) {
ret = notmuch_config_command_list (notmuch);
} else {