Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62477 - trunk/tools/boostbook/xsl/doxygen
From: daniel_james_at_[hidden]
Date: 2010-06-06 05:38:52


Author: danieljames
Date: 2010-06-06 05:38:51 EDT (Sun, 06 Jun 2010)
New Revision: 62477
URL: http://svn.boost.org/trac/boost/changeset/62477

Log:
Fix doxygen2boostbook when 2 files have the same name.

Refs #1192. Patch by Steven Watanabe, updated by me. If it goes wrong,
it's my fault.
Text files modified:
   trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl | 50 +++++++++++++++++++++++++--------------
   1 files changed, 32 insertions(+), 18 deletions(-)

Modified: trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
==============================================================================
--- trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl (original)
+++ trunk/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl 2010-06-06 05:38:51 EDT (Sun, 06 Jun 2010)
@@ -204,8 +204,7 @@
     <xsl:param name="in-file"/>
     <xsl:param name="with-namespace-refs"/>
 
- <xsl:if test="contains(string(location/attribute::file),
- concat('/', $in-file)) ">
+ <xsl:if test="string(location/attribute::file)=$in-file">
     
       <!-- The short name of this class -->
       <xsl:variable name="name-with-spec">
@@ -261,7 +260,9 @@
         <xsl:apply-templates select="briefdescription" mode="passthrough"/>
         <xsl:apply-templates select="detaileddescription" mode="passthrough"/>
         <xsl:apply-templates select="inbodydescription" mode="passthrough"/>
- <xsl:apply-templates/>
+ <xsl:apply-templates>
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:apply-templates>
       </xsl:element>
     </xsl:if>
   </xsl:template>
@@ -269,8 +270,7 @@
   <xsl:template name="enum">
     <xsl:param name="in-file"/>
 
- <xsl:if test="contains(string(location/attribute::file),
- concat('/', $in-file))">
+ <xsl:if test="string(location/attribute::file)=$in-file">
       <xsl:variable name="name">
         <xsl:call-template name="strip-qualifiers">
           <xsl:with-param name="name" select="name"/>
@@ -384,7 +384,7 @@
         <xsl:apply-templates mode="toplevel">
           <xsl:with-param name="with-namespace-refs"
             select="innernamespace"/>
- <xsl:with-param name="in-file" select="string(compoundname)"/>
+ <xsl:with-param name="in-file" select="location/attribute::file"/>
         </xsl:apply-templates>
       </header>
     </xsl:if>
@@ -498,11 +498,15 @@
       </xsl:when>
 
       <xsl:when test="@kind='function'">
- <xsl:call-template name="function" />
+ <xsl:call-template name="function">
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:call-template>
       </xsl:when>
 
       <xsl:when test="@kind='typedef'">
- <xsl:call-template name="typedef" />
+ <xsl:call-template name="typedef">
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:call-template>
       </xsl:when>
 
       <xsl:when test="@kind='variable'">
@@ -664,6 +668,7 @@
         <method-group name="public static functions">
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
       </xsl:when>
@@ -672,6 +677,7 @@
         <method-group name="protected static functions">
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
       </xsl:when>
@@ -680,13 +686,14 @@
         <method-group name="private static functions">
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
       </xsl:when>
       <xsl:when test="@kind='public-func'">
         <xsl:variable name="members" select="./memberdef"/>
         <xsl:variable name="num-internal-only">
- <xsl:value-of
+ <xsl:value-of
             select="count($members[contains(detaileddescription/para,
                                   'INTERNAL ONLY')])"/>
         </xsl:variable>
@@ -694,6 +701,7 @@
           <method-group name="public member functions">
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
           <xsl:apply-templates/>
@@ -703,6 +711,7 @@
         <method-group name="protected member functions">
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
         <xsl:apply-templates/>
@@ -718,6 +727,7 @@
           <method-group name="private member functions">
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
         </xsl:if>
@@ -728,15 +738,20 @@
           <method-group name="friend functions">
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
+ <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
         </xsl:if>
       </xsl:when>
       <xsl:when test="@kind='public-static-attrib' or @kind='public-attrib'">
- <xsl:apply-templates/>
+ <xsl:apply-templates>
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:apply-templates>
       </xsl:when>
       <xsl:when test="@kind='public-type'">
- <xsl:apply-templates/>
+ <xsl:apply-templates>
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:apply-templates>
       </xsl:when>
       <xsl:when test="@kind='private-type'">
         <!--skip private members-->
@@ -765,7 +780,9 @@
         </xsl:apply-templates>
       </xsl:when>
       <xsl:when test="@kind='user-defined'">
- <xsl:apply-templates/>
+ <xsl:apply-templates>
+ <xsl:with-param name="in-file" select="$in-file"/>
+ </xsl:apply-templates>
       </xsl:when>
       <xsl:when test="@kind=''">
         <xsl:apply-templates select="memberdef[generate-id() =
@@ -875,8 +892,7 @@
   <xsl:template name="typedef">
     <xsl:param name="in-file" select="''"/>
 
- <xsl:if test="contains(string(location/attribute::file),
- concat('/', $in-file))">
+ <xsl:if test="string(location/attribute::file)=$in-file">
       <!-- TBD: Handle public/protected/private -->
       <typedef>
         <!-- Name of the type -->
@@ -1007,8 +1023,7 @@
 
     <xsl:variable name="firstpara"
       select="normalize-space(detaileddescription/para[1])"/>
- <xsl:if test="contains(string(location/attribute::file),
- concat('/', $in-file))
+ <xsl:if test="string(location/attribute::file)=$in-file
                   and
                   not($firstpara=normalize-space($boost.doxygen.overload))">
 
@@ -1182,8 +1197,7 @@
   <!-- Handle member variables -->
   <xsl:template name="variable">
     <xsl:param name="in-file"/>
- <xsl:if test="contains(string(location/attribute::file),
- concat('/', $in-file))">
+ <xsl:if test="string(location/attribute::file)=$in-file">
     <data-member>
       <xsl:attribute name="name">
         <xsl:value-of select="name/text()"/>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk