Commit a7d19b97 by Carlos Martín Nieto

config: also allow escaping outside of a quoted string

This limitation was a misparsing of the documentation.
parent f9f2344b
......@@ -1157,12 +1157,6 @@ static char *fixup_line(const char *ptr, int quote_count)
*out++ = '\\';
goto out;
}
/* otherwise, the backslash must be inside quotes */
if ((quote_count % 2) == 0) {
git__free(str);
giterr_set(GITERR_CONFIG, "Invalid escape at %s", ptr);
return NULL;
}
if ((esc = strchr(escapes, *ptr)) != NULL) {
*out++ = escaped[esc - escapes];
} else {
......
......@@ -179,6 +179,18 @@ void test_config_read__prefixes(void)
git_config_free(cfg);
}
void test_config_read__escaping_quotes(void)
{
git_config *cfg;
const char *str;
cl_git_pass(git_config_open_ondisk(&cfg, cl_fixture("config/config13")));
cl_git_pass(git_config_get_string(cfg, "core.editor", &str));
cl_assert(strcmp(str, "\"C:/Program Files/Nonsense/bah.exe\" \"--some option\"") == 0);
git_config_free(cfg);
}
#if 0
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