Fix exit code from runCommand on Windows

On Windows, runCommand has never returned the exit code of the
spawned process but the result of correctly closing the input handle.

Fixes #10327
This commit is contained in:
Enrico Forestieri 2016-08-17 22:58:13 +02:00
parent 2a371bb4b3
commit fb46b3a1ee

View File

@ -1071,10 +1071,14 @@ cmd_ret const runCommand(string const & cmd)
#if defined (_WIN32) #if defined (_WIN32)
WaitForSingleObject(process.hProcess, INFINITE); WaitForSingleObject(process.hProcess, INFINITE);
DWORD pret;
if (!GetExitCodeProcess(process.hProcess, &pret))
pret = -1;
if (!infile.empty()) if (!infile.empty())
CloseHandle(startup.hStdInput); CloseHandle(startup.hStdInput);
CloseHandle(process.hProcess); CloseHandle(process.hProcess);
int const pret = fclose(inf); if (fclose(inf) != 0)
pret = -1;
#elif defined (HAVE_PCLOSE) #elif defined (HAVE_PCLOSE)
int const pret = pclose(inf); int const pret = pclose(inf);
#elif defined (HAVE__PCLOSE) #elif defined (HAVE__PCLOSE)