$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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()"/>