Simplify the Doxygen to Docbook XML transform.
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 19 May 2013 18:20:08 +0000 (20:20 +0200)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 19 May 2013 18:20:08 +0000 (20:20 +0200)
LUFA/Drivers/USB/Class/Host/HIDClassHost.h
LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt

index 095530b..72d32e5 100644 (file)
@@ -95,7 +95,7 @@
                                                                          *   is not used.
                                                                                                          *
                                                                          *  \note When the \c HID_HOST_BOOT_PROTOCOL_ONLY compile time token is defined,
-                                                                         *        this method is unavailable.
+                                                                         *        this field is unavailable.
                                                                          */
                                        #endif
                                } Config; /**< Config data for the USB class interface within the device. All elements in this section
index d543bc0..24a5dfa 100644 (file)
                                        <title>
                                                <xsl:value-of select="$name"/>
                                        </title>
+
                                        <tgroup cols="3">
-                                               <colspec colnum="1" colname="start.col"/>
-                                               <colspec colnum="3" colname="stop.col"/>
-                                               <spanspec spanname="full" namest="start.col" nameend="stop.col"/>
                                                <thead>
                                                        <row>
                                                                <entry>Type</entry>
                                                                <entry>Description</entry>
                                                        </row>
                                                </thead>
+
                                                <tbody>
                                                        <xsl:for-each select="memberdef">
                                                                <row id="{@id}" xreflabel="{name}">
                                                        <entry>Description</entry>
                                                </row>
                                        </thead>
+
                                        <tbody>
                                                <xsl:for-each select="enumvalue">
                                                        <row>
                </section>
        </xsl:template>
 
-       <xsl:template match="memberdef[@kind = 'variable' or @kind = 'typedef']">
+       <xsl:template match="memberdef[@kind = 'typedef']">
                <section id="{@id}" xreflabel="{name}">
-                       <!-- Doxygen gets confused and thinks function pointer type definitions
-                                are variables, so we need to map them to this common section and
-                                check the definition to see which of the two it is. -->
-                       <xsl:choose>
-                               <xsl:when test="contains(definition, 'typedef')">
-                                       <title>
-                                               <xsl:text>Type </xsl:text>
-                                               <xsl:value-of select="name"/>
-                                       </title>
+                       <title>
+                               <xsl:text>Type </xsl:text>
+                               <xsl:value-of select="name"/>
+                       </title>
 
-                                       <xsl:call-template name="generate.index.id">
-                                               <xsl:with-param name="name" select="name"/>
-                                       </xsl:call-template>
-
-                                       <programlisting language="c">
-                                               <emphasis role="keyword">
-                                                       <xsl:text>typedef </xsl:text>
-                                                       <xsl:value-of select="type"/>
-                                               </emphasis>
-                                               <xsl:text> </xsl:text>
-                                               <xsl:value-of select="name"/>
-                                               <xsl:text> </xsl:text>
-                                               <xsl:value-of select="argsstring"/>
-                                       </programlisting>
-                               </xsl:when>
-
-                               <xsl:otherwise>
-                                       <title>
-                                               <xsl:text>Variable </xsl:text>
-                                               <xsl:value-of select="name"/>
-                                       </title>
+                       <xsl:call-template name="generate.index.id">
+                               <xsl:with-param name="name" select="name"/>
+                       </xsl:call-template>
 
-                                       <xsl:call-template name="generate.index.id">
-                                               <xsl:with-param name="name" select="name"/>
-                                       </xsl:call-template>
+                       <programlisting language="c">
+                               <emphasis role="keyword">
+                                       <xsl:text>typedef </xsl:text>
+                                       <xsl:value-of select="type"/>
+                               </emphasis>
+                               <xsl:text> </xsl:text>
+                               <xsl:value-of select="name"/>
+                               <xsl:text> </xsl:text>
+                               <xsl:value-of select="argsstring"/>
+                       </programlisting>
+
+                       <xsl:apply-templates select="detaileddescription"/>
+               </section>
+       </xsl:template>
 
-                                       <programlisting language="c">
-                                               <emphasis role="keyword">
-                                                       <xsl:value-of select="type"/>
-                                               </emphasis>
-                                               <xsl:text> </xsl:text>
-                                               <xsl:value-of select="name"/>
-                                       </programlisting>
-                               </xsl:otherwise>
-                       </xsl:choose>
+
+       <xsl:template match="memberdef[@kind = 'variable']">
+               <section id="{@id}" xreflabel="{name}">
+                       <title>
+                               <xsl:text>Variable </xsl:text>
+                               <xsl:value-of select="name"/>
+                       </title>
+
+                       <xsl:call-template name="generate.index.id">
+                               <xsl:with-param name="name" select="name"/>
+                       </xsl:call-template>
+
+                       <programlisting language="c">
+                               <emphasis role="keyword">
+                                       <xsl:value-of select="type"/>
+                               </emphasis>
+                               <xsl:text> </xsl:text>
+                               <xsl:value-of select="name"/>
+                       </programlisting>
 
                        <xsl:apply-templates select="detaileddescription"/>
                </section>
        </xsl:template>
 
        <xsl:template match="linebreak | simplesectsep">
+               <!-- MUST be on two separate lines, as this is a *literal* newline -->
                <literallayout>
                </literallayout>
        </xsl:template>
        </xsl:template>
 
        <xsl:template match="mdash | ndash">
+               <!-- Doxygen bug; double dashed are replaced with single HTML dash
+                    entities, even in verbatim-like <tt> sections -->
                <xsl:text>--</xsl:text>
        </xsl:template>
 
                                        </row>
                                </xsl:for-each>
                        </thead>
+
                        <tbody>
                                <xsl:for-each select="row[position() != 1]">
                                        <row>