Use xalan extensions to replace strings and avoid a stack overflow when doing deep recursions. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276027 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,61 +1,24 @@ | |||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" | |||
xmlns:lxslt="http://xml.apache.org/xslt" | |||
xmlns:redirect="org.apache.xalan.lib.Redirect" | |||
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils" | |||
extension-element-prefixes="redirect"> | |||
<xsl:output method="html" indent="yes" encoding="US-ASCII"/> | |||
<xsl:decimal-format decimal-separator="." grouping-separator=","/> | |||
<!-- | |||
The Apache Software License, Version 1.1 | |||
Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||
reserved. | |||
Redistribution and use in source and binary forms, with or without | |||
modification, are permitted provided that the following conditions | |||
are met: | |||
1. Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | |||
2. Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in | |||
the documentation and/or other materials provided with the | |||
distribution. | |||
3. The end-user documentation included with the redistribution, if | |||
any, must include the following acknowlegement: | |||
"This product includes software developed by the | |||
Apache Software Foundation (http://www.apache.org/)." | |||
Alternately, this acknowlegement may appear in the software itself, | |||
if and wherever such third-party acknowlegements normally appear. | |||
4. The names "Ant" and "Apache Software | |||
Foundation" must not be used to endorse or promote products derived | |||
from this software without prior written permission. For written | |||
permission, please contact apache@apache.org. | |||
5. Products derived from this software may not be called "Apache" | |||
nor may "Apache" appear in their names without prior written | |||
permission of the Apache Group. | |||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
SUCH DAMAGE. | |||
==================================================================== | |||
This software consists of voluntary contributions made by many | |||
individuals on behalf of the Apache Software Foundation. For more | |||
information on the Apache Software Foundation, please see | |||
<http://www.apache.org/>. | |||
Copyright 2001-2004 Apache Software Foundation | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
--> | |||
<!-- | |||
@@ -724,21 +687,9 @@ h6 { | |||
<xsl:template name="JS-escape"> | |||
<xsl:param name="string"/> | |||
<xsl:choose> | |||
<xsl:when test="contains($string,"'")"> | |||
<xsl:value-of select="substring-before($string,"'")"/>\'<xsl:call-template name="JS-escape"> | |||
<xsl:with-param name="string" select="substring-after($string,"'")"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:when test="contains($string,'\')"> | |||
<xsl:value-of select="substring-before($string,'\')"/>\\<xsl:call-template name="JS-escape"> | |||
<xsl:with-param name="string" select="substring-after($string,'\')"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:otherwise> | |||
<xsl:value-of select="$string"/> | |||
</xsl:otherwise> | |||
</xsl:choose> | |||
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/> | |||
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/> | |||
<xsl:value-of select="$tmp2"/> | |||
</xsl:template> | |||
@@ -748,18 +699,8 @@ h6 { | |||
--> | |||
<xsl:template name="br-replace"> | |||
<xsl:param name="word"/> | |||
<xsl:choose> | |||
<xsl:when test="contains($word,'
')"> | |||
<xsl:value-of select="substring-before($word,'
')"/> | |||
<br/> | |||
<xsl:call-template name="br-replace"> | |||
<xsl:with-param name="word" select="substring-after($word,'
')"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:otherwise> | |||
<xsl:value-of select="$word"/> | |||
</xsl:otherwise> | |||
</xsl:choose> | |||
<xsl:param name="br"><br/></xsl:param> | |||
<xsl:value-of select='stringutils:replace(string($word),"
",$br)'/> | |||
</xsl:template> | |||
<xsl:template name="display-time"> | |||
@@ -1,59 +1,23 @@ | |||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | |||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" | |||
xmlns:lxslt="http://xml.apache.org/xslt" | |||
xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"> | |||
<xsl:output method="html" indent="yes" encoding="US-ASCII" | |||
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /> | |||
<xsl:decimal-format decimal-separator="." grouping-separator="," /> | |||
<!-- | |||
The Apache Software License, Version 1.1 | |||
Copyright 2001-2004 Apache Software Foundation | |||
Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||
reserved. | |||
Licensed under the Apache License, Version 2.0 (the "License"); | |||
you may not use this file except in compliance with the License. | |||
You may obtain a copy of the License at | |||
Redistribution and use in source and binary forms, with or without | |||
modification, are permitted provided that the following conditions | |||
are met: | |||
http://www.apache.org/licenses/LICENSE-2.0 | |||
1. Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | |||
2. Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in | |||
the documentation and/or other materials provided with the | |||
distribution. | |||
3. The end-user documentation included with the redistribution, if | |||
any, must include the following acknowlegement: | |||
"This product includes software developed by the | |||
Apache Software Foundation (http://www.apache.org/)." | |||
Alternately, this acknowlegement may appear in the software itself, | |||
if and wherever such third-party acknowlegements normally appear. | |||
4. The names "Ant" and "Apache Software | |||
Foundation" must not be used to endorse or promote products derived | |||
from this software without prior written permission. For written | |||
permission, please contact apache@apache.org. | |||
5. Products derived from this software may not be called "Apache" | |||
nor may "Apache" appear in their names without prior written | |||
permission of the Apache Group. | |||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
SUCH DAMAGE. | |||
==================================================================== | |||
This software consists of voluntary contributions made by many | |||
individuals on behalf of the Apache Software Foundation. For more | |||
information on the Apache Software Foundation, please see | |||
<http://www.apache.org/>. | |||
Unless required by applicable law or agreed to in writing, software | |||
distributed under the License is distributed on an "AS IS" BASIS, | |||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
See the License for the specific language governing permissions and | |||
limitations under the License. | |||
--> | |||
<!-- | |||
@@ -467,21 +431,9 @@ | |||
<xsl:template name="JS-escape"> | |||
<xsl:param name="string"/> | |||
<xsl:choose> | |||
<xsl:when test="contains($string,"'")"> | |||
<xsl:value-of select="substring-before($string,"'")"/>\'<xsl:call-template name="JS-escape"> | |||
<xsl:with-param name="string" select="substring-after($string,"'")"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:when test="contains($string,'\')"> | |||
<xsl:value-of select="substring-before($string,'\')"/>\\<xsl:call-template name="JS-escape"> | |||
<xsl:with-param name="string" select="substring-after($string,'\')"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:otherwise> | |||
<xsl:value-of select="$string"/> | |||
</xsl:otherwise> | |||
</xsl:choose> | |||
<xsl:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/> | |||
<xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/> | |||
<xsl:value-of select="$tmp2"/> | |||
</xsl:template> | |||
@@ -491,18 +443,8 @@ | |||
--> | |||
<xsl:template name="br-replace"> | |||
<xsl:param name="word"/> | |||
<xsl:choose> | |||
<xsl:when test="contains($word,'
')"> | |||
<xsl:value-of select="substring-before($word,'
')"/> | |||
<br/> | |||
<xsl:call-template name="br-replace"> | |||
<xsl:with-param name="word" select="substring-after($word,'
')"/> | |||
</xsl:call-template> | |||
</xsl:when> | |||
<xsl:otherwise> | |||
<xsl:value-of select="$word"/> | |||
</xsl:otherwise> | |||
</xsl:choose> | |||
<xsl:param name="br"><br/></xsl:param> | |||
<xsl:value-of select='stringutils:replace(string($word),"
",$br)'/> | |||
</xsl:template> | |||
<xsl:template name="display-time"> | |||