From 567869a8fe138f23a0a2c6cea903747517a81b0a Mon Sep 17 00:00:00 2001 From: sin Date: Sat, 4 Jan 2014 14:01:22 +0000 Subject: [PATCH] Check the exit status and return it from the parent process --- xargs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xargs.c b/xargs.c index b283b5e..612f926 100644 --- a/xargs.c +++ b/xargs.c @@ -229,10 +229,15 @@ runcmd(void) eprintf("fork:"); if (pid == 0) { execvp(*cmd, cmd); - eprintf("execvp %s:", *cmd); + weprintf("execvp %s:", *cmd); _exit(errno == ENOENT ? 127 : 126); } wait(&status); - if (WIFEXITED(status) && WEXITSTATUS(status) == 255) - exit(124); + if (WIFEXITED(status)) { + if (WEXITSTATUS(status) == 255) + exit(124); + if (WEXITSTATUS(status) == 127 || + WEXITSTATUS(status) == 126) + exit(WEXITSTATUS(status)); + } }