Annotation of embedaddon/libxml2/doc/syms.xsl, revision 1.1.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>