mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2026-01-07 21:58:22 +03:00
Fixing Bug 116517
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
Sun Aug 3 19:46:42 HTK 2003 William Brack <wbrack@mmm.com.hk>
|
||||
|
||||
Fixed bug 116517 - handling of '{' and '}'
|
||||
* templates.c: added checks for escaping and balancing of
|
||||
curly brackets
|
||||
* tests/general/Makefile.am tests/docs/Makefile.am:
|
||||
Added test case (bug-126) to regression suite.
|
||||
|
||||
Sun Aug 3 15:50:51 HKT 2003 William Brack <wbrack@mmm.com.hk>
|
||||
|
||||
Fixed bug 117552 - sort with multiple keys
|
||||
|
||||
@@ -247,11 +247,20 @@ xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
|
||||
cur = str;
|
||||
while (*cur != 0) {
|
||||
if (*cur == '{') {
|
||||
if (*(cur+1) == '{') { /* escaped '{' */
|
||||
cur++;
|
||||
ret = xmlStrncat(ret, str, cur - str);
|
||||
cur++;
|
||||
str = cur;
|
||||
continue;
|
||||
}
|
||||
ret = xmlStrncat(ret, str, cur - str);
|
||||
str = cur;
|
||||
cur++;
|
||||
while ((*cur != 0) && (*cur != '}')) cur++;
|
||||
if (*cur == 0) {
|
||||
xsltTransformError(ctxt, NULL, NULL,
|
||||
"xsltAttrTemplateValueProcessNode: unmatched '{'\n");
|
||||
ret = xmlStrncat(ret, str, cur - str);
|
||||
return(ret);
|
||||
}
|
||||
@@ -288,6 +297,17 @@ xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
|
||||
}
|
||||
cur++;
|
||||
str = cur;
|
||||
} else if (*cur == '}') {
|
||||
cur++;
|
||||
if (*cur == '}') { /* escaped '}' */
|
||||
ret = xmlStrncat(ret, str, cur - str);
|
||||
cur++;
|
||||
str = cur;
|
||||
continue;
|
||||
} else {
|
||||
xsltTransformError(ctxt, NULL, NULL,
|
||||
"xsltAttrTemplateValueProcessNode: unmatched '}'\n");
|
||||
}
|
||||
} else
|
||||
cur++;
|
||||
}
|
||||
|
||||
@@ -125,6 +125,7 @@ EXTRA_DIST = \
|
||||
bug-123.xml \
|
||||
bug-124.xml \
|
||||
bug-125.xml \
|
||||
bug-126.xml \
|
||||
character.xml \
|
||||
array.xml \
|
||||
items.xml
|
||||
|
||||
1
tests/docs/bug-126.xml
Normal file
1
tests/docs/bug-126.xml
Normal file
@@ -0,0 +1 @@
|
||||
<doc/>
|
||||
@@ -130,6 +130,7 @@ EXTRA_DIST = \
|
||||
bug-123.out bug-123.xsl \
|
||||
bug-124.out bug-124.xsl \
|
||||
bug-125.out bug-125.xsl \
|
||||
bug-126.out bug-126.xsl \
|
||||
character.out character.xsl \
|
||||
character2.out character2.xsl \
|
||||
itemschoose.out itemschoose.xsl \
|
||||
|
||||
9
tests/general/bug-126.out
Normal file
9
tests/general/bug-126.out
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<foo attr="$x"/> Expect '$x'
|
||||
<foo attr="val"/> Expect 'val'
|
||||
<foo attr="{$x"/> Expect 'bracket $x'
|
||||
<foo attr="$x}"/> Expect '$x bracket'
|
||||
<foo attr="{$x}"/> Expect 'bracket $x bracket'
|
||||
<foo attr="{val}"/> Expect 'bracket val bracket'
|
||||
|
||||
17
tests/general/bug-126.xsl
Normal file
17
tests/general/bug-126.xsl
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0">
|
||||
|
||||
<xsl:variable name="x" select="'val'" />
|
||||
<xsl:template match="/">
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
<foo attr="$x"/> Expect '$x'
|
||||
<foo attr="{$x}"/> Expect 'val'
|
||||
<foo attr="{{$x"/> Expect 'bracket $x'
|
||||
<foo attr="$x}}"/> Expect '$x bracket'
|
||||
<foo attr="{{$x}}"/> Expect 'bracket $x bracket'
|
||||
<foo attr="{{{$x}}}"/> Expect 'bracket val bracket'
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
Reference in New Issue
Block a user