diff options
author | Vicent Martà <vicent@github.com> | 2012-08-13 20:56:28 -0700 |
---|---|---|
committer | Vicent Martà <vicent@github.com> | 2012-08-13 20:56:28 -0700 |
commit | c86dd38a64deb191f6700e4ad5c79a4e3034034d (patch) | |
tree | 8db5285f8054fcd616c6434147c8e4afc9fd9eef | |
parent | c9d78bde943213f4c2594d1df175336573678b74 (diff) | |
parent | 616c1433b89d143a41035495a0a8504a19a72532 (diff) | |
download | libgit2-c86dd38a64deb191f6700e4ad5c79a4e3034034d.tar.gz |
Merge pull request #866 from arrbee/fix-config-file-parsing
Config file parser includes = in name if no space around it
-rw-r--r-- | src/config_file.c | 6 | ||||
-rw-r--r-- | tests-clar/config/read.c | 16 | ||||
-rw-r--r-- | tests-clar/resources/config/config14 | 4 |
3 files changed, 22 insertions, 4 deletions
diff --git a/src/config_file.c b/src/config_file.c index 80c63d2a3..547509b9f 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -1343,10 +1343,8 @@ static int parse_variable(diskfile_backend *cfg, char **var_name, char **var_val else value_start = var_end + 1; - if (git__isspace(var_end[-1])) { - do var_end--; - while (git__isspace(var_end[0])); - } + do var_end--; + while (git__isspace(*var_end)); *var_name = git__strndup(line, var_end - line + 1); GITERR_CHECK_ALLOC(*var_name); diff --git a/tests-clar/config/read.c b/tests-clar/config/read.c index 574ff8196..fcd22463d 100644 --- a/tests-clar/config/read.c +++ b/tests-clar/config/read.c @@ -266,6 +266,22 @@ void test_config_read__foreach_match(void) git_config_free(cfg); } +void test_config_read__whitespace_not_required_around_assignment(void) +{ + git_config *cfg; + const char *str; + + cl_git_pass(git_config_open_ondisk(&cfg, cl_fixture("config/config14"))); + + cl_git_pass(git_config_get_string(&str, cfg, "a.b")); + cl_assert_equal_s(str, "c"); + + cl_git_pass(git_config_get_string(&str, cfg, "d.e")); + cl_assert_equal_s(str, "f"); + + git_config_free(cfg); +} + #if 0 BEGIN_TEST(config10, "a repo's config overrides the global config") diff --git a/tests-clar/resources/config/config14 b/tests-clar/resources/config/config14 new file mode 100644 index 000000000..ef2198c45 --- /dev/null +++ b/tests-clar/resources/config/config14 @@ -0,0 +1,4 @@ +[a] + b=c +[d] + e = f |