diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2020-01-31 23:16:13 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-01 00:05:29 +0300 |
commit | e53ffe2704d7e10690f4382e46c1411a482531f1 (patch) | |
tree | 7f3023dee345428454e54871094f1d9d51def9e9 /builtin | |
parent | e55682ea2640dd3aa002a2657c32bdd1d85b44e9 (diff) |
sparse-checkout: escape all glob characters on write
The sparse-checkout patterns allow special globs according to
fnmatch(3). When writing cone-mode patterns for paths containing
these characters, they must be escaped.
Use is_glob_special() to check which characters must be escaped
this way, and add a path to the tests that contains all glob
characters at once. Note that ']' is not special, since the
initial bracket '[' is escaped.
Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/sparse-checkout.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c index facdb6bda7..7aeb384362 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -149,7 +149,7 @@ static char *escaped_pattern(char *pattern) struct strbuf final = STRBUF_INIT; while (*p) { - if (*p == '*' || *p == '\\') + if (is_glob_special(*p)) strbuf_addch(&final, '\\'); strbuf_addch(&final, *p); |