Convert ce_path_match() to use match_pathspec_depth()
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
eb9cb55b94
commit
898bbd9fb4
24
read-cache.c
24
read-cache.c
@ -708,29 +708,7 @@ int ce_same_name(struct cache_entry *a, struct cache_entry *b)
|
|||||||
|
|
||||||
int ce_path_match(const struct cache_entry *ce, const struct pathspec *pathspec)
|
int ce_path_match(const struct cache_entry *ce, const struct pathspec *pathspec)
|
||||||
{
|
{
|
||||||
const char *match, *name;
|
return match_pathspec_depth(pathspec, ce->name, ce_namelen(ce), 0, NULL);
|
||||||
const char **ps = pathspec->raw;
|
|
||||||
int len;
|
|
||||||
|
|
||||||
if (!pathspec->nr)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
len = ce_namelen(ce);
|
|
||||||
name = ce->name;
|
|
||||||
while ((match = *ps++) != NULL) {
|
|
||||||
int matchlen = strlen(match);
|
|
||||||
if (matchlen > len)
|
|
||||||
continue;
|
|
||||||
if (memcmp(name, match, matchlen))
|
|
||||||
continue;
|
|
||||||
if (matchlen && name[matchlen-1] == '/')
|
|
||||||
return 1;
|
|
||||||
if (name[matchlen] == '/' || !name[matchlen])
|
|
||||||
return 1;
|
|
||||||
if (!matchlen)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user