mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-11 07:53:55 +00:00
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:
commit
dfff1b5bcb
@ -1163,7 +1163,7 @@ static int strip_comments(char *line, int in_quotes)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* skip any space at the end */
|
/* skip any space at the end */
|
||||||
if (ptr > line && git__isspace(ptr[-1])) {
|
while (ptr > line && git__isspace(ptr[-1])) {
|
||||||
ptr--;
|
ptr--;
|
||||||
}
|
}
|
||||||
ptr[0] = '\0';
|
ptr[0] = '\0';
|
||||||
|
@ -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_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_git_pass(git_config_get_string(&str, config, "some.section.other"));
|
||||||
cl_assert_equal_s("hello! \" ; ; ; ", str);
|
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_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_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_git_pass(git_config_get_string(&str, config, "some.section.back"));
|
||||||
cl_assert_equal_s("this is \ba phrase", str);
|
cl_assert_equal_s("this is \ba phrase", str);
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user