mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-31 02:18:08 +00:00
config: also allow escaping outside of a quoted string
This limitation was a misparsing of the documentation.
This commit is contained in:
parent
f9f2344bd4
commit
a7d19b975a
@ -1157,12 +1157,6 @@ static char *fixup_line(const char *ptr, int quote_count)
|
|||||||
*out++ = '\\';
|
*out++ = '\\';
|
||||||
goto 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) {
|
if ((esc = strchr(escapes, *ptr)) != NULL) {
|
||||||
*out++ = escaped[esc - escapes];
|
*out++ = escaped[esc - escapes];
|
||||||
} else {
|
} else {
|
||||||
|
@ -179,6 +179,18 @@ void test_config_read__prefixes(void)
|
|||||||
git_config_free(cfg);
|
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
|
#if 0
|
||||||
|
|
||||||
BEGIN_TEST(config10, "a repo's config overrides the global config")
|
BEGIN_TEST(config10, "a repo's config overrides the global config")
|
||||||
|
Loading…
Reference in New Issue
Block a user