consolidate pathspec_prefix and common_prefix
[gitweb.git] / setup.c
diff --git a/setup.c b/setup.c
index f767d8adb110dde7dcafa8cf030ee7a496753800..70b887fe683b4fa72d20066c42a50b7ca34bc458 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -266,34 +266,9 @@ const char **get_pathspec(const char *prefix, const char **pathspec)
 
 char *pathspec_prefix(const char **pathspec)
 {
-       const char **p, *n, *prev;
-       unsigned long max;
+       size_t len = common_prefix_len(pathspec);
 
-       if (!pathspec)
-               return NULL;
-
-       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;
-               }
-       }
-
-       return max ? xmemdupz(prev, max) : NULL;
+       return len ? xmemdupz(*pathspec, len) : NULL;
 }
 
 /*