Revert "Fixed an issue where errorCode was always 0 when startProcess did…" (#23995)

Reverts nim-lang/Nim#23992
This commit is contained in:
ringabout
2024-08-21 20:53:38 +08:00
committed by GitHub
parent 12b90d7c07
commit 832ba815d1
2 changed files with 4 additions and 25 deletions

View File

@@ -1123,13 +1123,14 @@ elif not defined(useNimRtl):
var error: cint
let sizeRead = read(data.pErrorPipe[readIdx], addr error, sizeof(error))
if sizeRead == sizeof(error):
raiseOSError(OSErrorCode(error),
raiseOSError(osLastError(),
"Could not find command: '" & $data.sysCommand & "'. OS error: " & $strerror(error))
return pid
{.push stacktrace: off, profiler: off.}
proc startProcessFail(data: ptr StartProcessData, error: cint = errno) =
proc startProcessFail(data: ptr StartProcessData) =
var error: cint = errno
discard write(data.pErrorPipe[writeIdx], addr error, sizeof(error))
exitnow(1)
@@ -1166,11 +1167,7 @@ elif not defined(useNimRtl):
if (poUsePath in data.options):
when defined(uClibc) or defined(linux) or defined(haiku):
# uClibc environment (OpenWrt included) doesn't have the full execvpe
var exe: string
try:
exe = findExe(data.sysCommand)
except OSError as e:
startProcessFail(data, e.errorCode)
let exe = findExe(data.sysCommand)
discard execve(exe.cstring, data.sysArgs, data.sysEnv)
else:
# MacOSX doesn't have execvpe, so we need workaround.

View File

@@ -1,18 +0,0 @@
discard """
output: '''true
true'''
"""
import std/osproc
const command = "lsaaa -lah"
try:
let process = startProcess(command, options = {poUsePath})
discard process.waitForExit()
except OSError as e:
echo e.errorCode != 0
let process = startProcess(command, options = {poUsePath, poEvalCommand})
let exitCode = process.waitForExit()
echo exitCode != 0