From 427ae18348a908719ff60383b33041bce5e5393e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 22 Feb 2018 10:54:55 +0100 Subject: [PATCH] sort: in -s handling, return 1/-1, not 1/0 compare result function old new delta compare_keys 794 795 +1 Signed-off-by: Denys Vlasenko --- coreutils/sort.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/coreutils/sort.c b/coreutils/sort.c index 8ffd0cf44..c24b62681 100644 --- a/coreutils/sort.c +++ b/coreutils/sort.c @@ -345,7 +345,7 @@ static int compare_keys(const void *xarg, const void *yarg) /* So far lines are "the same" */ if (option_mask32 & FLAG_s) { - /* "Stable sort": later line is "smaller", + /* "Stable sort": later line is "greater than", * IOW: do not allow qsort() to swap equal lines. */ uint32_t *p32; @@ -362,7 +362,8 @@ static int compare_keys(const void *xarg, const void *yarg) p32 = (void*)(line + len); y32 = *p32; - retval = x32 > y32; + /* If x > y, 1, else -1 */ + retval = (x32 > y32) * 2 - 1; } else if (!(option_mask32 & FLAG_no_tie_break)) { /* fallback sort */