summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog59
-rw-r--r--NEWS8
-rw-r--r--doc/find.texi2
-rw-r--r--xargs/testsuite/Makefile.am62
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s21-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s21-0.xo (renamed from xargs/testsuite/xargs.gnu/n2-s26-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s21-x-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s21-x-0.xo (renamed from xargs/testsuite/xargs.gnu/n2-s26-x-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s26-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/n2-s26-x-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/n3-s31-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/n3-s31-0.xo (renamed from xargs/testsuite/xargs.gnu/n3-s36-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/n3-s36-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s14-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s14-0.xo (renamed from xargs/testsuite/xargs.gnu/s19-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/s14_2-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s15-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s15-0.xo (renamed from xargs/testsuite/xargs.gnu/s20-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/s19-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s19_2-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s20-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s25-0.exp1
-rw-r--r--xargs/testsuite/xargs.gnu/s25-0.xo (renamed from xargs/testsuite/xargs.gnu/s30-0.xo)0
-rw-r--r--xargs/testsuite/xargs.gnu/s30-0.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n2-s21-x.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n2-s21-x.xo (renamed from xargs/testsuite/xargs.posix/n2-s26-x.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/n2-s21.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n2-s21.xo (renamed from xargs/testsuite/xargs.posix/n2-s26.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/n2-s26-x.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n2-s26.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n3-s31.exp1
-rw-r--r--xargs/testsuite/xargs.posix/n3-s31.xo (renamed from xargs/testsuite/xargs.posix/n3-s36.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/n3-s36.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s14.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s14.xo (renamed from xargs/testsuite/xargs.posix/s19.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/s14_2.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s15.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s15.xo (renamed from xargs/testsuite/xargs.posix/s20.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/s19.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s19_2.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s20.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s25.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s25.xo (renamed from xargs/testsuite/xargs.posix/s30.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/s30.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s42.exp1
-rw-r--r--xargs/testsuite/xargs.posix/s42.xo (renamed from xargs/testsuite/xargs.posix/s47.xo)0
-rw-r--r--xargs/testsuite/xargs.posix/s47.exp1
-rw-r--r--xargs/testsuite/xargs.sysv/empty_def-t.xe2
-rw-r--r--xargs/testsuite/xargs.sysv/s25-t.exp1
-rw-r--r--xargs/testsuite/xargs.sysv/s25-t.xe6
-rw-r--r--xargs/testsuite/xargs.sysv/s25-t.xo (renamed from xargs/testsuite/xargs.sysv/s30-t.xo)0
-rw-r--r--xargs/testsuite/xargs.sysv/s30-t.exp1
-rw-r--r--xargs/testsuite/xargs.sysv/s30-t.xe6
-rw-r--r--xargs/xargs.c2
54 files changed, 122 insertions, 57 deletions
diff --git a/ChangeLog b/ChangeLog
index 93241999..c8097786 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,62 @@
+2011-05-22 James Youngman <jay@gnu.org>
+
+ Don't assume that "echo" lives in /bin.
+ * xargs/xargs.c (main): Change default_cmd from "/bin/echo" (which
+ may not be present on some POSIX systems) to "echo" (which must
+ exist somewhere on $PATH on any POSIX system).
+ * doc/find.texi (Multiple Files): document this.
+ * NEWS: Describe this change.
+ * xargs/testsuite/xargs.sysv/empty_def-t.xe: Change /bin/echo to
+ echo.
+ * xargs/testsuite/xargs.gnu/n2-s26-x-0.exp: Change -s26 to -s21 to
+ keep the expected test result the same. Rename the test to
+ reflect the updated arguments.
+ * xargs/testsuite/xargs.gnu/n2-s26-x-0.xo: Rename to
+ n2-s21-x-0.xo.
+ * xargs/testsuite/xargs.gnu/n2-s26-0.exp: Rename to n2-s21-0.exp,
+ update -s argument.
+ * xargs/testsuite/xargs.posix/s30.exp: Rename to s25.exp, update -s.
+ * xargs/testsuite/xargs.posix/s30.xo: Rename to s25.xo.
+ * xargs/testsuite/xargs.gnu/s30-0.exp: Rename to s25-0.exp, update
+ -s argument.
+ * xargs/testsuite/xargs.gnu/s30-0.xo: Rename to s25-0.xo.
+ * xargs/testsuite/xargs.sysv/s30-t.exp: Rename to s25-t.exp,
+ update -s.
+ * xargs/testsuite/xargs.sysv/s30-t.xo: Rename to s25-t.xo.
+ * xargs/testsuite/xargs.sysv/s30-t.xe: Rename to s25-t.xe, change
+ /bin/echo to just echo.
+ * xargs/testsuite/xargs.posix/s47.exp: Rename to s42.exp, update -s.
+ * xargs/testsuite/xargs.posix/s47.xo: Rename to s42.xo.
+ * xargs/testsuite/xargs.gnu/n3-s36-0.exp: Rename to n3-s31-0.exp,
+ update -s.
+ * xargs/testsuite/xargs.gnu/n3-s36-0.xo: Rename to n3-s31-0.xo.
+ * xargs/testsuite/xargs.gnu/s20-0.exp: Rename to s15-0.exp, update
+ -s.
+ * xargs/testsuite/xargs.gnu/s20-0.xo: Rename to s15-0.xo.
+ * xargs/testsuite/xargs.posix/n2-s26.exp: Rename to n2-s21.exp,
+ update -s.
+ * xargs/testsuite/xargs.posix/n2-s26.xo: Rename to n2-s21.xo.
+ * xargs/testsuite/xargs.gnu/s19-0.exp: Rename to s14-0.exp, update
+ -s.
+ * xargs/testsuite/xargs.gnu/s19-0.xo: Rename to s14-0.xo.
+ * xargs/testsuite/xargs.gnu/s19_2-0.exp: Rename to s14_2-0.exp,
+ update -s.
+ * xargs/testsuite/xargs.gnu/s19_2-0.xo: Rename to s14_2-0.xo.
+ * xargs/testsuite/xargs.posix/n3-s36.exp: Rename to n3-s31.exp,
+ update -s.
+ * xargs/testsuite/xargs.posix/n3-s36.xo: Rename to n3-s31.xo.
+ * xargs/testsuite/xargs.posix/s19.exp: Rename to s14.exp, update
+ -s.
+ * xargs/testsuite/xargs.posix/s19.xo: Rename to s14.xo.
+ * xargs/testsuite/xargs.posix/s19_2.exp: Rename to s14_2.exp,
+ update -s.
+ * xargs/testsuite/xargs.posix/s19_2.xo: Rename to s14_2.xo.
+ * xargs/testsuite/xargs.posix/s20.exp: Rename to s15.exp,
+ update -s.
+ * xargs/testsuite/xargs.posix/s20.xo: Rename to s15.xo.
+ * xargs/testsuite/Makefile.am (EXTRA_DIST_XO): Update names.
+ (EXTRA_DIST_EXP): Likewise.
+
2011-05-17 James Youngman <jay@gnu.org>
Document ftsfind/oldfind and configure options.
diff --git a/NEWS b/NEWS
index c65e2b71..9ce7689e 100644
--- a/NEWS
+++ b/NEWS
@@ -21,7 +21,13 @@ installed, whichever is appropriate.
#32043: find -name [ doesn't obey posix
-** Functional Enhancements to xargs
+** Functional Changes to xargs
+
+If no utility is specified, xargs now calls "echo" (and searches on
+$PATH to find it) rather than "/bin/echo". This may give rise to
+subtle behaviour differences for some users. To avoid unexpected
+surprises, just explicitly specify the utility you would like to run.
+For example use "xargs /bin/echo < foo" rather than "xargs < foo".
A new option is provided, --process-slot-var. If you set this, xargs
will set the indicated environment variable in each child. The values
diff --git a/doc/find.texi b/doc/find.texi
index e40b61f9..5d9b096c 100644
--- a/doc/find.texi
+++ b/doc/find.texi
@@ -2203,7 +2203,7 @@ xargs @r{[}@var{option}@dots{}@r{]} @r{[}@var{command} @r{[}@var{initial-argumen
@code{xargs} normally reads arguments from the standard input. These
arguments are delimited by blanks (which can be protected with double
or single quotes or a backslash) or newlines. It executes the
-@var{command} (default is @file{/bin/echo}) one or more times with any
+@var{command} (the default is @file{echo}) one or more times with any
@var{initial-arguments} followed by arguments read from standard
input. Blank lines on the standard input are ignored. If the
@samp{-L} option is in use, trailing blanks indicate that @code{xargs}
diff --git a/xargs/testsuite/Makefile.am b/xargs/testsuite/Makefile.am
index 8637d936..e5b6825b 100644
--- a/xargs/testsuite/Makefile.am
+++ b/xargs/testsuite/Makefile.am
@@ -20,19 +20,19 @@ xargs.gnu/L2_2-0.exp \
xargs.gnu/L3-0.exp \
xargs.gnu/n1-0.exp \
xargs.gnu/n2-0.exp \
-xargs.gnu/n2-s26-0.exp \
-xargs.gnu/n2-s26-x-0.exp \
+xargs.gnu/n2-s21-0.exp \
+xargs.gnu/n2-s21-x-0.exp \
xargs.gnu/n3-0.exp \
-xargs.gnu/n3-s36-0.exp \
+xargs.gnu/n3-s31-0.exp \
xargs.gnu/noeof-0.exp \
xargs.gnu/nothing.exp \
xargs.gnu/P3-n1-IARG.exp \
xargs.gnu/r.exp \
xargs.gnu/s118-0.exp \
-xargs.gnu/s19-0.exp \
-xargs.gnu/s19_2-0.exp \
-xargs.gnu/s20-0.exp \
-xargs.gnu/s30-0.exp \
+xargs.gnu/s14_2-0.exp \
+xargs.gnu/s14-0.exp \
+xargs.gnu/s15-0.exp \
+xargs.gnu/s25-0.exp \
xargs.gnu/space-0.exp \
xargs.gnu/space-r.exp \
xargs.gnu/space-t-0.exp \
@@ -56,10 +56,10 @@ xargs.posix/L2-n2.exp \
xargs.posix/L3.exp \
xargs.posix/n1.exp \
xargs.posix/n2.exp \
-xargs.posix/n2-s26.exp \
-xargs.posix/n2-s26-x.exp \
+xargs.posix/n2-s21.exp \
+xargs.posix/n2-s21-x.exp \
xargs.posix/n3.exp \
-xargs.posix/n3-s36.exp \
+xargs.posix/n3-s31.exp \
xargs.posix/noeof.exp \
xargs.posix/quotes.exp \
xargs.posix/rc-123.exp \
@@ -68,12 +68,12 @@ xargs.posix/rc-125.exp \
xargs.posix/rc-126.exp \
xargs.posix/rc-127.exp \
xargs.posix/s118.exp \
-xargs.posix/s19_2.exp \
-xargs.posix/s19.exp \
-xargs.posix/s20.exp \
-xargs.posix/s30.exp \
+xargs.posix/s14.exp \
+xargs.posix/s14_2.exp \
+xargs.posix/s15.exp \
+xargs.posix/s25.exp \
+xargs.posix/s42.exp \
xargs.posix/s470.exp \
-xargs.posix/s47.exp \
xargs.posix/s48.exp \
xargs.posix/s6.exp \
xargs.posix/savannah-11865.exp \
@@ -98,7 +98,7 @@ xargs.sysv/l1_2.exp \
xargs.sysv/l1.exp \
xargs.sysv/l1n4.exp \
xargs.sysv/lc_l2.exp \
-xargs.sysv/s30-t.exp \
+xargs.sysv/s25-t.exp \
xargs.sysv/sv-bug-18713.exp \
xargs.sysv/space-t.exp \
xargs.sysv/trace.exp
@@ -118,18 +118,18 @@ xargs.gnu/L2_2-0.xo \
xargs.gnu/L3-0.xo \
xargs.gnu/n1-0.xo \
xargs.gnu/n2-0.xo \
-xargs.gnu/n2-s26-0.xo \
-xargs.gnu/n2-s26-x-0.xo \
+xargs.gnu/n2-s21-0.xo \
+xargs.gnu/n2-s21-x-0.xo \
xargs.gnu/n3-0.xo \
-xargs.gnu/n3-s36-0.xo \
+xargs.gnu/n3-s31-0.xo \
xargs.gnu/noeof-0.xo \
xargs.gnu/nothing.xo \
xargs.gnu/P3-n1-IARG.xo \
xargs.gnu/r.xo \
xargs.gnu/s118-0.xo \
-xargs.gnu/s19-0.xo \
-xargs.gnu/s20-0.xo \
-xargs.gnu/s30-0.xo \
+xargs.gnu/s14-0.xo \
+xargs.gnu/s15-0.xo \
+xargs.gnu/s25-0.xo \
xargs.gnu/space-0.xo \
xargs.gnu/space-t-0.xo \
xargs.posix/EEOFb.xo \
@@ -148,20 +148,20 @@ xargs.posix/L2-n2.xo \
xargs.posix/uc_L2.xo \
xargs.posix/L3.xo \
xargs.posix/n1.xo \
-xargs.posix/n2-s26.xo \
-xargs.posix/n2-s26-x.xo \
+xargs.posix/n2-s21.xo \
+xargs.posix/n2-s21-x.xo \
xargs.posix/n2.xo \
-xargs.posix/n3-s36.xo \
+xargs.posix/n3-s31.xo \
xargs.posix/n3.xo \
xargs.posix/noeof.xo \
xargs.posix/quotes.xo \
xargs.posix/rc-123.xo \
xargs.posix/s118.xo \
-xargs.posix/s19.xo \
-xargs.posix/s20.xo \
-xargs.posix/s30.xo \
+xargs.posix/s14.xo \
+xargs.posix/s15.xo \
+xargs.posix/s25.xo \
+xargs.posix/s42.xo \
xargs.posix/s470.xo \
-xargs.posix/s47.xo \
xargs.posix/s48.xo \
xargs.posix/savannah-11865.xo \
xargs.posix/space.xo \
@@ -183,7 +183,7 @@ xargs.sysv/l1_2.xo \
xargs.sysv/l1n4.xo \
xargs.sysv/l1.xo \
xargs.sysv/lc_l2.xo \
-xargs.sysv/s30-t.xo \
+xargs.sysv/s25-t.xo \
xargs.sysv/sv-bug-18713.xo \
xargs.sysv/space-t.xo \
xargs.sysv/trace.xo
@@ -194,7 +194,7 @@ EXTRA_DIST_XE = \
xargs.gnu/space-t-0.xe \
xargs.sysv/empty_def-t.xe \
xargs.sysv/empty-t.xe \
-xargs.sysv/s30-t.xe \
+xargs.sysv/s25-t.xe \
xargs.sysv/space-t.xe \
xargs.sysv/trace.xe
diff --git a/xargs/testsuite/xargs.gnu/n2-s21-0.exp b/xargs/testsuite/xargs.gnu/n2-s21-0.exp
new file mode 100644
index 00000000..1793245c
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/n2-s21-0.exp
@@ -0,0 +1 @@
+xargs_start p {-n2 -s21 -0} stairs-0.xi
diff --git a/xargs/testsuite/xargs.gnu/n2-s26-0.xo b/xargs/testsuite/xargs.gnu/n2-s21-0.xo
index a9e8dfaa..a9e8dfaa 100644
--- a/xargs/testsuite/xargs.gnu/n2-s26-0.xo
+++ b/xargs/testsuite/xargs.gnu/n2-s21-0.xo
diff --git a/xargs/testsuite/xargs.gnu/n2-s21-x-0.exp b/xargs/testsuite/xargs.gnu/n2-s21-x-0.exp
new file mode 100644
index 00000000..293ba884
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/n2-s21-x-0.exp
@@ -0,0 +1 @@
+xargs_start f {-n2 -s21 -x -0} stairs-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/n2-s26-x-0.xo b/xargs/testsuite/xargs.gnu/n2-s21-x-0.xo
index 7b6db828..7b6db828 100644
--- a/xargs/testsuite/xargs.gnu/n2-s26-x-0.xo
+++ b/xargs/testsuite/xargs.gnu/n2-s21-x-0.xo
diff --git a/xargs/testsuite/xargs.gnu/n2-s26-0.exp b/xargs/testsuite/xargs.gnu/n2-s26-0.exp
deleted file mode 100644
index 44949053..00000000
--- a/xargs/testsuite/xargs.gnu/n2-s26-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-n2 -s26 -0} stairs-0.xi
diff --git a/xargs/testsuite/xargs.gnu/n2-s26-x-0.exp b/xargs/testsuite/xargs.gnu/n2-s26-x-0.exp
deleted file mode 100644
index f765bcde..00000000
--- a/xargs/testsuite/xargs.gnu/n2-s26-x-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-n2 -s26 -x -0} stairs-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/n3-s31-0.exp b/xargs/testsuite/xargs.gnu/n3-s31-0.exp
new file mode 100644
index 00000000..efee3e36
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/n3-s31-0.exp
@@ -0,0 +1 @@
+xargs_start p {-n3 -s31 -0} stairs2-0.xi
diff --git a/xargs/testsuite/xargs.gnu/n3-s36-0.xo b/xargs/testsuite/xargs.gnu/n3-s31-0.xo
index 74844869..74844869 100644
--- a/xargs/testsuite/xargs.gnu/n3-s36-0.xo
+++ b/xargs/testsuite/xargs.gnu/n3-s31-0.xo
diff --git a/xargs/testsuite/xargs.gnu/n3-s36-0.exp b/xargs/testsuite/xargs.gnu/n3-s36-0.exp
deleted file mode 100644
index 1d83e261..00000000
--- a/xargs/testsuite/xargs.gnu/n3-s36-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-n3 -s36 -0} stairs2-0.xi
diff --git a/xargs/testsuite/xargs.gnu/s14-0.exp b/xargs/testsuite/xargs.gnu/s14-0.exp
new file mode 100644
index 00000000..9c4d8419
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/s14-0.exp
@@ -0,0 +1 @@
+xargs_start f {-0 -s14} stairs-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/s19-0.xo b/xargs/testsuite/xargs.gnu/s14-0.xo
index afb3bc3a..afb3bc3a 100644
--- a/xargs/testsuite/xargs.gnu/s19-0.xo
+++ b/xargs/testsuite/xargs.gnu/s14-0.xo
diff --git a/xargs/testsuite/xargs.gnu/s14_2-0.exp b/xargs/testsuite/xargs.gnu/s14_2-0.exp
new file mode 100644
index 00000000..63a7603e
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/s14_2-0.exp
@@ -0,0 +1 @@
+xargs_start f {-0 -s14} stairs2-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/s15-0.exp b/xargs/testsuite/xargs.gnu/s15-0.exp
new file mode 100644
index 00000000..f67a18e6
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/s15-0.exp
@@ -0,0 +1 @@
+xargs_start p {-0 -s15} stairs-0.xi
diff --git a/xargs/testsuite/xargs.gnu/s20-0.xo b/xargs/testsuite/xargs.gnu/s15-0.xo
index 7f7032ef..7f7032ef 100644
--- a/xargs/testsuite/xargs.gnu/s20-0.xo
+++ b/xargs/testsuite/xargs.gnu/s15-0.xo
diff --git a/xargs/testsuite/xargs.gnu/s19-0.exp b/xargs/testsuite/xargs.gnu/s19-0.exp
deleted file mode 100644
index 7f4f1534..00000000
--- a/xargs/testsuite/xargs.gnu/s19-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-0 -s19} stairs-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/s19_2-0.exp b/xargs/testsuite/xargs.gnu/s19_2-0.exp
deleted file mode 100644
index 78c460af..00000000
--- a/xargs/testsuite/xargs.gnu/s19_2-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-0 -s19} stairs2-0.xi skip
diff --git a/xargs/testsuite/xargs.gnu/s20-0.exp b/xargs/testsuite/xargs.gnu/s20-0.exp
deleted file mode 100644
index 899fd10c..00000000
--- a/xargs/testsuite/xargs.gnu/s20-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-0 -s20} stairs-0.xi
diff --git a/xargs/testsuite/xargs.gnu/s25-0.exp b/xargs/testsuite/xargs.gnu/s25-0.exp
new file mode 100644
index 00000000..61a026c2
--- /dev/null
+++ b/xargs/testsuite/xargs.gnu/s25-0.exp
@@ -0,0 +1 @@
+xargs_start p {-0 -s25} stairs-0.xi
diff --git a/xargs/testsuite/xargs.gnu/s30-0.xo b/xargs/testsuite/xargs.gnu/s25-0.xo
index 64ba7cb3..64ba7cb3 100644
--- a/xargs/testsuite/xargs.gnu/s30-0.xo
+++ b/xargs/testsuite/xargs.gnu/s25-0.xo
diff --git a/xargs/testsuite/xargs.gnu/s30-0.exp b/xargs/testsuite/xargs.gnu/s30-0.exp
deleted file mode 100644
index 5111b781..00000000
--- a/xargs/testsuite/xargs.gnu/s30-0.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-0 -s30} stairs-0.xi
diff --git a/xargs/testsuite/xargs.posix/n2-s21-x.exp b/xargs/testsuite/xargs.posix/n2-s21-x.exp
new file mode 100644
index 00000000..5f799a99
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/n2-s21-x.exp
@@ -0,0 +1 @@
+xargs_start f {-n2 -s21 -x} stairs.xi skip
diff --git a/xargs/testsuite/xargs.posix/n2-s26-x.xo b/xargs/testsuite/xargs.posix/n2-s21-x.xo
index 7b6db828..7b6db828 100644
--- a/xargs/testsuite/xargs.posix/n2-s26-x.xo
+++ b/xargs/testsuite/xargs.posix/n2-s21-x.xo
diff --git a/xargs/testsuite/xargs.posix/n2-s21.exp b/xargs/testsuite/xargs.posix/n2-s21.exp
new file mode 100644
index 00000000..61cb60b4
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/n2-s21.exp
@@ -0,0 +1 @@
+xargs_start p {-n2 -s21} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/n2-s26.xo b/xargs/testsuite/xargs.posix/n2-s21.xo
index a9e8dfaa..a9e8dfaa 100644
--- a/xargs/testsuite/xargs.posix/n2-s26.xo
+++ b/xargs/testsuite/xargs.posix/n2-s21.xo
diff --git a/xargs/testsuite/xargs.posix/n2-s26-x.exp b/xargs/testsuite/xargs.posix/n2-s26-x.exp
deleted file mode 100644
index fd59c052..00000000
--- a/xargs/testsuite/xargs.posix/n2-s26-x.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-n2 -s26 -x} stairs.xi skip
diff --git a/xargs/testsuite/xargs.posix/n2-s26.exp b/xargs/testsuite/xargs.posix/n2-s26.exp
deleted file mode 100644
index ba76660e..00000000
--- a/xargs/testsuite/xargs.posix/n2-s26.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-n2 -s26} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/n3-s31.exp b/xargs/testsuite/xargs.posix/n3-s31.exp
new file mode 100644
index 00000000..a49943e5
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/n3-s31.exp
@@ -0,0 +1 @@
+xargs_start p {-n3 -s31} stairs2.xi
diff --git a/xargs/testsuite/xargs.posix/n3-s36.xo b/xargs/testsuite/xargs.posix/n3-s31.xo
index 74844869..74844869 100644
--- a/xargs/testsuite/xargs.posix/n3-s36.xo
+++ b/xargs/testsuite/xargs.posix/n3-s31.xo
diff --git a/xargs/testsuite/xargs.posix/n3-s36.exp b/xargs/testsuite/xargs.posix/n3-s36.exp
deleted file mode 100644
index 00c80e95..00000000
--- a/xargs/testsuite/xargs.posix/n3-s36.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-n3 -s36} stairs2.xi
diff --git a/xargs/testsuite/xargs.posix/s14.exp b/xargs/testsuite/xargs.posix/s14.exp
new file mode 100644
index 00000000..22b8188e
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/s14.exp
@@ -0,0 +1 @@
+xargs_start f {-s14} stairs.xi skip
diff --git a/xargs/testsuite/xargs.posix/s19.xo b/xargs/testsuite/xargs.posix/s14.xo
index afb3bc3a..afb3bc3a 100644
--- a/xargs/testsuite/xargs.posix/s19.xo
+++ b/xargs/testsuite/xargs.posix/s14.xo
diff --git a/xargs/testsuite/xargs.posix/s14_2.exp b/xargs/testsuite/xargs.posix/s14_2.exp
new file mode 100644
index 00000000..2a0470bb
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/s14_2.exp
@@ -0,0 +1 @@
+xargs_start f {-s14} stairs2.xi skip
diff --git a/xargs/testsuite/xargs.posix/s15.exp b/xargs/testsuite/xargs.posix/s15.exp
new file mode 100644
index 00000000..6576fa8d
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/s15.exp
@@ -0,0 +1 @@
+xargs_start p {-s15} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/s20.xo b/xargs/testsuite/xargs.posix/s15.xo
index 7f7032ef..7f7032ef 100644
--- a/xargs/testsuite/xargs.posix/s20.xo
+++ b/xargs/testsuite/xargs.posix/s15.xo
diff --git a/xargs/testsuite/xargs.posix/s19.exp b/xargs/testsuite/xargs.posix/s19.exp
deleted file mode 100644
index 86f93378..00000000
--- a/xargs/testsuite/xargs.posix/s19.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-s19} stairs.xi skip
diff --git a/xargs/testsuite/xargs.posix/s19_2.exp b/xargs/testsuite/xargs.posix/s19_2.exp
deleted file mode 100644
index be27aefc..00000000
--- a/xargs/testsuite/xargs.posix/s19_2.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-s19} stairs2.xi skip
diff --git a/xargs/testsuite/xargs.posix/s20.exp b/xargs/testsuite/xargs.posix/s20.exp
deleted file mode 100644
index f87d4410..00000000
--- a/xargs/testsuite/xargs.posix/s20.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-s20} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/s25.exp b/xargs/testsuite/xargs.posix/s25.exp
new file mode 100644
index 00000000..ac3ba414
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/s25.exp
@@ -0,0 +1 @@
+xargs_start p {-s25} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/s30.xo b/xargs/testsuite/xargs.posix/s25.xo
index 64ba7cb3..64ba7cb3 100644
--- a/xargs/testsuite/xargs.posix/s30.xo
+++ b/xargs/testsuite/xargs.posix/s25.xo
diff --git a/xargs/testsuite/xargs.posix/s30.exp b/xargs/testsuite/xargs.posix/s30.exp
deleted file mode 100644
index 9faa71b2..00000000
--- a/xargs/testsuite/xargs.posix/s30.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-s30} stairs.xi
diff --git a/xargs/testsuite/xargs.posix/s42.exp b/xargs/testsuite/xargs.posix/s42.exp
new file mode 100644
index 00000000..5f50ae00
--- /dev/null
+++ b/xargs/testsuite/xargs.posix/s42.exp
@@ -0,0 +1 @@
+xargs_start f {-s42} files.xi skip
diff --git a/xargs/testsuite/xargs.posix/s47.xo b/xargs/testsuite/xargs.posix/s42.xo
index 26eed8f7..26eed8f7 100644
--- a/xargs/testsuite/xargs.posix/s47.xo
+++ b/xargs/testsuite/xargs.posix/s42.xo
diff --git a/xargs/testsuite/xargs.posix/s47.exp b/xargs/testsuite/xargs.posix/s47.exp
deleted file mode 100644
index 8f79b2a0..00000000
--- a/xargs/testsuite/xargs.posix/s47.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start f {-s47} files.xi skip
diff --git a/xargs/testsuite/xargs.sysv/empty_def-t.xe b/xargs/testsuite/xargs.sysv/empty_def-t.xe
index da4ae853..1aa49031 100644
--- a/xargs/testsuite/xargs.sysv/empty_def-t.xe
+++ b/xargs/testsuite/xargs.sysv/empty_def-t.xe
@@ -1 +1 @@
-/bin/echo
+echo
diff --git a/xargs/testsuite/xargs.sysv/s25-t.exp b/xargs/testsuite/xargs.sysv/s25-t.exp
new file mode 100644
index 00000000..91998805
--- /dev/null
+++ b/xargs/testsuite/xargs.sysv/s25-t.exp
@@ -0,0 +1 @@
+xargs_start p {-s25 -t} stairs.xi
diff --git a/xargs/testsuite/xargs.sysv/s25-t.xe b/xargs/testsuite/xargs.sysv/s25-t.xe
new file mode 100644
index 00000000..5659900b
--- /dev/null
+++ b/xargs/testsuite/xargs.sysv/s25-t.xe
@@ -0,0 +1,6 @@
+echo 1 22 333 4444 55555
+echo 666666 7777777
+echo 88888888 999999999
+echo 1 22 333 4444 55555
+echo 666666 7777777
+echo 88888888 999999999
diff --git a/xargs/testsuite/xargs.sysv/s30-t.xo b/xargs/testsuite/xargs.sysv/s25-t.xo
index 64ba7cb3..64ba7cb3 100644
--- a/xargs/testsuite/xargs.sysv/s30-t.xo
+++ b/xargs/testsuite/xargs.sysv/s25-t.xo
diff --git a/xargs/testsuite/xargs.sysv/s30-t.exp b/xargs/testsuite/xargs.sysv/s30-t.exp
deleted file mode 100644
index 4145c8d7..00000000
--- a/xargs/testsuite/xargs.sysv/s30-t.exp
+++ /dev/null
@@ -1 +0,0 @@
-xargs_start p {-s30 -t} stairs.xi
diff --git a/xargs/testsuite/xargs.sysv/s30-t.xe b/xargs/testsuite/xargs.sysv/s30-t.xe
deleted file mode 100644
index f91bf789..00000000
--- a/xargs/testsuite/xargs.sysv/s30-t.xe
+++ /dev/null
@@ -1,6 +0,0 @@
-/bin/echo 1 22 333 4444 55555
-/bin/echo 666666 7777777
-/bin/echo 88888888 999999999
-/bin/echo 1 22 333 4444 55555
-/bin/echo 666666 7777777
-/bin/echo 88888888 999999999
diff --git a/xargs/xargs.c b/xargs/xargs.c
index 219b09f6..4a773e37 100644
--- a/xargs/xargs.c
+++ b/xargs/xargs.c
@@ -383,7 +383,7 @@ main (int argc, char **argv)
int show_limits = 0; /* --show-limits */
int always_run_command = 1;
char *input_file = "-"; /* "-" is stdin */
- char *default_cmd = "/bin/echo";
+ char *default_cmd = "echo";
int (*read_args) (void) = read_line;
void (*act_on_init_result)(void) = noop;
enum BC_INIT_STATUS bcstatus;