From fb46b3a1ee642b66b9712c6f376f543c47a2695e Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Wed, 17 Aug 2016 22:58:13 +0200 Subject: [PATCH] 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 --- src/support/filetools.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index fcb95faca0..12457cb3ae 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -1071,10 +1071,14 @@ cmd_ret const runCommand(string const & cmd) #if defined (_WIN32) WaitForSingleObject(process.hProcess, INFINITE); + DWORD pret; + if (!GetExitCodeProcess(process.hProcess, &pret)) + pret = -1; if (!infile.empty()) CloseHandle(startup.hStdInput); CloseHandle(process.hProcess); - int const pret = fclose(inf); + if (fclose(inf) != 0) + pret = -1; #elif defined (HAVE_PCLOSE) int const pret = pclose(inf); #elif defined (HAVE__PCLOSE) -- 2.39.2