From 59222b919398fdee5fc7bcf186bd32f1999e85b8 Mon Sep 17 00:00:00 2001 From: sin Date: Mon, 6 Jan 2014 18:51:06 +0000 Subject: [PATCH] Exit with error code 123 if one or more invocations of cmd failed --- xargs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xargs.c b/xargs.c index 9a0b74c..1eb9bff 100644 --- 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);