Commit 5ee2fe777c41d9ad9e7eb9fece56fe21f830c5cd

Ramsay Jones 2008-12-03T23:53:55

Add a GIT_PATH_MAX constant The PATH_MAX symbol is often, but not always, defined in the <limits.h> header. In particular, on cygwin you need to include this header to avoid a compilation error. However, some systems define PATH_MAX to be something as small as 256, which POSIX is happy to allow, while others allow much larger values. In general it can vary from one filesystem to another. In order to avoid the vagaries of different systems, define our own symbol. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

diff --git a/src/common.h b/src/common.h
index 1a2e9c0..f5be02b 100644
--- a/src/common.h
+++ b/src/common.h
@@ -10,4 +10,7 @@
 #include <string.h>
 
 #include "git/common.h"
+
+#define GIT_PATH_MAX 4096
+
 #endif /* INCLUDE_common_h__ */
diff --git a/src/fileops.c b/src/fileops.c
index 0e6e7fd..e5f6ef8 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -1,3 +1,4 @@
+#include "common.h"
 #include "fileops.h"
 
 int gitfo_read(git_file fd, void *buf, size_t cnt)
@@ -141,7 +142,7 @@ int gitfo_close_cached(gitfo_cache *ioc)
  */
 int git_foreach_dirent(const char *wd, int (*fn)(void *, const char *), void *arg)
 {
-	char path[PATH_MAX];
+	char path[GIT_PATH_MAX];
 	size_t wd_len;
 	DIR *dir;
 	struct dirent *de;