summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/path.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c
index 1f7a16679..374694432 100644
--- a/src/path.c
+++ b/src/path.c
@@ -96,6 +96,16 @@ int git_path_dirname_r(char *buffer, size_t bufflen, const char *path)
len = endp - path +1;
+#ifdef GIT_WIN32
+ /* Mimic unix behavior where '/.git' returns '/': 'C:/.git' will return
+ 'C:/' here */
+
+ if (len == 2 && isalpha(path[0]) && path[1] == ':') {
+ len = 3;
+ goto Exit;
+ }
+#endif
+
Exit:
result = len;
if (len+1 > GIT_PATH_MAX) {