mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2025-08-05 23:35:48 +03:00
fixed bug #60624 improver the error context reporting added a specific
* libxslt/xslt.c: fixed bug #60624 * libxslt/xsltutils.c: improver the error context reporting * tests/reports/Makefile.am tests/reports/tst-2.*: added a specific regression test * xsltproc/xsltproc: free the stylesheet if it contained an error. Daniel
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
Tue Sep 18 11:48:20 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* libxslt/xslt.c: fixed bug #60624
|
||||
* libxslt/xsltutils.c: improver the error context reporting
|
||||
* tests/reports/Makefile.am tests/reports/tst-2.*: added a
|
||||
specific regression test
|
||||
* xsltproc/xsltproc: free the stylesheet if it contained an error.
|
||||
|
||||
Mon Sep 17 14:45:48 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* libxslt/variables.c: fixed a problem with global var override
|
||||
|
@@ -1693,6 +1693,16 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
|
||||
cur = cur->next;
|
||||
continue;
|
||||
}
|
||||
if (cur->type == XML_TEXT_NODE) {
|
||||
if (cur->content != NULL) {
|
||||
xsltPrintErrorContext(NULL, style, cur);
|
||||
xsltGenericError(xsltGenericErrorContext,
|
||||
"misplaced text element: '%s'\n", cur->content);
|
||||
}
|
||||
style->errors++;
|
||||
cur = cur->next;
|
||||
continue;
|
||||
}
|
||||
if ((cur->type == XML_ELEMENT_NODE) && (cur->ns == NULL)) {
|
||||
xsltGenericError(xsltGenericErrorContext,
|
||||
"Found a top-level element %s with null namespace URI\n",
|
||||
@@ -1701,7 +1711,7 @@ xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
|
||||
cur = cur->next;
|
||||
continue;
|
||||
}
|
||||
if (!(IS_XSLT_ELEM(cur))) {
|
||||
if ((cur->type == XML_ELEMENT_NODE) && (!(IS_XSLT_ELEM(cur)))) {
|
||||
xsltTopLevelFunction function;
|
||||
|
||||
function = xsltExtModuleTopLevelLookup(cur->name,
|
||||
|
@@ -298,8 +298,17 @@ xsltPrintErrorContext(xsltTransformContextPtr ctxt,
|
||||
|
||||
file = doc->URL;
|
||||
} else {
|
||||
/*
|
||||
* Try to find contextual informations to report
|
||||
*/
|
||||
if (node->type == XML_ELEMENT_NODE) {
|
||||
line = (int) node->content;
|
||||
} else if ((node->prev != NULL) &&
|
||||
(node->prev->type == XML_ELEMENT_NODE)) {
|
||||
line = (int) node->prev->content;
|
||||
} else if ((node->parent != NULL) &&
|
||||
(node->parent->type == XML_ELEMENT_NODE)) {
|
||||
line = (int) node->parent->content;
|
||||
}
|
||||
if ((node->doc != NULL) && (node->doc->URL != NULL))
|
||||
file = node->doc->URL;
|
||||
|
@@ -4,7 +4,8 @@ $(top_builddir)/xsltproc/xsltproc:
|
||||
@(cd ../../xsltproc ; $(MAKE) xsltproc)
|
||||
|
||||
EXTRA_DIST = \
|
||||
tst-1.xml tst-1.xsl tst-1.out tst-1.err
|
||||
tst-1.xml tst-1.xsl tst-1.out tst-1.err \
|
||||
tst-2.xml tst-2.xsl tst-2.out tst-2.err
|
||||
|
||||
|
||||
all: test
|
||||
@@ -14,7 +15,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc
|
||||
@(for i in $(srcdir)/*.xml ; do \
|
||||
if [ -d $$i ] ; then continue ; fi ; \
|
||||
doc=`basename $$i .xml` ; \
|
||||
for j in $(srcdir)/$$doc*.xsl ; do \
|
||||
for j in $(srcdir)/$$doc.xsl ; do \
|
||||
if [ ! -f $$j ] ; then continue ; fi ; \
|
||||
if [ -d $$j ] ; then continue ; fi ; \
|
||||
name=`basename $$j .xsl`; \
|
||||
|
6
tests/reports/tst-2.err
Normal file
6
tests/reports/tst-2.err
Normal file
@@ -0,0 +1,6 @@
|
||||
compilation error: file ./tst-2.xsl line 2 element text
|
||||
misplaced text element: '
|
||||
|
||||
a not allowed top level element
|
||||
|
||||
'
|
0
tests/reports/tst-2.out
Normal file
0
tests/reports/tst-2.out
Normal file
1
tests/reports/tst-2.xml
Normal file
1
tests/reports/tst-2.xml
Normal file
@@ -0,0 +1 @@
|
||||
<doc/>
|
10
tests/reports/tst-2.xsl
Normal file
10
tests/reports/tst-2.xsl
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
|
||||
a not allowed top level element
|
||||
|
||||
<xsl:template match="/">
|
||||
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
@@ -618,8 +618,9 @@ main(int argc, char **argv)
|
||||
}
|
||||
xsltProcess(doc, cur, argv[i]);
|
||||
}
|
||||
xsltFreeStylesheet(cur);
|
||||
}
|
||||
if (cur != NULL)
|
||||
xsltFreeStylesheet(cur);
|
||||
done:
|
||||
xsltCleanupGlobals();
|
||||
xmlCleanupParser();
|
||||
|
Reference in New Issue
Block a user