Author: janderwald
Date: Mon Dec  1 08:57:34 2008
New Revision: 37791
URL: 
http://svn.reactos.org/svn/reactos?rev=37791&view=rev
Log:
- revert 37497
- use FindFirstFileW to obtain to original filename which is passed to CreateProcess
- fixes bug 3875
Modified:
    trunk/reactos/base/shell/cmd/where.c
Modified: trunk/reactos/base/shell/cmd/where.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/where.c?rev…
==============================================================================
--- trunk/reactos/base/shell/cmd/where.c [iso-8859-1] (original)
+++ trunk/reactos/base/shell/cmd/where.c [iso-8859-1] Mon Dec  1 08:57:34 2008
@@ -141,10 +141,12 @@
 BOOL
 SearchForExecutable (LPCTSTR pFileName, LPTSTR pFullName)
 {
-       static TCHAR pszDefaultPathExt[] = _T(".com;.exe;.bat;.cmd");
+       static TCHAR pszDefaultPathExt[] = _T(".COM;.EXE;.BAT;.CMD");
        LPTSTR pszPathExt, pszPath;
        LPTSTR pCh;
        DWORD  dwBuffer;
+       HANDLE hFile;
+       WIN32_FIND_DATAW FindData;
        TRACE ("SearchForExecutable: \'%s\'\n", debugstr_aw(pFileName));
        /* load environment varable PATHEXT */
@@ -154,20 +156,21 @@
        {
                pszPathExt = (LPTSTR)cmd_realloc (pszPathExt, dwBuffer * sizeof (TCHAR));
                GetEnvironmentVariable (_T("PATHEXT"), pszPathExt, dwBuffer);
-               _tcslwr(pszPathExt);
        }
        else if (0 == dwBuffer)
        {
                _tcscpy(pszPathExt, pszDefaultPathExt);
-       }
-       else
-       {
-               _tcslwr(pszPathExt);
        }
        /* Check if valid directly on specified path */
        if (SearchForExecutableSingle(pFileName, pFullName, pszPathExt, NULL))
        {
+               hFile = FindFirstFileW(pFullName, &FindData);
+               if (hFile)
+               {
+                       _tcscpy(pFullName, FindData.cFileName);
+               }
+               FindClose(hFile);
                cmd_free(pszPathExt);
                return TRUE;
        }
@@ -196,6 +199,12 @@
        {
                if (SearchForExecutableSingle(pFileName, pFullName, pszPathExt, pCh))
                {
+                       hFile = FindFirstFileW(pFullName, &FindData);
+                       if (hFile)
+                       {
+                               _tcscpy(pFullName, FindData.cFileName);
+                       }
+                       FindClose(hFile);
                        cmd_free(pszPath);
                        cmd_free(pszPathExt);
                        return TRUE;