git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC 14/14] dir: convert fill_directory to take an index

From
BWBrandon Williams <bmwill@google.com>
Date
May 5, 2017, 19:53 UTC
Message-ID
<20170505195334.121856-15-bmwill@google.com>
In-Reply-To
<20170505195334.121856-1-bmwill@google.com>
Signed-off-by: Brandon Williams <bmwill@google.com>
---
 builtin/add.c      | 2 +-
 builtin/clean.c    | 2 +-
 builtin/grep.c     | 2 +-
 builtin/ls-files.c | 2 +-
 dir.c              | 6 ++++--
 dir.h              | 4 +++-
 wt-status.c        | 2 +-
 7 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/builtin/add.c b/builtin/add.c
index 0b52aeced..36cad00ae 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -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);
 	}
diff --git a/builtin/clean.c b/builtin/clean.c
index 39866afab..329b68c40 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -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];
diff --git a/builtin/grep.c b/builtin/grep.c
index 65070c52f..ca1344133 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -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;
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index ccba227e2..239c18a1f 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -326,7 +326,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 4eb8cb6a2..3f3167e55 100644
--- 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 a23bcd005..17d110693 100644
--- 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);
diff --git a/wt-status.c b/wt-status.c
index 308cf3779..9e2d03cd9 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -652,7 +652,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];
-- 
2.13.0.rc1.294.g07d810a77f-goog
Previous: Brandon WilliamsNext: Brandon Williams
Message 9 of 18 in “[RFC 00/14] convert dir.c to take an index parameter”
  1. Brandon WilliamsMay 5, 2017
  2. 01/14 dir: stop using the index compatibility macrosBrandon Williams, May 5, 2017
  3. 02/14 dir: convert read_skip_worktree_file_from_index to take an indexBrandon Williams, May 5, 2017
  4. 04/14 dir: convert get_dtype to take indexBrandon Williams, May 5, 2017
  5. 05/14 dir: convert dir_add* to take an indexBrandon Williams, May 5, 2017
  6. 06/14 dir: convert last_exclude_matching_from_list to take an indexBrandon Williams, May 5, 2017
  7. 07/14 dir: convert is_excluded_from_list to take an indexBrandon Williams, May 5, 2017
  8. 12/14 dir: convert read_directory_recursive to take an indexBrandon Williams, May 5, 2017
  9. 14/14 dir: convert fill_directory to take an indexBrandon Williams, May 5, 2017
  10. 13/14 dir: convert read_directory to take an indexBrandon Williams, May 5, 2017
  11. 10/14 dir: convert is_excluded to take an indexBrandon Williams, May 5, 2017
  12. 11/14 dir: convert open_cached_dir to take an indexBrandon Williams, May 5, 2017
  13. 08/14 dir: convert add_excludes to take an indexBrandon Williams, May 5, 2017
  14. 03/14 dir: convert directory_exists_in_index to take indexBrandon Williams, May 5, 2017
  15. 09/14 dir: convert prep_exclude to take an indexBrandon Williams, May 5, 2017
  16. Junio C HamanoMay 6, 2017
  17. Brandon WilliamsMay 8, 2017
  18. Jeff HostetlerMay 8, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.