]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/gc.c
Merge branch 'ab/config-multi-and-nonbool'
[thirdparty/git.git] / builtin / gc.c
index c58fe8c936c63da46134c5ab764228baaa0b88ef..efc1b9a0fda0fa5ceed7366a6f0732a8c69eff24 100644 (file)
@@ -1494,7 +1494,6 @@ static int maintenance_register(int argc, const char **argv, const char *prefix)
        };
        int found = 0;
        const char *key = "maintenance.repo";
-       char *config_value;
        char *maintpath = get_maintpath();
        struct string_list_item *item;
        const struct string_list *list;
@@ -1509,13 +1508,10 @@ static int maintenance_register(int argc, const char **argv, const char *prefix)
        git_config_set("maintenance.auto", "false");
 
        /* Set maintenance strategy, if unset */
-       if (!git_config_get_string("maintenance.strategy", &config_value))
-               free(config_value);
-       else
+       if (git_config_get("maintenance.strategy"))
                git_config_set("maintenance.strategy", "incremental");
 
-       list = git_config_get_value_multi(key);
-       if (list) {
+       if (!git_config_get_string_multi(key, &list)) {
                for_each_string_list_item(item, list) {
                        if (!strcmp(maintpath, item->string)) {
                                found = 1;
@@ -1581,11 +1577,10 @@ static int maintenance_unregister(int argc, const char **argv, const char *prefi
        if (config_file) {
                git_configset_init(&cs);
                git_configset_add_file(&cs, config_file);
-               list = git_configset_get_value_multi(&cs, key);
-       } else {
-               list = git_config_get_value_multi(key);
        }
-       if (list) {
+       if (!(config_file
+             ? git_configset_get_string_multi(&cs, key, &list)
+             : git_config_get_string_multi(key, &list))) {
                for_each_string_list_item(item, list) {
                        if (!strcmp(maintpath, item->string)) {
                                found = 1;