From 70213d9c9a86adac841247b249dc188ba2aab3db Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 28 Sep 2012 21:04:39 +0200 Subject: [PATCH] Fix regression: Default namespace not correctly used To: libvir-list@redhat.com https://bugzilla.gnome.org/show_bug.cgi?id=684564 Signed-off-by: Daniel Veillard --- libxslt/transform.c | 14 ++++++++------ tests/docs/Makefile.am | 1 + tests/docs/bug-179.xml | 1 + tests/general/Makefile.am | 1 + tests/general/bug-179.out | 9 +++++++++ tests/general/bug-179.xsl | 24 ++++++++++++++++++++++++ 6 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 tests/docs/bug-179.xml create mode 100644 tests/general/bug-179.out create mode 100644 tests/general/bug-179.xsl diff --git a/libxslt/transform.c b/libxslt/transform.c index de2ef3c..35701de 100644 --- a/libxslt/transform.c +++ b/libxslt/transform.c @@ -4075,7 +4075,7 @@ xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node, } else if (xmlStrEqual(prefix, BAD_CAST "xml")) { prefix = NULL; } - } else if (prefix != NULL) { + } else { xmlNsPtr ns; /* * SPEC XSLT 1.0: @@ -4090,11 +4090,13 @@ xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node, * TODO: Check this in the compilation layer in case it's a * static value. */ - xsltTransformError(ctxt, NULL, inst, - "xsl:element: The QName '%s:%s' has no " - "namespace binding in scope in the stylesheet; " - "this is an error, since the namespace was not " - "specified by the instruction itself.\n", prefix, name); + if (prefix != NULL) { + xsltTransformError(ctxt, NULL, inst, + "xsl:element: The QName '%s:%s' has no " + "namespace binding in scope in the stylesheet; " + "this is an error, since the namespace was not " + "specified by the instruction itself.\n", prefix, name); + } } else nsName = ns->href; } diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am index 9e2204f..12a97a8 100644 --- a/tests/docs/Makefile.am +++ b/tests/docs/Makefile.am @@ -168,6 +168,7 @@ EXTRA_DIST = \ bug-167.xml \ bug-168.xml \ bug-169.xml \ + bug-179.xml \ character.xml \ array.xml \ items.xml diff --git a/tests/docs/bug-179.xml b/tests/docs/bug-179.xml new file mode 100644 index 0000000..69d62f2 --- /dev/null +++ b/tests/docs/bug-179.xml @@ -0,0 +1 @@ + diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am index 24d0d43..fd1e695 100644 --- a/tests/general/Makefile.am +++ b/tests/general/Makefile.am @@ -186,6 +186,7 @@ EXTRA_DIST = \ bug-176.out bug-176.xsl \ bug-177.out bug-177.xsl \ bug-178.out bug-178.xsl \ + bug-179.out bug-179.xsl \ character.out character.xsl \ character2.out character2.xsl \ itemschoose.out itemschoose.xsl \ diff --git a/tests/general/bug-179.out b/tests/general/bug-179.out new file mode 100644 index 0000000..0a7e67d --- /dev/null +++ b/tests/general/bug-179.out @@ -0,0 +1,9 @@ + + + ... + ... + ... + ... + ... + ... + diff --git a/tests/general/bug-179.xsl b/tests/general/bug-179.xsl new file mode 100644 index 0000000..5847e9a --- /dev/null +++ b/tests/general/bug-179.xsl @@ -0,0 +1,24 @@ + + +baz + + + + + + ... + ... + + + ... + ... + ... + + + ... + + + + + -- 1.7.11.4