Force chars to unsigned chars in SDL_string.c, so platforms that expect SDL-1.2
authorRyan C. Gordon <icculus@icculus.org>
Thu, 15 Feb 2007 11:06:22 +0000
branchSDL-1.2
changeset 3916 16f7767f9580
parent 3915 89b0f3d12fe2
child 3917 8a3a0f1179f3
Force chars to unsigned chars in SDL_string.c, so platforms that expect these to not be negative, when not EOF, work. Fixes Bugzilla #338.
src/stdlib/SDL_string.c
--- a/src/stdlib/SDL_string.c	Wed Feb 14 10:40:24 2007 +0000
+++ b/src/stdlib/SDL_string.c	Thu Feb 15 11:06:22 2007 +0000
@@ -45,7 +45,7 @@
     }
     for ( ; ; ) {
         int v;
-        if ( SDL_isdigit(*text) ) {
+        if ( SDL_isdigit((unsigned char) *text) ) {
             v = *text - '0';
         } else if ( radix == 16 && SDL_isupperhex(*text) ) {
             v = 10 + (*text - 'A');
@@ -80,7 +80,7 @@
     }
     for ( ; ; ) {
         int v;
-        if ( SDL_isdigit(*text) ) {
+        if ( SDL_isdigit((unsigned char) *text) ) {
             v = *text - '0';
         } else if ( radix == 16 && SDL_isupperhex(*text) ) {
             v = 10 + (*text - 'A');
@@ -111,7 +111,7 @@
     }
     for ( ; ; ) {
         int v;
-        if ( SDL_isdigit(*text) ) {
+        if ( SDL_isdigit((unsigned char) *text) ) {
             v = *text - '0';
         } else if ( radix == 16 && SDL_isupperhex(*text) ) {
             v = 10 + (*text - 'A');
@@ -148,7 +148,7 @@
     }
     for ( ; ; ) {
         int v;
-        if ( SDL_isdigit(*text) ) {
+        if ( SDL_isdigit((unsigned char) *text) ) {
             v = *text - '0';
         } else if ( radix == 16 && SDL_isupperhex(*text) ) {
             v = 10 + (*text - 'A');
@@ -183,7 +183,7 @@
     }
     for ( ; ; ) {
         int v;
-        if ( SDL_isdigit(*text) ) {
+        if ( SDL_isdigit((unsigned char) *text) ) {
             v = *text - '0';
         } else if ( radix == 16 && SDL_isupperhex(*text) ) {
             v = 10 + (*text - 'A');
@@ -221,7 +221,7 @@
     if ( *text == '.' ) {
         int mult = 10;
         ++text;
-        while ( SDL_isdigit(*text) ) {
+        while ( SDL_isdigit((unsigned char) *text) ) {
             lvalue = *text - '0';
             value += (double)lvalue / mult;
             mult *= 10;
@@ -383,7 +383,7 @@
 {
     char *bufp = string;
     while ( *bufp ) {
-        *bufp = SDL_toupper(*bufp);
+        *bufp = SDL_toupper((unsigned char) *bufp);
 	++bufp;
     }
     return string;
@@ -395,7 +395,7 @@
 {
     char *bufp = string;
     while ( *bufp ) {
-        *bufp = SDL_tolower(*bufp);
+        *bufp = SDL_tolower((unsigned char) *bufp);
 	++bufp;
     }
     return string;
@@ -699,8 +699,8 @@
     char a = 0;
     char b = 0;
     while ( *str1 && *str2 ) {
-        a = SDL_tolower(*str1);
-        b = SDL_tolower(*str2);
+        a = SDL_tolower((unsigned char) *str1);
+        b = SDL_tolower((unsigned char) *str2);
         if ( a != b )
             break;
         ++str1;
@@ -716,8 +716,8 @@
     char a = 0;
     char b = 0;
     while ( *str1 && *str2 && maxlen ) {
-        a = SDL_tolower(*str1);
-        b = SDL_tolower(*str2);
+        a = SDL_tolower((unsigned char) *str1);
+        b = SDL_tolower((unsigned char) *str2);
         if ( a != b )
             break;
         ++str1;
@@ -737,7 +737,7 @@
     va_start(ap, fmt);
     while ( *fmt ) {
         if ( *fmt == ' ' ) {
-            while ( SDL_isspace(*text) ) {
+            while ( SDL_isspace((unsigned char) *text) ) {
                 ++text;
             }
             ++fmt;
@@ -788,7 +788,7 @@
                 continue;
             }
 
-            while ( SDL_isspace(*text) ) {
+            while ( SDL_isspace((unsigned char) *text) ) {
                 ++text;
             }
 
@@ -821,7 +821,7 @@
                                 ++index;
                             }
                             if ( text[index] == '0' ) {
-                                if ( SDL_tolower(text[index+1]) == 'x' ) {
+                                if ( SDL_tolower((unsigned char) text[index+1]) == 'x' ) {
                                     radix = 16;
                                 } else {
                                     radix = 8;
@@ -950,7 +950,7 @@
                         break;
                     case 's':
                         if ( suppress ) {
-                            while ( !SDL_isspace(*text) ) {
+                            while ( !SDL_isspace((unsigned char) *text) ) {
                                 ++text;
                                 if ( count ) {
                                     if ( --count == 0 ) {
@@ -960,7 +960,7 @@
                             }
                         } else {
                             char *valuep = va_arg(ap, char*);
-                            while ( !SDL_isspace(*text) ) {
+                            while ( !SDL_isspace((unsigned char) *text) ) {
                                 *valuep++ = *text++;
                                 if ( count ) {
                                     if ( --count == 0 ) {