Commit 21444f1 (Add case insensitivity support when using git ls-files - 2010-10-03) teaches match_pathspec() to ignore case when core.ignorecase=true.
match_pathspec_depth() is developed independently and does not have this feature. Teach it.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- On top of nd/struct-pathspec, but requires jj/icase-directory. I can rebase the series on top of master if it causes too many conflicts.
dir.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to dir.c +2 −2
diff --git a/dir.c b/dir.c index b1407a5..2597f81 100644 --- a/dir.c +++ b/dir.c @@ -192,7 +192,7 @@ static int match_pathspec_item(const struct pathspec_item *item, int prefix, if (!*match) return MATCHED_RECURSIVELY; - if (matchlen <= namelen && !strncmp(match, name, matchlen)) { + if (matchlen <= namelen && !strncmp_icase(match, name, matchlen)) { if (matchlen == namelen) return MATCHED_EXACTLY; @@ -200,7 +200,7 @@ static int match_pathspec_item(const struct pathspec_item *item, int prefix, return MATCHED_RECURSIVELY; } - if (item->has_wildcard && !fnmatch(match, name, 0)) + if (item->has_wildcard && !fnmatch_icase(match, name, 0)) return MATCHED_FNMATCH; return 0;
-- 1.7.2.2