Merge pull request #866 from arrbee/fix-config-file-parsing

Config file parser includes = in name if no space around it
This commit is contained in:
Vicent Martí 2012-08-13 20:56:28 -07:00
commit c86dd38a64
3 changed files with 22 additions and 4 deletions

View File

@ -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);

View File

@ -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")

View File

@ -0,0 +1,4 @@
[a]
b=c
[d]
e = f