sort: fix a contradictory --debug warning
authorPádraig Brady <P@draigBrady.com>
Fri, 6 May 2011 07:07:46 +0000 (08:07 +0100)
committerPádraig Brady <P@draigBrady.com>
Fri, 6 May 2011 07:07:46 +0000 (08:07 +0100)
* src/sort.c (key_warn): `sort -k2,1n --debug` would output
warnings about being both "zero width" and "spanning multiple fields".
Suppress the latter one.
* tests/misc/sort-debug-warn: Add a couple of test cases.

src/sort.c
tests/misc/sort-debug-warn

index 07d6765..e10159a 100644 (file)
@@ -2385,7 +2385,7 @@ key_warnings (struct keyfield const *gkey, bool gkey_only)
           size_t eword = key->eword + 1;
           if (!sword)
             sword++;
-          if (sword != eword)
+          if (!eword || sword < eword)
             error (0, 0, _("key %lu is numeric and spans multiple fields"),
                    keynum);
         }
index def2571..5ae0002 100755 (executable)
@@ -23,6 +23,10 @@ cat <<\EOF > exp
 sort: using simple byte comparison
 sort: key 1 has zero width and will be ignored
 sort: using simple byte comparison
+sort: key 1 has zero width and will be ignored
+sort: using simple byte comparison
+sort: key 1 is numeric and spans multiple fields
+sort: using simple byte comparison
 sort: options `-bghMRrV' are ignored
 sort: using simple byte comparison
 sort: options `-bghMRV' are ignored
@@ -50,6 +54,8 @@ sort: using simple byte comparison
 EOF
 
 sort -s -k2,1 --debug /dev/null 2>>out
+sort -s -k2,1n --debug /dev/null 2>>out
+sort -s -k1,2n --debug /dev/null 2>>out
 sort -s -rRVMhgb -k1,1n --debug /dev/null 2>>out
 sort -rRVMhgb -k1,1n --debug /dev/null 2>>out
 sort -r -k1,1n --debug /dev/null 2>>out