Commit 5a466befaf03021b5bf8f1c7d34d35c8cd316213

Edward Thomson 2015-09-13T13:59:41

diriter: don't double '/' on Windows The canonical directory path of the root directory of a volume on windows already ends in a slash (eg, `c:/`). This is true only at the volume root. Do not add a slash to paths in this case.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/src/path.c b/src/path.c
index 9ce5d29..d14a769 100644
--- a/src/path.c
+++ b/src/path.c
@@ -1166,7 +1166,11 @@ static int diriter_update_paths(git_path_diriter *diriter)
 	diriter->path[path_len-1] = L'\0';
 
 	git_buf_truncate(&diriter->path_utf8, diriter->parent_utf8_len);
-	git_buf_putc(&diriter->path_utf8, '/');
+
+	if (diriter->parent_utf8_len > 0 &&
+		diriter->path_utf8.ptr[diriter->parent_utf8_len-1] != '/')
+		git_buf_putc(&diriter->path_utf8, '/');
+
 	git_buf_put_w(&diriter->path_utf8, diriter->current.cFileName, filename_len);
 
 	if (git_buf_oom(&diriter->path_utf8))