From 8a9907119bf22f2279470be40cf40027dc37018c Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sun, 14 Sep 2014 19:54:19 -0500 Subject: Second attempt at one way xpopen(). --- lib/xwrap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/xwrap.c b/lib/xwrap.c index 64b183ff..341aac35 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -215,12 +215,14 @@ int xpclose_both(pid_t pid, int *pipes) // Wrapper to xpopen with a pipe for just one of stdin/stdout pid_t xpopen(char **argv, int *pipe, int stdout) { - int pipes[2]; + int pipes[2], pid; - pipe[!stdout] = -1; - pipe[!!stdout] = 0; + pipes[!stdout] = -1; + pipes[!!stdout] = 0; + pid = xpopen_both(argv, pipes); + *pipe = pid ? pipes[!!stdout] : -1; - return xpopen_both(argv, pipes); + return pid; } int xpclose(pid_t pid, int pipe) -- cgit v1.2.3