From: Neal Norwitz Date: Sun, 23 Mar 2008 06:19:57 +0000 (+0000) Subject: Remove compiler warnings (on Alpha at least) about using chars as X-Git-Tag: v2.6a2~151 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ade57d048527f35a6086040a14a0e7184faa91ce;p=python Remove compiler warnings (on Alpha at least) about using chars as array subscripts. Using chars are dangerous b/c they are signed on some platforms and unsigned on others. --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index dd56e113d2..5878f96166 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -624,9 +624,9 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) if (*f == '%') { const char* p = f; width = 0; - while (isdigit(*f)) + while (isdigit((unsigned)*f)) width = (width*10) + *f++ - '0'; - while (*++f && *f != '%' && !isalpha(*f)) + while (*++f && *f != '%' && !isalpha((unsigned)*f)) ; /* skip the 'l' or 'z' in {%ld, %zd, %lu, %zu} since @@ -787,12 +787,12 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) zeropad = (*f == '0'); /* parse the width.precision part */ width = 0; - while (isdigit(*f)) + while (isdigit((unsigned)*f)) width = (width*10) + *f++ - '0'; precision = 0; if (*f == '.') { f++; - while (isdigit(*f)) + while (isdigit((unsigned)*f)) precision = (precision*10) + *f++ - '0'; } /* handle the long flag, but only for %ld and %lu. diff --git a/Python/pystrcmp.c b/Python/pystrcmp.c index 0012ef33bc..84295e7d21 100644 --- a/Python/pystrcmp.c +++ b/Python/pystrcmp.c @@ -1,4 +1,4 @@ -/* Cross platform case insenstive string compare functions +/* Cross platform case insensitive string compare functions */ #include "Python.h" @@ -8,18 +8,19 @@ PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size) { if (size == 0) return 0; - while ((--size > 0) && (tolower(*s1) == tolower(*s2))) { + while ((--size > 0) && + (tolower((unsigned)*s1) == tolower((unsigned)*s2))) { if (!*s1++ || !*s2++) break; } - return tolower(*s1) - tolower(*s2); + return tolower((unsigned)*s1) - tolower((unsigned)*s2); } int PyOS_mystricmp(const char *s1, const char *s2) { - while (*s1 && (tolower(*s1++) == tolower(*s2++))) { + while (*s1 && (tolower((unsigned)*s1++) == tolower((unsigned)*s2++))) { ; } - return (tolower(*s1) - tolower(*s2)); + return (tolower((unsigned)*s1) - tolower((unsigned)*s2)); }