dir: convert fill_directory to take an index

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brandon Williams 2017-05-05 12:53:34 -07:00 committed by Junio C Hamano
parent 2c1eb10454
commit 0d32c183b6
7 changed files with 12 additions and 8 deletions

View 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 */ /* This picks up the paths that are not tracked */
baselen = fill_directory(&dir, &pathspec); baselen = fill_directory(&dir, &the_index, &pathspec);
if (pathspec.nr) if (pathspec.nr)
seen = prune_directory(&dir, &pathspec, baselen); seen = prune_directory(&dir, &pathspec, baselen);
} }

View File

@ -930,7 +930,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
PATHSPEC_PREFER_CWD, PATHSPEC_PREFER_CWD,
prefix, argv); prefix, argv);


fill_directory(&dir, &pathspec); fill_directory(&dir, &the_index, &pathspec);


for (i = 0; i < dir.nr; i++) { for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i]; struct dir_entry *ent = dir.entries[i];

View File

@ -866,7 +866,7 @@ static int grep_directory(struct grep_opt *opt, const struct pathspec *pathspec,
if (exc_std) if (exc_std)
setup_standard_excludes(&dir); setup_standard_excludes(&dir);


fill_directory(&dir, pathspec); fill_directory(&dir, &the_index, pathspec);
for (i = 0; i < dir.nr; i++) { for (i = 0; i < dir.nr; i++) {
if (!dir_path_match(dir.entries[i], pathspec, 0, NULL)) if (!dir_path_match(dir.entries[i], pathspec, 0, NULL))
continue; continue;

View File

@ -333,7 +333,7 @@ static void show_files(struct dir_struct *dir)
if (show_others || show_killed) { if (show_others || show_killed) {
if (!show_others) if (!show_others)
dir->flags |= DIR_COLLECT_KILLED_ONLY; dir->flags |= DIR_COLLECT_KILLED_ONLY;
fill_directory(dir, &pathspec); fill_directory(dir, &the_index, &pathspec);
if (show_others) if (show_others)
show_other_files(dir); show_other_files(dir);
if (show_killed) if (show_killed)

6
dir.c
View File

@ -177,7 +177,9 @@ char *common_prefix(const struct pathspec *pathspec)
return len ? xmemdupz(pathspec->items[0].match, len) : NULL; 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; const char *prefix;
size_t prefix_len; 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 : ""; prefix = prefix_len ? pathspec->items[0].match : "";


/* Read the directory and prune it */ /* 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; return prefix_len;
} }

4
dir.h
View File

@ -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 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 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, extern int read_directory(struct dir_struct *, struct index_state *istate,
const char *path, int len, const char *path, int len,
const struct pathspec *pathspec); const struct pathspec *pathspec);

View File

@ -665,7 +665,7 @@ static void wt_status_collect_untracked(struct wt_status *s)
dir.untracked = the_index.untracked; dir.untracked = the_index.untracked;
setup_standard_excludes(&dir); setup_standard_excludes(&dir);


fill_directory(&dir, &s->pathspec); fill_directory(&dir, &the_index, &s->pathspec);


for (i = 0; i < dir.nr; i++) { for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i]; struct dir_entry *ent = dir.entries[i];