X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin%2Fls-files.c;h=e8a800d3ac42bfce328bea786d8e1efa4ff695c7;hb=6133e4da549efbda98565163705af0781b096a4c;hp=468bb13c81b960ac5c9ad5b37cca3ac37b6ef5c0;hpb=0f64bfa9567f697d6152ef9ea937d4b573029a08;p=git.git diff --git a/builtin/ls-files.c b/builtin/ls-files.c index 468bb13c8..e8a800d3a 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -276,41 +276,6 @@ static void prune_cache(const char *prefix) active_nr = last; } -static const char *pathspec_prefix(const char *prefix) -{ - const char **p, *n, *prev; - unsigned long max; - - if (!pathspec) { - max_prefix_len = prefix ? strlen(prefix) : 0; - return prefix; - } - - prev = NULL; - max = PATH_MAX; - for (p = pathspec; (n = *p) != NULL; p++) { - int i, len = 0; - for (i = 0; i < max; i++) { - char c = n[i]; - if (prev && prev[i] != c) - break; - if (!c || c == '*' || c == '?') - break; - if (c == '/') - len = i+1; - } - prev = n; - if (len < max) { - max = len; - if (!max) - break; - } - } - - max_prefix_len = max; - return max ? xmemdupz(prev, max) : NULL; -} - static void strip_trailing_slash_from_submodules(void) { const char **p; @@ -580,7 +545,8 @@ 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); + max_prefix = pathspec_prefix(prefix, pathspec); + max_prefix_len = max_prefix ? strlen(max_prefix) : 0; /* Treat unmatching pathspec elements as errors */ if (pathspec && error_unmatch) {