Commit 0d2f16a6 authored by Benjamin Peterson's avatar Benjamin Peterson

remove some usage of Py_UNICODE_TOUPPER/LOWER

parent 04fd196b
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK #define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL #define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL #define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
#define STRINGLIB_STR PyUnicode_1BYTE_DATA #define STRINGLIB_STR PyUnicode_1BYTE_DATA
#define STRINGLIB_LEN PyUnicode_GET_LENGTH #define STRINGLIB_LEN PyUnicode_GET_LENGTH
#define STRINGLIB_NEW unicode_fromascii #define STRINGLIB_NEW unicode_fromascii
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
#define STRINGLIB_ISLINEBREAK(x) ((x == '\n') || (x == '\r')) #define STRINGLIB_ISLINEBREAK(x) ((x == '\n') || (x == '\r'))
#define STRINGLIB_ISDECIMAL(x) ((x >= '0') && (x <= '9')) #define STRINGLIB_ISDECIMAL(x) ((x >= '0') && (x <= '9'))
#define STRINGLIB_TODECIMAL(x) (STRINGLIB_ISDECIMAL(x) ? (x - '0') : -1) #define STRINGLIB_TODECIMAL(x) (STRINGLIB_ISDECIMAL(x) ? (x - '0') : -1)
#define STRINGLIB_TOUPPER Py_TOUPPER
#define STRINGLIB_TOLOWER Py_TOLOWER
#define STRINGLIB_STR PyBytes_AS_STRING #define STRINGLIB_STR PyBytes_AS_STRING
#define STRINGLIB_LEN PyBytes_GET_SIZE #define STRINGLIB_LEN PyBytes_GET_SIZE
#define STRINGLIB_NEW PyBytes_FromStringAndSize #define STRINGLIB_NEW PyBytes_FromStringAndSize
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK #define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL #define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL #define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
#define STRINGLIB_STR PyUnicode_1BYTE_DATA #define STRINGLIB_STR PyUnicode_1BYTE_DATA
#define STRINGLIB_LEN PyUnicode_GET_LENGTH #define STRINGLIB_LEN PyUnicode_GET_LENGTH
#define STRINGLIB_NEW _PyUnicode_FromUCS1 #define STRINGLIB_NEW _PyUnicode_FromUCS1
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK #define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL #define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL #define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
#define STRINGLIB_STR PyUnicode_2BYTE_DATA #define STRINGLIB_STR PyUnicode_2BYTE_DATA
#define STRINGLIB_LEN PyUnicode_GET_LENGTH #define STRINGLIB_LEN PyUnicode_GET_LENGTH
#define STRINGLIB_NEW _PyUnicode_FromUCS2 #define STRINGLIB_NEW _PyUnicode_FromUCS2
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK #define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL #define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL #define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
#define STRINGLIB_STR PyUnicode_4BYTE_DATA #define STRINGLIB_STR PyUnicode_4BYTE_DATA
#define STRINGLIB_LEN PyUnicode_GET_LENGTH #define STRINGLIB_LEN PyUnicode_GET_LENGTH
#define STRINGLIB_NEW _PyUnicode_FromUCS4 #define STRINGLIB_NEW _PyUnicode_FromUCS4
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK #define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL #define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL #define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
#define STRINGLIB_STR PyUnicode_AS_UNICODE #define STRINGLIB_STR PyUnicode_AS_UNICODE
#define STRINGLIB_LEN PyUnicode_GET_SIZE #define STRINGLIB_LEN PyUnicode_GET_SIZE
#define STRINGLIB_NEW PyUnicode_FromUnicode #define STRINGLIB_NEW PyUnicode_FromUnicode
......
...@@ -510,13 +510,14 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno, ...@@ -510,13 +510,14 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
kind = PyUnicode_KIND(*filename); kind = PyUnicode_KIND(*filename);
data = PyUnicode_DATA(*filename); data = PyUnicode_DATA(*filename);
#define ascii_lower(c) ((c <= 127) ? Py_TOLOWER(c) : 0)
/* if filename.lower().endswith((".pyc", ".pyo")): */ /* if filename.lower().endswith((".pyc", ".pyo")): */
if (len >= 4 && if (len >= 4 &&
PyUnicode_READ(kind, data, len-4) == '.' && PyUnicode_READ(kind, data, len-4) == '.' &&
Py_UNICODE_TOLOWER(PyUnicode_READ(kind, data, len-3)) == 'p' && ascii_lower(PyUnicode_READ(kind, data, len-3)) == 'p' &&
Py_UNICODE_TOLOWER(PyUnicode_READ(kind, data, len-2)) == 'y' && ascii_lower(PyUnicode_READ(kind, data, len-2)) == 'y' &&
(Py_UNICODE_TOLOWER(PyUnicode_READ(kind, data, len-1)) == 'c' || (ascii_lower(PyUnicode_READ(kind, data, len-1)) == 'c' ||
Py_UNICODE_TOLOWER(PyUnicode_READ(kind, data, len-1)) == 'o')) ascii_lower(PyUnicode_READ(kind, data, len-1)) == 'o'))
{ {
*filename = PyUnicode_Substring(*filename, 0, *filename = PyUnicode_Substring(*filename, 0,
PyUnicode_GET_LENGTH(*filename)-1); PyUnicode_GET_LENGTH(*filename)-1);
......
...@@ -561,13 +561,14 @@ fill_number(PyObject *out, Py_ssize_t pos, const NumberFieldWidths *spec, ...@@ -561,13 +561,14 @@ fill_number(PyObject *out, Py_ssize_t pos, const NumberFieldWidths *spec,
return -1; return -1;
if (toupper) { if (toupper) {
Py_ssize_t t; Py_ssize_t t;
/* XXX if the upper-case prefix is wider than the target for (t = 0; t < spec->n_prefix; t++) {
buffer, the caller should have allocated a wider string, Py_UCS4 c = PyUnicode_READ(kind, data, pos + t);
but currently doesn't. */ if (c > 127) {
for (t = 0; t < spec->n_prefix; ++t) PyErr_SetString(PyExc_SystemError, "prefix not ASCII");
PyUnicode_WRITE(kind, data, pos + t, return -1;
Py_UNICODE_TOUPPER( }
PyUnicode_READ(kind, data, pos + t))); PyUnicode_WRITE(kind, data, pos + t, Py_TOUPPER(c));
}
} }
pos += spec->n_prefix; pos += spec->n_prefix;
} }
...@@ -607,10 +608,14 @@ fill_number(PyObject *out, Py_ssize_t pos, const NumberFieldWidths *spec, ...@@ -607,10 +608,14 @@ fill_number(PyObject *out, Py_ssize_t pos, const NumberFieldWidths *spec,
} }
if (toupper) { if (toupper) {
Py_ssize_t t; Py_ssize_t t;
for (t = 0; t < spec->n_grouped_digits; ++t) for (t = 0; t < spec->n_grouped_digits; t++) {
PyUnicode_WRITE(kind, data, pos + t, Py_UCS4 c = PyUnicode_READ(kind, data, pos + t);
Py_UNICODE_TOUPPER( if (c > 127) {
PyUnicode_READ(kind, data, pos + t))); PyErr_SetString(PyExc_SystemError, "non-ascii grouped digit");
return -1;
}
PyUnicode_WRITE(kind, data, pos + t, Py_TOUPPER(c));
}
} }
pos += spec->n_grouped_digits; pos += spec->n_grouped_digits;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment