diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2015-10-27 12:02:05 +0100 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2015-10-27 12:02:05 +0100 |
commit | ad057ce306790a6bf54808cb7c06a37111a8baa3 (patch) | |
tree | ea1d4b82c005165d5831a833c17c64fcab1a1524 | |
parent | e97e13815be73f6a7cc56de4812077c38b09ee92 (diff) | |
download | xe-ad057ce306790a6bf54808cb7c06a37111a8baa3.tar.gz xe-ad057ce306790a6bf54808cb7c06a37111a8baa3.tar.xz xe-ad057ce306790a6bf54808cb7c06a37111a8baa3.zip |
default command: printf %s\n
-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; |