diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | xa.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/README.md b/README.md index 20aab72..f806369 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,8 @@ Over apply: * `-a`: take arguments from commandline, starting after the first `--`. * `-A`: take arguments from commandline, starting after the first *argsep*. +If no argument is passed, default to "printf %s\n". + ## Return code Like GNU and OpenBSD xargs: diff --git a/xa.c b/xa.c index 666ec3e..fd1857b 100644 --- a/xa.c +++ b/xa.c @@ -211,7 +211,8 @@ main(int argc, char *argv[]) break; } - cmd = calloc(argc-optind+maxatonce+1+(sflag ? 4 : 0), sizeof (char *)); + cmd = calloc(argc-optind+maxatonce+1+ + (optind==cmdend ? 2 : 0)+(sflag ? 4 : 0), sizeof (char *)); if (!cmd) exit(1); @@ -225,6 +226,11 @@ main(int argc, char *argv[]) cmd[l++] = xstrdup("-"); } + if (optind == cmdend) { + cmd[l++] = xstrdup("printf"); + cmd[l++] = xstrdup("%s\\n"); + } + if (maxatonce == 1) { // substitute {} int substituted = 0; |