From d846bc8babb0764c895fc94f91b97e33851094fb Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= Date: Wed, 2 Feb 2011 23:08:42 +0000 Subject: [PATCH] sort: fix --debug key highlighting when key start after key end This case was overlooked in commit bdde34f9, 2010-08-05, "sort: tune and refactor --debug code, and fix minor underlining bug" * src/sort.c (debug_key): Don't adjust the key end when it's before the key start. * tests/misc/sort-debug-keys: Add a test case. --- src/sort.c | 4 +++- tests/misc/sort-debug-keys | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/sort.c b/src/sort.c index 06b0d95..13954cb 100644 --- a/src/sort.c +++ b/src/sort.c @@ -2214,7 +2214,9 @@ debug_key (struct line const *line, struct keyfield const *key) char *tighter_lim = beg; - if (key->month) + if (lim < beg) + tighter_lim = lim; + else if (key->month) getmonth (beg, &tighter_lim); else if (key->general_numeric) ignore_value (strtold (beg, &tighter_lim)); diff --git a/tests/misc/sort-debug-keys b/tests/misc/sort-debug-keys index daa6c18..238c33e 100755 --- a/tests/misc/sort-debug-keys +++ b/tests/misc/sort-debug-keys @@ -234,6 +234,10 @@ _ _ >a _ +A>chr10 + ^ no match for key +B>chr1 + ^ no match for key EOF ( @@ -275,6 +279,9 @@ env printf '1a\x002b\x00' | sort -s -n -z --debug # Check that \0 and \t intermix. printf '\0\ta\n' | sort -s -k2b,2 --debug | tr -d '\0' + +# Check that key end before key start is not underlined +printf 'A\tchr10\nB\tchr1\n' | sort -s -k2.4b,2.3n --debug ) > out compare out exp || fail=1 -- 2.7.4