Add functions PyUnicode_Append() and PyUnicode_AppendAndDel() that mirror

PyString_Concat() and PyString_ConcatAndDel() (the name PyUnicode_Concat()
was already taken).

Change PyObject_Repr() to always return a unicode object.

Update all repr implementations to return unicode objects.

Add a function PyObject_ReprStr8() that calls PyObject_Repr() and converts
the result to an 8bit string.

Use PyObject_ReprStr8() where using PyObject_Repr() can't be done
straightforward.
This commit is contained in:
Walter Dörwald 2007-05-18 17:15:44 +00:00
parent 14176a56d3
commit 1ab8330827
49 changed files with 385 additions and 255 deletions

View file

@ -261,19 +261,19 @@ range_repr(rangeobject *r)
}
if (istart == 0 && istep == 1)
result = PyString_FromFormat("range(%s)",
PyString_AS_STRING(stop_str));
result = PyUnicode_FromFormat("range(%s)",
PyString_AS_STRING(stop_str));
else if (istep == 1) {
if (start_str)
result = PyString_FromFormat("range(%s, %s)",
PyString_AS_STRING(start_str),
PyString_AS_STRING(stop_str));
result = PyUnicode_FromFormat("range(%s, %s)",
PyString_AS_STRING(start_str),
PyString_AS_STRING(stop_str));
}
else if (start_str && step_str)
result = PyString_FromFormat("range(%s, %s, %s)",
PyString_AS_STRING(start_str),
PyString_AS_STRING(stop_str),
PyString_AS_STRING(step_str));
result = PyUnicode_FromFormat("range(%s, %s, %s)",
PyString_AS_STRING(start_str),
PyString_AS_STRING(stop_str),
PyString_AS_STRING(step_str));
/* else result is NULL and an error should already be set. */
Py_XDECREF(start_str);