mirror of https://github.com/python/cpython
Issue #10288: The deprecated family of "char"-handling macros
(ISLOWER()/ISUPPER()/etc) have now been removed: use Py_ISLOWER() etc instead.
This commit is contained in:
parent
de11b189d1
commit
9696088b6d
|
@ -38,41 +38,6 @@ extern const char _Py_capitalize__doc__[];
|
|||
extern const char _Py_swapcase__doc__[];
|
||||
extern const char _Py_maketrans__doc__[];
|
||||
|
||||
/* These are left in for backward compatibility and will be removed
|
||||
in 2.8/3.2 */
|
||||
#define ISLOWER(c) Py_ISLOWER(c)
|
||||
#define ISUPPER(c) Py_ISUPPER(c)
|
||||
#define ISALPHA(c) Py_ISALPHA(c)
|
||||
#define ISDIGIT(c) Py_ISDIGIT(c)
|
||||
#define ISXDIGIT(c) Py_ISXDIGIT(c)
|
||||
#define ISALNUM(c) Py_ISALNUM(c)
|
||||
#define ISSPACE(c) Py_ISSPACE(c)
|
||||
|
||||
#undef islower
|
||||
#define islower(c) undefined_islower(c)
|
||||
#undef isupper
|
||||
#define isupper(c) undefined_isupper(c)
|
||||
#undef isalpha
|
||||
#define isalpha(c) undefined_isalpha(c)
|
||||
#undef isdigit
|
||||
#define isdigit(c) undefined_isdigit(c)
|
||||
#undef isxdigit
|
||||
#define isxdigit(c) undefined_isxdigit(c)
|
||||
#undef isalnum
|
||||
#define isalnum(c) undefined_isalnum(c)
|
||||
#undef isspace
|
||||
#define isspace(c) undefined_isspace(c)
|
||||
|
||||
/* These are left in for backward compatibility and will be removed
|
||||
in 2.8/3.2 */
|
||||
#define TOLOWER(c) Py_TOLOWER(c)
|
||||
#define TOUPPER(c) Py_TOUPPER(c)
|
||||
|
||||
#undef tolower
|
||||
#define tolower(c) undefined_tolower(c)
|
||||
#undef toupper
|
||||
#define toupper(c) undefined_toupper(c)
|
||||
|
||||
/* this is needed because some docs are shared from the .o, not static */
|
||||
#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
|
||||
|
||||
|
|
|
@ -252,6 +252,10 @@ Extensions
|
|||
C-API
|
||||
-----
|
||||
|
||||
- Issue #10288: The deprecated family of "char"-handling macros
|
||||
(ISLOWER()/ISUPPER()/etc) have now been removed: use Py_ISLOWER() etc
|
||||
instead.
|
||||
|
||||
- Issue #9778: Hash values are now always the size of pointers. A new Py_hash_t
|
||||
type has been introduced.
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ PyBytes_FromFormatV(const char *format, va_list vargs)
|
|||
for (f = format; *f; f++) {
|
||||
if (*f == '%') {
|
||||
const char* p = f;
|
||||
while (*++f && *f != '%' && !ISALPHA(*f))
|
||||
while (*++f && *f != '%' && !Py_ISALPHA(*f))
|
||||
;
|
||||
|
||||
/* skip the 'l' or 'z' in {%ld, %zd, %lu, %zu} since
|
||||
|
@ -247,15 +247,15 @@ PyBytes_FromFormatV(const char *format, va_list vargs)
|
|||
/* parse the width.precision part (we're only
|
||||
interested in the precision value, if any) */
|
||||
n = 0;
|
||||
while (ISDIGIT(*f))
|
||||
while (Py_ISDIGIT(*f))
|
||||
n = (n*10) + *f++ - '0';
|
||||
if (*f == '.') {
|
||||
f++;
|
||||
n = 0;
|
||||
while (ISDIGIT(*f))
|
||||
while (Py_ISDIGIT(*f))
|
||||
n = (n*10) + *f++ - '0';
|
||||
}
|
||||
while (*f && *f != '%' && !ISALPHA(*f))
|
||||
while (*f && *f != '%' && !Py_ISALPHA(*f))
|
||||
f++;
|
||||
/* handle the long flag, but only for %ld and %lu.
|
||||
others can be added when necessary. */
|
||||
|
@ -446,22 +446,22 @@ PyObject *PyBytes_DecodeEscape(const char *s,
|
|||
*p++ = c;
|
||||
break;
|
||||
case 'x':
|
||||
if (s+1 < end && ISXDIGIT(s[0]) && ISXDIGIT(s[1])) {
|
||||
if (s+1 < end && Py_ISXDIGIT(s[0]) && Py_ISXDIGIT(s[1])) {
|
||||
unsigned int x = 0;
|
||||
c = Py_CHARMASK(*s);
|
||||
s++;
|
||||
if (ISDIGIT(c))
|
||||
if (Py_ISDIGIT(c))
|
||||
x = c - '0';
|
||||
else if (ISLOWER(c))
|
||||
else if (Py_ISLOWER(c))
|
||||
x = 10 + c - 'a';
|
||||
else
|
||||
x = 10 + c - 'A';
|
||||
x = x << 4;
|
||||
c = Py_CHARMASK(*s);
|
||||
s++;
|
||||
if (ISDIGIT(c))
|
||||
if (Py_ISDIGIT(c))
|
||||
x += c - '0';
|
||||
else if (ISLOWER(c))
|
||||
else if (Py_ISLOWER(c))
|
||||
x += 10 + c - 'a';
|
||||
else
|
||||
x += 10 + c - 'A';
|
||||
|
@ -1406,7 +1406,7 @@ do_strip(PyBytesObject *self, int striptype)
|
|||
|
||||
i = 0;
|
||||
if (striptype != RIGHTSTRIP) {
|
||||
while (i < len && ISSPACE(s[i])) {
|
||||
while (i < len && Py_ISSPACE(s[i])) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
@ -1415,7 +1415,7 @@ do_strip(PyBytesObject *self, int striptype)
|
|||
if (striptype != LEFTSTRIP) {
|
||||
do {
|
||||
j--;
|
||||
} while (j >= i && ISSPACE(s[j]));
|
||||
} while (j >= i && Py_ISSPACE(s[j]));
|
||||
j++;
|
||||
}
|
||||
|
||||
|
@ -2347,11 +2347,11 @@ hex_digit_to_int(Py_UNICODE c)
|
|||
{
|
||||
if (c >= 128)
|
||||
return -1;
|
||||
if (ISDIGIT(c))
|
||||
if (Py_ISDIGIT(c))
|
||||
return c - '0';
|
||||
else {
|
||||
if (ISUPPER(c))
|
||||
c = TOLOWER(c);
|
||||
if (Py_ISUPPER(c))
|
||||
c = Py_TOLOWER(c);
|
||||
if (c >= 'a' && c <= 'f')
|
||||
return c - 'a' + 10;
|
||||
}
|
||||
|
|
|
@ -757,9 +757,9 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
|
|||
continue;
|
||||
if (*(f+1)=='S' || *(f+1)=='R' || *(f+1)=='A')
|
||||
++callcount;
|
||||
while (ISDIGIT((unsigned)*f))
|
||||
while (Py_ISDIGIT((unsigned)*f))
|
||||
width = (width*10) + *f++ - '0';
|
||||
while (*++f && *f != '%' && !ISALPHA((unsigned)*f))
|
||||
while (*++f && *f != '%' && !Py_ISALPHA((unsigned)*f))
|
||||
;
|
||||
if (*f == 's')
|
||||
++callcount;
|
||||
|
@ -790,9 +790,9 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
|
|||
#endif
|
||||
const char* p = f;
|
||||
width = 0;
|
||||
while (ISDIGIT((unsigned)*f))
|
||||
while (Py_ISDIGIT((unsigned)*f))
|
||||
width = (width*10) + *f++ - '0';
|
||||
while (*++f && *f != '%' && !ISALPHA((unsigned)*f))
|
||||
while (*++f && *f != '%' && !Py_ISALPHA((unsigned)*f))
|
||||
;
|
||||
|
||||
/* skip the 'l' or 'z' in {%ld, %zd, %lu, %zu} since
|
||||
|
@ -965,12 +965,12 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
|
|||
zeropad = (*f == '0');
|
||||
/* parse the width.precision part */
|
||||
width = 0;
|
||||
while (ISDIGIT((unsigned)*f))
|
||||
while (Py_ISDIGIT((unsigned)*f))
|
||||
width = (width*10) + *f++ - '0';
|
||||
precision = 0;
|
||||
if (*f == '.') {
|
||||
f++;
|
||||
while (ISDIGIT((unsigned)*f))
|
||||
while (Py_ISDIGIT((unsigned)*f))
|
||||
precision = (precision*10) + *f++ - '0';
|
||||
}
|
||||
/* Handle %ld, %lu, %lld and %llu. */
|
||||
|
@ -1419,8 +1419,8 @@ normalize_encoding(const char *encoding,
|
|||
while (*e) {
|
||||
if (l == l_end)
|
||||
return 0;
|
||||
if (ISUPPER(*e)) {
|
||||
*l++ = TOLOWER(*e++);
|
||||
if (Py_ISUPPER(*e)) {
|
||||
*l++ = Py_TOLOWER(*e++);
|
||||
}
|
||||
else if (*e == '_') {
|
||||
*l++ = '-';
|
||||
|
@ -3790,7 +3790,7 @@ PyObject *PyUnicode_DecodeUnicodeEscape(const char *s,
|
|||
}
|
||||
for (i = 0; i < digits; ++i) {
|
||||
c = (unsigned char) s[i];
|
||||
if (!ISXDIGIT(c)) {
|
||||
if (!Py_ISXDIGIT(c)) {
|
||||
endinpos = (s+i+1)-starts;
|
||||
if (unicode_decode_call_errorhandler(
|
||||
errors, &errorHandler,
|
||||
|
@ -4156,7 +4156,7 @@ PyObject *PyUnicode_DecodeRawUnicodeEscape(const char *s,
|
|||
outpos = p-PyUnicode_AS_UNICODE(v);
|
||||
for (x = 0, i = 0; i < count; ++i, ++s) {
|
||||
c = (unsigned char)*s;
|
||||
if (!ISXDIGIT(c)) {
|
||||
if (!Py_ISXDIGIT(c)) {
|
||||
endinpos = s-starts;
|
||||
if (unicode_decode_call_errorhandler(
|
||||
errors, &errorHandler,
|
||||
|
|
Loading…
Reference in New Issue