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

@ -19,7 +19,7 @@ this type and there is exactly one in existence.
static PyObject *
ellipsis_repr(PyObject *op)
{
return PyString_FromString("Ellipsis");
return PyUnicode_FromString("Ellipsis");
}
static PyTypeObject PyEllipsis_Type = {
@ -228,14 +228,14 @@ slice_repr(PySliceObject *r)
{
PyObject *s, *comma;
s = PyString_FromString("slice(");
comma = PyString_FromString(", ");
PyString_ConcatAndDel(&s, PyObject_Repr(r->start));
PyString_Concat(&s, comma);
PyString_ConcatAndDel(&s, PyObject_Repr(r->stop));
PyString_Concat(&s, comma);
PyString_ConcatAndDel(&s, PyObject_Repr(r->step));
PyString_ConcatAndDel(&s, PyString_FromString(")"));
s = PyUnicode_FromString("slice(");
comma = PyUnicode_FromString(", ");
PyUnicode_AppendAndDel(&s, PyObject_Repr(r->start));
PyUnicode_Append(&s, comma);
PyUnicode_AppendAndDel(&s, PyObject_Repr(r->stop));
PyUnicode_Append(&s, comma);
PyUnicode_AppendAndDel(&s, PyObject_Repr(r->step));
PyUnicode_AppendAndDel(&s, PyUnicode_FromString(")"));
Py_DECREF(comma);
return s;
}