From: Gurusamy Sarathy Date: Thu, 27 May 1999 03:56:20 +0000 (+0000) Subject: make win32_spawnvp() inherit standard handles even when they X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3ffaa9377e33221d8a6272d0232e8830ba4312ca;p=p5sagit%2Fp5-mst-13.2.git make win32_spawnvp() inherit standard handles even when they may be redirected p4raw-id: //depot/perl@3487 --- diff --git a/win32/win32.c b/win32/win32.c index f4c7006..9361191 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2364,7 +2364,23 @@ win32_spawnvp(int mode, const char *cmdname, const char *const *argv) } memset(&StartupInfo,0,sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); - StartupInfo.wShowWindow = SW_SHOWDEFAULT; + StartupInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE); + StartupInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); + StartupInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE); + if (StartupInfo.hStdInput != INVALID_HANDLE_VALUE && + StartupInfo.hStdOutput != INVALID_HANDLE_VALUE && + StartupInfo.hStdError != INVALID_HANDLE_VALUE) + { + StartupInfo.dwFlags |= STARTF_USESTDHANDLES; + } + else { + create |= CREATE_NEW_CONSOLE; + } + +#ifndef DEBUGGING + StartupInfo.dwFlags |= STARTF_USESHOWWINDOW; + StartupInfo.wShowWindow = SW_HIDE; +#endif RETRY: if (!CreateProcess(cmdname, /* search PATH to find executable */