Merge pull request #2599 from linquize/config-trailing-spaces

config: Handle multiple spaces that follow a configuration value and precede a comment char
This commit is contained in:
Edward Thomson 2014-10-09 12:16:17 -04:00
commit dfff1b5bcb
3 changed files with 13 additions and 1 deletions

View File

@ -1163,7 +1163,7 @@ static int strip_comments(char *line, int in_quotes)
}
/* skip any space at the end */
if (ptr > line && git__isspace(ptr[-1])) {
while (ptr > line && git__isspace(ptr[-1])) {
ptr--;
}
ptr[0] = '\0';

View File

@ -44,12 +44,24 @@ void test_config_stress__comments(void)
cl_git_pass(git_config_open_ondisk(&config, cl_fixture("config/config12")));
cl_git_pass(git_config_get_string(&str, config, "some.section.test2"));
cl_assert_equal_s("hello", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.test3"));
cl_assert_equal_s("welcome", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.other"));
cl_assert_equal_s("hello! \" ; ; ; ", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.other2"));
cl_assert_equal_s("cool! \" # # # ", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.multi"));
cl_assert_equal_s("hi, this is a ; multiline comment # with ;\n special chars and other stuff !@#", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.multi2"));
cl_assert_equal_s("good, this is a ; multiline comment # with ;\n special chars and other stuff !@#", str);
cl_git_pass(git_config_get_string(&str, config, "some.section.back"));
cl_assert_equal_s("this is \ba phrase", str);

Binary file not shown.