Limit generated ID lengths to 26 characters

[SVN r25396]
This commit is contained in:
Douglas Gregor 2004-09-24 14:54:35 +00:00
parent 39e30a1c99
commit 8e045fb1b3
3 changed files with 26 additions and 8 deletions

View File

@ -7,6 +7,7 @@
<xsl:key name="libraries" match="library" use="@name"/>
<xsl:key name="macros" match="macro" use="@name"/>
<xsl:key name="headers" match="header" use="@name"/>
<xsl:key name="named-entities" match="class|struct|union|function|overloaded-function|macro|library|*[attribute::id]" use="@name|@id"/>
<xsl:template match="function|overloaded-function" mode="generate.id">
<xsl:variable name="name" select="normalize-space(@name)"/>
@ -16,7 +17,7 @@
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')"/>
<xsl:choose>
<xsl:when test="count(key('functions', $name))=1
<xsl:when test="count(key('named-entities', $name))=1
and ($translated-name=$name)">
<xsl:value-of select="$name"/>
</xsl:when>

View File

@ -2,10 +2,22 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="boost.max.id.length">26</xsl:param>
<!-- Generate an ID for the entity referenced -->
<xsl:template name="generate.id">
<xsl:param name="node" select="."/>
<xsl:apply-templates select="$node" mode="generate.id"/>
<xsl:variable name="id">
<xsl:apply-templates select="$node" mode="generate.id"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($id) &gt; $boost.max.id.length">
<xsl:value-of select="generate-id($node)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="string($id)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*" mode="generate.id">

View File

@ -13,12 +13,17 @@
<xsl:param name="boost.compact.enum">1</xsl:param>
<xsl:template match="class|struct|union" mode="generate.id">
<xsl:value-of select="local-name(.)"/>
<xsl:text>.</xsl:text>
<xsl:call-template name="fully-qualified-name">
<xsl:with-param name="node" select="."/>
<xsl:with-param name="separator" select="'.'"/>
</xsl:call-template>
<xsl:choose>
<xsl:when test="count(key('named-entities', @name))=1">
<xsl:value-of select="@name"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="fully-qualified-name">
<xsl:with-param name="node" select="."/>
<xsl:with-param name="separator" select="'.'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="enum" mode="generate.id">