]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
sort: fix unportable cast of unsigned char * -> char *
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Oct 2010 03:35:50 +0000 (20:35 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Oct 2010 05:41:13 +0000 (22:41 -0700)
* src/sort.c (fold_toupper): Change this back from char to
unsigned char, fixing a portability issue introduced in commit
59e2e55d0f154a388adc9bac37d2b45f2ba971f8 dated February 26, as the
C Standard doesn't let you convert from unsigned char * to char *
without a cast, and the (in theory more portable) style here is to
convert char values, not pointer values.
(getmonth): Convert char to unsigned char when needed for
comparison.

src/sort.c

index 89f7be32c8ba68a50b1844bb92421f19e09f10ca..c155edadbc5808a258cd0e4568bb3b796ce2a730 100644 (file)
@@ -268,7 +268,7 @@ static bool nonprinting[UCHAR_LIM];
 static bool nondictionary[UCHAR_LIM];
 
 /* Translation table folding lower case to upper.  */
-static unsigned char fold_toupper[UCHAR_LIM];
+static char fold_toupper[UCHAR_LIM];
 
 #define MONTHS_PER_YEAR 12
 
@@ -1952,12 +1952,12 @@ getmonth (char const *month, char **ea)
                 *ea = (char *) m;
               return monthtab[ix].val;
             }
-          if (fold_toupper[to_uchar (*m)] < to_uchar (*n))
+          if (to_uchar (fold_toupper[to_uchar (*m)]) < to_uchar (*n))
             {
               hi = ix;
               break;
             }
-          else if (fold_toupper[to_uchar (*m)] > to_uchar (*n))
+          else if (to_uchar (fold_toupper[to_uchar (*m)]) > to_uchar (*n))
             {
               lo = ix + 1;
               break;