]> granicus.if.org Git - docbook-dsssl/commitdiff
Added handling for cases of Methodsynopsis that have Modifier
authorMichael Smith <xmldoc@users.sourceforge.net>
Mon, 14 Nov 2005 06:15:29 +0000 (06:15 +0000)
committerMichael Smith <xmldoc@users.sourceforge.net>
Mon, 14 Nov 2005 06:15:29 +0000 (06:15 +0000)
instances after the Methodname. Closes #1353365; thanks to
Stephen Langer for reporting.

xsl/fo/synop.xsl
xsl/html/synop.xsl

index 28e55ce453d2a8f2866018630f9d54ac161e3be7..ff1499c6c1e16afdd0364cd53ab7e9d2e65b421b 100644 (file)
 
 <xsl:template match="modifier" mode="java">
   <xsl:apply-templates mode="java"/>
-  <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
 </xsl:template>
 
 <xsl:template match="classname" mode="java">
 
 <xsl:template mode="java"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="decl">
     <xsl:text>  </xsl:text>
-    <xsl:apply-templates select="$modifiers" mode="java"/>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
       <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
       <xsl:apply-templates select="exceptionname" mode="java"/>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </fo:block>
   <xsl:call-template name="synop-break"/>
 
 <xsl:template match="modifier" mode="cpp">
   <xsl:apply-templates mode="cpp"/>
-  <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
 </xsl:template>
 
 <xsl:template match="classname" mode="cpp">
 
 <xsl:template mode="cpp"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
 
   <fo:block wrap-option='no-wrap'
             white-space-collapse='false'
             linefeed-treatment="preserve"
             xsl:use-attribute-sets="monospace.verbatim.properties">
     <xsl:text>  </xsl:text>
-    <xsl:apply-templates select="$modifiers" mode="cpp"/>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
       <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
       <xsl:apply-templates select="exceptionname" mode="cpp"/>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </fo:block>
   <xsl:call-template name="synop-break"/>
 
 <xsl:template match="modifier" mode="idl">
   <xsl:apply-templates mode="idl"/>
-  <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
 </xsl:template>
 
 <xsl:template match="classname" mode="idl">
 
 <xsl:template mode="idl"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
 
   <fo:block wrap-option='no-wrap'
             white-space-collapse='false'
             linefeed-treatment="preserve"
             xsl:use-attribute-sets="monospace.verbatim.properties">
     <xsl:text>  </xsl:text>
-    <xsl:apply-templates select="$modifiers" mode="idl"/>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
       <xsl:apply-templates select="exceptionname" mode="idl"/>
       <xsl:text>)</xsl:text>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </fo:block>
   <xsl:call-template name="synop-break"/>
 
 <xsl:template match="modifier" mode="perl">
   <xsl:apply-templates mode="perl"/>
-  <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
 </xsl:template>
 
 <xsl:template match="classname" mode="perl">
 
 <xsl:template mode="perl"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
 
   <fo:block wrap-option='no-wrap'
             white-space-collapse='false'
index e0129fba79e73886fc6090253c0a11fc93c53090..e9cb08ab8b4c392b1ebe8f3fd2365eeaf4afc176 100644 (file)
@@ -776,7 +776,9 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier" mode="java">
   <span class="{name(.)}">
     <xsl:apply-templates mode="java"/>
-    <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
   </span>
 </xsl:template>
 
@@ -876,13 +878,14 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
 <xsl:template mode="java"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="decl">
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
-    <xsl:apply-templates select="$modifiers" mode="java"/>
+    <xsl:apply-templates select="$start-modifiers" mode="java"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
@@ -904,6 +907,10 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
       <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
       <xsl:apply-templates select="exceptionname" mode="java"/>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="java"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </code>
   <xsl:call-template name="synop-break"/>
@@ -961,7 +968,9 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier" mode="cpp">
   <span class="{name(.)}">
     <xsl:apply-templates mode="cpp"/>
-    <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
   </span>
 </xsl:template>
 
@@ -1053,14 +1062,15 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
 <xsl:template mode="cpp"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
 
   <code class="{name(.)}">
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
-    <xsl:apply-templates select="$modifiers" mode="cpp"/>
+    <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
@@ -1076,6 +1086,10 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
       <xsl:text>&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
       <xsl:apply-templates select="exceptionname" mode="cpp"/>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </code>
   <xsl:call-template name="synop-break"/>
@@ -1134,7 +1148,9 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier" mode="idl">
   <span class="{name(.)}">
     <xsl:apply-templates mode="idl"/>
-    <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
   </span>
 </xsl:template>
 
@@ -1226,14 +1242,14 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
 <xsl:template mode="idl"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
-
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
   <code class="{name(.)}">
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
-    <xsl:apply-templates select="$modifiers" mode="idl"/>
+    <xsl:apply-templates select="$start-modifiers" mode="idl"/>
 
     <!-- type -->
     <xsl:if test="name($notmod[1]) != 'methodname'">
@@ -1250,6 +1266,10 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
       <xsl:apply-templates select="exceptionname" mode="idl"/>
       <xsl:text>)</xsl:text>
     </xsl:if>
+    <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+    </xsl:if>
     <xsl:text>;</xsl:text>
   </code>
   <xsl:call-template name="synop-break"/>
@@ -1295,7 +1315,9 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier" mode="perl">
   <span class="{name(.)}">
     <xsl:apply-templates mode="perl"/>
-    <xsl:text>&nbsp;</xsl:text>
+    <xsl:if test="following-sibling::*">
+      <xsl:text>&nbsp;</xsl:text>
+    </xsl:if>
   </span>
 </xsl:template>
 
@@ -1387,8 +1409,9 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
 <xsl:template mode="perl"
   match="constructorsynopsis|destructorsynopsis|methodsynopsis">
-  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
   <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
 
   <code class="{name(.)}">
     <xsl:text>sub </xsl:text>