handle lower case drive letters on Windows
authorBen Peart <Ben.Peart@microsoft.com>
Thu, 12 Jul 2018 15:44:36 +0000 (15:44 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Jul 2018 19:11:05 +0000 (12:11 -0700)
On Windows, if a tool calls SetCurrentDirectory with a lower case drive
letter, the subsequent call to GetCurrentDirectory will return the same
lower case drive letter. Powershell, for example, does not normalize the
path. If that happens, test-drop-caches will error out as it does not
correctly to handle lower case drive letters.

Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/helper/test-drop-caches.c
index d6bcfddf13352b92d6be4d9d5b8e7d7f05cc06ee..f65e301f9ddc13f395b88a4b8cf994506beee292 100644 (file)
@@ -16,8 +16,8 @@ static int cmd_sync(void)
        if ((0 == dwRet) || (dwRet > MAX_PATH))
                return error("Error getting current directory");
 
-       if ((Buffer[0] < 'A') || (Buffer[0] > 'Z'))
-               return error("Invalid drive letter '%c'", Buffer[0]);
+       if (!has_dos_drive_prefix(Buffer))
+               return error("'%s': invalid drive letter", Buffer);
 
        szVolumeAccessPath[4] = Buffer[0];
        hVolWrite = CreateFile(szVolumeAccessPath, GENERIC_READ | GENERIC_WRITE,