From 9a9d10d1d4169e1607cbe0941a72dc31af85c303 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Wed, 5 Mar 2003 11:50:54 +0000 Subject: [PATCH] fixed bug #107591 node() in pattern matches should catch comments and PIs * libxslt/pattern.c: fixed bug #107591 node() in pattern matches should catch comments and PIs * tests/docs/Makefile.am tests/docs/bug-107.xml tests/general/Makefile.am tests/general/bug-107*: added an example in the regression tests for this case Daniel --- ChangeLog | 8 ++++++++ libxslt/pattern.c | 13 +++++++++++++ tests/docs/Makefile.am | 1 + tests/docs/bug-107.xml | 7 +++++++ tests/general/Makefile.am | 1 + tests/general/bug-107.out | 8 ++++++++ tests/general/bug-107.xsl | 11 +++++++++++ 7 files changed, 49 insertions(+) create mode 100644 tests/docs/bug-107.xml create mode 100644 tests/general/bug-107.out create mode 100644 tests/general/bug-107.xsl diff --git a/ChangeLog b/ChangeLog index aa0e09d..7acfbbd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Mar 5 12:47:31 CET 2003 Daniel Veillard + + * libxslt/pattern.c: fixed bug #107591 node() in pattern + matches should catch comments and PIs + * tests/docs/Makefile.am tests/docs/bug-107.xml + tests/general/Makefile.am tests/general/bug-107*: added an + example in the regression tests for this case + Wed Feb 26 16:49:17 CET 2003 Daniel Veillard * tests/docs/Makefile.am tests/docs/bug-106.xml diff --git a/libxslt/pattern.c b/libxslt/pattern.c index 5d9f3c3..dc2ed01 100644 --- a/libxslt/pattern.c +++ b/libxslt/pattern.c @@ -2162,6 +2162,19 @@ xsltGetTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node, } list = list->next; } + } else if ((node->type == XML_PI_NODE) || + (node->type == XML_COMMENT_NODE)) { + list = curstyle->elemMatch; + while ((list != NULL) && + ((ret == NULL) || (list->priority > priority))) { + if (xsltTestCompMatch(ctxt, list, node, + ctxt->mode, ctxt->modeURI)) { + ret = list->template; + priority = list->priority; + break; + } + list = list->next; + } } if (node->_private != NULL) { diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am index 9ce5bfe..685b02e 100644 --- a/tests/docs/Makefile.am +++ b/tests/docs/Makefile.am @@ -106,6 +106,7 @@ EXTRA_DIST = \ bug-104.xml \ bug-105.xml \ bug-106.xml \ + bug-107.xml \ character.xml \ array.xml \ items.xml diff --git a/tests/docs/bug-107.xml b/tests/docs/bug-107.xml new file mode 100644 index 0000000..2ecf374 --- /dev/null +++ b/tests/docs/bug-107.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am index 68a1efe..aca105a 100644 --- a/tests/general/Makefile.am +++ b/tests/general/Makefile.am @@ -111,6 +111,7 @@ EXTRA_DIST = \ bug-104.out bug-104.xsl \ bug-105.out bug-105.xsl \ bug-106.out bug-106.xsl \ + bug-107.out bug-107.xsl \ character.out character.xsl \ character2.out character2.xsl \ itemschoose.out itemschoose.xsl \ diff --git a/tests/general/bug-107.out b/tests/general/bug-107.out new file mode 100644 index 0000000..8654ecd --- /dev/null +++ b/tests/general/bug-107.out @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/tests/general/bug-107.xsl b/tests/general/bug-107.xsl new file mode 100644 index 0000000..22b67dc --- /dev/null +++ b/tests/general/bug-107.xsl @@ -0,0 +1,11 @@ + + + + + + + + + + -- 2.7.4