Signed-off-by: Eric Pouech eric.pouech@gmail.com
--- programs/uninstaller/main.c | 6 ++++-- programs/winedbg/winedbg.c | 3 ++- programs/wusa/main.c | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/programs/uninstaller/main.c b/programs/uninstaller/main.c index 68d0dfe49f9..fa88c92078f 100644 --- a/programs/uninstaller/main.c +++ b/programs/uninstaller/main.c @@ -166,7 +166,8 @@ int __cdecl wmain(int argc, WCHAR *argv[]) wcscat( filename, L"\uninstaller.exe" );
Wow64DisableWow64FsRedirection( &redir ); - if (CreateProcessW( filename, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi )) + if (CreateProcessW( filename, GetCommandLineW(), NULL, NULL, FALSE, + GetConsoleCP() == 0 ? DETACHED_PROCESS : 0, NULL, NULL, &si, &pi )) { WINE_TRACE( "restarting %s\n", wine_dbgstr_w(filename) ); WaitForSingleObject( pi.hProcess, INFINITE ); @@ -342,7 +343,8 @@ static void UninstallProgram(void) memset(&si, 0, sizeof(STARTUPINFOW)); si.cb = sizeof(STARTUPINFOW); si.wShowWindow = SW_NORMAL; - res = CreateProcessW(NULL, entries[i].command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &info); + res = CreateProcessW(NULL, entries[i].command, NULL, NULL, FALSE, + GetConsoleCP() == 0 ? DETACHED_PROCESS : 0, NULL, NULL, &si, &info); if (res) { /* wait for the process to exit */ WaitForSingleObject(info.hProcess, INFINITE); diff --git a/programs/winedbg/winedbg.c b/programs/winedbg/winedbg.c index 95318eeb2f1..6462b8e8b50 100644 --- a/programs/winedbg/winedbg.c +++ b/programs/winedbg/winedbg.c @@ -606,7 +606,8 @@ static void restart_if_wow64(void) lstrcatW( filename, L"\winedbg.exe" );
Wow64DisableWow64FsRedirection( &redir ); - if (CreateProcessW( filename, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi )) + if (CreateProcessW( filename, GetCommandLineW(), NULL, NULL, FALSE, + GetConsoleCP() == 0 ? DETACHED_PROCESS : 0, NULL, NULL, &si, &pi )) { WINE_TRACE( "restarting %s\n", wine_dbgstr_w(filename) ); SetConsoleCtrlHandler( NULL, TRUE ); /* Ignore ^C */ diff --git a/programs/wusa/main.c b/programs/wusa/main.c index d1bb385cd06..390ac85b12b 100644 --- a/programs/wusa/main.c +++ b/programs/wusa/main.c @@ -1027,7 +1027,8 @@ static void restart_as_x86_64(void) wcscat( filename, L"\wusa.exe" );
Wow64DisableWow64FsRedirection(&redir); - if (CreateProcessW(filename, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) + if (CreateProcessW(filename, GetCommandLineW(), NULL, NULL, FALSE, + GetConsoleCP() == 0 ? DETACHED_PROCESS : 0, NULL, NULL, &si, &pi)) { TRACE("Restarting %s\n", wine_dbgstr_w(filename)); WaitForSingleObject(pi.hProcess, INFINITE);