diff --git a/cache.h b/cache.h index 52842a0bc2..c79c70f713 100644 --- a/cache.h +++ b/cache.h @@ -261,6 +261,7 @@ struct pack_entry { extern int git_connect(int fd[2], char *url, const char *prog); extern int finish_connect(pid_t pid); +extern int path_match(const char *path, int nr, char **match); extern void prepare_packed_git(void); extern int use_packed_git(struct packed_git *); diff --git a/connect.c b/connect.c index 60b87f5867..941bf296b0 100644 --- a/connect.c +++ b/connect.c @@ -1,6 +1,27 @@ #include "cache.h" #include +int path_match(const char *path, int nr, char **match) +{ + int i; + int pathlen = strlen(path); + + for (i = 0; i < nr; i++) { + char *s = match[i]; + int len = strlen(s); + + if (!len || len > pathlen) + continue; + if (memcmp(path + pathlen - len, s, len)) + continue; + if (pathlen > len && path[pathlen - len - 1] != '/') + continue; + *s = 0; + return 1; + } + return 0; +} + /* * First, make it shell-safe. We do this by just disallowing any * special characters. Somebody who cares can do escaping and let diff --git a/send-pack.c b/send-pack.c index 57e88a7637..f098acb5fd 100644 --- a/send-pack.c +++ b/send-pack.c @@ -4,27 +4,6 @@ static const char send_pack_usage[] = "git-send-pack [--exec=other] destination [heads]*"; static const char *exec = "git-receive-pack"; -static int path_match(const char *path, int nr, char **match) -{ - int i; - int pathlen = strlen(path); - - for (i = 0; i < nr; i++) { - char *s = match[i]; - int len = strlen(s); - - if (!len || len > pathlen) - continue; - if (memcmp(path + pathlen - len, s, len)) - continue; - if (pathlen > len && path[pathlen - len - 1] != '/') - continue; - *s = 0; - return 1; - } - return 0; -} - struct ref { struct ref *next; unsigned char old_sha1[20];