diff options
author | Fredrik Lundh <fredrik@pythonware.com> | 2006-08-16 16:47:07 +0000 |
---|---|---|
committer | Fredrik Lundh <fredrik@pythonware.com> | 2006-08-16 16:47:07 +0000 |
commit | dc075b9ddd19ec5930d39f4958f8f80a2d14c8ae (patch) | |
tree | 3a8d766cd2aaf675701cb2b236119bbaaea58700 | |
parent | 574cfea99395e85e5458ccc4f2d65f20ee6f1b52 (diff) | |
download | cpython-git-dc075b9ddd19ec5930d39f4958f8f80a2d14c8ae.tar.gz |
SF#1534630
ignore data that arrives before the opening start tag
-rw-r--r-- | Lib/test/test_xml_etree_c.py | 11 | ||||
-rw-r--r-- | Modules/_elementtree.c | 6 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Lib/test/test_xml_etree_c.py b/Lib/test/test_xml_etree_c.py index 56e7fedfdc..250f791073 100644 --- a/Lib/test/test_xml_etree_c.py +++ b/Lib/test/test_xml_etree_c.py @@ -204,6 +204,17 @@ def check_encoding(encoding): "<?xml version='1.0' encoding='%s'?><xml />" % encoding ) +def bug_1534630(): + """ + >>> bob = ET.TreeBuilder() + >>> e = bob.data("data") + >>> e = bob.start("tag", {}) + >>> e = bob.end("tag") + >>> e = bob.close() + >>> serialize(ET, e) + '<tag />' + """ + def test_main(): from test import test_xml_etree_c test_support.run_doctest(test_xml_etree_c, verbosity=True) diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index c9e524f74c..f21cf56856 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -48,7 +48,7 @@ #include "Python.h" -#define VERSION "1.0.6-snapshot" +#define VERSION "1.0.6" /* -------------------------------------------------------------------- */ /* configuration */ @@ -1599,6 +1599,10 @@ LOCAL(PyObject*) treebuilder_handle_data(TreeBuilderObject* self, PyObject* data) { if (!self->data) { + if (self->last == (ElementObject*) Py_None) { + /* ignore calls to data before the first call to start */ + Py_RETURN_NONE; + } /* store the first item as is */ Py_INCREF(data); self->data = data; } else { |