Description
The repr() methods of various objects, eg., tableobject, use code like:
PyString_ConcatAndDel(&s, PyString_FromString("'"));
PyString_ConcatAndDel(&s, PyString_FromString(elts[i].key));
PyString_ConcatAndDel(&s, PyString_FromString("': '"));
PyString_ConcatAndDel(&s, PyString_FromString(elts[i].val));
PyString_ConcatAndDel(&s, PyString_FromString("'"));
to construct the string. This doesn't though consider that values could have quotes in them.
Instead of outputting quotes and string in between, should use something like:
t = PyString_FromString(elts[i].val);
PyString_ConcatAndDel(&s, PyObject_Repr(t));
Py_XDECREF(t);
Ie., let the repr() routine of the string to quote as appropriate.
Since the repr() outputs of these objects are only used for debugging and can't be used to reconstruct objects, not too big a deal, but should be addressed.