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_swapcase__doc__[];
|
||||||
extern const char _Py_maketrans__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 */
|
/* 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)
|
#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
|
||||||
|
|
||||||
|
|
|
@ -252,6 +252,10 @@ Extensions
|
||||||
C-API
|
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
|
- Issue #9778: Hash values are now always the size of pointers. A new Py_hash_t
|
||||||
type has been introduced.
|
type has been introduced.
|
||||||
|
|
||||||
|
|
|
@ -178,7 +178,7 @@ PyBytes_FromFormatV(const char *format, va_list vargs)
|
||||||
for (f = format; *f; f++) {
|
for (f = format; *f; f++) {
|
||||||
if (*f == '%') {
|
if (*f == '%') {
|
||||||
const char* p = 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
|
/* 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
|
/* parse the width.precision part (we're only
|
||||||
interested in the precision value, if any) */
|
interested in the precision value, if any) */
|
||||||
n = 0;
|
n = 0;
|
||||||
while (ISDIGIT(*f))
|
while (Py_ISDIGIT(*f))
|
||||||
n = (n*10) + *f++ - '0';
|
n = (n*10) + *f++ - '0';
|
||||||
if (*f == '.') {
|
if (*f == '.') {
|
||||||
f++;
|
f++;
|
||||||
n = 0;
|
n = 0;
|
||||||
while (ISDIGIT(*f))
|
while (Py_ISDIGIT(*f))
|
||||||
n = (n*10) + *f++ - '0';
|
n = (n*10) + *f++ - '0';
|
||||||
}
|
}
|
||||||
while (*f && *f != '%' && !ISALPHA(*f))
|
while (*f && *f != '%' && !Py_ISALPHA(*f))
|
||||||
f++;
|
f++;
|
||||||
/* handle the long flag, but only for %ld and %lu.
|
/* handle the long flag, but only for %ld and %lu.
|
||||||
others can be added when necessary. */
|
others can be added when necessary. */
|
||||||
|
@ -446,22 +446,22 @@ PyObject *PyBytes_DecodeEscape(const char *s,
|
||||||
*p++ = c;
|
*p++ = c;
|
||||||
break;
|
break;
|
||||||
case 'x':
|
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;
|
unsigned int x = 0;
|
||||||
c = Py_CHARMASK(*s);
|
c = Py_CHARMASK(*s);
|
||||||
s++;
|
s++;
|
||||||
if (ISDIGIT(c))
|
if (Py_ISDIGIT(c))
|
||||||
x = c - '0';
|
x = c - '0';
|
||||||
else if (ISLOWER(c))
|
else if (Py_ISLOWER(c))
|
||||||
x = 10 + c - 'a';
|
x = 10 + c - 'a';
|
||||||
else
|
else
|
||||||
x = 10 + c - 'A';
|
x = 10 + c - 'A';
|
||||||
x = x << 4;
|
x = x << 4;
|
||||||
c = Py_CHARMASK(*s);
|
c = Py_CHARMASK(*s);
|
||||||
s++;
|
s++;
|
||||||
if (ISDIGIT(c))
|
if (Py_ISDIGIT(c))
|
||||||
x += c - '0';
|
x += c - '0';
|
||||||
else if (ISLOWER(c))
|
else if (Py_ISLOWER(c))
|
||||||
x += 10 + c - 'a';
|
x += 10 + c - 'a';
|
||||||
else
|
else
|
||||||
x += 10 + c - 'A';
|
x += 10 + c - 'A';
|
||||||
|
@ -1406,7 +1406,7 @@ do_strip(PyBytesObject *self, int striptype)
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
if (striptype != RIGHTSTRIP) {
|
if (striptype != RIGHTSTRIP) {
|
||||||
while (i < len && ISSPACE(s[i])) {
|
while (i < len && Py_ISSPACE(s[i])) {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1415,7 +1415,7 @@ do_strip(PyBytesObject *self, int striptype)
|
||||||
if (striptype != LEFTSTRIP) {
|
if (striptype != LEFTSTRIP) {
|
||||||
do {
|
do {
|
||||||
j--;
|
j--;
|
||||||
} while (j >= i && ISSPACE(s[j]));
|
} while (j >= i && Py_ISSPACE(s[j]));
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2347,11 +2347,11 @@ hex_digit_to_int(Py_UNICODE c)
|
||||||
{
|
{
|
||||||
if (c >= 128)
|
if (c >= 128)
|
||||||
return -1;
|
return -1;
|
||||||
if (ISDIGIT(c))
|
if (Py_ISDIGIT(c))
|
||||||
return c - '0';
|
return c - '0';
|
||||||
else {
|
else {
|
||||||
if (ISUPPER(c))
|
if (Py_ISUPPER(c))
|
||||||
c = TOLOWER(c);
|
c = Py_TOLOWER(c);
|
||||||
if (c >= 'a' && c <= 'f')
|
if (c >= 'a' && c <= 'f')
|
||||||
return c - 'a' + 10;
|
return c - 'a' + 10;
|
||||||
}
|
}
|
||||||
|
|
|
@ -757,9 +757,9 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
|
||||||
continue;
|
continue;
|
||||||
if (*(f+1)=='S' || *(f+1)=='R' || *(f+1)=='A')
|
if (*(f+1)=='S' || *(f+1)=='R' || *(f+1)=='A')
|
||||||
++callcount;
|
++callcount;
|
||||||
while (ISDIGIT((unsigned)*f))
|
while (Py_ISDIGIT((unsigned)*f))
|
||||||
width = (width*10) + *f++ - '0';
|
width = (width*10) + *f++ - '0';
|
||||||
while (*++f && *f != '%' && !ISALPHA((unsigned)*f))
|
while (*++f && *f != '%' && !Py_ISALPHA((unsigned)*f))
|
||||||
;
|
;
|
||||||
if (*f == 's')
|
if (*f == 's')
|
||||||
++callcount;
|
++callcount;
|
||||||
|
@ -790,9 +790,9 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
|
||||||
#endif
|
#endif
|
||||||
const char* p = f;
|
const char* p = f;
|
||||||
width = 0;
|
width = 0;
|
||||||
while (ISDIGIT((unsigned)*f))
|
while (Py_ISDIGIT((unsigned)*f))
|
||||||
width = (width*10) + *f++ - '0';
|
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
|
/* 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');
|
zeropad = (*f == '0');
|
||||||
/* parse the width.precision part */
|
/* parse the width.precision part */
|
||||||
width = 0;
|
width = 0;
|
||||||
while (ISDIGIT((unsigned)*f))
|
while (Py_ISDIGIT((unsigned)*f))
|
||||||
width = (width*10) + *f++ - '0';
|
width = (width*10) + *f++ - '0';
|
||||||
precision = 0;
|
precision = 0;
|
||||||
if (*f == '.') {
|
if (*f == '.') {
|
||||||
f++;
|
f++;
|
||||||
while (ISDIGIT((unsigned)*f))
|
while (Py_ISDIGIT((unsigned)*f))
|
||||||
precision = (precision*10) + *f++ - '0';
|
precision = (precision*10) + *f++ - '0';
|
||||||
}
|
}
|
||||||
/* Handle %ld, %lu, %lld and %llu. */
|
/* Handle %ld, %lu, %lld and %llu. */
|
||||||
|
@ -1419,8 +1419,8 @@ normalize_encoding(const char *encoding,
|
||||||
while (*e) {
|
while (*e) {
|
||||||
if (l == l_end)
|
if (l == l_end)
|
||||||
return 0;
|
return 0;
|
||||||
if (ISUPPER(*e)) {
|
if (Py_ISUPPER(*e)) {
|
||||||
*l++ = TOLOWER(*e++);
|
*l++ = Py_TOLOWER(*e++);
|
||||||
}
|
}
|
||||||
else if (*e == '_') {
|
else if (*e == '_') {
|
||||||
*l++ = '-';
|
*l++ = '-';
|
||||||
|
@ -3790,7 +3790,7 @@ PyObject *PyUnicode_DecodeUnicodeEscape(const char *s,
|
||||||
}
|
}
|
||||||
for (i = 0; i < digits; ++i) {
|
for (i = 0; i < digits; ++i) {
|
||||||
c = (unsigned char) s[i];
|
c = (unsigned char) s[i];
|
||||||
if (!ISXDIGIT(c)) {
|
if (!Py_ISXDIGIT(c)) {
|
||||||
endinpos = (s+i+1)-starts;
|
endinpos = (s+i+1)-starts;
|
||||||
if (unicode_decode_call_errorhandler(
|
if (unicode_decode_call_errorhandler(
|
||||||
errors, &errorHandler,
|
errors, &errorHandler,
|
||||||
|
@ -4156,7 +4156,7 @@ PyObject *PyUnicode_DecodeRawUnicodeEscape(const char *s,
|
||||||
outpos = p-PyUnicode_AS_UNICODE(v);
|
outpos = p-PyUnicode_AS_UNICODE(v);
|
||||||
for (x = 0, i = 0; i < count; ++i, ++s) {
|
for (x = 0, i = 0; i < count; ++i, ++s) {
|
||||||
c = (unsigned char)*s;
|
c = (unsigned char)*s;
|
||||||
if (!ISXDIGIT(c)) {
|
if (!Py_ISXDIGIT(c)) {
|
||||||
endinpos = s-starts;
|
endinpos = s-starts;
|
||||||
if (unicode_decode_call_errorhandler(
|
if (unicode_decode_call_errorhandler(
|
||||||
errors, &errorHandler,
|
errors, &errorHandler,
|
||||||
|
|
Loading…
Reference in New Issue