diff options
author | Florent Xicluna <florent.xicluna@gmail.com> | 2010-03-11 15:55:11 (GMT) |
---|---|---|
committer | Florent Xicluna <florent.xicluna@gmail.com> | 2010-03-11 15:55:11 (GMT) |
commit | e2e81e8fcd41413d31a1a4a078128c478bc73b9a (patch) | |
tree | 93c0141f4fc4c158adf0448fea9bbab5aaceff2d | |
parent | 3e8c189faae661d44c61839986614fce595fc404 (diff) | |
download | cpython-e2e81e8fcd41413d31a1a4a078128c478bc73b9a.zip cpython-e2e81e8fcd41413d31a1a4a078128c478bc73b9a.tar.gz cpython-e2e81e8fcd41413d31a1a4a078128c478bc73b9a.tar.bz2 |
Fix repr of tree Element on windows.
-rw-r--r-- | Lib/test/test_xml_etree.py | 7 | ||||
-rw-r--r-- | Modules/_elementtree.c | 15 |
2 files changed, 12 insertions, 10 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 86f8a6f..bc8b620 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -131,7 +131,7 @@ def check_element(element): # element tree tests def interface(): - """ + r""" Test element tree interface. >>> element = ET.Element("tag") @@ -139,10 +139,11 @@ def interface(): >>> tree = ET.ElementTree(element) >>> check_element(tree.getroot()) - >>> element = ET.Element("tag", key="value") + >>> element = ET.Element("t\xe4g", key="value") >>> tree = ET.ElementTree(element) >>> repr(element) # doctest: +ELLIPSIS - "<Element 'tag' at 0x...>" + "<Element 't\\xe4g' at 0x...>" + >>> element = ET.Element("tag", key="value") Make sure all standard element methods exist. diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index 62aee85..0aa1ebb 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -1190,15 +1190,16 @@ element_remove(ElementObject* self, PyObject* args) static PyObject* element_repr(ElementObject* self) { - PyObject* repr; - char buffer[100]; - - repr = PyString_FromString("<Element "); + PyObject *repr, *tag; - PyString_ConcatAndDel(&repr, PyObject_Repr(self->tag)); + tag = PyObject_Repr(self->tag); + if (!tag) + return NULL; - sprintf(buffer, " at %p>", self); - PyString_ConcatAndDel(&repr, PyString_FromString(buffer)); + repr = PyString_FromFormat("<Element %s at %p>", + PyString_AS_STRING(tag), self); + + Py_DECREF(tag); return repr; } |