We were erroneously skipping blanks in the marked comparison
_after_ the key start offset was applied.
* src/sort.c (debug_keys): Don't skip starting blanks
if already handled by begfield().
* tests/misc/sort-debug-keys.sh: Add a test case.
* NEWS: Mention the bug fix.
Fixes http://bugs.gnu.org/22155
shred again uses defined patterns for all iteration counts.
[bug introduced in coreutils-5.93]
+ sort --debug -b now correctly marks the matching extents for keys
+ that specify an offset for the first field.
+ [bug introduced with the --debug feature in coreutils-8.6]
+
** New commands
base32 is added to complement the existing base64 command,
if (key->eword != SIZE_MAX)
lim = limfield (line, key);
- if (key->skipsblanks || key->month || key_numeric (key))
+ if ((key->skipsblanks && key->sword == SIZE_MAX)
+ || key->month || key_numeric (key))
{
char saved = *lim;
*lim = '\0';
^ no match for key
B>chr1
^ no match for key
+1 2
+ __
+1 3
+ __
EOF
(
# Check that key end before key start is not underlined
printf 'A\tchr10\nB\tchr1\n' | sort -s -k2.4b,2.3n --debug
+
+# Ensure that -b applied before -k offsets
+printf '1 2\n1 3\n' | sort -s -k1.2b --debug
) > out
compare exp out || fail=1