summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2010-04-20 16:25:55 +0100
committerPádraig Brady <P@draigBrady.com>2010-04-20 22:37:18 +0100
commit8fc12909f649fbe75eb84c48ace554ae3e4e6c06 (patch)
tree34cadaffde2978c7033fae2ce54355330d7b1159 /tests
parent1777d0dfe34dc4d8c148a34a96eb92c6036ff7bd (diff)
downloadcoreutils-8fc12909f649fbe75eb84c48ace554ae3e4e6c06.tar.xz
sort: fix parsing of end field in obsolescent key formats
This regression was introduced in commit 224a69b5, 2009-02-24, "sort: Fix two bugs with determining the end of field". The specific regression being that we include 1 field too many when an end field is specified using obsolescent key syntax (+POS -POS). * src/sort.c (struct keyfield): Clarify the description of the eword member, as suggested by Alan Curry. (main): When processing obsolescent format key specifications, normalize eword to a zero based count when no specific end char is given for an end field. This matches what's done when keys are specified with -k. * tests/misc/sort: Add a few more tests for the obsolescent key formats, with test 07i being the particular failure addressed by this change. * THANKS: Add Alan Curry who precisely identified the issue. * NEWS: Mention the fix. Reported by Santiago Rodríguez
Diffstat (limited to 'tests')
-rwxr-xr-xtests/misc/sort6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/misc/sort b/tests/misc/sort
index e5d18d0c4..4ca52fe9c 100755
--- a/tests/misc/sort
+++ b/tests/misc/sort
@@ -142,6 +142,12 @@ my @Tests =
["07f", '-n -k1.3,1.1', {IN=>"a 2\nb 1\n"}, {OUT=>"a 2\nb 1\n"}],
["07g", '-n -k2.2,1.2', {IN=>"aa 2\nbb 1\n"}, {OUT=>"aa 2\nbb 1\n"}],
["07h", '-k1.3nb,1.3', {IN=>" a 2\n b 1\n"}, {OUT=>" a 2\n b 1\n"}],
+# ensure obsolescent key limits are handled correctly
+["07i", '-s +0 -1', {IN=>"a c\na b\n"}, {OUT=>"a c\na b\n"}],
+["07j", '-s +0 -1.0', {IN=>"a c\na b\n"}, {OUT=>"a c\na b\n"}],
+["07k", '-s +0 -1.1', {IN=>"a c\na b\n"}, {OUT=>"a c\na b\n"}],
+["07l", '-s +0 -1.2', {IN=>"a c\na b\n"}, {OUT=>"a b\na c\n"}],
+["07m", '-s +0 -1.1b', {IN=>"a c\na b\n"}, {OUT=>"a b\na c\n"}],
#
# report an error for `.' without following char spec
["08a", '-k 2.,3', {EXIT=>2},