Commit 433edb54 by Sven Strickroth

Config parsing confused by continuations that start with quotes

(fixes issue #6089)

Signed-off-by: Sven Strickroth <email@cs-ware.de>
parent f9c4dc10
......@@ -36,7 +36,7 @@ static int strip_comments(char *line, int in_quotes)
char *ptr;
for (ptr = line; *ptr; ++ptr) {
if (ptr[0] == '"' && ptr > line && ptr[-1] != '\\')
if (ptr[0] == '"' && ((ptr > line && ptr[-1] != '\\') || ptr == line))
quote_count++;
if ((ptr[0] == ';' || ptr[0] == '#') &&
......
......@@ -219,6 +219,19 @@ void test_config_read__multiline_multiple_quoted_comment_chars(void)
git_config_free(cfg);
}
void test_config_read__multiline_multiple_quoted_quote_at_beginning_of_line(void)
{
git_config* cfg;
cl_git_pass(git_config_open_ondisk(&cfg, cl_fixture("config/config22")));
cl_git_pass(git_config_get_string_buf(&buf, cfg, "alias.m"));
cl_assert_equal_s("cmd ;; ;; bar", buf.ptr);
git_buf_dispose(&buf);
cl_git_pass(git_config_get_string_buf(&buf, cfg, "alias.m2"));
cl_assert_equal_s("'; ; something '", buf.ptr);
git_buf_dispose(&buf);
git_config_free(cfg);
}
void test_config_read__header_in_last_line(void)
{
git_config *cfg;
......
[alias]
m = cmd \
";;" \
";;" \
bar
m2 = '\
";" \
";" \
something \
'
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