[CRT] spawn: define a unicode environment when needed

CORE-9182
This commit is contained in:
Mark Jansen 2018-10-13 00:20:58 +02:00
parent 80c53821c9
commit 2d47c3be29
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B

View file

@ -203,6 +203,7 @@ do_spawnT(int mode, const _TCHAR* cmdname, const _TCHAR* args, const _TCHAR* env
BOOL bResult; BOOL bResult;
DWORD dwExitCode; DWORD dwExitCode;
DWORD dwError; DWORD dwError;
DWORD dwFlags = 0;
TRACE(MK_STR(do_spawnT)"(%i,'%"sT"','%"sT"','%"sT"')",mode,cmdname,args,envp); TRACE(MK_STR(do_spawnT)"(%i,'%"sT"','%"sT"','%"sT"')",mode,cmdname,args,envp);
@ -286,12 +287,20 @@ do_spawnT(int mode, const _TCHAR* cmdname, const _TCHAR* args, const _TCHAR* env
create_io_inherit_block(&StartupInfo.cbReserved2, &StartupInfo.lpReserved2); create_io_inherit_block(&StartupInfo.cbReserved2, &StartupInfo.lpReserved2);
if (mode == _P_DETACH)
{
dwFlags |= DETACHED_PROCESS;
}
#ifdef _UNICODE
dwFlags |= CREATE_UNICODE_ENVIRONMENT;
#endif
bResult = CreateProcess((_TCHAR *)cmdname, bResult = CreateProcess((_TCHAR *)cmdname,
(_TCHAR *)args, (_TCHAR *)args,
NULL, NULL,
NULL, NULL,
TRUE, TRUE,
mode == _P_DETACH ? DETACHED_PROCESS : 0, dwFlags,
(LPVOID)envp, (LPVOID)envp,
NULL, NULL,
&StartupInfo, &StartupInfo,