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"> | |||