scalar: move config setting logic into its own function
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>
Victoria Dye committed
Aug 18, 2022 at 21:40 UTC
d934a11c718f35f5593cfb49da994b43e74dd940
1 file changed
+28
-16
contrib/scalar/scalar.c
+28
-16
index 6de4d5b372..836a4c48fa 100644
--- a/contrib/scalar/scalar.c
+++ b/contrib/scalar/scalar.c
@@ -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);
}
/*