summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBernhard Voelker <mail@bernhard-voelker.de>2012-11-18 22:20:16 +0100
committerBernhard Voelker <mail@bernhard-voelker.de>2012-11-19 00:08:38 +0100
commit1482f730b47d1abad3d75199dde5237d9bf16a4a (patch)
tree857b97da89b2fd93bfe304ad530f104bd42aec21 /src
parent6a5843d92fca254f0b27c3fee88a11840034ce32 (diff)
downloadcoreutils-1482f730b47d1abad3d75199dde5237d9bf16a4a.tar.xz
cut: do not accept the invalid range 0-
The command "echo 12345 | cut -b 0-" prints an empty line while it should fail with "fields and positions are numbered from 1". * src/cut.c (set_fields): Add a diagnostic for the invalid open range which starts with Zero, i.e., the range 0-. * tests/misc/cut.pl: Add tests to ensure the range 0- fails for fields (-f) and for positions (-b, -c). * NEWS: Mention the fix. Reported by Marcel Böhme in <http://bugs.gnu.org/12903>.
Diffstat (limited to 'src')
-rw-r--r--src/cut.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cut.c b/src/cut.c
index 87380ac66..2a571483a 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -369,6 +369,9 @@ set_fields (const char *fieldstr)
dash_found = true;
fieldstr++;
+ if (lhs_specified && !value)
+ FATAL_ERROR (_("fields and positions are numbered from 1"));
+
initial = (lhs_specified ? value : 1);
value = 0;
}