From d970e5676e798f4336bf0e7a7754083dfd518aef Mon Sep 17 00:00:00 2001 From: "William M. Brack" Date: Fri, 12 Mar 2004 05:03:50 +0000 Subject: [PATCH] added additional check to prevent superfluous namespace href's being * libxslt/namespaces.c: added additional check to prevent superfluous namespace href's being generated on elements (bug 136914) * tests/namespaces/Makefile.am, tests/namespaces/tst5.x[ms]l: added new test for bug 136914 * tests/namespaces, tests/extensions/ tests/reports: fixed error in "enhanced" Makefile.am, removed superfluous .err files from cvs --- ChangeLog | 11 +++++++++++ libxslt/namespaces.c | 7 ++++++- tests/extensions/Makefile.am | 6 +++--- tests/namespaces/Makefile.am | 12 +++++++----- tests/namespaces/extra.err | 0 tests/namespaces/tst.err | 0 tests/namespaces/tst2.err | 0 tests/namespaces/tst3.err | 0 tests/namespaces/tst4.err | 0 tests/reports/Makefile.am | 3 +-- tests/reports/cmdlineparams.err | 0 11 files changed, 28 insertions(+), 11 deletions(-) delete mode 100644 tests/namespaces/extra.err delete mode 100644 tests/namespaces/tst.err delete mode 100644 tests/namespaces/tst2.err delete mode 100644 tests/namespaces/tst3.err delete mode 100644 tests/namespaces/tst4.err delete mode 100644 tests/reports/cmdlineparams.err diff --git a/ChangeLog b/ChangeLog index dee9d6d..724b97d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Fri Mar 12 13:07:03 HKT 2004 William Brack + + * libxslt/namespaces.c: added additional check to prevent + superfluous namespace href's being generated on elements + (bug 136914) + * tests/namespaces/Makefile.am, tests/namespaces/tst5.x[ms]l: + added new test for bug 136914 + * tests/namespaces, tests/extensions/ tests/reports: fixed + error in "enhanced" Makefile.am, removed superfluous .err files + from cvs + Wed Mar 10 19:27:39 HKT 2004 William Brack * doc/search.php.incl: minor addition for later version of php diff --git a/libxslt/namespaces.c b/libxslt/namespaces.c index 8b45992..1650ff9 100644 --- a/libxslt/namespaces.c +++ b/libxslt/namespaces.c @@ -157,7 +157,7 @@ xsltGetSpecialNamespace(xsltTransformContextPtr ctxt, xmlNodePtr cur, (out->parent->ns != NULL) && (xmlStrEqual(out->parent->ns->href, URI))) ret = out->parent->ns; - else + else ret = xmlSearchNsByHref(out->doc, out, URI); if ((ret == NULL) || (ret->prefix == NULL)) { @@ -167,6 +167,11 @@ xsltGetSpecialNamespace(xsltTransformContextPtr ctxt, xmlNodePtr cur, ret = xmlSearchNs(out->doc, out, (xmlChar *)nprefix); } while (ret != NULL); prefix = (const xmlChar *) &nprefix[0]; + } else if ((ret != NULL) && (ret->prefix == NULL)) { + /* found ns but no prefix - search for the prefix */ + ret = xmlSearchNs(out->doc, out, prefix); + if (ret != NULL) + return(ret); /* found it */ } if (out->type == XML_ELEMENT_NODE) ret = xmlNewNs(out, URI, prefix); diff --git a/tests/extensions/Makefile.am b/tests/extensions/Makefile.am index c2b9f54..31cfe67 100644 --- a/tests/extensions/Makefile.am +++ b/tests/extensions/Makefile.am @@ -17,10 +17,10 @@ valgrind: test tests: $(top_builddir)/xsltproc/xsltproc @echo '## Running extensions tests' @(echo > .memdump) - -@(for i in $(srcdir)/../docs/*.xml ; do \ + -@(for i in $(srcdir)/*.xml ; do \ if [ -d $$i ] ; then continue ; fi ; \ doc=`basename $$i .xml` ; \ - for j in $(srcdir)/$$doc*.xsl ; do \ + j=$(srcdir)/$$doc*.xsl ; \ if [ ! -f $$j ] ; then continue ; fi ; \ if [ -d $$j ] ; then continue ; fi ; \ name=`basename $$j .xsl`; \ @@ -47,5 +47,5 @@ test tests: $(top_builddir)/xsltproc/xsltproc echo $$log ; \ fi ; \ rm -f result.$$name err.$$name; \ - done ; done) + done) diff --git a/tests/namespaces/Makefile.am b/tests/namespaces/Makefile.am index ee748dc..2d76ec6 100644 --- a/tests/namespaces/Makefile.am +++ b/tests/namespaces/Makefile.am @@ -4,11 +4,13 @@ $(top_builddir)/xsltproc/xsltproc: @(cd ../../xsltproc ; $(MAKE) xsltproc) EXTRA_DIST = \ + extra.xml extra.xsl extra.out \ + extra2.xml extra2.xsl extra2.out \ tst.xml tst.xsl tst.out \ tst2.xml tst2.xsl tst2.out \ tst3.xml tst3.xsl tst3.out \ - extra.out extra.xml extra.xsl \ - extra2.out extra2.xml extra2.xsl + tst4.xml tst4.xsl tst4.out \ + tst5.xml tst5.xsl tst5.out all: @@ -19,10 +21,10 @@ valgrind: test tests: $(top_builddir)/xsltproc/xsltproc @echo '## Running namespaces tests' @(echo > .memdump) - -@(for i in $(srcdir)/../docs/*.xml ; do \ + -@(for i in $(srcdir)/*.xml ; do \ if [ -d $$i ] ; then continue ; fi ; \ doc=`basename $$i .xml` ; \ - for j in $(srcdir)/$$doc*.xsl ; do \ + j=$(srcdir)/$$doc.xsl ; \ if [ ! -f $$j ] ; then continue ; fi ; \ if [ -d $$j ] ; then continue ; fi ; \ name=`basename $$j .xsl`; \ @@ -49,5 +51,5 @@ test tests: $(top_builddir)/xsltproc/xsltproc echo $$log ; \ fi ; \ rm -f result.$$name err.$$name; \ - done ; done) + done) diff --git a/tests/namespaces/extra.err b/tests/namespaces/extra.err deleted file mode 100644 index e69de29..0000000 diff --git a/tests/namespaces/tst.err b/tests/namespaces/tst.err deleted file mode 100644 index e69de29..0000000 diff --git a/tests/namespaces/tst2.err b/tests/namespaces/tst2.err deleted file mode 100644 index e69de29..0000000 diff --git a/tests/namespaces/tst3.err b/tests/namespaces/tst3.err deleted file mode 100644 index e69de29..0000000 diff --git a/tests/namespaces/tst4.err b/tests/namespaces/tst4.err deleted file mode 100644 index e69de29..0000000 diff --git a/tests/reports/Makefile.am b/tests/reports/Makefile.am index 3c5e541..14bb655 100644 --- a/tests/reports/Makefile.am +++ b/tests/reports/Makefile.am @@ -4,11 +4,10 @@ $(top_builddir)/xsltproc/xsltproc: @(cd ../../xsltproc ; $(MAKE) xsltproc) EXTRA_DIST = \ + cmdlineparams.xml cmdlineparams.xsl cmdlineparams.out \ tst-1.xml tst-1.xsl tst-1.out tst-1.err \ tst-2.xml tst-2.xsl tst-2.out tst-2.err \ undefvar.xml undefvar.xsl undefvar.out undefvar.err \ - cmdlineparams.xml cmdlineparams.xsl cmdlineparams.out \ - cmdlineparams.err \ recglobparam.xsl recglobvar.xsl reclocparam.xsl reclocvar.xsl \ recglobparam.xml recglobvar.xml reclocparam.xml reclocvar.xml diff --git a/tests/reports/cmdlineparams.err b/tests/reports/cmdlineparams.err deleted file mode 100644 index e69de29..0000000 -- 2.7.4