Commit c86dd38a by Vicent Martí

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

Config file parser includes = in name if no space around it
parents c9d78bde 616c1433
...@@ -1343,10 +1343,8 @@ static int parse_variable(diskfile_backend *cfg, char **var_name, char **var_val ...@@ -1343,10 +1343,8 @@ static int parse_variable(diskfile_backend *cfg, char **var_name, char **var_val
else else
value_start = var_end + 1; value_start = var_end + 1;
if (git__isspace(var_end[-1])) { do var_end--;
do var_end--; while (git__isspace(*var_end));
while (git__isspace(var_end[0]));
}
*var_name = git__strndup(line, var_end - line + 1); *var_name = git__strndup(line, var_end - line + 1);
GITERR_CHECK_ALLOC(*var_name); GITERR_CHECK_ALLOC(*var_name);
......
...@@ -266,6 +266,22 @@ void test_config_read__foreach_match(void) ...@@ -266,6 +266,22 @@ void test_config_read__foreach_match(void)
git_config_free(cfg); 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 #if 0
BEGIN_TEST(config10, "a repo's config overrides the global config") BEGIN_TEST(config10, "a repo's config overrides the global config")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment