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.
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 9adcbde..68990c9 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -1122,7 +1122,7 @@
/* proto < 2: write the repr and newline. This is quadratic-time
* (in the number of digits), in both directions.
*/
- if (!( repr = PyObject_Repr(args)))
+ if (!( repr = PyObject_ReprStr8(args)))
goto finally;
if ((size = PyString_Size(repr)) < 0)
@@ -1189,7 +1189,7 @@
static char string = STRING;
- if (!( repr = PyObject_Repr(args)))
+ if (!( repr = PyObject_ReprStr8(args)))
return -1;
if ((len = PyString_Size(repr)) < 0)