commit 59222b919398fdee5fc7bcf186bd32f1999e85b8
parent 3aec0ac2a4a95b4a1b04eca2502495568f0aa7c4
Author: sin <sin@2f30.org>
Date: Mon, 6 Jan 2014 18:51:06 +0000
Exit with error code 123 if one or more invocations of cmd failed
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/xargs.c b/xargs.c
@@ -26,6 +26,7 @@ static char **cmd;
static char *argb;
static size_t argbsz = 1;
static size_t argbpos;
+static int nerrors = 0;
static int rflag = 0;
static void
@@ -93,7 +94,8 @@ main(int argc, char *argv[])
free(argb);
free(cmd);
- return 0;
+
+ return nerrors > 0 ? 123 : 0;
}
static int
@@ -245,6 +247,8 @@ runcmd(void)
if (WEXITSTATUS(status) == 127 ||
WEXITSTATUS(status) == 126)
exit(WEXITSTATUS(status));
+ if (status != 0)
+ nerrors++;
}
if (WIFSIGNALED(status))
exit(125);