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:
David Malcolm 2010-11-05 17:23:41 +00:00
parent de11b189d1
commit 9696088b6d
4 changed files with 28 additions and 59 deletions

View File

@ -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)

View File

@ -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.

View File

@ -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;
}

View File

@ -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,