File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / doc / syms.xsl
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:59 2012 UTC (12 years, 4 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    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>