forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brond...@apache.org
Subject svn commit: rev 20866 - in forrest/trunk: . legal src/core/context/resources/stylesheets/aggregates src/core/context/resources/stylesheets/external
Date Mon, 07 Jun 2004 13:13:37 GMT
Author: brondsem
Date: Mon Jun  7 06:13:36 2004
New Revision: 20866

Added:
   forrest/trunk/legal/oreilly.codepolicy.txt
   forrest/trunk/legal/oreilly.permission.txt
   forrest/trunk/src/core/context/resources/stylesheets/external/
   forrest/trunk/src/core/context/resources/stylesheets/external/str.find-last.xslt
Modified:
   forrest/trunk/NOTICE.txt
   forrest/trunk/src/core/context/resources/stylesheets/aggregates/doc2doc-uniqueids.xsl
   forrest/trunk/status.xml
Log:
Fix relative links and image references in aggregate pages

Modified: forrest/trunk/NOTICE.txt
==============================================================================
--- forrest/trunk/NOTICE.txt	(original)
+++ forrest/trunk/NOTICE.txt	Mon Jun  7 06:13:36 2004
@@ -29,3 +29,6 @@
 
 This product includes software developed by Chaperon
 http://chaperon.sourceforge.net/
+
+This product includes software developed by Sal Mangano (included in the XSLT Cookbook published
by O'Reilly)
+http://www.oreilly.com/catalog/xsltckbk/
\ No newline at end of file

Added: forrest/trunk/legal/oreilly.codepolicy.txt
==============================================================================
--- (empty file)
+++ forrest/trunk/legal/oreilly.codepolicy.txt	Mon Jun  7 06:13:36 2004
@@ -0,0 +1,103 @@
+http://www.oreilly.com/pub/a/oreilly/ask_tim/2001/codepolicy.html
+
+*O'Reilly Policy on Re-Use of Code Examples from Books*
+
+Bruce Epstein, author of /Director in a Nutshell/ (out of print) and
+Lingo in a Nutshell <http://www.oreilly.com/catalog/lingonut/>, who is
+now working as a part-time editor for O'Reilly (he is editor of Colin
+Moock's recently published ActionScript: The Definitive Guide
+<http://www.oreilly.com/catalog/actscript/>) sent in the following
+question:
+
+"What is our policy with regard to programmers incorporating code
+examples from books into their work? I get asked this all the time."
+
+The short answer is this:
+
+You can use and redistribute example code from our books for any
+non-commercial purpose (and most commercial purposes) as long as you
+acknowledge their source and authorship. The source of the code should
+be noted in any documentation as well as in the program code itself (as
+a comment). The attribution should include author, title, publisher, and
+ISBN.
+
+As is often the case, there's a longer answer as well. Bruce made it
+really easy for me to put this response together, since he forwarded an
+unofficial reply on this subject that he'd sent to the FlashCoders
+mailing list. What appears below is based on his message. (Hey, anyone
+else who wants to send the answer as well as the question to Ask Tim can
+make my job a lot easier :-) Thanks, Bruce.)
+
+As per the copyright notice in our books, O'Reilly reserves all rights
+to the material in the book, including the code examples. This literally
+means that you can use the example code all you like, but you can't
+publish or redistribute it without our permission. In reality, we are
+comfortable with any reasonable "fair use" of the code, and you can
+assume permission is granted without contacting us. The threshold of
+what is reasonable (fair use) depends on a number of factors. First, if
+the book is published under an open source or open publication license,
+you can use the code examples without any obligation to us. Otherwise,
+use the following sanity tests:
+
+   1.
+
+      If the code is incorporated into a software product, Web site, or
+      Web service, is the product, site, or service a commercial
+      venture? We don't object to commercial ventures, but if someone is
+      looking to profit from our work (or that of our authors'), and the
+      use is substantial, we may want to consider a license fee. (Send
+      licensing queries to permissions@oreilly.com
+      <mailto:permissions@oreilly.com>.)
+
+   2.
+
+      Is the O'Reilly material incidental to the entire product? Are you
+      using only a small excerpt? For example, you can't publish a
+      CD-ROM of code examples from O'Reilly books without our explicit
+      permission. But we aren't going to worry if you use a routine
+      taken from our books as part of a huge software project, in which
+      the borrowed code is incidental.
+
+   3.
+
+      Does the work compete with O'Reilly? For example, if you are a
+      book publisher, you can't use anything from our books without our
+      permission.
+
+   4.
+
+      Is proper credit given? Such credit would include a statement
+      specifying the source of the material, such as "Derived from
+      Example 10-2, /ActionScript: The Definitive Guide/ by Colin Moock.
+      Copyright 2001 O'Reilly & Associates." Note that giving credit
+      does not insulate you from prosecution if you improperly use
+      copyrighted material!
+
+   5.
+
+      Does your use fall within fair use provisions of copyright law?
+      (Academic research, commentary, etc.) For example, you don't need
+      O'Reilly's explicit permission to post a snippet of code on a
+      mailing list if you are pointing out a bug, asking a question, or
+      answering one. We especially like it when people answer questions
+      by pointing to our books, quoting from them, and citing their
+      examples, as long as they acknowledge the source!
+
+      Acknowledging the source is particularly important. Bruce didn't
+      mention this in his posting to FlashCoders, but I know that he
+      personally was bit by this one. Someone was routinely answering
+      Lingo questions on a mailing list by supplying examples from
+      Bruce's book, without acknowledging the source (and leading people
+      to believe that the poster had written them).
+
+We put the code from our books online because we want it to be used.
+(Who wants to type it in?) That's why we make it available in lots of
+ways: for download from the Web (all examples are linked from the book's
+catalog page on /oreilly.com/), in our CD Bookshelf products, and in our
+new Safari online service.
+
+If you are interested in licensing O'Reilly book content as a third
+party, send your request to corporate@oreilly.com
+<mailto:corporate@oreilly.com>.
+
+--Tim

Added: forrest/trunk/legal/oreilly.permission.txt
==============================================================================
--- (empty file)
+++ forrest/trunk/legal/oreilly.permission.txt	Mon Jun  7 06:13:36 2004
@@ -0,0 +1,81 @@
+From cindyw@oreilly.com Thu Jun  3 09:05:16 2004
+Return-Path: <cindyw@oreilly.com>
+Delivered-To: user0009-dave@brondsema.net
+Received: (qmail 14470 invoked from network); 2 Jun 2004 21:12:58 -0000
+Received: from minotaur.apache.org (209.237.227.194)
+  by 0 with SMTP; 2 Jun 2004 21:12:58 -0000
+Received: (qmail 87257 invoked by uid 1775); 2 Jun 2004 21:13:44 -0000
+Delivered-To: brondsem@locus.apache.org
+Received: (qmail 87184 invoked from network); 2 Jun 2004 21:13:43 -0000
+Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199)
+  by minotaur.apache.org with SMTP; 2 Jun 2004 21:13:43 -0000
+Received: (qmail 35227 invoked by uid 500); 2 Jun 2004 21:14:00 -0000
+Delivered-To: apmail-brondsem@apache.org
+Received: (qmail 35134 invoked by uid 99); 2 Jun 2004 21:14:00 -0000
+Received: from [209.204.146.35] (HELO smtp1.oreilly.com) (209.204.146.35)
+  by apache.org (qpsmtpd/0.27.1) with ESMTP; Wed, 02 Jun 2004 14:14:00 -0700
+Received: from cindyw.oreilly.com (dhcp-172-24-30-220.west.ora.com
+    [172.24.30.220])
+	by smtp1.oreilly.com (Postfix) with ESMTP
+	id 93D2E14A1C; Wed,  2 Jun 2004 14:13:39 -0700 (PDT)
+Message-Id: <4.3.2.7.2.20040602140354.00c45838@pop3.west.ora.com>
+X-Sender: cindyw@pop3.west.ora.com
+X-Mailer: QUALCOMM Windows Eudora Version 4.3.2
+Date: Wed, 02 Jun 2004 14:13:01 -0700
+To: Dave Brondsema <brondsem@apache.org>, permissions@oreilly.com
+From: Cindy Wetterlund <cindyw@oreilly.com>
+Subject: Re: using code in an Apache project
+Cc: simonstl@oreilly.com
+In-Reply-To: <1085402426.40b1ed3a86ef4@secure.solidusdesign.com>
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"; format=flowed
+X-Virus-Checked: Checked
+X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N
+X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on 
+	ferrari.solidusdesign.com
+X-Spam-Level: 
+X-Spam-Status: No, hits=0.0 required=4.0 tests=none autolearn=no version=2.63
+
+Hi Dave,
+
+Thanks for your mail and interest.
+
+Yes, you have O'Reilly's permission (and the author's who
+was happy to hear of your interest) to re-use some of the code
+from XSLT Cookbook for the Forrest project.
+
+It would be great if you would cite the usage by acknowledging
+the original title/author with a standard credit line.
+
+Thanks Dave.
+
+Cindy
+
+At 08:40 AM 5/24/2004 -0400, Dave Brondsema wrote:
+
+>The Apache Forrest project (http://xml.apache.org/forrest/) would like to use
+>some of the code included in the XSLT Cookbook.  Forrest is licensed under the
+>Apache License 2.0 (http://www.apache.org/licenses/)
+>
+>According to 
+>http://www.oreilly.com/pub/a/oreilly/ask_tim/2001/codepolicy.html,
+>I think this would be ok.  However, we would feel more comfortable if explicit
+>permission was given for us to use and distribute your code as part of our 
+>project.
+>
+>Personally, I would suggest that O'Reilly code be licensed under a known Open
+>Source license, such as the Apache License.  This would make it clear to all
+>what is allowed and what is not.
+>
+>Thanks!
+>
+>--
+>Dave Brondsema : brondsem@apache.org
+>http://www.brondsema.net  : personal
+>http://www.splike.com  : programming
+
+Cindy Wetterlund
+International Rights and
+Licensing Manager
+cindyw@oreilly.com
+

Modified: forrest/trunk/src/core/context/resources/stylesheets/aggregates/doc2doc-uniqueids.xsl
==============================================================================
--- forrest/trunk/src/core/context/resources/stylesheets/aggregates/doc2doc-uniqueids.xsl
(original)
+++ forrest/trunk/src/core/context/resources/stylesheets/aggregates/doc2doc-uniqueids.xsl
Mon Jun  7 06:13:36 2004
@@ -18,7 +18,10 @@
 <xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:cinclude="http://apache.org/cocoon/include/1.0"
+  xmlns:str="http://www.ora.com/XSLTCookbook/namespaces/strings" 
   exclude-result-prefixes="cinclude">
+  
+  <xsl:include href="../external/str.find-last.xslt"/>
 
   <xsl:key name="node-id" match="*" use="@id"/>
 
@@ -33,13 +36,24 @@
     <xsl:attribute name="href"><xsl:value-of select="concat('#', ancestor::section/@id,
.)"/></xsl:attribute>
   </xsl:template>
 
-  <!-- Translate relative links like 'index.html' to '#index.html' -->
-  <xsl:template match="section/document//link/@href[contains(., '.html')]">
+  <!-- Translate relative links to '#link' -->
+  <xsl:template match="section/document//link/@href[not(starts-with(., 'http:') or starts-with(.,
'https:'))]">
     <xsl:attribute name="href"><xsl:text>#</xsl:text><xsl:value-of select="."/></xsl:attribute>
   </xsl:template>
 
-  <xsl:template match="section/document//img[starts-with(@src, 'my-images')]">
-    <!-- Zap my-images/** links, which break as they are not relative to the site root
-->
+  <xsl:template match="section/document//figure|img[starts-with(@src, 'my-images')]">
+    <!-- fix my-images/** links, which break as they are not relative to the site root
-->
+    <xsl:variable name="page-root">
+      <xsl:call-template name="str:substring-before-last">
+        <xsl:with-param name="input" select="ancestor::section/@id"/>
+        <xsl:with-param name="substr" select="'/'"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:copy>
+      <xsl:attribute name="src">
+        <xsl:value-of select="concat($page-root,'/',@src)"/>
+      </xsl:attribute>
+    </xsl:copy>
   </xsl:template>
   <xsl:include href="../copyover.xsl"/>
 

Added: forrest/trunk/src/core/context/resources/stylesheets/external/str.find-last.xslt
==============================================================================
--- (empty file)
+++ forrest/trunk/src/core/context/resources/stylesheets/external/str.find-last.xslt	Mon Jun
 7 06:13:36 2004
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file is from the examples included in the XSLT Cookbook, written by Sal Mangano, published
by O'Reilly
+See /legal/oreilly.codepolicy.txt and /legal/oreilly.permission.txt
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" id="str.find-last"
+  xmlns:str="http://www.ora.com/XSLTCookbook/namespaces/strings" extension-element-prefixes="str">
+
+
+<xsl:template name="str:substring-before-last"> 
+  <xsl:param name="input"/>
+  <xsl:param name="substr"/>
+  
+  <xsl:if test="$substr and contains($input, $substr)">
+    <xsl:variable name="temp" select="substring-after($input, $substr)" />
+    <xsl:value-of select="substring-before($input, $substr)" />
+    <xsl:if test="contains($temp, $substr)">
+      <xsl:value-of select="$substr" />
+      <xsl:call-template name="str:substring-before-last">
+        <xsl:with-param name="input" select="$temp" />
+        <xsl:with-param name="substr" select="$substr" />
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  
+</xsl:template>
+
+
+<xsl:template name="str:substring-after-last">
+  <xsl:param name="input"/>
+  <xsl:param name="substr"/>
+  
+  <!-- Extract the string which comes after the first occurence -->
+  <xsl:variable name="temp" select="substring-after($input,$substr)"/>
+  
+  <xsl:choose>
+  	<xsl:when test="$substr and contains($temp,$substr)">
+  		<xsl:call-template name="str:substring-after-last">
+  			<xsl:with-param name="input" select="$temp"/>
+  			<xsl:with-param name="substr" select="$substr"/>
+  		</xsl:call-template>
+  	</xsl:when>
+  	<xsl:otherwise>
+  		<xsl:value-of select="$temp"/>
+  	</xsl:otherwise>
+  </xsl:choose>
+</xsl:template> 
+
+
+<xsl:template match="xsl:stylesheet[@id='str.find-last'] | xsl:include[@href='str.find-last.xslt']
" >
+<tests>
+
+<!-- before -->
+	<test name="str:substring-before-last with no occurences of yes">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'No occurences' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	
+	<test name="str:substring-before-last starts with yes">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'yes occurences' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+
+	<test name="str:substring-before-last starts with yes and ends with yes">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'yes occurences yes' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+
+	<test name="str:substring-before-last 3 yes">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'yesyesyes' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	<test name="str:substring-before-last empty input">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	
+	<test name="str:substring-before-last empty search">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'No occurences' "/>
+	</xsl:call-template>
+
+	</test>
+
+	<test name="str:substring-before-last large">
+	<xsl:call-template name="str:substring-before-last">
+		<xsl:with-param name="input" select=" 'yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes'
"/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+
+
+	</test>
+
+<!-- after -->
+
+	<test name="str:substring-after-last with no occurences of yes">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'No occurences' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	
+	<test name="str:substring-after-last starts with yes">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'yes occurences' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+
+	<test name="str:substring-after-last starts with yes and ends with yes">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'yes occurences yes' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+
+	<test name="str:substring-after-last 3 yes">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'yesyesyes' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+
+	<test name="str:substring-after-last 3 yes then no">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'yesyesyesno' "/>
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	
+	<test name="str:substring-after-last empty input">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="substr" select=" 'yes' "/>
+	</xsl:call-template>
+	</test>
+	
+	<test name="str:substring-after-last empty search">
+	<xsl:call-template name="str:substring-after-last">
+		<xsl:with-param name="input" select=" 'No occurences' "/>
+	</xsl:call-template>
+
+	</test>
+
+</tests>
+</xsl:template>
+
+ <xsl:template match="text()"/>
+  
+</xsl:stylesheet>

Modified: forrest/trunk/status.xml
==============================================================================
--- forrest/trunk/status.xml	(original)
+++ forrest/trunk/status.xml	Mon Jun  7 06:13:36 2004
@@ -49,6 +49,9 @@
         Added new document to facilitate
         <link href="upgrading_06.html">upgrading to v0.6</link>
       </action>
+      <action dev="DB" type="update" context="code" fixes-bug="FOR-148">
+         Fix relative links and image references in aggregate pages.
+      </action>
       <action dev="JJP" type="update" context="code" due-to="Florian G. Haas" fixes-bug="FOR-9">
          Fix Issue with krysalis-site skin.
       </action>

Mime
View raw message