sbailliez    2004/02/05 14:45:51

  Modified:    src/etc  junit-frames.xsl junit-noframes.xsl
  Log:
  PR: 19301
  Use xalan extensions to replace strings and avoid a stack overflow when doing 
deep recursions.
  
  Revision  Changes    Path
  1.17      +18 -77    ant/src/etc/junit-frames.xsl
  
  Index: junit-frames.xsl
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/junit-frames.xsl,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- junit-frames.xsl  31 Jul 2003 19:38:39 -0000      1.16
  +++ junit-frames.xsl  5 Feb 2004 22:45:50 -0000       1.17
  @@ -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 2001-2004 Apache Software Foundation
   
  - 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 [EMAIL PROTECTED]
  -
  - 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/>.
  +   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 @@
   
   <xsl:template name="JS-escape">
       <xsl:param name="string"/>
  -    <xsl:choose>
  -        <xsl:when test="contains($string,&quot;'&quot;)">
  -            <xsl:value-of 
select="substring-before($string,&quot;'&quot;)"/>\&apos;<xsl:call-template 
name="JS-escape">
  -                <xsl:with-param name="string" 
select="substring-after($string,&quot;'&quot;)"/>
  -            </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),&quot;'&quot;,&quot;\&apos;&quot;)"/>
  +    <xsl:value-of select="$tmp2"/>
   </xsl:template>
   
   
  @@ -748,18 +699,8 @@
   -->
   <xsl:template name="br-replace">
       <xsl:param name="word"/>
  -    <xsl:choose>
  -        <xsl:when test="contains($word,'&#xA;')">
  -            <xsl:value-of select="substring-before($word,'&#xA;')"/>
  -            <br/>
  -            <xsl:call-template name="br-replace">
  -                <xsl:with-param name="word" 
select="substring-after($word,'&#xA;')"/>
  -            </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),"&#xA;",$br)'/>
   </xsl:template>
   
   <xsl:template name="display-time">
  
  
  
  1.11      +20 -78    ant/src/etc/junit-noframes.xsl
  
  Index: junit-noframes.xsl
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/junit-noframes.xsl,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- junit-noframes.xsl        10 Feb 2003 14:13:28 -0000      1.10
  +++ junit-noframes.xsl        5 Feb 2004 22:45:50 -0000       1.11
  @@ -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.
  -
  - 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 [EMAIL PROTECTED]
  -
  - 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/>.
  +   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.
    -->
    
   <!--
  @@ -467,21 +431,9 @@
   
   <xsl:template name="JS-escape">
       <xsl:param name="string"/>
  -    <xsl:choose>
  -        <xsl:when test="contains($string,&quot;'&quot;)">
  -            <xsl:value-of 
select="substring-before($string,&quot;'&quot;)"/>\&apos;<xsl:call-template 
name="JS-escape">
  -                <xsl:with-param name="string" 
select="substring-after($string,&quot;'&quot;)"/>
  -            </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),&quot;'&quot;,&quot;\&apos;&quot;)"/>
  +    <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,'&#xA;')">
  -            <xsl:value-of select="substring-before($word,'&#xA;')"/>
  -            <br/>
  -            <xsl:call-template name="br-replace">
  -                <xsl:with-param name="word" 
select="substring-after($word,'&#xA;')"/>
  -            </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),"&#xA;",$br)'/>
   </xsl:template>
   
   <xsl:template name="display-time">
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to