summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2012-11-24 11:36:15 -0800
committerJim Meyering <jim@meyering.net>2012-11-24 15:23:31 -0800
commit06aeeecb3fe2655fd5e4e12948b389873a79884b (patch)
treef779e7817903f75566e21451dcbb279fc9161f2f /tests
parent1b874511b60252a5c71c7a29046afdc99e5391bb (diff)
downloadcoreutils-06aeeecb3fe2655fd5e4e12948b389873a79884b.tar.xz
cut: do not print extraneous delimiters in some unusual cases
When printing output delimiters, and when a to-EOL range subsumes at least one other range, cut would mistakenly print delimiters for the subsumed range. This bug was probably introduced via commit v5.2.1-639-g847e066. * src/cut.c (set_fields): Ignore any range that is subsumed by a to-EOL range. Also, move two declarations down. * tests/misc/cut.pl: Add tests to exercise this. * NEWS (Bug fixes): Mention it. Reported by Marcel Böhme in http://bugs.gnu.org/12966
Diffstat (limited to 'tests')
-rwxr-xr-xtests/misc/cut.pl9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/misc/cut.pl b/tests/misc/cut.pl
index cb4781a7d..27768ff29 100755
--- a/tests/misc/cut.pl
+++ b/tests/misc/cut.pl
@@ -166,6 +166,15 @@ my @Tests =
['overlapping-unbounded-1', '-b3-,2-', {IN=>"1234\n"}, {OUT=>"234\n"}],
['overlapping-unbounded-2', '-b2-,3-', {IN=>"1234\n"}, {OUT=>"234\n"}],
+
+ # When printing output delimiters, and with one or more ranges subsumed
+ # by a to-EOL range, cut 8.20 and earlier would print extraneous delimiters.
+ ['EOL-subsumed-1', '--output-d=: -b2-,3,4-4,5',
+ {IN=>"123456\n"}, {OUT=>"23456\n"}],
+ ['EOL-subsumed-2', '--output-d=: -b3,4-4,5,2-',
+ {IN=>"123456\n"}, {OUT=>"23456\n"}],
+ ['EOL-subsumed-3', '--complement -b3,4-4,5,2-',
+ {IN=>"123456\n"}, {OUT=>"1\n"}],
);
if ($mb_locale ne 'C')