summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/commit.c5
-rw-r--r--builtin/ls-files.c2
-rw-r--r--cache.h2
-rw-r--r--setup.c4
4 files changed, 7 insertions, 6 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index cb738574f7..50bacd68e2 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -257,8 +257,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 0e98bff0c4..19e53cc881 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -541,7 +541,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 553a6ebd4b..a3462bafce 100644
--- a/cache.h
+++ b/cache.h
@@ -426,7 +426,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 699fcf096d..f767d8adb1 100644
--- a/setup.c
+++ b/setup.c
@@ -264,13 +264,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;