diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-02-27 21:17:36 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-02-27 21:17:36 -0800 |
commit | d5c87a802d3b0bcd37b38d117648f342e7ad62d2 (patch) | |
tree | 531cdac203249d777d555209dadab103a16925a5 /read-cache.c | |
parent | e5ea66f9e545588c92cf228cca16f0b52d467bb5 (diff) | |
parent | f577b92fe75643228674c0dcb2a4747587cf541d (diff) | |
download | git-d5c87a802d3b0bcd37b38d117648f342e7ad62d2.tar.gz git-d5c87a802d3b0bcd37b38d117648f342e7ad62d2.tar.xz |
Merge branch 'nd/struct-pathspec'
* nd/struct-pathspec: (22 commits)
t6004: add pathspec globbing test for log family
t7810: overlapping pathspecs and depth limit
grep: drop pathspec_matches() in favor of tree_entry_interesting()
grep: use writable strbuf from caller for grep_tree()
grep: use match_pathspec_depth() for cache/worktree grepping
grep: convert to use struct pathspec
Convert ce_path_match() to use match_pathspec_depth()
Convert ce_path_match() to use struct pathspec
struct rev_info: convert prune_data to struct pathspec
pathspec: add match_pathspec_depth()
tree_entry_interesting(): optimize wildcard matching when base is matched
tree_entry_interesting(): support wildcard matching
tree_entry_interesting(): fix depth limit with overlapping pathspecs
tree_entry_interesting(): support depth limit
tree_entry_interesting(): refactor into separate smaller functions
diff-tree: convert base+baselen to writable strbuf
glossary: define pathspec
Move tree_entry_interesting() to tree-walk.c and export it
tree_entry_interesting(): remove dependency on struct diff_options
Convert struct diff_options to use struct pathspec
...
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/read-cache.c b/read-cache.c index 15b0a73b6..b97b5668e 100644 --- a/read-cache.c +++ b/read-cache.c @@ -706,30 +706,9 @@ int ce_same_name(struct cache_entry *a, struct cache_entry *b) return ce_namelen(b) == len && !memcmp(a->name, b->name, len); } -int ce_path_match(const struct cache_entry *ce, const char **pathspec) +int ce_path_match(const struct cache_entry *ce, const struct pathspec *pathspec) { - const char *match, *name; - int len; - - if (!pathspec) - return 1; - - len = ce_namelen(ce); - name = ce->name; - while ((match = *pathspec++) != 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; + return match_pathspec_depth(pathspec, ce->name, ce_namelen(ce), 0, NULL); } /* |