Annotation of embedaddon/libxml2/doc/syms.xsl, revision 1.1

1.1     ! misho       1: <?xml version="1.0"?>
        !             2: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        !             3:                 version="1.0">
        !             4:   <xsl:output method="text" encoding="UTF-8"/>
        !             5: 
        !             6:   <xsl:variable name="api" select="document('libxml2-api.xml')"/>
        !             7: 
        !             8:   <xsl:template match="/">
        !             9:     <xsl:text>#
        !            10: # Officially exported symbols, for which header
        !            11: # file definitions are installed in /usr/include/libxml2
        !            12: #
        !            13: # Automatically generated from symbols.xml and syms.xsl
        !            14: #
        !            15: # Versions here are *fixed* to match the libxml2 version
        !            16: # at which the symbol was introduced. This ensures that
        !            17: # a new client app requiring symbol foo() can't accidentally
        !            18: # run with old libxml2.so not providing foo() - the global
        !            19: # soname version info can't enforce this since we never
        !            20: # change the soname
        !            21: #
        !            22: 
        !            23: </xsl:text>
        !            24:     <xsl:apply-templates select="/symbols/release"/>
        !            25:   </xsl:template>
        !            26: 
        !            27:   <xsl:template match="release">
        !            28:     <xsl:variable name="prev"
        !            29:                   select="preceding-sibling::release[position()=1]"/>
        !            30:     <xsl:text>LIBXML2_</xsl:text>
        !            31:     <xsl:value-of select="string(@version)"/>
        !            32:     <xsl:text> {
        !            33:     global:
        !            34: </xsl:text>
        !            35:     <xsl:for-each select="symbol">
        !            36:       <xsl:if test="string(preceding-sibling::symbol[position()=1]/@file) != string(@file)">
        !            37:         <xsl:text>
        !            38: # </xsl:text>
        !            39:         <xsl:value-of select="@file"/>
        !            40:         <xsl:text>
        !            41: </xsl:text>
        !            42:       </xsl:if>
        !            43: 
        !            44:       <xsl:apply-templates select="."/>
        !            45:     </xsl:for-each>
        !            46: 
        !            47:     <xsl:text>} </xsl:text>
        !            48:     <xsl:if test="$prev">
        !            49:       <xsl:text>LIBXML2_</xsl:text>
        !            50:       <xsl:value-of select="$prev/@version"/>
        !            51:     </xsl:if>
        !            52:     <xsl:text>;
        !            53: 
        !            54: </xsl:text>
        !            55:   </xsl:template>
        !            56: 
        !            57:   <xsl:template match="symbol">
        !            58:     <xsl:variable name="name" select="string(.)"/>
        !            59:     <xsl:variable name="file" select="string(@file)"/>
        !            60:     <xsl:choose>
        !            61:       <xsl:when test="@removed">
        !            62:         <xsl:text># </xsl:text>
        !            63:         <xsl:value-of select="$name"/>
        !            64:         <xsl:text>; removed in </xsl:text>
        !            65:         <xsl:value-of select="@removed"/>
        !            66:         <xsl:text>
        !            67: </xsl:text>
        !            68:       </xsl:when>
        !            69:       <xsl:otherwise>
        !            70:         <!-- make sure we can find that symbol exported from the API list -->
        !            71:         <xsl:variable name="def"
        !            72:             select="$api/api/files/file[@name = $file]/exports[@symbol = $name]"/>
        !            73:         <xsl:if test="string($def/@symbol) != $name">
        !            74:           <xsl:message terminate="yes">
        !            75:             <xsl:text>Failed to find definition in libxml2-api.xml:</xsl:text>
        !            76:             <xsl:value-of select="$name"/>
        !            77:           </xsl:message>
        !            78:         </xsl:if>
        !            79: 
        !            80:         <xsl:text>  </xsl:text>
        !            81:         <xsl:value-of select="$name"/>
        !            82:         <xsl:text>;</xsl:text>
        !            83:         <xsl:if test="$def/@type = 'variable'">
        !            84:           <xsl:text> # variable</xsl:text>
        !            85:         </xsl:if>
        !            86:         <xsl:if test="@comment">
        !            87:           <xsl:text># </xsl:text>
        !            88:           <xsl:value-of select="@comment"/>
        !            89:           <xsl:text>
        !            90: </xsl:text>
        !            91:         </xsl:if>
        !            92:         <xsl:text>
        !            93: </xsl:text>
        !            94:       </xsl:otherwise>
        !            95:     </xsl:choose>
        !            96:   </xsl:template>
        !            97: 
        !            98: </xsl:stylesheet>
        !            99: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>