Serhiy Storchaka <storch...@gmail.com> added the comment:
> Since assert(0) always fails, return can never happen (and was not added
> above. So I would think remove it.
This will cause a compiler warning in non-debug mode.
Here is updated patch with all other comments taken into account.
----------
Added file: http://bugs.python.org/file26102/enum_PyUnicode_Kind-2.patch
_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15092>
_______________________________________
diff -r aa153b827d17 Include/unicodeobject.h
--- a/Include/unicodeobject.h Fri Jun 22 22:49:12 2012 -0500
+++ b/Include/unicodeobject.h Sat Jun 23 11:04:31 2012 +0300
@@ -1013,7 +1013,7 @@
);
#ifndef Py_LIMITED_API
-PyAPI_FUNC(void*) _PyUnicode_AsKind(PyObject *s, unsigned int kind);
+PyAPI_FUNC(void*) _PyUnicode_AsKind(PyObject *s, enum PyUnicode_Kind kind);
#endif
#endif
diff -r aa153b827d17 Modules/_csv.c
--- a/Modules/_csv.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_csv.c Sat Jun 23 11:04:31 2012 +0300
@@ -774,7 +774,7 @@
PyObject *fields = NULL;
Py_UCS4 c;
Py_ssize_t pos, linelen;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
void *data;
PyObject *lineobj;
@@ -973,7 +973,8 @@
* record length.
*/
static Py_ssize_t
-join_append_data(WriterObj *self, unsigned int field_kind, void *field_data,
+join_append_data(WriterObj *self,
+ enum PyUnicode_Kind field_kind, void *field_data,
Py_ssize_t field_len, int quote_empty, int *quoted,
int copy_phase)
{
@@ -1093,7 +1094,7 @@
static int
join_append(WriterObj *self, PyObject *field, int *quoted, int quote_empty)
{
- unsigned int field_kind = -1;
+ enum PyUnicode_Kind field_kind = -1;
void *field_data = NULL;
Py_ssize_t field_len = 0;
Py_ssize_t rec_len;
@@ -1123,7 +1124,7 @@
join_append_lineterminator(WriterObj *self)
{
Py_ssize_t terminator_len, i;
- unsigned int term_kind;
+ enum PyUnicode_Kind term_kind;
void *term_data;
terminator_len = PyUnicode_GET_LENGTH(self->dialect->lineterminator);
diff -r aa153b827d17 Modules/_elementtree.c
--- a/Modules/_elementtree.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_elementtree.c Sat Jun 23 11:04:31 2012 +0300
@@ -869,7 +869,7 @@
if (PyUnicode_Check(tag)) {
const Py_ssize_t len = PyUnicode_GET_LENGTH(tag);
void *data = PyUnicode_DATA(tag);
- unsigned int kind = PyUnicode_KIND(tag);
+ enum PyUnicode_Kind kind = PyUnicode_KIND(tag);
for (i = 0; i < len; i++) {
Py_UCS4 ch = PyUnicode_READ(kind, data, i);
if (ch == '{')
@@ -2947,7 +2947,7 @@
unsigned char s[256];
int i;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
memset(info, 0, sizeof(XML_Encoding));
diff -r aa153b827d17 Modules/_io/_iomodule.h
--- a/Modules/_io/_iomodule.h Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_io/_iomodule.h Sat Jun 23 11:04:31 2012 +0300
@@ -55,7 +55,7 @@
Otherwise, the function will scan further and return garbage. */
extern Py_ssize_t _PyIO_find_line_ending(
int translated, int universal, PyObject *readnl,
- int kind, char *start, char *end, Py_ssize_t *consumed);
+ enum PyUnicode_Kind kind, char *start, char *end, Py_ssize_t *consumed);
#define DEFAULT_BUFFER_SIZE (8 * 1024) /* bytes */
diff -r aa153b827d17 Modules/_io/textio.c
--- a/Modules/_io/textio.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_io/textio.c Sat Jun 23 11:04:31 2012 +0300
@@ -301,7 +301,7 @@
output_len = PyUnicode_GET_LENGTH(output);
if (self->pendingcr && (final || output_len > 0)) {
/* Prefix output with CR */
- int kind;
+ enum PyUnicode_Kind kind;
PyObject *modified;
char *out;
@@ -311,7 +311,7 @@
goto error;
kind = PyUnicode_KIND(modified);
out = PyUnicode_DATA(modified);
- PyUnicode_WRITE(kind, PyUnicode_DATA(modified), 0, '\r');
+ PyUnicode_WRITE(kind, out, 0, '\r');
memcpy(out + kind, PyUnicode_DATA(output), kind * output_len);
Py_DECREF(output);
output = modified; /* output remains ready */
@@ -342,7 +342,7 @@
Py_ssize_t len;
int seennl = self->seennl;
int only_lf = 0;
- int kind;
+ enum PyUnicode_Kind kind;
in_str = PyUnicode_DATA(output);
len = PyUnicode_GET_LENGTH(output);
@@ -417,7 +417,7 @@
}
else {
void *translated;
- int kind = PyUnicode_KIND(output);
+ kind = PyUnicode_KIND(output);
void *in_str = PyUnicode_DATA(output);
Py_ssize_t in, out;
/* XXX: Previous in-place translation here is disabled as
@@ -1600,7 +1600,7 @@
that is to the NUL character. Otherwise the function will produce
incorrect results. */
static char *
-find_control_char(int kind, char *s, char *end, Py_UCS4 ch)
+find_control_char(enum PyUnicode_Kind kind, char *s, char *end, Py_UCS4 ch)
{
if (kind == PyUnicode_1BYTE_KIND) {
assert(ch < 256);
@@ -1620,7 +1620,7 @@
Py_ssize_t
_PyIO_find_line_ending(
int translated, int universal, PyObject *readnl,
- int kind, char *start, char *end, Py_ssize_t *consumed)
+ enum PyUnicode_Kind kind, char *start, char *end, Py_ssize_t *consumed)
{
Py_ssize_t len = ((char*)end - (char*)start)/kind;
@@ -1720,7 +1720,7 @@
while (1) {
char *ptr;
Py_ssize_t line_len;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t consumed = 0;
/* First, get some data if necessary */
diff -r aa153b827d17 Modules/_json.c
--- a/Modules/_json.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_json.c Sat Jun 23 11:04:31 2012 +0300
@@ -204,7 +204,7 @@
PyObject *rval;
void *input;
unsigned char *output;
- int kind;
+ enum PyUnicode_Kind kind;
if (PyUnicode_READY(pystr) == -1)
return NULL;
@@ -331,7 +331,7 @@
Py_ssize_t begin = end - 1;
Py_ssize_t next /* = begin */;
const void *buf;
- int kind;
+ enum PyUnicode_Kind kind;
PyObject *chunks = NULL;
PyObject *chunk = NULL;
@@ -613,7 +613,7 @@
Returns a new PyObject (usually a dict, but object_hook can change that)
*/
void *str;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t end_idx;
PyObject *val = NULL;
PyObject *rval = NULL;
@@ -755,7 +755,7 @@
Returns a new PyList
*/
void *str;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t end_idx;
PyObject *val = NULL;
PyObject *rval = PyList_New(0);
@@ -858,7 +858,7 @@
May return other types if parse_int or parse_float are set
*/
void *str;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t end_idx;
Py_ssize_t idx = start;
int is_float = 0;
@@ -975,7 +975,7 @@
*/
PyObject *res;
void *str;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t length;
if (PyUnicode_READY(pystr) == -1)
diff -r aa153b827d17 Modules/_pickle.c
--- a/Modules/_pickle.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_pickle.c Sat Jun 23 11:04:31 2012 +0300
@@ -1814,7 +1814,7 @@
char *p;
Py_ssize_t i, size, expandsize;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
if (PyUnicode_READY(obj))
return NULL;
diff -r aa153b827d17 Modules/_sqlite/connection.c
--- a/Modules/_sqlite/connection.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_sqlite/connection.c Sat Jun 23 11:04:31 2012 +0300
@@ -1440,7 +1440,7 @@
_Py_IDENTIFIER(upper);
char *uppercase_name_str;
int rc;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
diff -r aa153b827d17 Modules/_tkinter.c
--- a/Modules/_tkinter.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/_tkinter.c Sat Jun 23 11:04:31 2012 +0300
@@ -965,7 +965,7 @@
else if (PyUnicode_Check(value)) {
void *inbuf;
Py_ssize_t size;
- int kind;
+ enum PyUnicode_Kind kind;
Tcl_UniChar *outbuf = NULL;
Py_ssize_t i;
size_t allocsize;
diff -r aa153b827d17 Modules/operator.c
--- a/Modules/operator.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/operator.c Sat Jun 23 11:04:31 2012 +0300
@@ -403,7 +403,7 @@
PyObject *item = PyTuple_GET_ITEM(args, idx);
Py_ssize_t item_len;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
int dot_count;
if (!PyUnicode_Check(item)) {
diff -r aa153b827d17 Modules/pyexpat.c
--- a/Modules/pyexpat.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/pyexpat.c Sat Jun 23 11:04:31 2012 +0300
@@ -1102,7 +1102,7 @@
PyUnicodeObject *_u_string = NULL;
int result = 0;
int i;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
/* Yes, supports only 8bit encodings */
diff -r aa153b827d17 Modules/unicodedata.c
--- a/Modules/unicodedata.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Modules/unicodedata.c Sat Jun 23 11:04:31 2012 +0300
@@ -497,7 +497,7 @@
PyObject *result;
Py_UCS4 *output;
Py_ssize_t i, o, osize;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
/* Longest decomposition in Unicode 3.2: U+FDFA */
Py_UCS4 stack[20];
@@ -637,7 +637,7 @@
nfc_nfkc(PyObject *self, PyObject *input, int k)
{
PyObject *result;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_UCS4 *output;
Py_ssize_t i, i1, o, len;
@@ -773,7 +773,7 @@
is_normalized(PyObject *self, PyObject *input, int nfc, int k)
{
Py_ssize_t i, len;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
unsigned char prev_combining = 0, quickcheck_mask;
diff -r aa153b827d17 Objects/bytearrayobject.c
--- a/Objects/bytearrayobject.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Objects/bytearrayobject.c Sat Jun 23 11:04:31 2012 +0300
@@ -2692,7 +2692,7 @@
Py_ssize_t hexlen, byteslen, i, j;
int top, bot;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
if (!PyArg_ParseTuple(args, "U:fromhex", &hexobj))
return NULL;
diff -r aa153b827d17 Objects/bytesobject.c
--- a/Objects/bytesobject.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Objects/bytesobject.c Sat Jun 23 11:04:31 2012 +0300
@@ -2372,7 +2372,7 @@
Py_ssize_t hexlen, byteslen, i, j;
int top, bot;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
if (!PyArg_ParseTuple(args, "U:fromhex", &hexobj))
return NULL;
diff -r aa153b827d17 Objects/exceptions.c
--- a/Objects/exceptions.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Objects/exceptions.c Sat Jun 23 11:04:31 2012 +0300
@@ -1274,7 +1274,7 @@
my_basename(PyObject *name)
{
Py_ssize_t i, size, offset;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(name))
diff -r aa153b827d17 Objects/unicodeobject.c
--- a/Objects/unicodeobject.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Objects/unicodeobject.c Sat Jun 23 11:04:31 2012 +0300
@@ -295,7 +295,7 @@
_PyUnicode_CheckConsistency(PyObject *op, int check_content)
{
PyASCIIObject *ascii;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
assert(PyUnicode_Check(op));
@@ -538,7 +538,7 @@
(BLOOM(bloom_linebreak, (ch)) && Py_UNICODE_ISLINEBREAK(ch)))
Py_LOCAL_INLINE(BLOOM_MASK)
-make_bloom_mask(int kind, void* ptr, Py_ssize_t len)
+make_bloom_mask(enum PyUnicode_Kind kind, void* ptr, Py_ssize_t len)
{
/* calculate simple bloom-style bitmask for a given unicode string */
@@ -609,7 +609,7 @@
static PyObject *
fixup(PyObject *self, Py_UCS4 (*fixfct)(PyObject *s));
-Py_LOCAL_INLINE(Py_ssize_t) findchar(void *s, int kind,
+Py_LOCAL_INLINE(Py_ssize_t) findchar(void *s, enum PyUnicode_Kind kind,
Py_ssize_t size, Py_UCS4 ch,
int direction)
{
@@ -1126,7 +1126,7 @@
PyObject *from, Py_ssize_t from_start,
Py_ssize_t how_many, int check_maxchar)
{
- unsigned int from_kind, to_kind;
+ enum PyUnicode_Kind from_kind, to_kind;
void *from_data, *to_data;
assert(0 <= how_many);
@@ -1856,7 +1856,7 @@
}
static Py_UCS4
-kind_maxchar_limit(unsigned int kind)
+kind_maxchar_limit(enum PyUnicode_Kind kind)
{
switch (kind) {
case PyUnicode_1BYTE_KIND:
@@ -2051,7 +2051,7 @@
PyObject *unicode, *copy;
Py_UCS4 max_char;
Py_ssize_t len;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
assert(p_unicode != NULL);
unicode = *p_unicode;
@@ -2117,11 +2117,11 @@
character. Return NULL on error. */
void*
-_PyUnicode_AsKind(PyObject *s, unsigned int kind)
+_PyUnicode_AsKind(PyObject *s, enum PyUnicode_Kind kind)
{
Py_ssize_t len;
void *result;
- unsigned int skind;
+ enum PyUnicode_Kind skind;
if (PyUnicode_READY(s) == -1)
return NULL;
@@ -2175,7 +2175,7 @@
as_ucs4(PyObject *string, Py_UCS4 *target, Py_ssize_t targetsize,
int copy_null)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len, targetlen;
if (PyUnicode_READY(string) == -1)
@@ -2393,7 +2393,7 @@
char *numberresults = NULL;
char *numberresult = NULL;
Py_ssize_t i;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_VA_COPY(count, vargs);
@@ -4486,7 +4486,7 @@
int base64WhiteSpace,
const char *errors)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len;
PyObject *v;
@@ -4740,7 +4740,7 @@
s += outpos;
while (s < end) {
Py_UCS4 ch;
- int kind = PyUnicode_KIND(unicode);
+ enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
if (kind == PyUnicode_1BYTE_KIND) {
if (PyUnicode_IS_ASCII(unicode))
ch = asciilib_utf8_decode(&s, end,
@@ -5088,7 +5088,7 @@
const char *errors,
int byteorder)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len;
PyObject *v;
@@ -5255,7 +5255,7 @@
while (1) {
Py_UCS4 ch = 0;
if (e - q >= 2) {
- int kind = PyUnicode_KIND(unicode);
+ enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
if (kind == PyUnicode_1BYTE_KIND) {
if (PyUnicode_IS_ASCII(unicode))
ch = asciilib_utf16_decode(&q, e,
@@ -5769,7 +5769,7 @@
Py_ssize_t i, len;
PyObject *repr;
char *p;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t expandsize = 0;
@@ -5800,6 +5800,7 @@
case PyUnicode_1BYTE_KIND: expandsize = 4; break;
case PyUnicode_2BYTE_KIND: expandsize = 6; break;
case PyUnicode_4BYTE_KIND: expandsize = 10; break;
+ default: assert(0);
}
if (len == 0)
@@ -6016,7 +6017,7 @@
char *p;
char *q;
Py_ssize_t expandsize, pos;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len;
@@ -6317,7 +6318,7 @@
{
/* input state */
Py_ssize_t pos=0, size;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
/* output object */
PyObject *res;
@@ -6554,7 +6555,7 @@
{
const char *starts = s;
PyObject *unicode;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t startinpos;
Py_ssize_t endinpos;
@@ -7694,7 +7695,7 @@
unsigned char level2[512];
unsigned char *mlevel1, *mlevel2, *mlevel3;
int count2 = 0, count3 = 0;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t length;
Py_UCS4 ch;
@@ -8424,7 +8425,7 @@
/* input object */
char *idata;
Py_ssize_t size, i;
- int kind;
+ enum PyUnicode_Kind kind;
/* output buffer */
Py_UCS4 *output = NULL;
Py_ssize_t osize;
@@ -8614,7 +8615,7 @@
/* No need to call PyUnicode_READY(self) because this function is only
called as a callback from fixup() which does it already. */
const Py_ssize_t len = PyUnicode_GET_LENGTH(self);
- const int kind = PyUnicode_KIND(self);
+ const enum PyUnicode_Kind kind = PyUnicode_KIND(self);
void *data = PyUnicode_DATA(self);
Py_UCS4 maxchar = 127, ch, fixed;
int modified = 0;
@@ -8776,7 +8777,7 @@
Py_ssize_t start,
Py_ssize_t end)
{
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1, *buf2;
Py_ssize_t len1, len2, result;
@@ -8852,7 +8853,7 @@
const char *grouping, PyObject *thousands_sep,
Py_UCS4 *maxchar)
{
- unsigned int kind, thousands_sep_kind;
+ enum PyUnicode_Kind kind, thousands_sep_kind;
char *data, *thousands_sep_data;
Py_ssize_t thousands_sep_len;
Py_ssize_t len;
@@ -8951,7 +8952,7 @@
Py_ssize_t result;
PyObject* str_obj;
PyObject* sub_obj;
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1 = NULL, *buf2 = NULL;
Py_ssize_t len1, len2;
@@ -9070,7 +9071,7 @@
Py_ssize_t start, Py_ssize_t end,
int direction)
{
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t result;
if (PyUnicode_READY(str) == -1)
return -2;
@@ -9096,13 +9097,9 @@
Py_ssize_t end,
int direction)
{
- int kind_self;
- int kind_sub;
- void *data_self;
- void *data_sub;
- Py_ssize_t offset;
- Py_ssize_t i;
- Py_ssize_t end_sub;
+ enum PyUnicode_Kind kind_self, kind_sub;
+ void *data_self, *data_sub;
+ Py_ssize_t offset, i, end_sub;
if (PyUnicode_READY(self) == -1 ||
PyUnicode_READY(substring) == -1)
@@ -9264,7 +9261,8 @@
}
static Py_UCS4
-handle_capital_sigma(int kind, void *data, Py_ssize_t length, Py_ssize_t i)
+handle_capital_sigma(enum PyUnicode_Kind kind, void *data,
+ Py_ssize_t length, Py_ssize_t i)
{
Py_ssize_t j;
int final_sigma;
@@ -9293,8 +9291,8 @@
}
static int
-lower_ucs4(int kind, void *data, Py_ssize_t length, Py_ssize_t i,
- Py_UCS4 c, Py_UCS4 *mapped)
+lower_ucs4(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_ssize_t i, Py_UCS4 c, Py_UCS4 *mapped)
{
/* Obscure special case. */
if (c == 0x3A3) {
@@ -9305,7 +9303,8 @@
}
static Py_ssize_t
-do_capitalize(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar)
+do_capitalize(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
int n_res, j;
@@ -9329,7 +9328,8 @@
}
static Py_ssize_t
-do_swapcase(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar) {
+do_swapcase(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar) {
Py_ssize_t i, k = 0;
for (i = 0; i < length; i++) {
@@ -9354,8 +9354,8 @@
}
static Py_ssize_t
-do_upper_or_lower(int kind, void *data, Py_ssize_t length, Py_UCS4 *res,
- Py_UCS4 *maxchar, int lower)
+do_upper_or_lower(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar, int lower)
{
Py_ssize_t i, k = 0;
@@ -9375,19 +9375,22 @@
}
static Py_ssize_t
-do_upper(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar)
+do_upper(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar)
{
return do_upper_or_lower(kind, data, length, res, maxchar, 0);
}
static Py_ssize_t
-do_lower(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar)
+do_lower(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar)
{
return do_upper_or_lower(kind, data, length, res, maxchar, 1);
}
static Py_ssize_t
-do_casefold(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar)
+do_casefold(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
@@ -9404,7 +9407,8 @@
}
static Py_ssize_t
-do_title(int kind, void *data, Py_ssize_t length, Py_UCS4 *res, Py_UCS4
*maxchar)
+do_title(enum PyUnicode_Kind kind, void *data, Py_ssize_t length,
+ Py_UCS4 *res, Py_UCS4 *maxchar)
{
Py_ssize_t i, k = 0;
int previous_is_cased;
@@ -9432,11 +9436,12 @@
static PyObject *
case_operation(PyObject *self,
- Py_ssize_t (*perform)(int, void *, Py_ssize_t, Py_UCS4 *,
Py_UCS4 *))
+ Py_ssize_t (*perform)(enum PyUnicode_Kind, void *, Py_ssize_t,
+ Py_UCS4 *, Py_UCS4 *))
{
PyObject *res = NULL;
Py_ssize_t length, newlength = 0;
- int kind, outkind;
+ enum PyUnicode_Kind kind, outkind;
void *data, *outdata;
Py_UCS4 maxchar = 0, *tmp, *tmpend;
@@ -9490,7 +9495,7 @@
int use_memcpy;
unsigned char *res_data = NULL, *sep_data = NULL;
PyObject *last_obj;
- unsigned int kind = 0;
+ enum PyUnicode_Kind kind = 0;
fseq = PySequence_Fast(seq, "");
if (fseq == NULL) {
@@ -9737,7 +9742,7 @@
{
PyObject *u;
Py_UCS4 maxchar;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (left < 0)
@@ -9817,7 +9822,7 @@
PyObject *substring,
Py_ssize_t maxcount)
{
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1, *buf2;
Py_ssize_t len1, len2;
PyObject* out;
@@ -9909,7 +9914,7 @@
PyObject *substring,
Py_ssize_t maxcount)
{
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1, *buf2;
Py_ssize_t len1, len2;
PyObject* out;
@@ -9997,7 +10002,7 @@
}
static Py_ssize_t
-anylib_find(int kind, PyObject *str1, void *buf1, Py_ssize_t len1,
+anylib_find(enum PyUnicode_Kind kind, PyObject *str1, void *buf1, Py_ssize_t
len1,
PyObject *str2, void *buf2, Py_ssize_t len2, Py_ssize_t offset)
{
switch (kind) {
@@ -10010,13 +10015,14 @@
return ucs2lib_find(buf1, len1, buf2, len2, offset);
case PyUnicode_4BYTE_KIND:
return ucs4lib_find(buf1, len1, buf2, len2, offset);
- }
- assert(0);
- return -1;
+ default:
+ assert(0);
+ return -1;
+ }
}
static Py_ssize_t
-anylib_count(int kind, PyObject *sstr, void* sbuf, Py_ssize_t slen,
+anylib_count(enum PyUnicode_Kind kind, PyObject *sstr, void* sbuf, Py_ssize_t
slen,
PyObject *str1, void *buf1, Py_ssize_t len1, Py_ssize_t maxcount)
{
switch (kind) {
@@ -10029,9 +10035,10 @@
return ucs2lib_count(sbuf, slen, buf1, len1, maxcount);
case PyUnicode_4BYTE_KIND:
return ucs4lib_count(sbuf, slen, buf1, len1, maxcount);
- }
- assert(0);
- return 0;
+ default:
+ assert(0);
+ return -1;
+ }
}
static PyObject *
@@ -10043,9 +10050,9 @@
char *buf1 = PyUnicode_DATA(str1);
char *buf2 = PyUnicode_DATA(str2);
int srelease = 0, release1 = 0, release2 = 0;
- int skind = PyUnicode_KIND(self);
- int kind1 = PyUnicode_KIND(str1);
- int kind2 = PyUnicode_KIND(str2);
+ enum PyUnicode_Kind skind = PyUnicode_KIND(self);
+ enum PyUnicode_Kind kind1 = PyUnicode_KIND(str1);
+ enum PyUnicode_Kind kind2 = PyUnicode_KIND(str2);
Py_ssize_t slen = PyUnicode_GET_LENGTH(self);
Py_ssize_t len1 = PyUnicode_GET_LENGTH(str1);
Py_ssize_t len2 = PyUnicode_GET_LENGTH(str2);
@@ -10077,7 +10084,7 @@
if (len1 == 1) {
/* replace characters */
Py_UCS4 u1, u2;
- int rkind;
+ enum PyUnicode_Kind rkind;
Py_ssize_t index, pos;
char *src;
@@ -10108,7 +10115,7 @@
}
}
else {
- int rkind = skind;
+ enum PyUnicode_Kind rkind = skind;
char *res;
Py_ssize_t i;
@@ -10167,7 +10174,7 @@
else {
Py_ssize_t n, i, j, ires;
Py_ssize_t product, new_size;
- int rkind = skind;
+ enum PyUnicode_Kind rkind = skind;
char *res;
if (kind1 < rkind) {
@@ -10414,7 +10421,7 @@
static int
unicode_compare(PyObject *str1, PyObject *str2)
{
- int kind1, kind2;
+ enum PyUnicode_Kind kind1, kind2;
void *data1, *data2;
Py_ssize_t len1, len2, i;
@@ -10457,7 +10464,7 @@
PyUnicode_CompareWithASCIIString(PyObject* uni, const char* str)
{
Py_ssize_t i;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_UCS4 chr;
@@ -10544,7 +10551,7 @@
PyUnicode_Contains(PyObject *container, PyObject *element)
{
PyObject *str, *sub;
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1, *buf2;
Py_ssize_t len1, len2;
int result;
@@ -10777,7 +10784,7 @@
Py_ssize_t start = 0;
Py_ssize_t end = PY_SSIZE_T_MAX;
PyObject *result;
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1, *buf2;
Py_ssize_t len1, len2, iresult;
@@ -10872,7 +10879,7 @@
PyObject *u;
void *src_data, *dest_data;
int tabsize = 8;
- int kind;
+ enum PyUnicode_Kind kind;
int found;
if (!PyArg_ParseTuple(args, "|i:expandtabs", &tabsize))
@@ -11122,7 +11129,7 @@
unicode_islower(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
int cased;
@@ -11163,7 +11170,7 @@
unicode_isupper(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
int cased;
@@ -11206,7 +11213,7 @@
unicode_istitle(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
int cased, previous_is_cased;
@@ -11260,7 +11267,7 @@
unicode_isspace(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11296,7 +11303,7 @@
unicode_isalpha(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11330,7 +11337,7 @@
static PyObject*
unicode_isalnum(PyObject *self)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len, i;
@@ -11369,7 +11376,7 @@
unicode_isdecimal(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11404,7 +11411,7 @@
unicode_isdigit(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11440,7 +11447,7 @@
unicode_isnumeric(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11468,7 +11475,7 @@
int
PyUnicode_IsIdentifier(PyObject *self)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t i;
Py_UCS4 first;
@@ -11524,7 +11531,7 @@
unicode_isprintable(PyObject *self)
{
Py_ssize_t i, length;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(self) == -1)
@@ -11619,7 +11626,7 @@
_PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)
{
void *data;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t i, j, len;
BLOOM_MASK sepmask;
@@ -11657,7 +11664,7 @@
PyUnicode_Substring(PyObject *self, Py_ssize_t start, Py_ssize_t end)
{
unsigned char *data;
- int kind;
+ enum PyUnicode_Kind kind;
Py_ssize_t length;
if (PyUnicode_READY(self) == -1)
@@ -11695,7 +11702,7 @@
static PyObject *
do_strip(PyObject *self, int striptype)
{
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len, i, j;
@@ -11828,7 +11835,7 @@
assert(PyUnicode_KIND(u) == PyUnicode_KIND(str));
if (PyUnicode_GET_LENGTH(str) == 1) {
- const int kind = PyUnicode_KIND(str);
+ const enum PyUnicode_Kind kind = PyUnicode_KIND(str);
const Py_UCS4 fill_char = PyUnicode_READ(kind, PyUnicode_DATA(str), 0);
if (kind == PyUnicode_1BYTE_KIND) {
void *to = PyUnicode_DATA(u);
@@ -11944,7 +11951,7 @@
Py_ssize_t isize;
Py_ssize_t osize, squote, dquote, i, o;
Py_UCS4 max, quote;
- int ikind, okind;
+ enum PyUnicode_Kind ikind, okind;
void *idata, *odata;
if (PyUnicode_READY(unicode) == -1)
@@ -12240,7 +12247,7 @@
PyObject* str_obj;
PyObject* sep_obj;
PyObject* out;
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1 = NULL, *buf2 = NULL;
Py_ssize_t len1, len2;
@@ -12317,7 +12324,7 @@
PyObject* str_obj;
PyObject* sep_obj;
PyObject* out;
- int kind1, kind2, kind;
+ enum PyUnicode_Kind kind, kind1, kind2;
void *buf1 = NULL, *buf2 = NULL;
Py_ssize_t len1, len2;
@@ -12525,7 +12532,7 @@
if (!new)
return NULL;
if (y != NULL) {
- int x_kind, y_kind, z_kind;
+ enum PyUnicode_Kind x_kind, y_kind, z_kind;
void *x_data, *y_data, *z_data;
/* x must be a string too, of equal length */
@@ -12574,7 +12581,7 @@
}
}
} else {
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
/* x must be a dict */
@@ -12661,7 +12668,7 @@
Py_ssize_t fill;
PyObject *u;
Py_ssize_t width;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_UCS4 chr;
@@ -13135,7 +13142,7 @@
Py_ssize_t start, stop, step, slicelength, cur, i;
PyObject *result;
void *src_data, *dest_data;
- int src_kind, dest_kind;
+ enum PyUnicode_Kind src_kind, dest_kind;
Py_UCS4 ch, max_char, kind_limit;
if (PySlice_GetIndicesEx(item, PyUnicode_GET_LENGTH(self),
@@ -13988,7 +13995,7 @@
PyObject *unicode, *self;
Py_ssize_t length, char_size;
int share_wstr, share_utf8;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
void *data;
assert(PyType_IsSubtype(type, &PyUnicode_Type));
@@ -14371,7 +14378,7 @@
assert(_PyUnicode_CHECK(seq));
if (it->it_index < PyUnicode_GET_LENGTH(seq)) {
- int kind = PyUnicode_KIND(seq);
+ enum PyUnicode_Kind kind = PyUnicode_KIND(seq);
void *data = PyUnicode_DATA(seq);
Py_UCS4 chr = PyUnicode_READ(kind, data, it->it_index);
item = PyUnicode_FromOrdinal(chr);
diff -r aa153b827d17 Python/_warnings.c
--- a/Python/_warnings.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/_warnings.c Sat Jun 23 11:04:31 2012 +0300
@@ -500,7 +500,7 @@
*filename = PyDict_GetItemString(globals, "__file__");
if (*filename != NULL && PyUnicode_Check(*filename)) {
Py_ssize_t len;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicode_READY(*filename))
diff -r aa153b827d17 Python/ast.c
--- a/Python/ast.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/ast.c Sat Jun 23 11:04:31 2012 +0300
@@ -3738,7 +3738,7 @@
}
if (*s & 0x80) { /* XXX inefficient */
PyObject *w;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
Py_ssize_t len, i;
w = decode_utf8(c, &s, end);
diff -r aa153b827d17 Python/codecs.c
--- a/Python/codecs.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/codecs.c Sat Jun 23 11:04:31 2012 +0300
@@ -520,7 +520,7 @@
if (PyObject_IsInstance(exc, PyExc_UnicodeEncodeError)) {
PyObject *res;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicodeEncodeError_GetStart(exc, &start))
return NULL;
@@ -546,7 +546,7 @@
}
else if (PyObject_IsInstance(exc, PyExc_UnicodeTranslateError)) {
PyObject *res;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (PyUnicodeTranslateError_GetStart(exc, &start))
return NULL;
diff -r aa153b827d17 Python/getargs.c
--- a/Python/getargs.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/getargs.c Sat Jun 23 11:04:31 2012 +0300
@@ -796,7 +796,7 @@
case 'C': {/* unicode char */
int *p = va_arg(*p_va, int *);
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
if (!PyUnicode_Check(arg))
diff -r aa153b827d17 Python/import.c
--- a/Python/import.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/import.c Sat Jun 23 11:04:31 2012 +0300
@@ -877,7 +877,7 @@
Py_ssize_t left, right, dot0, dot1, len;
Py_ssize_t i, j;
PyObject *result;
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
len = PyUnicode_GET_LENGTH(path);
@@ -1012,7 +1012,7 @@
struct stat statbuf;
int err;
void *data;
- unsigned int kind;
+ enum PyUnicode_Kind kind;
len = PyUnicode_GET_LENGTH(filename);
if (len == 0)
diff -r aa153b827d17 Python/traceback.c
--- a/Python/traceback.c Fri Jun 22 22:49:12 2012 -0500
+++ b/Python/traceback.c Sat Jun 23 11:04:31 2012 +0300
@@ -230,7 +230,7 @@
PyObject *lineobj = NULL;
PyObject *res;
char buf[MAXPATHLEN+1];
- int kind;
+ enum PyUnicode_Kind kind;
void *data;
_Py_IDENTIFIER(close);
_Py_IDENTIFIER(open);
@@ -485,7 +485,7 @@
PyASCIIObject *ascii = (PyASCIIObject *)text;
Py_ssize_t i, size;
int truncated;
- int kind;
+ enum PyUnicode_Kind kind;
void *data = NULL;
wchar_t *wstr = NULL;
Py_UCS4 ch;
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com