diff options
author | Assaf Gordon <assafgordon@gmail.com> | 2016-05-31 20:19:38 -0400 |
---|---|---|
committer | Assaf Gordon <assafgordon@gmail.com> | 2016-05-31 21:29:52 -0400 |
commit | 6223bf94bfeac75fb4252095864a80545ba00a0d (patch) | |
tree | 6f6c6c499f3c711bc4bc01a9fdf675d0fbf001cd | |
parent | d548f87595a193e21b170368bc8fc2ded4dadb73 (diff) | |
download | coreutils-6223bf94bfeac75fb4252095864a80545ba00a0d.tar.xz |
sort: modify 'leading spaces' debug warning scenarios
Print warning regardless of locale, avoid warning if key is zero width.
Problem reported by Karl Berry in http://bugs.gnu.org/23665 .
* src/sort.c: (key_warnings): change conditions for 'leading spaces'
warning.
* tests/misc/sort-debug-warn.sh: adjust tests accordingly.
-rw-r--r-- | src/sort.c | 9 | ||||
-rwxr-xr-x | tests/misc/sort-debug-warn.sh | 3 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/sort.c b/src/sort.c index aa52b7569..f717604ca 100644 --- a/src/sort.c +++ b/src/sort.c @@ -2424,16 +2424,15 @@ key_warnings (struct keyfield const *gkey, bool gkey_only) } /* Warn about field specs that will never match. */ - if (key->sword != SIZE_MAX && key->eword < key->sword) + bool zero_width = key->sword != SIZE_MAX && key->eword < key->sword; + if (zero_width) error (0, 0, _("key %lu has zero width and will be ignored"), keynum); /* Warn about significant leading blanks. */ bool implicit_skip = key_numeric (key) || key->month; - bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key) - && !(key->schar || key->echar); bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y */ - if (!gkey_only && tab == TAB_DEFAULT && !line_offset - && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned)) + if (!zero_width && !gkey_only && tab == TAB_DEFAULT && !line_offset + && ((!key->skipsblanks && !implicit_skip) || (!key->skipsblanks && key->schar) || (!key->skipeblanks && key->echar))) error (0, 0, _("leading blanks are significant in key %lu; " diff --git a/tests/misc/sort-debug-warn.sh b/tests/misc/sort-debug-warn.sh index b7ad44966..8dde2604f 100755 --- a/tests/misc/sort-debug-warn.sh +++ b/tests/misc/sort-debug-warn.sh @@ -41,6 +41,7 @@ sort: using simple byte comparison sort: option '-r' only applies to last-resort comparison 7 sort: using simple byte comparison +sort: leading blanks are significant in key 2; consider also specifying 'b' sort: options '-bg' are ignored 8 sort: using simple byte comparison @@ -51,6 +52,7 @@ sort: option '-b' is ignored sort: using simple byte comparison 11 sort: using simple byte comparison +sort: leading blanks are significant in key 1; consider also specifying 'b' 12 sort: using simple byte comparison sort: leading blanks are significant in key 1; consider also specifying 'b' @@ -116,7 +118,6 @@ sort: using simple byte comparison sort: key 1 is numeric and spans multiple fields sort: obsolescent key '+2 -1' used; consider '-k 3,1' instead sort: key 2 has zero width and will be ignored -sort: leading blanks are significant in key 2; consider also specifying 'b' sort: option '-b' is ignored sort: option '-r' only applies to last-resort comparison EOF |