diff options
author | Guido van Rossum <guido@python.org> | 1995-02-10 17:01:56 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1995-02-10 17:01:56 (GMT) |
commit | 7f7f27483996ae9fcb2ed4fb0a3690280cda7b4a (patch) | |
tree | 5d67635bbdfd2fe5bb0b055d532c371716c59d91 /Python | |
parent | 760dd1031a8db93dc53ae3eb836bcc44a36918a1 (diff) | |
download | cpython-7f7f27483996ae9fcb2ed4fb0a3690280cda7b4a.zip cpython-7f7f27483996ae9fcb2ed4fb0a3690280cda7b4a.tar.gz cpython-7f7f27483996ae9fcb2ed4fb0a3690280cda7b4a.tar.bz2 |
use Py_CHARMASK
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 3 | ||||
-rw-r--r-- | Python/compile.c | 4 | ||||
-rw-r--r-- | Python/mystrtoul.c | 14 |
3 files changed, 15 insertions, 6 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 48fce5b..411e7f3 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -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); } diff --git a/Python/compile.c b/Python/compile.c index 45bed39..cb25da2 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -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 */ diff --git a/Python/mystrtoul.c b/Python/mystrtoul.c index e7c0a57..a646283 100644 --- a/Python/mystrtoul.c +++ b/Python/mystrtoul.c @@ -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; |