The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet
        version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="xmlspec.xsl"/>
<xsl:template match="proto">
<p><a name="function-{@name}">
<b>Function: </b>
<i><xsl:value-of select="@return-type"/></i>
<xsl:text> </xsl:text>
<b><xsl:value-of select="@name"/></b>
<xsl:text>(</xsl:text>
<xsl:for-each select="arg">
<xsl:if test="not(position()=1)">
<xsl:text>, </xsl:text>
</xsl:if>
<i><xsl:value-of select="@type"/></i>
<xsl:choose>
<xsl:when test="@occur='rep'">*</xsl:when>
<xsl:when test="@occur='opt'">?</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:text>)</xsl:text>
</a></p>
</xsl:template>
<xsl:template match="function">
<b><a href="#function-{.}"><xsl:apply-templates/></a></b>
</xsl:template>
<xsl:template match="xfunction">
<b><a href="{@href}#function-{.}"><xsl:apply-templates/></a></b>
</xsl:template>

<!-- Support for <loc role="available-format">...</loc> -->
<xsl:template match="publoc/loc[@role='available-format']">
  <xsl:if test="not(preceding-sibling::loc[@role='available-format'])">
    <xsl:text>(available in </xsl:text>
  </xsl:if>
  <a href="{@href}"><xsl:apply-templates/></a>
  <xsl:variable name="nf"
    select="count(following-sibling::loc[@role='available-format'])"/>
  <xsl:choose>
   <xsl:when test="not($nf)">
     <xsl:text>)</xsl:text>
   </xsl:when>
   <xsl:when test="$nf = 1">
     <xsl:choose>
       <xsl:when test="count(../loc[@role='available-format'])=2">
	 <xsl:text> or </xsl:text>
       </xsl:when>
       <xsl:otherwise>
	 <xsl:text>, or </xsl:text>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:when>
   <xsl:otherwise>
     <xsl:text>, </xsl:text>
   </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>