[PATCH 1/3] remove prefix argument from pathspec_prefix
- From
Clemens Buchacher <drizzd@aon.at>
- Date
- Sep 4, 2011, 10:41 UTC
- Message-ID
- <1315132921-26949-2-git-send-email-drizzd@aon.at>
- In-Reply-To
- <1315132921-26949-1-git-send-email-drizzd@aon.at>
Passing a prefix to a function that is supposed to find the prefix is strange. And it's really only used if the pathspec is NULL. Make the callers handle this case instead.
Signed-off-by: Clemens Buchacher <drizzd@aon.at> --- builtin/commit.c | 5 +++-- builtin/ls-files.c | 2 +- cache.h | 2 +- setup.c | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c index cbc9613..64fe501 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -255,8 +255,9 @@ static int list_paths(struct string_list *list, const char *with_tree, m = xcalloc(1, i); if (with_tree) { - const char *max_prefix = pathspec_prefix(prefix, pattern); - overlay_tree_on_cache(with_tree, max_prefix); + char *max_prefix = pathspec_prefix(pattern); + overlay_tree_on_cache(with_tree, max_prefix ? max_prefix : prefix); + free(max_prefix); } for (i = 0; i < active_nr; i++) { diff --git a/builtin/ls-files.c b/builtin/ls-files.c index e8a800d..a54c2a2 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -545,7 +545,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix) strip_trailing_slash_from_submodules(); /* Find common prefix for all pathspec's */ - max_prefix = pathspec_prefix(prefix, pathspec); + max_prefix = pathspec_prefix(pathspec); max_prefix_len = max_prefix ? strlen(max_prefix) : 0; /* Treat unmatching pathspec elements as errors */ diff --git a/cache.h b/cache.h index 607c2ea..0ccc84d 100644 --- a/cache.h +++ b/cache.h @@ -444,7 +444,7 @@ extern void set_git_work_tree(const char *tree); #define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES" extern const char **get_pathspec(const char *prefix, const char **pathspec); -extern const char *pathspec_prefix(const char *prefix, const char **pathspec); +extern char *pathspec_prefix(const char **pathspec); extern void setup_work_tree(void); extern const char *setup_git_directory_gently(int *); extern const char *setup_git_directory(void); diff --git a/setup.c b/setup.c index 27c1d47..0906790 100644 --- a/setup.c +++ b/setup.c @@ -236,13 +236,13 @@ const char **get_pathspec(const char *prefix, const char **pathspec) return pathspec; } -const char *pathspec_prefix(const char *prefix, const char **pathspec) +char *pathspec_prefix(const char **pathspec) { const char **p, *n, *prev; unsigned long max; if (!pathspec) - return prefix ? xmemdupz(prefix, strlen(prefix)) : NULL; + return NULL; prev = NULL; max = PATH_MAX;
-- 1.7.6.1