Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to