From: Mark Jansen Date: Fri, 12 Oct 2018 22:20:58 +0000 (+0200) Subject: [CRT] spawn: define a unicode environment when needed X-Git-Tag: 0.4.12-dev~538 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=2d47c3be2987662333573b65051f498f92d90dc3;hp=80c53821c9616538b0a8a4a8d29bc03aa13afce4 [CRT] spawn: define a unicode environment when needed CORE-9182 --- diff --git a/sdk/lib/crt/process/process.c b/sdk/lib/crt/process/process.c index f607c2eed32..ef6ad4d8fa9 100644 --- a/sdk/lib/crt/process/process.c +++ b/sdk/lib/crt/process/process.c @@ -203,6 +203,7 @@ do_spawnT(int mode, const _TCHAR* cmdname, const _TCHAR* args, const _TCHAR* env BOOL bResult; DWORD dwExitCode; DWORD dwError; + DWORD dwFlags = 0; 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); + if (mode == _P_DETACH) + { + dwFlags |= DETACHED_PROCESS; + } +#ifdef _UNICODE + dwFlags |= CREATE_UNICODE_ENVIRONMENT; +#endif + bResult = CreateProcess((_TCHAR *)cmdname, (_TCHAR *)args, NULL, NULL, TRUE, - mode == _P_DETACH ? DETACHED_PROCESS : 0, + dwFlags, (LPVOID)envp, NULL, &StartupInfo,