From 9a0a36edd1df5c6ccdd9958ef119a29cdada4b41 Mon Sep 17 00:00:00 2001 From: "William M. Brack" Date: Mon, 3 May 2004 07:19:36 +0000 Subject: [PATCH] added comments and function header, improved logic of routine just added. * libxslt/imports.c: added comments and function header, improved logic of routine just added. * tests/general/bug-147*, tests/docs/bug-147.xml, tests/general/Makefile.am, tests/docs/Makefile.am: added regression test for bug 141279 --- ChangeLog | 8 +++++++ libxslt/imports.c | 16 ++++++++++--- tests/docs/Makefile.am | 1 + tests/docs/bug-147.xml | 21 +++++++++++++++++ tests/general/Makefile.am | 3 +++ tests/general/bug-147-1.imp | 11 +++++++++ tests/general/bug-147-2.imp | 11 +++++++++ tests/general/bug-147-3.imp | 57 +++++++++++++++++++++++++++++++++++++++++++++ tests/general/bug-147-4.imp | 15 ++++++++++++ tests/general/bug-147-5.imp | 27 +++++++++++++++++++++ tests/general/bug-147-6.imp | 31 ++++++++++++++++++++++++ tests/general/bug-147.out | 17 ++++++++++++++ tests/general/bug-147.xsl | 29 +++++++++++++++++++++++ 13 files changed, 244 insertions(+), 3 deletions(-) create mode 100644 tests/docs/bug-147.xml create mode 100644 tests/general/bug-147-1.imp create mode 100644 tests/general/bug-147-2.imp create mode 100644 tests/general/bug-147-3.imp create mode 100644 tests/general/bug-147-4.imp create mode 100644 tests/general/bug-147-5.imp create mode 100644 tests/general/bug-147-6.imp create mode 100644 tests/general/bug-147.out create mode 100644 tests/general/bug-147.xsl diff --git a/ChangeLog b/ChangeLog index 75a2127..65b439a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sun May 2 23:47:43 PDT 2004 William Brack + + * libxslt/imports.c: added comments and function header, + improved logic of routine just added. + * tests/general/bug-147*, tests/docs/bug-147.xml, + tests/general/Makefile.am, tests/docs/Makefile.am: added + regression test for bug 141279 + Sun May 2 12:47:32 PDT 2004 William Brack * libxslt/imports.c: enhanced normalization of comp steps diff --git a/libxslt/imports.c b/libxslt/imports.c index 85b62cf..21dca74 100644 --- a/libxslt/imports.c +++ b/libxslt/imports.c @@ -52,13 +52,22 @@ * Module interfaces * * * ************************************************************************/ +/** + * xsltFixImportedCompSteps: + * @master: the "master" stylesheet + * @style: the stylesheet being imported by the master + * + * normalize the comp steps for the stylesheet being imported + * by the master, together with any imports within that. + * + */ static void xsltFixImportedCompSteps(xsltStylesheetPtr master, xsltStylesheetPtr style) { xsltStylesheetPtr res; - for (res = style; res != NULL; res = res->imports) - xmlHashScan(res->templatesHash, + xmlHashScan(style->templatesHash, (xmlHashScanner) xsltNormalizeCompSteps, master); - master->extrasNr += style->extrasNr; + for (res = style->imports; res != NULL; res = res->next) + xsltFixImportedCompSteps(master, res); } /** @@ -143,6 +152,7 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) { res->next = style->imports; style->imports = res; xsltFixImportedCompSteps(style, res); + style->extrasNr += res->extrasNr; ret = 0; } else { xmlFreeDoc(import); diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am index 85f94ba..5c57fcd 100644 --- a/tests/docs/Makefile.am +++ b/tests/docs/Makefile.am @@ -146,6 +146,7 @@ EXTRA_DIST = \ bug-144.xml \ bug-145.xml \ bug-146.xml \ + bug-147.xml \ character.xml \ array.xml \ items.xml diff --git a/tests/docs/bug-147.xml b/tests/docs/bug-147.xml new file mode 100644 index 0000000..d3a1768 --- /dev/null +++ b/tests/docs/bug-147.xml @@ -0,0 +1,21 @@ + + + + +abc + + + + + + + + + + + + + + + diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am index 4bd304c..202adda 100644 --- a/tests/general/Makefile.am +++ b/tests/general/Makefile.am @@ -152,6 +152,9 @@ EXTRA_DIST = \ bug-144.out bug-144.xsl \ bug-145.out bug-145.xsl bug-145.err \ bug-146.out bug-146.xsl \ + bug-147.out bug-147.xsl \ + bug-147-1.imp bug-147-2.imp bug-147-3.imp \ + bug-147-4.imp bug-147-5.imp bug-147-6.imp \ character.out character.xsl \ character2.out character2.xsl \ itemschoose.out itemschoose.xsl \ diff --git a/tests/general/bug-147-1.imp b/tests/general/bug-147-1.imp new file mode 100644 index 0000000..764f0ef --- /dev/null +++ b/tests/general/bug-147-1.imp @@ -0,0 +1,11 @@ + + + + + template#1 in module#1; + + + + + diff --git a/tests/general/bug-147-2.imp b/tests/general/bug-147-2.imp new file mode 100644 index 0000000..86aa3b5 --- /dev/null +++ b/tests/general/bug-147-2.imp @@ -0,0 +1,11 @@ + + + + + template#1 in module#2; + + + + + diff --git a/tests/general/bug-147-3.imp b/tests/general/bug-147-3.imp new file mode 100644 index 0000000..89444c8 --- /dev/null +++ b/tests/general/bug-147-3.imp @@ -0,0 +1,57 @@ + + + + + template#1 in module#3; + + + + + + template#2 in module#3; + + + + + + template#3 in module#3; + + + + + + template#4 in module#3; + + + + + + template#5 in module#3; + + + + + + template#6 in module#3; + + + + + + template#7 in module#3; + + + + + + template#8 in module#3; + + + + + diff --git a/tests/general/bug-147-4.imp b/tests/general/bug-147-4.imp new file mode 100644 index 0000000..af2b006 --- /dev/null +++ b/tests/general/bug-147-4.imp @@ -0,0 +1,15 @@ + + + + + + + + template#1 in module#4; + + + + diff --git a/tests/general/bug-147-5.imp b/tests/general/bug-147-5.imp new file mode 100644 index 0000000..48515c1 --- /dev/null +++ b/tests/general/bug-147-5.imp @@ -0,0 +1,27 @@ + + + + + + + + template#1 in module#5; + + + + + template#2 in module#5; + + + + + template#3 in module#5; + + + + diff --git a/tests/general/bug-147-6.imp b/tests/general/bug-147-6.imp new file mode 100644 index 0000000..b6b52d0 --- /dev/null +++ b/tests/general/bug-147-6.imp @@ -0,0 +1,31 @@ + + + + + template#1 in module#6; + + + + + template#2 in module#6; + + + + + template#3 in module#6; + + + + + template#4 in module#6; + + + + diff --git a/tests/general/bug-147.out b/tests/general/bug-147.out new file mode 100644 index 0000000..46963a8 --- /dev/null +++ b/tests/general/bug-147.out @@ -0,0 +1,17 @@ + + +
template#1 in module#1; +template#3 in module#3; +template#5 in module#3;abc + + +template#1 in module#2; + + +template#2 in module#5; +template#3 in module#5; + + + +
+ diff --git a/tests/general/bug-147.xsl b/tests/general/bug-147.xsl new file mode 100644 index 0000000..70b5473 --- /dev/null +++ b/tests/general/bug-147.xsl @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +
-- 2.7.4