Exit with error code 123 if one or more invocations of cmd failed
This commit is contained in:
parent
3aec0ac2a4
commit
59222b9193
6
xargs.c
6
xargs.c
|
@ -26,6 +26,7 @@ static char **cmd;
|
||||||
static char *argb;
|
static char *argb;
|
||||||
static size_t argbsz = 1;
|
static size_t argbsz = 1;
|
||||||
static size_t argbpos;
|
static size_t argbpos;
|
||||||
|
static int nerrors = 0;
|
||||||
static int rflag = 0;
|
static int rflag = 0;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -93,7 +94,8 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
free(argb);
|
free(argb);
|
||||||
free(cmd);
|
free(cmd);
|
||||||
return 0;
|
|
||||||
|
return nerrors > 0 ? 123 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -245,6 +247,8 @@ runcmd(void)
|
||||||
if (WEXITSTATUS(status) == 127 ||
|
if (WEXITSTATUS(status) == 127 ||
|
||||||
WEXITSTATUS(status) == 126)
|
WEXITSTATUS(status) == 126)
|
||||||
exit(WEXITSTATUS(status));
|
exit(WEXITSTATUS(status));
|
||||||
|
if (status != 0)
|
||||||
|
nerrors++;
|
||||||
}
|
}
|
||||||
if (WIFSIGNALED(status))
|
if (WIFSIGNALED(status))
|
||||||
exit(125);
|
exit(125);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user