]> git.ipfire.org Git - thirdparty/git.git/commitdiff
scalar: move config setting logic into its own function
authorVictoria Dye <vdye@github.com>
Thu, 18 Aug 2022 21:40:50 +0000 (21:40 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Aug 2022 04:35:32 +0000 (21:35 -0700)
Create function 'set_scalar_config()' to contain the logic used in setting
Scalar-defined Git config settings, including how to handle reconfiguring &
overwriting existing values. This function allows future patches to set
config values in parts of 'scalar.c' other than 'set_recommended_config()'.

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/scalar/scalar.c

index 6de4d5b37219ff9a47e0ab684761e0bf23c9c23c..836a4c48fabceb310be8a8464ec612f142db9df0 100644 (file)
@@ -85,13 +85,33 @@ static int run_git(const char *arg, ...)
        return res;
 }
 
+struct scalar_config {
+       const char *key;
+       const char *value;
+       int overwrite_on_reconfigure;
+};
+
+static int set_scalar_config(const struct scalar_config *config, int reconfigure)
+{
+       char *value = NULL;
+       int res;
+
+       if ((reconfigure && config->overwrite_on_reconfigure) ||
+           git_config_get_string(config->key, &value)) {
+               trace2_data_string("scalar", the_repository, config->key, "created");
+               res = git_config_set_gently(config->key, config->value);
+       } else {
+               trace2_data_string("scalar", the_repository, config->key, "exists");
+               res = 0;
+       }
+
+       free(value);
+       return res;
+}
+
 static int set_recommended_config(int reconfigure)
 {
-       struct {
-               const char *key;
-               const char *value;
-               int overwrite_on_reconfigure;
-       } config[] = {
+       struct scalar_config config[] = {
                /* Required */
                { "am.keepCR", "true", 1 },
                { "core.FSCache", "true", 1 },
@@ -145,17 +165,9 @@ static int set_recommended_config(int reconfigure)
        char *value;
 
        for (i = 0; config[i].key; i++) {
-               if ((reconfigure && config[i].overwrite_on_reconfigure) ||
-                   git_config_get_string(config[i].key, &value)) {
-                       trace2_data_string("scalar", the_repository, config[i].key, "created");
-                       if (git_config_set_gently(config[i].key,
-                                                 config[i].value) < 0)
-                               return error(_("could not configure %s=%s"),
-                                            config[i].key, config[i].value);
-               } else {
-                       trace2_data_string("scalar", the_repository, config[i].key, "exists");
-                       free(value);
-               }
+               if (set_scalar_config(config + i, reconfigure))
+                       return error(_("could not configure %s=%s"),
+                                    config[i].key, config[i].value);
        }
 
        /*