From d8c6e0ed924e844e9671c61434efc3f0e1269e73 Mon Sep 17 00:00:00 2001 From: Araq Date: Sun, 22 May 2011 21:23:43 +0200 Subject: [PATCH] bugfix stderr osproc --- lib/pure/osproc.nim | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index ef7c7f3ba9..7981720d9c 100755 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim @@ -475,8 +475,7 @@ elif not defined(useNimRtl): pipe(p_stderr) != 0'i32: OSError("failed to create a pipe") var Pid = fork() - if Pid < 0: - OSError("failed to fork process") + if Pid < 0: OSError("failed to fork process") if pid == 0: ## child process: @@ -484,15 +483,13 @@ elif not defined(useNimRtl): if dup2(p_stdin[readIdx], readIdx) < 0: OSError() discard close(p_stdout[readIdx]) if dup2(p_stdout[writeIdx], writeIdx) < 0: OSError() + discard close(p_stderr[readIdx]) if poStdErrToStdOut in options: - discard close(p_stderr[readIdx]) if dup2(p_stdout[writeIdx], 2) < 0: OSError() else: - discard close(p_stderr[readIdx]) if dup2(p_stderr[writeIdx], 2) < 0: OSError() - if workingDir.len > 0: - os.setCurrentDir(workingDir) + if workingDir.len > 0: os.setCurrentDir(workingDir) if poUseShell notin options: var a = toCStringArray([extractFilename(command)], args) if env == nil: @@ -519,7 +516,7 @@ elif not defined(useNimRtl): result.errorHandle = result.outputHandle else: result.errorHandle = p_stderr[readIdx] - discard close(p_stderr[writeIdx]) + discard close(p_stderr[writeIdx]) discard close(p_stdin[readIdx]) discard close(p_stdout[writeIdx])