Skip to content

Commit

Permalink
Fix up some fallout from "setup_git_directory()" cleanups
Browse files Browse the repository at this point in the history
git-ls-files was broken by the setup_git_directory() calling changes,
because I had missed the fact that the "prefix" variable in that file was
static to the whole file, and unlike git-ls-tree (where I had fixed it
up), it ended up using two different variables with the same name
depending on what the scoping happened to be.

This fixes it up properly (by just removing the static variable, and
passing the automatic one around properly), and git-ls-files should work
again.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Linus Torvalds authored and Junio C Hamano committed Jul 31, 2006
1 parent 7f8508e commit 3e04228
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions builtin-ls-files.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ static int show_valid_bit = 0;
static int line_terminator = '\n';

static int prefix_len = 0, prefix_offset = 0;
static const char *prefix = NULL;
static const char **pathspec = NULL;
static int error_unmatch = 0;
static char *ps_matched = NULL;
Expand Down Expand Up @@ -207,7 +206,7 @@ static void show_ce_entry(const char *tag, struct cache_entry *ce)
}
}

static void show_files(struct dir_struct *dir)
static void show_files(struct dir_struct *dir, const char *prefix)
{
int i;

Expand Down Expand Up @@ -253,7 +252,7 @@ static void show_files(struct dir_struct *dir)
/*
* Prune the index to only contain stuff starting with "prefix"
*/
static void prune_cache(void)
static void prune_cache(const char *prefix)
{
int pos = cache_name_pos(prefix, prefix_len);
unsigned int first, last;
Expand All @@ -276,7 +275,7 @@ static void prune_cache(void)
active_nr = last;
}

static void verify_pathspec(void)
static const char *verify_pathspec(const char *prefix)
{
const char **p, *n, *prev;
char *real_prefix;
Expand Down Expand Up @@ -313,7 +312,7 @@ static void verify_pathspec(void)
memcpy(real_prefix, prev, max);
real_prefix[max] = 0;
}
prefix = real_prefix;
return real_prefix;
}

static const char ls_files_usage[] =
Expand Down Expand Up @@ -453,7 +452,7 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix)

/* Verify that the pathspec matches the prefix */
if (pathspec)
verify_pathspec();
prefix = verify_pathspec(prefix);

/* Treat unmatching pathspec elements as errors */
if (pathspec && error_unmatch) {
Expand All @@ -476,8 +475,8 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix)

read_cache();
if (prefix)
prune_cache();
show_files(&dir);
prune_cache(prefix);
show_files(&dir, prefix);

if (ps_matched) {
/* We need to make sure all pathspec matched otherwise
Expand Down

0 comments on commit 3e04228

Please sign in to comment.