[PATCH 2/2] sort: check global flags on fallback sort

Bartosz Golaszewski bartekgola at gmail.com
Sat Jan 18 14:25:59 UTC 2014


Sort now performs global reverse on fallback sort if -r is set. Before
only key local flags were checked.

Signed-off-by: Bartosz Golaszewski <bartekgola at gmail.com>
---
 coreutils/sort.c     |    7 +++++--
 testsuite/sort.tests |    3 ---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/coreutils/sort.c b/coreutils/sort.c
index 0b3b650..a3efe5b 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -302,10 +302,13 @@ static int compare_keys(const void *xarg, const void *yarg)
 	} /* for */
 
 	/* Perform fallback sort if necessary */
-	if (!retval && !(option_mask32 & FLAG_s))
+	if (!retval && !(option_mask32 & FLAG_s)) {
 		retval = strcmp(*(char **)xarg, *(char **)yarg);
+		if (option_mask32 & FLAG_r) return -retval;
+	} else {
+		if (flags & FLAG_r) return -retval;
+	}
 
-	if (flags & FLAG_r) return -retval;
 	return retval;
 }
 
diff --git a/testsuite/sort.tests b/testsuite/sort.tests
index 91b282e..68fa3e4 100755
--- a/testsuite/sort.tests
+++ b/testsuite/sort.tests
@@ -47,8 +47,6 @@ egg	1	2	papyrus
 999	3	0	algebra
 " "$data" ""
 
-test x"$SKIP_KNOWN_BUGS" = x"" && {
-# Busybox is definitely doing these wrong.  FIXME
 testing "sort key range with numeric option and global reverse" \
 "sort -k2,3n -r input" \
 "egg	1	2	papyrus
@@ -65,7 +63,6 @@ testing "sort key range with multiple options" "sort -k2,3rn input" \
 42	1	3	woot
 egg	1	2	papyrus
 " "$data" ""
-}
 
 testing "sort key range with two -k options" "sort -k 2,2n -k 1,1r input" "\
 d 2
-- 
1.7.10.4



More information about the busybox mailing list