From e18709b176daf7e7db34b89afc240a615764fe78 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Sun, 11 Dec 2022 14:58:42 +0100 Subject: [PATCH] Further amend fb7b7e52 This restores the previous behavior of runCommand(). When the child process could not be properly terminated the error "RunCommand: could not terminate child process" was being issued. However, in fb7b7e52 there was a misinterpretation between this condition and the exit status of the child and these two different errors were mixed up. They are now disentangled again. --- src/support/filetools.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index f7460ce188..6e9cf34fae 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -1141,11 +1141,13 @@ cmd_ret const runCommand(string const & cmd) DWORD pret; BOOL success = GetExitCodeProcess(process.hProcess, &pret); bool valid = (pret == 0) && success; + if (!success) + pret = -1; if (!infile.empty()) CloseHandle(startup.hStdInput); CloseHandle(process.hProcess); if (fclose(inf) != 0) - valid = false; + pret = -1; #elif defined (HAVE_PCLOSE) int const pret = pclose(inf); bool const valid = (WEXITSTATUS(pret) == 0); @@ -1156,7 +1158,7 @@ cmd_ret const runCommand(string const & cmd) #error No pclose() function. #endif - if (!valid) + if (pret == -1) perror("RunCommand: could not terminate child process"); return { valid, result }; -- 2.39.5