Since commit
1ff7002b1 (xargs: fix handling of quoted arguments, closes
11441) the -n option hasn't worked properly:
$ echo 1 2 3 | xargs -n 1 echo
1
2
3
$
Because state is now remembered between calls to process_stdin() it's
necessary to update the state before any premature return.
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
}
}
if (state == SPACE) { /* word's delimiter or EOF detected */
+ state = NORM;
if (q) {
bb_error_msg_and_die("unmatched %s quote",
q == '\'' ? "single" : "double");
if (n_max_arg == 0) {
goto ret;
}
- state = NORM;
}
if (p == buf) {
goto ret;
"seq 10000 99999 | sed -e 's/^/\"/' -e 's/$/\"/' | xargs echo | grep -o 99999; echo \$?" \
"99999\n0\n" \
"" ""
+
+testing "xargs -n1" \
+ "xargs -n1 echo" \
+ "1\n2\n3\n4\n5\n" \
+ "" "1 2 3 4 5\n"
+
+testing "xargs -n2" \
+ "xargs -n2 echo" \
+ "1 2\n3 4\n5\n" \
+ "" "1 2 3 4 5\n"
+
SKIP=
exit $FAILCOUNT