diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-14 13:22:36 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-07-09 01:11:26 -0700 |
commit | 1d8842d921cc2695f155f4a10904eeffad085c77 (patch) | |
tree | 87186d8b5c8116ec5b442c6f401c2c3a6729de53 /builtin-clean.c | |
parent | f581de1b7b9d17c83b188bf8ffe536fb8a9dd2a4 (diff) | |
download | git-1d8842d921cc2695f155f4a10904eeffad085c77.tar.gz |
Add 'fill_directory()' helper function for directory traversal
Most of the users of "read_directory()" actually want a much simpler
interface than the whole complex (but rather powerful) one.
In fact 'git add' had already largely abstracted out the core interface
issues into a private "fill_directory()" function that was largely
applicable almost as-is to a number of callers. Yes, 'git add' wants to
do some extra work of its own, specific to the add semantics, but we can
easily split that out, and use the core as a generic function.
This function does exactly that, and now that much simplified
'fill_directory()' function can be shared with a number of callers,
while also ensuring that the rather more complex calling conventions of
read_directory() are used by fewer call-sites.
This also makes the 'common_prefix()' helper function private to dir.c,
since all callers are now in that file.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-clean.c')
-rw-r--r-- | builtin-clean.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/builtin-clean.c b/builtin-clean.c index 1c1b6d26e9..2d8c735d48 100644 --- a/builtin-clean.c +++ b/builtin-clean.c @@ -33,7 +33,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix) int ignored_only = 0, baselen = 0, config_set = 0, errors = 0; struct strbuf directory = STRBUF_INIT; struct dir_struct dir; - const char *path, *base; static const char **pathspec; struct strbuf buf = STRBUF_INIT; const char *qname; @@ -78,16 +77,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix) pathspec = get_pathspec(prefix, argv); read_cache(); - /* - * Calculate common prefix for the pathspec, and - * use that to optimize the directory walk - */ - baselen = common_prefix(pathspec); - path = "."; - base = ""; - if (baselen) - path = base = xmemdupz(*pathspec, baselen); - read_directory(&dir, path, base, baselen, pathspec); + fill_directory(&dir, pathspec); if (pathspec) seen = xmalloc(argc > 0 ? argc : 1); |