From 39218932b1e99be6ef91329f7fb1beeeb40941c1 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 15 Jun 2006 20:50:38 +0000 Subject: [PATCH] Fix bug found by Joey Hess and forwarded by Bastian Bunk. Add Joey Hess's test case to the testsuite, plus another one that would have been broken by the first attempt at a fix. --- coreutils/sort.c | 4 +--- testsuite/sort.tests | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/coreutils/sort.c b/coreutils/sort.c index fb58f6279..3354385a4 100644 --- a/coreutils/sort.c +++ b/coreutils/sort.c @@ -74,9 +74,7 @@ static char *get_key(char *str, struct sort_key *key, int flags) for(i=1;irange[2*j]+j;i++) { /* Skip leading blanks or first separator */ if(str[end]) { - if(key_separator) { - if(str[end]==key_separator) end++; - } else if(isspace(str[end])) + if(!key_separator && isspace(str[end])) while(isspace(str[end])) end++; } /* Skip body of key */ diff --git a/testsuite/sort.tests b/testsuite/sort.tests index d1b42532d..cd2e291b2 100755 --- a/testsuite/sort.tests +++ b/testsuite/sort.tests @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # SUSv3 compliant sort tests. # Copyright 2005 by Rob Landley @@ -66,4 +66,18 @@ testing "sort key range with multiple options" "sort -k2,3rn input" \ egg 1 2 papyrus " "$data" "" +testing "sort key doesn't strip leading blanks, disables fallback global sort" \ +"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n" + +testing "sort key edge case with -t" "sort -n -k4 -t/" \ +"/usr/lib/finish-install.d/1 +/usr/lib/finish-install.d/4 +/usr/lib/prebaseconfig.d/2 +/usr/lib/prebaseconfig.d/6 +" "" "/usr/lib/finish-install.d/1 +/usr/lib/prebaseconfig.d/2 +/usr/lib/finish-install.d/4 +/usr/lib/prebaseconfig.d/6 +" + exit $FAILCOUNT -- 2.25.1