Use Py_CHARMASK for ctype macros. Fixes bug #232787.
This commit is contained in:
parent
a30c1001ef
commit
2b6727bd8a
|
@ -397,7 +397,7 @@ time_strptime(PyObject *self, PyObject *args)
|
|||
PyErr_SetString(PyExc_ValueError, "format mismatch");
|
||||
return NULL;
|
||||
}
|
||||
while (*s && isspace(*s))
|
||||
while (*s && isspace(Py_CHARMASK(*s)))
|
||||
s++;
|
||||
if (*s) {
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
|
|
|
@ -182,7 +182,7 @@ PyInt_FromString(char *s, char **pend, int base)
|
|||
x = (long) PyOS_strtoul(s, &end, base);
|
||||
else
|
||||
x = PyOS_strtol(s, &end, base);
|
||||
if (end == s || !isalnum(end[-1]))
|
||||
if (end == s || !isalnum(Py_CHARMASK(end[-1])))
|
||||
goto bad;
|
||||
while (*end && isspace(Py_CHARMASK(*end)))
|
||||
end++;
|
||||
|
|
|
@ -402,7 +402,7 @@ PyErr_Format(PyObject *exception, const char *format, ...)
|
|||
for (f = format; *f; f++) {
|
||||
if (*f == '%') {
|
||||
const char* p = f;
|
||||
while (*++f && *f != '%' && !isalpha(*f))
|
||||
while (*++f && *f != '%' && !isalpha(Py_CHARMASK(*f)))
|
||||
;
|
||||
switch (*f) {
|
||||
case 'c':
|
||||
|
@ -457,15 +457,15 @@ PyErr_Format(PyObject *exception, const char *format, ...)
|
|||
/* parse the width.precision part (we're only
|
||||
interested in the precision value, if any) */
|
||||
n = 0;
|
||||
while (isdigit(*f))
|
||||
while (isdigit(Py_CHARMASK(*f)))
|
||||
n = (n*10) + *f++ - '0';
|
||||
if (*f == '.') {
|
||||
f++;
|
||||
n = 0;
|
||||
while (isdigit(*f))
|
||||
while (isdigit(Py_CHARMASK(*f)))
|
||||
n = (n*10) + *f++ - '0';
|
||||
}
|
||||
while (*f && *f != '%' && !isalpha(*f))
|
||||
while (*f && *f != '%' && !isalpha(Py_CHARMASK(*f)))
|
||||
f++;
|
||||
switch (*f) {
|
||||
case 'c':
|
||||
|
|
Loading…
Reference in New Issue