diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2015-11-02 22:32:48 +0100 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2015-11-02 22:33:04 +0100 |
commit | 9a2bef433271cd830d318e5b17efc38ac74e34a3 (patch) | |
tree | 80edc95fe716dcc2589b6212362536e434dc147d /xe.c | |
parent | 7f9da0f4ea465bd15572ea4c2b063fe4f66d7c8f (diff) | |
download | xe-9a2bef433271cd830d318e5b17efc38ac74e34a3.tar.gz xe-9a2bef433271cd830d318e5b17efc38ac74e34a3.tar.xz xe-9a2bef433271cd830d318e5b17efc38ac74e34a3.zip |
-R to fail when no arguments are passed
Diffstat (limited to 'xe.c')
-rw-r--r-- | xe.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/xe.c b/xe.c index 2578b6d..f9c7206 100644 --- a/xe.c +++ b/xe.c @@ -29,7 +29,8 @@ static char *sflag; static int maxatonce = 1; static int maxjobs = 1; static int runjobs = 0; -static int aflag, kflag, nflag, vflag; +static int Rflag, aflag, kflag, nflag, vflag; +static int iterations = 0; static char * xstrdup(const char *s) @@ -143,6 +144,7 @@ run(char *cmd[]) if (runjobs >= maxjobs) mywait(); runjobs++; + iterations++; if (vflag || nflag) trace(cmd); @@ -181,12 +183,13 @@ main(int argc, char *argv[]) int i, cmdend; char *arg, **cmd; - while ((c = getopt(argc, argv, "+0A:I:N:aj:kns:v")) != -1) + while ((c = getopt(argc, argv, "+0A:I:N:Raj:kns:v")) != -1) switch(c) { case '0': delim = '\0'; break; case 'A': argsep = optarg; aflag++; break; case 'I': replace = optarg; break; case 'N': maxatonce = atoi(optarg); break; + case 'R': Rflag++; break; case 'a': aflag++; break; case 'j': maxjobs = atoi(optarg); break; case 'k': kflag++; break; @@ -195,7 +198,7 @@ main(int argc, char *argv[]) case 'v': vflag++; break; default: fprintf(stderr, - "Usage: %s [-0knv] [-I arg] [-N maxargs] [-j maxjobs] COMMAND...\n" + "Usage: %s [-0Rknv] [-I arg] [-N maxargs] [-j maxjobs] COMMAND...\n" " | -s SHELLSCRIPT\n" " | -a COMMAND... -- ARGS...\n" " | -A ARGSEP COMMAND... ARGSEP ARGS...\n", @@ -263,5 +266,7 @@ main(int argc, char *argv[]) free(cmd); free(getarg_line); + if (Rflag && iterations == 0) + return 122; return 0; } |