]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-drop-caches: use `has_dos_drive_prefix()`
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 4 Dec 2019 20:40:01 +0000 (21:40 +0100)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 6 Dec 2019 15:27:20 +0000 (16:27 +0100)
This is a companion patch to 'mingw: handle `subst`-ed "DOS drives"':
use the DOS drive prefix handling that is already provided by
`compat/mingw.c` (and which just learned to handle non-alphabetical
"drive letters").

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
t/helper/test-drop-caches.c

index bd1a857d5224a1a8d3c4a0d8e0ce54476d70372e..f125192c97139caaf1e457e03b77f969de86802f 100644 (file)
@@ -6,18 +6,21 @@ static int cmd_sync(void)
 {
        char Buffer[MAX_PATH];
        DWORD dwRet;
-       char szVolumeAccessPath[] = "\\\\.\\X:";
+       char szVolumeAccessPath[] = "\\\\.\\XXXX:";
        HANDLE hVolWrite;
-       int success = 0;
+       int success = 0, dos_drive_prefix;
 
        dwRet = GetCurrentDirectory(MAX_PATH, Buffer);
        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]);
+       dos_drive_prefix = has_dos_drive_prefix(Buffer);
+       if (!dos_drive_prefix)
+               return error("'%s': invalid drive letter", Buffer);
+
+       memcpy(szVolumeAccessPath, Buffer, dos_drive_prefix);
+       szVolumeAccessPath[dos_drive_prefix] = '\0';
 
-       szVolumeAccessPath[4] = Buffer[0];
        hVolWrite = CreateFile(szVolumeAccessPath, GENERIC_READ | GENERIC_WRITE,
                FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
        if (INVALID_HANDLE_VALUE == hVolWrite)