[CRT]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 21 Feb 2011 23:11:53 +0000 (23:11 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 21 Feb 2011 23:11:53 +0000 (23:11 +0000)
Improve _getdrive and _tchdir. Patch by devpao (devotip at tiscali dot it), small formatting change by me.
See issue #5848 for more details.

svn path=/trunk/; revision=50861

reactos/lib/sdk/crt/direct/chdir.c
reactos/lib/sdk/crt/direct/getdrive.c

index 5515d46..f16e0d4 100644 (file)
@@ -17,10 +17,13 @@ int _tchdir(const _TCHAR* _path)
     }
 
     /* Update the drive-specific current directory variable */
-    if (GetCurrentDirectoryW(MAX_PATH, newdir) && newdir[1] == L':')
+    if (GetCurrentDirectoryW(MAX_PATH, newdir) >= 2)
     {
-        WCHAR envvar[4] = { L'=', towupper(newdir[0]), L':', L'\0' };
-        SetEnvironmentVariableW(envvar, newdir);
+        if (newdir[1] == L':')
+        {
+            WCHAR envvar[4] = { L'=', towupper(newdir[0]), L':', L'\0' };
+            SetEnvironmentVariableW(envvar, newdir);
+        }
     }
 
     return 0;
index de79086..d36aec8 100644 (file)
 int _getdrive(void)
 {
     WCHAR buffer[MAX_PATH];
-    if (GetCurrentDirectoryW( MAX_PATH, buffer ) &&
-        buffer[0] >= 'A' && buffer[0] <= 'z' && buffer[1] == ':')
-        return towupper(buffer[0]) - 'A' + 1;
+    if (GetCurrentDirectoryW( MAX_PATH, buffer )>=2)
+    {
+        buffer[0]=towupper(buffer[0]);
+        if (buffer[0] >= L'A' && buffer[0] <= L'Z' && buffer[1] == L':')
+            return buffer[0] - L'A' + 1;
+    }
     return 0;
 }