summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/config_file.c17
-rw-r--r--tests/config/multivar.c2
2 files changed, 1 insertions, 18 deletions
diff --git a/src/config_file.c b/src/config_file.c
index 584b9fa82..02bb2f75e 100644
--- a/src/config_file.c
+++ b/src/config_file.c
@@ -561,31 +561,15 @@ static int config_set_multivar(
git_config_backend *cfg, const char *name, const char *regexp, const char *value)
{
diskfile_backend *b = (diskfile_backend *)cfg;
- refcounted_strmap *map;
- git_strmap *values;
char *key;
regex_t preg;
int result;
- khiter_t pos;
assert(regexp);
if ((result = git_config__normalize_name(name, &key)) < 0)
return result;
- if ((map = refcounted_strmap_take(&b->header)) == NULL)
- return -1;
- values = b->header.values->values;
-
- pos = git_strmap_lookup_index(values, key);
- if (!git_strmap_valid_index(values, pos)) {
- /* If we don't have it, behave like a normal set */
- result = config_set(cfg, name, value);
- refcounted_strmap_free(map);
- git__free(key);
- return result;
- }
-
result = regcomp(&preg, regexp, REG_EXTENDED);
if (result != 0) {
giterr_set_regex(&preg, result);
@@ -600,7 +584,6 @@ static int config_set_multivar(
result = config_refresh(cfg);
out:
- refcounted_strmap_free(map);
git__free(key);
regfree(&preg);
diff --git a/tests/config/multivar.c b/tests/config/multivar.c
index 015008992..d1b8c4cda 100644
--- a/tests/config/multivar.c
+++ b/tests/config/multivar.c
@@ -163,7 +163,7 @@ void test_config_multivar__add_new(void)
cl_git_pass(git_config_open_ondisk(&cfg, "config/config11"));
- cl_git_pass(git_config_set_multivar(cfg, var, "", "variable"));
+ cl_git_pass(git_config_set_multivar(cfg, var, "$^", "variable"));
n = 0;
cl_git_pass(git_config_get_multivar_foreach(cfg, var, NULL, cb, &n));
cl_assert_equal_i(n, 1);