summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2011-05-20 01:18:28 +0100
committerPádraig Brady <P@draigBrady.com>2011-05-26 00:23:11 +0100
commitbfffa909477924eaaa2a5e20ee44be087b0ac87d (patch)
treebc8a1a5f03840ac4997ef6006086c090e0611bb7
parent6eec064597c2f440c51146cac85dc2326a0e0cda (diff)
downloadcoreutils-bfffa909477924eaaa2a5e20ee44be087b0ac87d.tar.xz
split: diagnose when --filter is used with a chunk number
* src/split.c (main): Exit with a diagnostic if --filter is specified along with a specific chunk number. * test/split/filter: Ensure this combination fails.
-rw-r--r--src/split.c6
-rwxr-xr-xtests/split/filter3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/split.c b/src/split.c
index 5e203f1b7..9e23f8689 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1175,6 +1175,12 @@ main (int argc, char **argv)
}
}
+ if (k_units != 0 && filter_command)
+ {
+ error (0, 0, _("--filter does not process a chunk extracted to stdout"));
+ usage (EXIT_FAILURE);
+ }
+
/* Handle default case. */
if (split_type == type_undef)
{
diff --git a/tests/split/filter b/tests/split/filter
index a42c5539e..5bc54581f 100755
--- a/tests/split/filter
+++ b/tests/split/filter
@@ -43,6 +43,9 @@ done
split -e -n 10 --filter='xz > $FILE.xz' /dev/null || fail=1
stat x?? 2>/dev/null && fail=1
+# Ensure this invalid combination is flagged
+split -n 1/2 --filter='true' /dev/null 2>/dev/null && fail=1
+
# Ensure SIGPIPEs sent by the children don't propagate back
# where they would result in a non zero exit from split.
yes | head -n200K | split -b1G --filter='head -c1 >/dev/null' || fail=1