summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2022-07-29 16:05:50 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2022-07-29 16:05:50 +0200
commit00f2a35b835c6f49617f5379073e9063e7e683ce (patch)
tree114bcd038da16a8c9cd7919adbd59255c62487d8
parent9b6eb2a8ef4f1cfeeea821e270d49ef9c6ae4503 (diff)
downloadbusybox-00f2a35b835c6f49617f5379073e9063e7e683ce.tar.gz
sort: fix -k2M (wasn't skipping leading whitespace)
function old new delta compare_keys 848 862 +14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--coreutils/sort.c4
-rwxr-xr-xtestsuite/sort.tests11
2 files changed, 13 insertions, 2 deletions
diff --git a/coreutils/sort.c b/coreutils/sort.c
index 9aac656fe..80b578fc2 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -357,9 +357,9 @@ static int compare_keys(const void *xarg, const void *yarg)
int dx;
char *xx, *yy;
- xx = strptime(x, "%b", &thyme);
+ xx = strptime(skip_whitespace(x), "%b", &thyme);
dx = thyme.tm_mon;
- yy = strptime(y, "%b", &thyme);
+ yy = strptime(skip_whitespace(y), "%b", &thyme);
if (!xx)
retval = (!yy) ? 0 : -1;
else if (!yy)
diff --git a/testsuite/sort.tests b/testsuite/sort.tests
index ff33e21b4..fb2cc91bd 100755
--- a/testsuite/sort.tests
+++ b/testsuite/sort.tests
@@ -219,4 +219,15 @@ testing "sort -h" \
# testing "description" "command(s)" "result" "infile" "stdin"
+testing "sort -k2,2M" \
+"sort -k2,2M input" "\
+3 March
+2 April
+1 May
+" "\
+2 April
+1 May
+3 March
+" ""
+
exit $FAILCOUNT