}
/* 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; "
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
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'
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