Use Py_CHARMASK for ctype macros. Fixes bug #232787.
diff --git a/Python/errors.c b/Python/errors.c
index 7f30f7e..8d02b8e 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -402,7 +402,7 @@
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 @@
/* 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':