diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/process/process.c | 5 | ||||
-rw-r--r-- | lib/process/process.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/process/process.c b/lib/process/process.c index 1a16fb6..3c81b29 100644 --- a/lib/process/process.c +++ b/lib/process/process.c @@ -125,7 +125,10 @@ static void process_setup_stdout_child(struct process_info *procinfo) else dup2(log, STDOUT_FILENO); - dup2(log, STDERR_FILENO); + if (procinfo->process.keep_stdout && procinfo->process.add_stderr) + dup2(procinfo->stdout_pipe[1], STDERR_FILENO); + else + dup2(log, STDERR_FILENO); } static void process_finish_stdout(struct process_info *procinfo) diff --git a/lib/process/process.h b/lib/process/process.h index caeda92..ae7fe32 100644 --- a/lib/process/process.h +++ b/lib/process/process.h @@ -31,6 +31,7 @@ struct process { const char *path; const char **argv; bool keep_stdout; + bool add_stderr; process_exit_cb exit_cb; void *data; |