]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
use Py_CHARMASK
authorGuido van Rossum <guido@python.org>
Fri, 10 Feb 1995 17:01:56 +0000 (17:01 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 10 Feb 1995 17:01:56 +0000 (17:01 +0000)
Modules/regexmodule.c
Modules/stropmodule.c
Python/ceval.c
Python/compile.c
Python/mystrtoul.c

index b9f75a045be715fec474df71507819fd55c18da7..9b40ab591a4731feaa172a5940f466c6b5e50ed0 100644 (file)
@@ -35,7 +35,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "modsupport.h"
 
 #include "regexpr.h"
-#include "ctype.h"
+#include <ctype.h>
 
 static object *RegexError;     /* Exception */ 
 
@@ -433,7 +433,7 @@ symcomp(pattern, gdict)
                                        ++o; /* eat the '>' */
                                        break;
                                }
-                               if (!isalnum(*o) && *o != '_') {
+                               if (!isalnum(Py_CHARMASK(*o)) && *o != '_') {
                                        o = backtrack;
                                        break;
                                }
index 326dfb8854a0f4729f0a1db92ad984dc4d62dc6a..90ee4fd166c8b2cb7f7ccb4dda468c4d8a1ab144 100644 (file)
@@ -41,7 +41,6 @@ strop_split(self, args)
 {
        int len, i, j, err;
        char *s;
-       char c;
        object *list, *item;
 
        if (!getargs(args, "s#", &s, &len))
@@ -52,13 +51,11 @@ strop_split(self, args)
 
        i = 0;
        while (i < len) {
-               while (i < len &&
-                      ((c = s[i]), isspace(c))) {
+               while (i < len && isspace(Py_CHARMASK(s[i]))) {
                        i = i+1;
                }
                j = i;
-               while (i < len &&
-                      !((c = s[i]), isspace(c))) {
+               while (i < len && isspace(Py_CHARMASK(s[i]))) {
                        i = i+1;
                }
                if (j < i) {
@@ -269,20 +266,19 @@ strop_strip(self, args)
 {
        char *s;
        int len, i, j;
-       char c;
 
        if (!getargs(args, "s#", &s, &len))
                return NULL;
 
        i = 0;
-       while (i < len && ((c = s[i]), isspace(c))) {
+       while (i < len && isspace(Py_CHARMASK(s[i]))) {
                i++;
        }
 
        j = len;
        do {
                j--;
-       } while (j >= i &&  ((c = s[j]), isspace(c)));
+       } while (j >= i && isspace(Py_CHARMASK(s[i])));
        j++;
 
        if (i == 0 && j == len) {
@@ -312,7 +308,7 @@ strop_lower(self, args)
        s_new = getstringvalue(new);
        changed = 0;
        for (i = 0; i < n; i++) {
-               char c = *s++;
+               int c = Py_CHARMASK(*s++);
                if (isupper(c)) {
                        changed = 1;
                        *s_new = tolower(c);
@@ -347,7 +343,7 @@ strop_upper(self, args)
        s_new = getstringvalue(new);
        changed = 0;
        for (i = 0; i < n; i++) {
-               char c = *s++;
+               int c = Py_CHARMASK(*s++);
                if (islower(c)) {
                        changed = 1;
                        *s_new = toupper(c);
@@ -382,7 +378,7 @@ strop_swapcase(self, args)
        s_new = getstringvalue(new);
        changed = 0;
        for (i = 0; i < n; i++) {
-               char c = *s++;
+               int c = Py_CHARMASK(*s++);
                if (islower(c)) {
                        changed = 1;
                        *s_new = toupper(c);
@@ -530,7 +526,7 @@ initstrop()
 
        /* Create 'whitespace' object */
        n = 0;
-       for (c = 1; c < 256; c++) {
+       for (c = 0; c < 256; c++) {
                if (isspace(c))
                        buf[n++] = c;
        }
@@ -541,7 +537,7 @@ initstrop()
        }
        /* Create 'lowercase' object */
        n = 0;
-       for (c = 1; c < 256; c++) {
+       for (c = 0; c < 256; c++) {
                if (islower(c))
                        buf[n++] = c;
        }
@@ -553,7 +549,7 @@ initstrop()
 
        /* Create 'uppercase' object */
        n = 0;
-       for (c = 1; c < 256; c++) {
+       for (c = 0; c < 256; c++) {
                if (isupper(c))
                        buf[n++] = c;
        }
index 48fce5b6138369f03c54e7cc3d0abdbe56ac4b32..411e7f313241e9e986652a362d8103a80947c6c7 100644 (file)
@@ -753,7 +753,8 @@ eval_code(co, globals, locals, owner, arg)
                                /* XXX move into writeobject() ? */
                                char *s = getstringvalue(v);
                                int len = getstringsize(v);
-                               if (len > 0 && isspace(s[len-1]) &&
+                               if (len > 0 &&
+                                   isspace(Py_CHARMASK(s[len-1])) &&
                                    s[len-1] != ' ')
                                        softspace(w, 0);
                        }
index 45bed3933e3370b03025e333aa3298fc0cb3dcad..cb25da2f968d05a6fe86dba3525006e07c4079aa 100644 (file)
@@ -608,12 +608,12 @@ parsestr(s)
                        *p++ = c;
                        break;
                case 'x':
-                       if (isxdigit(*s)) {
+                       if (isxdigit(Py_CHARMASK(*s))) {
                                sscanf(s, "%x", &c);
                                *p++ = c;
                                do {
                                        s++;
-                               } while (isxdigit(*s));
+                               } while (isxdigit(Py_CHARMASK(*s)));
                                break;
                        }
                /* FALLTHROUGH */
index e7c0a570bf5343ef87bb3c3aba12993a88fa5e90..a6462837899b688ca614dfca4e2d6f258dfa3a58 100644 (file)
@@ -26,6 +26,14 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "config.h"
 #endif
 
+/* Convert a possibly signed character to a nonnegative int */
+/* XXX This assumes characters are 8 bits wide */
+#ifdef __CHAR_UNSIGNED__
+#define Py_CHARMASK(c)         (c)
+#else
+#define Py_CHARMASK(c)         ((c) & 0xff)
+#endif
+
 #include "rename2.h"
 
 /* strtol and strtoul, renamed to avoid conflicts */
@@ -70,7 +78,7 @@ int           base;
     }
 
 /* skip leading white space */
-    while (*str && isspace(*str))
+    while (*str && isspace(Py_CHARMASK(*str)))
        str++;
 
 /* check for leading 0 or 0x for auto-base or base 16 */
@@ -99,7 +107,7 @@ int          base;
     }
 
 /* do the conversion */
-    while (c = *str)
+    while (c = Py_CHARMASK(*str))
     {
        if (isdigit(c) && c - '0' < base)
            c -= '0';
@@ -143,7 +151,7 @@ int base;
        long result;
        char sign;
        
-       while (*str && isspace(*str))
+       while (*str && isspace(Py_CHARMASK(*str)))
                str++;
        
        sign = *str;