Add support for <headername>

[SVN r20249]
This commit is contained in:
Douglas Gregor 2003-10-03 03:41:12 +00:00
parent 33a3dd5f63
commit 3d7beff32d
3 changed files with 45 additions and 2 deletions

View File

@ -83,7 +83,7 @@
<!ELEMENT libraryinfo (author+, copyright*, legalnotice*, librarypurpose, librarycategory*)>
<!ATTLIST libraryinfo %boost.common.attrib;>
<!ELEMENT librarypurpose (#PCDATA|code|ulink|functionname|methodname|classname)*>
<!ELEMENT librarypurpose (#PCDATA|code|ulink|functionname|methodname|classname|macroname|headername)*>
<!ATTLIST librarypurpose %boost.common.attrib;>
<!ELEMENT librarycategory (#PCDATA)>
@ -289,6 +289,12 @@
<!ELEMENT functionname (#PCDATA)>
<!ATTLIST functionname %boost.common.attrib;>
<!ELEMENT macroname (#PCDATA)>
<!ATTLIST macroname %boost.common.attrib;>
<!ELEMENT headername (#PCDATA)>
<!ATTLIST headername %boost.common.attrib;>
<!ELEMENT copy-assignment
(template?, type?, parameter*, %boost.function.semantics;)>
<!ATTLIST copy-assignment

View File

@ -6,6 +6,7 @@
<xsl:key name="functions" match="function|overloaded-function" use="@name"/>
<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:template match="classname" mode="annotation">
<!-- Determine the (possibly qualified) class name we are looking for -->
@ -198,6 +199,42 @@
</xsl:choose>
</xsl:template>
<xsl:template match="headername" mode="annotation">
<xsl:param name="name" select="text()"/>
<xsl:variable name="node" select="key('headers', $name)"/>
<xsl:choose>
<xsl:when test="count($node) = 0">
<xsl:message>
<xsl:text>warning: cannot find header `</xsl:text>
<xsl:value-of select="$name"/>
<xsl:text>'</xsl:text>
</xsl:message>
<xsl:value-of select="$name"/>
</xsl:when>
<xsl:when test="count($node) = 1">
<xsl:call-template name="internal-link">
<xsl:with-param name="to">
<xsl:call-template name="generate.id">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="text" select="$name"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:message>
<xsl:text>error: header `</xsl:text>
<xsl:value-of select="$name"/>
<xsl:text>' is multiply defined.</xsl:text>
</xsl:message>
<xsl:value-of select="$node"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="text()" mode="annotation">
<xsl:param name="highlight" select="false()"/>
<xsl:choose>

View File

@ -351,7 +351,7 @@ Error: XSL template 'link-or-anchor' called with invalid link-type '<xsl:value-o
<!-- These DocBook elements have special meaning. Use the annotation mode -->
<xsl:template match="classname|methodname|functionname|libraryname|
conceptname|macroname">
conceptname|macroname|headername">
<xsl:apply-templates select="." mode="annotation"/>
</xsl:template>