ls-tree: convert show_recursive to use the pathspec struct interface
Convert 'show_recursive()' to use the pathspec struct interface from using the '_raw' entry in the pathspec struct. Signed-off-by: Brandon Williams <bmwill@google.com> Reviewed-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
966de3028b
commit
e1e24edc1a
@ -31,21 +31,18 @@ static const char * const ls_tree_usage[] = {
|
|||||||
|
|
||||||
static int show_recursive(const char *base, int baselen, const char *pathname)
|
static int show_recursive(const char *base, int baselen, const char *pathname)
|
||||||
{
|
{
|
||||||
const char **s;
|
int i;
|
||||||
|
|
||||||
if (ls_options & LS_RECURSIVE)
|
if (ls_options & LS_RECURSIVE)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
s = pathspec._raw;
|
if (!pathspec.nr)
|
||||||
if (!s)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (;;) {
|
for (i = 0; i < pathspec.nr; i++) {
|
||||||
const char *spec = *s++;
|
const char *spec = pathspec.items[i].match;
|
||||||
int len, speclen;
|
int len, speclen;
|
||||||
|
|
||||||
if (!spec)
|
|
||||||
return 0;
|
|
||||||
if (strncmp(base, spec, baselen))
|
if (strncmp(base, spec, baselen))
|
||||||
continue;
|
continue;
|
||||||
len = strlen(pathname);
|
len = strlen(pathname);
|
||||||
@ -59,6 +56,7 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
|
|||||||
continue;
|
continue;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int show_tree(const unsigned char *sha1, struct strbuf *base,
|
static int show_tree(const unsigned char *sha1, struct strbuf *base,
|
||||||
@ -175,8 +173,8 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
|
|||||||
* cannot be lifted until it is converted to use
|
* cannot be lifted until it is converted to use
|
||||||
* match_pathspec() or tree_entry_interesting()
|
* match_pathspec() or tree_entry_interesting()
|
||||||
*/
|
*/
|
||||||
parse_pathspec(&pathspec, PATHSPEC_GLOB | PATHSPEC_ICASE |
|
parse_pathspec(&pathspec, PATHSPEC_ALL_MAGIC &
|
||||||
PATHSPEC_EXCLUDE,
|
~(PATHSPEC_FROMTOP | PATHSPEC_LITERAL),
|
||||||
PATHSPEC_PREFER_CWD,
|
PATHSPEC_PREFER_CWD,
|
||||||
prefix, argv + 1);
|
prefix, argv + 1);
|
||||||
for (i = 0; i < pathspec.nr; i++)
|
for (i = 0; i < pathspec.nr; i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user