dir: convert fill_directory to take an index
authorBrandon Williams <bmwill@google.com>
Fri, 5 May 2017 19:53:34 +0000 (12:53 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 6 May 2017 10:15:39 +0000 (19:15 +0900)
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/add.c
builtin/clean.c
builtin/grep.c
builtin/ls-files.c
dir.c
dir.h
wt-status.c
index 0b52aeced3bc40276e11c7cc829eb5901191e8e1..36cad00ae6ddad2b181da0b51294e1fe86aef788 100644 (file)
@@ -400,7 +400,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
                }
 
                /* This picks up the paths that are not tracked */
-               baselen = fill_directory(&dir, &pathspec);
+               baselen = fill_directory(&dir, &the_index, &pathspec);
                if (pathspec.nr)
                        seen = prune_directory(&dir, &pathspec, baselen);
        }
index 39866afab470e1ad5d0d70d33bdd6feadacf4c99..329b68c40b2f1698e08776cb05bb9388d5f77634 100644 (file)
@@ -930,7 +930,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
                       PATHSPEC_PREFER_CWD,
                       prefix, argv);
 
-       fill_directory(&dir, &pathspec);
+       fill_directory(&dir, &the_index, &pathspec);
 
        for (i = 0; i < dir.nr; i++) {
                struct dir_entry *ent = dir.entries[i];
index 3ffb5b4e8176bbcd1ecf2e4ae2dc84aee968cd22..f2829629b6205e216fb91baa19c281a3ac812472 100644 (file)
@@ -866,7 +866,7 @@ static int grep_directory(struct grep_opt *opt, const struct pathspec *pathspec,
        if (exc_std)
                setup_standard_excludes(&dir);
 
-       fill_directory(&dir, pathspec);
+       fill_directory(&dir, &the_index, pathspec);
        for (i = 0; i < dir.nr; i++) {
                if (!dir_path_match(dir.entries[i], pathspec, 0, NULL))
                        continue;
index 7a8c5681b655868b0c56ac765c97cf0ec57be458..61271b52cf8f250ccbfd6813bdafc63a541679cb 100644 (file)
@@ -333,7 +333,7 @@ static void show_files(struct dir_struct *dir)
        if (show_others || show_killed) {
                if (!show_others)
                        dir->flags |= DIR_COLLECT_KILLED_ONLY;
-               fill_directory(dir, &pathspec);
+               fill_directory(dir, &the_index, &pathspec);
                if (show_others)
                        show_other_files(dir);
                if (show_killed)
diff --git a/dir.c b/dir.c
index 4eb8cb6a212cb1844ad23960c1bb83cf7a1ee380..3f3167e55a92c9d23c7686c190544de9fbbb9164 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -177,7 +177,9 @@ char *common_prefix(const struct pathspec *pathspec)
        return len ? xmemdupz(pathspec->items[0].match, len) : NULL;
 }
 
-int fill_directory(struct dir_struct *dir, const struct pathspec *pathspec)
+int fill_directory(struct dir_struct *dir,
+                  struct index_state *istate,
+                  const struct pathspec *pathspec)
 {
        const char *prefix;
        size_t prefix_len;
@@ -190,7 +192,7 @@ int fill_directory(struct dir_struct *dir, const struct pathspec *pathspec)
        prefix = prefix_len ? pathspec->items[0].match : "";
 
        /* Read the directory and prune it */
-       read_directory(dir, &the_index, prefix, prefix_len, pathspec);
+       read_directory(dir, istate, prefix, prefix_len, pathspec);
 
        return prefix_len;
 }
diff --git a/dir.h b/dir.h
index a23bcd005c4ae3a316df72068be4b9ba3af2cd0e..17d110693d94e453bd7786dd7f6eaa273313f952 100644 (file)
--- a/dir.h
+++ b/dir.h
@@ -214,7 +214,9 @@ extern int match_pathspec(const struct pathspec *pathspec,
 extern int report_path_error(const char *ps_matched, const struct pathspec *pathspec, const char *prefix);
 extern int within_depth(const char *name, int namelen, int depth, int max_depth);
 
-extern int fill_directory(struct dir_struct *dir, const struct pathspec *pathspec);
+extern int fill_directory(struct dir_struct *dir,
+                         struct index_state *istate,
+                         const struct pathspec *pathspec);
 extern int read_directory(struct dir_struct *, struct index_state *istate,
                          const char *path, int len,
                          const struct pathspec *pathspec);
index 03754849626d1bf117e3821fb7cdffcd594f694f..3b40f740558d8286b609ce785c1fc0b15fd5e9ae 100644 (file)
@@ -665,7 +665,7 @@ static void wt_status_collect_untracked(struct wt_status *s)
                dir.untracked = the_index.untracked;
        setup_standard_excludes(&dir);
 
-       fill_directory(&dir, &s->pathspec);
+       fill_directory(&dir, &the_index, &s->pathspec);
 
        for (i = 0; i < dir.nr; i++) {
                struct dir_entry *ent = dir.entries[i];