Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/clean.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/builtin/clean.c b/builtin/clean.c index 69c1cda..788ad8c 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -42,7 +42,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix) int rm_flags = REMOVE_DIR_KEEP_NESTED_GIT; struct strbuf directory = STRBUF_INIT; struct dir_struct dir; - static const char **pathspec; + struct pathspec pathspec; struct strbuf buf = STRBUF_INIT; struct string_list exclude_list = STRING_LIST_INIT_NODUP; const char *qname; @@ -101,12 +101,12 @@ int cmd_clean(int argc, const char **argv, const char *prefix) add_exclude(exclude_list.items[i].string, "", 0, &dir.exclude_list[EXC_CMDL]); - pathspec = get_pathspec(prefix, argv); + parse_pathspec(&pathspec, PATHSPEC_FROMTOP, 0, prefix, argv); - fill_directory(&dir, pathspec); + fill_directory(&dir, pathspec.raw); - if (pathspec) - seen = xmalloc(argc > 0 ? argc : 1); + if (pathspec.nr) + seen = xmalloc(pathspec.nr); for (i = 0; i < dir.nr; i++) { struct dir_entry *ent = dir.entries[i]; @@ -141,10 +141,10 @@ int cmd_clean(int argc, const char **argv, const char *prefix) if (lstat(ent->name, &st)) continue; - if (pathspec) { - memset(seen, 0, argc > 0 ? argc : 1); - matches = match_pathspec(pathspec, ent->name, len, - 0, seen); + if (pathspec.nr) { + memset(seen, 0, pathspec.nr); + matches = match_pathspec_depth(&pathspec, ent->name, len, + 0, seen); } if (S_ISDIR(st.st_mode)) { @@ -169,7 +169,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix) } strbuf_reset(&directory); } else { - if (pathspec && !matches) + if (pathspec.nr && !matches) continue; qname = quote_path_relative(ent->name, -1, &buf, prefix); if (show_only) { -- 1.8.0.rc2.23.g1fb49df -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html