sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

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:
Mxargs.c | 6+++++-
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);