]> granicus.if.org Git - python/commitdiff
Fix repr of tree Element on windows.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Thu, 11 Mar 2010 15:55:11 +0000 (15:55 +0000)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Thu, 11 Mar 2010 15:55:11 +0000 (15:55 +0000)
Lib/test/test_xml_etree.py
Modules/_elementtree.c

index 86f8a6fb3c4d25fd4389db25c44c4b201e3d585a..bc8b620eff2a6656128d2628f8b639c66c30a486 100644 (file)
@@ -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.
 
index 62aee8504da57c3c8e698cf5e6f4d07b98552ca6..0aa1ebb76ea5c9b631af0253d3bff3daa0c14f0c 100644 (file)
@@ -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;
 }