From 5a466befaf03021b5bf8f1c7d34d35c8cd316213 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sun, 13 Sep 2015 13:59:41 -0400 Subject: [PATCH] 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. --- src/path.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/path.c b/src/path.c index 9ce5d2978..d14a7699e 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))