]> granicus.if.org Git - python/commitdiff
Remove compiler warnings (on Alpha at least) about using chars as
authorNeal Norwitz <nnorwitz@gmail.com>
Sun, 23 Mar 2008 06:19:57 +0000 (06:19 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sun, 23 Mar 2008 06:19:57 +0000 (06:19 +0000)
array subscripts.  Using chars are dangerous b/c they are signed
on some platforms and unsigned on others.

Objects/unicodeobject.c
Python/pystrcmp.c

index dd56e113d26e82aa2e4e3ac1edef62eb81429c0e..5878f96166c7f2197d861d72c32f305f744b9dfc 100644 (file)
@@ -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.
index 0012ef33bc3878e5f2b63298e3fbbd4cf6aba502..84295e7d21feb82f9b7b2870eb9724083c146d6f 100644 (file)
@@ -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));
 }