[SHELL32] - Fix running batch files from patch containing spaces in ShellExecute API

svn path=/trunk/; revision=54465
This commit is contained in:
Rafal Harabien 2011-11-20 22:22:42 +00:00
parent c2a5965d39
commit a600f07982

View file

@ -475,7 +475,7 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
}
else if ((retval = GetLastError()) >= 32)
{
TRACE("CreateProcess returned error %ld\n", retval);
WARN("CreateProcess returned error %ld\n", retval);
retval = ERROR_BAD_FORMAT;
}
@ -1906,7 +1906,7 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
lpFile = wfileName;
wcmd = wcmdBuffer;
len = lstrlenW(wszApplicationName) + 1;
len = lstrlenW(wszApplicationName) + 3;
if (sei_tmp.lpParameters[0])
len += 1 + lstrlenW(wszParameters);
if (len > wcmdLen)
@ -1914,7 +1914,7 @@ BOOL SHELL_execute( LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc )
wcmd = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
wcmdLen = len;
}
strcpyW(wcmd, wszApplicationName);
swprintf(wcmd, L"\"%s\"", wszApplicationName);
if (sei_tmp.lpParameters[0])
{
strcatW(wcmd, wSpace);