From 39a0c140c207aaf9b8d08d6977fba9db089b3fbf Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 21 Feb 2011 23:11:53 +0000 Subject: [PATCH] [CRT] 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 | 9 ++++++--- reactos/lib/sdk/crt/direct/getdrive.c | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/reactos/lib/sdk/crt/direct/chdir.c b/reactos/lib/sdk/crt/direct/chdir.c index 5515d4622cb..f16e0d44cf5 100644 --- a/reactos/lib/sdk/crt/direct/chdir.c +++ b/reactos/lib/sdk/crt/direct/chdir.c @@ -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; diff --git a/reactos/lib/sdk/crt/direct/getdrive.c b/reactos/lib/sdk/crt/direct/getdrive.c index de790868d95..d36aec88591 100644 --- a/reactos/lib/sdk/crt/direct/getdrive.c +++ b/reactos/lib/sdk/crt/direct/getdrive.c @@ -20,9 +20,12 @@ 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; }