From: Paul Eggert Date: Thu, 14 Oct 2010 03:35:50 +0000 (-0700) Subject: sort: fix unportable cast of unsigned char * -> char * X-Git-Tag: v8.6~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=34ef0a01;p=thirdparty%2Fcoreutils.git sort: fix unportable cast of unsigned char * -> char * * 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. --- diff --git a/src/sort.c b/src/sort.c index 89f7be32c8..c155edadbc 100644 --- a/src/sort.c +++ b/src/sort.c @@ -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;