$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: daniel_james_at_[hidden]
Date: 2008-06-15 15:48:41
Author: danieljames
Date: 2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
New Revision: 46414
URL: http://svn.boost.org/trac/boost/changeset/46414
Log:
Merge in boostbook changes, fixes free-function-group and adds support for variadic parameters.
Merged revisions 45298-45302,45308-45338,45340-45345,45348-45352,45356-45358,45360-45377,45379-45392,45394,45396-45408,45410-45420,45424-45444,45448,45450-45455,45457-45478,45480,45484-45544,45546-45549,45551-45564,45566-45569,45571-45572,45575,45578-45584,45586-45593,45595-45597,45599,45605,45610-45618,45622-45624,45628-45632,45634-45637,45639-45644,45646,45648-45652,45654-45656,45666,45668-45670,45674-45675,45679-45680,45683-45684,45687,45691,45706-45708,45710-45741 via svnmerge from 
https://svn.boost.org/svn/boost/trunk
................
  r45298 | fmhess | 2008-05-12 14:59:20 +0100 (Mon, 12 May 2008) | 6 lines
  
  Prevent a class' or namespace's associated free functions
  (a "free-function-group" element inside a "class" or "namespace" element)
  from reappearing in the synopsis of nested classes or namespaces.
  This is a merge of revision 45297 from the boost_docs sandbox.
................
  r45741 | danieljames | 2008-05-25 17:14:17 +0100 (Sun, 25 May 2008) | 35 lines
  
  Support for variadic parameters.
  
  Merged revisions 44832-44957,44959-44995,44997-45128,45132-45135 via svnmerge from 
  https://svn.boost.org/svn/boost/branches/doc
  
  ........
    r44832 | danieljames | 2008-04-28 07:55:01 +0100 (Mon, 28 Apr 2008) | 2 lines
    
    Add variadic attribute to template type parameters.
  ........
    r44943 | danieljames | 2008-04-30 20:27:32 +0100 (Wed, 30 Apr 2008) | 1 line
    
    Back out my half-done support for variadic template parameters.
  ........
    r44994 | danieljames | 2008-05-01 21:52:59 +0100 (Thu, 01 May 2008) | 1 line
    
    Support for variadic template parameters.
  ........
    r45132 | danieljames | 2008-05-05 12:37:35 +0100 (Mon, 05 May 2008) | 2 lines
    
    Rename variadic attributes pack.
  ........
    r45133 | danieljames | 2008-05-05 12:37:50 +0100 (Mon, 05 May 2008) | 2 lines
    
    Support for function parameter packs.
  ........
    r45134 | danieljames | 2008-05-05 12:38:08 +0100 (Mon, 05 May 2008) | 2 lines
    
    Support for inherited pack expansions.
  ........
    r45135 | danieljames | 2008-05-05 12:38:25 +0100 (Mon, 05 May 2008) | 2 lines
    
    Support for pack expansions in template specializations.
  ........
................
Properties modified: 
   branches/release/   (props changed)
Text files modified: 
   branches/release/tools/boostbook/doc/reference.dtdxml |    35 +++++++++++++++++++++++++++++++++--     
   branches/release/tools/boostbook/doc/reference.xml    |     5 +++++                                   
   branches/release/tools/boostbook/dtd/boostbook.dtd    |    10 ++++++++--                              
   branches/release/tools/boostbook/xsl/function.xsl     |     7 ++++++-                                 
   branches/release/tools/boostbook/xsl/lookup.xsl       |    32 ++++++++++++++------------------        
   branches/release/tools/boostbook/xsl/template.xsl     |     5 +++++                                   
   branches/release/tools/boostbook/xsl/type.xsl         |     5 ++++-                                   
   7 files changed, 75 insertions(+), 24 deletions(-)
Modified: branches/release/tools/boostbook/doc/reference.dtdxml
==============================================================================
--- branches/release/tools/boostbook/doc/reference.dtdxml	(original)
+++ branches/release/tools/boostbook/doc/reference.dtdxml	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -17,6 +17,7 @@
 <attpurpose name="filename">The name of the file associated with this element</attpurpose>
 <attpurpose name="specifiers">The specifiers for this function, e.g., <code>inline</code>, <code>static</code>, etc.</attpurpose>
 <attpurpose name="cv">cv-qualifiers for this method, e.g., <code>const volatile</code></attpurpose>
+<attpurpose name="pack">Set to '1' if the parameter is a parameter pack.</attpurpose>
 
 <entity name="boost.class.content"
         type="param"
@@ -533,11 +534,16 @@
 <attlist name="template-type-parameter">
 <attdecl>
     name                     CDATA  #REQUIRED
+    pack                     CDATA  #IMPLIED 
     %boost.common.attrib;</attdecl>
 <attribute name="last-revision"
            type="#IMPLIED"
            value="CDATA"
            default=""/>
+<attribute name="pack"
+           type="#IMPLIED"
+           value="CDATA"
+           default=""/>
 <attribute name="name"
            type="#REQUIRED"
            value="CDATA"
@@ -825,6 +831,7 @@
 <attlist name="inherit">
 <attdecl>
     access  CDATA  #REQUIRED
+    pack    CDATA  #IMPLIED 
     %boost.common.attrib;</attdecl>
 <attribute name="last-revision"
            type="#IMPLIED"
@@ -840,6 +847,12 @@
            type="#IMPLIED"
            value="CDATA"
            default=""/>
+<attribute name="pack"
+           type="#IMPLIED"
+           value="CDATA"
+           default="">
+  <purpose>Set to '1' if this is a pack exapansion.</purpose>
+</attribute>
 <attribute name="xml:base"
            type="#IMPLIED"
            value="CDATA"
@@ -1656,7 +1669,9 @@
 </element>
 
 <attlist name="template-arg">
-<attdecl> %boost.common.attrib;</attdecl>
+<attdecl>
+    pack    CDATA  #IMPLIED 
+    %boost.common.attrib;</attdecl>
 <attribute name="last-revision"
            type="#IMPLIED"
            value="CDATA"
@@ -1665,6 +1680,12 @@
            type="#IMPLIED"
            value="CDATA"
            default=""/>
+<attribute name="pack"
+           type="#IMPLIED"
+           value="CDATA"
+           default="">
+  <purpose>Set to '1' if this is a pack exapansion.</purpose>
+</attribute>
 <attribute name="xml:base"
            type="#IMPLIED"
            value="CDATA"
@@ -2159,11 +2180,16 @@
 
 <attlist name="parameter">
 <attdecl>
-     name CDATA #IMPLIED</attdecl>
+     name CDATA #IMPLIED
+     pack CDATA #IMPLIED</attdecl>
 <attribute name="name"
            type="#IMPLIED"
            value="CDATA"
            default=""/>
+<attribute name="pack"
+           type="#IMPLIED"
+           value="CDATA"
+           default=""/>
 </attlist>
 
 <element name="signature"
@@ -2709,11 +2735,16 @@
 <attlist name="template-nontype-parameter">
 <attdecl>
     name                     CDATA  #REQUIRED
+    pack                     CDATA  #IMPLIED 
     %boost.common.attrib;</attdecl>
 <attribute name="last-revision"
            type="#IMPLIED"
            value="CDATA"
            default=""/>
+<attribute name="pack"
+           type="#IMPLIED"
+           value="CDATA"
+           default=""/>
 <attribute name="name"
            type="#REQUIRED"
            value="CDATA"
Modified: branches/release/tools/boostbook/doc/reference.xml
==============================================================================
--- branches/release/tools/boostbook/doc/reference.xml	(original)
+++ branches/release/tools/boostbook/doc/reference.xml	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -288,6 +288,7 @@
           <tbody>
 
 <row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>
+<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' if the parameter is a parameter pack.</entry></row>
 <row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name of the element being declared to referenced</entry></row>
 <row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global identifier for this element</entry></row>
 <row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation detail used by XIncludes</entry></row>
@@ -550,6 +551,7 @@
 <row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>
 <row><entry>access</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The access specifier ("public", "private", or "protected") of the inheritance.</entry></row>
 <row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global identifier for this element</entry></row>
+<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' if this is a pack exapansion.</entry></row>
 <row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation detail used by XIncludes</entry></row>
 </tbody>
         </tgroup>
@@ -1300,6 +1302,7 @@
 
 <row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>
 <row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global identifier for this element</entry></row>
+<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' if this is a pack exapansion.</entry></row>
 <row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation detail used by XIncludes</entry></row>
 </tbody>
         </tgroup>
@@ -1806,6 +1809,7 @@
           <tbody>
 
 <row><entry>name</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The name of the element being declared to referenced</entry></row>
+<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' if the parameter is a parameter pack.</entry></row>
 </tbody>
         </tgroup>
       </informaltable>
@@ -2299,6 +2303,7 @@
           <tbody>
 
 <row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>
+<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' if the parameter is a parameter pack.</entry></row>
 <row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name of the element being declared to referenced</entry></row>
 <row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global identifier for this element</entry></row>
 <row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation detail used by XIncludes</entry></row>
Modified: branches/release/tools/boostbook/dtd/boostbook.dtd
==============================================================================
--- branches/release/tools/boostbook/dtd/boostbook.dtd	(original)
+++ branches/release/tools/boostbook/dtd/boostbook.dtd	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -167,11 +167,13 @@
 <!ELEMENT template-type-parameter (default?, purpose?)>
 <!ATTLIST template-type-parameter
     name                     CDATA  #REQUIRED
+    pack                     CDATA  #IMPLIED 
     %boost.common.attrib;>
 
 <!ELEMENT template-nontype-parameter (type, default?, purpose?)>
 <!ATTLIST template-nontype-parameter
     name                     CDATA  #REQUIRED
+    pack                     CDATA  #IMPLIED 
     %boost.common.attrib;>
 
 <!ELEMENT template-varargs EMPTY>
@@ -181,7 +183,9 @@
 <!ATTLIST specialization %boost.common.attrib;>
 
 <!ELEMENT template-arg ANY>
-<!ATTLIST template-arg %boost.common.attrib;>
+<!ATTLIST template-arg
+    pack    CDATA  #IMPLIED 
+    %boost.common.attrib;>
 
 <!ELEMENT default ANY>
 <!ATTLIST default %boost.common.attrib;>
@@ -189,6 +193,7 @@
 <!ELEMENT inherit (type, purpose?)>
 <!ATTLIST inherit
     access  CDATA  #IMPLIED
+    pack    CDATA  #IMPLIED 
     %boost.common.attrib;>
 
 <!ELEMENT purpose ANY>
@@ -397,7 +402,8 @@
 
 <!ELEMENT parameter (paramtype, default?, description?)>
 <!ATTLIST parameter
-     name CDATA #IMPLIED>
+     name CDATA #IMPLIED
+     pack CDATA #IMPLIED>
 
 <!ELEMENT programlisting ANY>
 <!ATTLIST programlisting
Modified: branches/release/tools/boostbook/xsl/function.xsl
==============================================================================
--- branches/release/tools/boostbook/xsl/function.xsl	(original)
+++ branches/release/tools/boostbook/xsl/function.xsl	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -363,6 +363,9 @@
     <xsl:if test="$parameters">
       <!-- Information for this parameter -->
       <xsl:variable name="parameter" select="$parameters[position()=1]"/>
+      <xsl:variable name="pack">
+        <xsl:if test="$parameter/@pack=1"><xsl:text>...</xsl:text></xsl:if>
+      </xsl:variable>
       <xsl:variable name="name">
         <xsl:if test="$include-names and $parameter/@name != ''">
           <xsl:text> </xsl:text><xsl:value-of select="$parameter/@name"/>
@@ -393,7 +396,7 @@
         </xsl:choose>
       </xsl:variable>
 
-      <xsl:variable name="text" select="concat($type, $name, $default)"/>
+      <xsl:variable name="text" select="concat($type, $pack, $name, $default)"/>
 
       <xsl:variable name="end-column"
         select="$column + string-length($prefix) + string-length($text)"/>
@@ -410,6 +413,7 @@
                 mode="annotation">
                 <xsl:with-param name="highlight" select="true()"/>
               </xsl:apply-templates>
+              <xsl:value-of select="$pack"/>
               <xsl:value-of select="$name"/>
               <xsl:copy-of select="$default"/>
             </xsl:when>
@@ -446,6 +450,7 @@
                 mode="annotation">
                 <xsl:with-param name="highlight" select="true()"/>
               </xsl:apply-templates>
+              <xsl:value-of select="$pack"/>
               <xsl:value-of select="$name"/>
               <xsl:value-of select="$default"/>
             </xsl:when>
Modified: branches/release/tools/boostbook/xsl/lookup.xsl
==============================================================================
--- branches/release/tools/boostbook/xsl/lookup.xsl	(original)
+++ branches/release/tools/boostbook/xsl/lookup.xsl	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -194,29 +194,25 @@
     <xsl:value-of select="@name"/>
   </xsl:template>
 
-  <xsl:template name="print-specialization-name">
+  <xsl:template match="template-arg" mode="print-name">
+    <xsl:if test="position() > 1">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+    <xsl:value-of select="text()"/>
+    <xsl:if test="@pack=1">
+      <xsl:text>...</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template
+      match="struct-specialization|class-specialization|union-specialization"
+      mode="print-name">
     <xsl:value-of select="@name"/>
     <xsl:text><</xsl:text>
-    <xsl:value-of select="specialization/template-arg[position() = 1]/text()"/>
-    <xsl:for-each select="specialization/template-arg[position() > 1]">
-      <xsl:text>,</xsl:text>
-      <xsl:value-of select="text()"/>
-    </xsl:for-each>
+    <xsl:apply-templates select="specialization/template-arg" mode="print-name"/>
     <xsl:text>></xsl:text>
   </xsl:template>
 
-  <xsl:template match="struct-specialization" mode="print-name">
-    <xsl:call-template name="print-specialization-name"/>
-  </xsl:template>
-
-  <xsl:template match="class-specialization" mode="print-name">
-    <xsl:call-template name="print-specialization-name"/>
-  </xsl:template>
-
-  <xsl:template match="union-specialization" mode="print-name">
-    <xsl:call-template name="print-specialization-name"/>
-  </xsl:template>
-
   <xsl:template name="name-matches-node">
     <!-- The name we are looking for -->
     <xsl:param name="name"/>
Modified: branches/release/tools/boostbook/xsl/template.xsl
==============================================================================
--- branches/release/tools/boostbook/xsl/template.xsl	(original)
+++ branches/release/tools/boostbook/xsl/template.xsl	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -314,6 +314,7 @@
         <xsl:text>typename</xsl:text>
       </xsl:otherwise>
     </xsl:choose>
+    <xsl:if test="$parameter/@pack=1"><xsl:text>...</xsl:text></xsl:if>
     <xsl:text> </xsl:text>
 
     <xsl:call-template name="template.parameter.name">
@@ -388,6 +389,7 @@
         <xsl:value-of select="$parameter/type/*|$parameter/type/text()"/>
       </xsl:otherwise>
     </xsl:choose>
+    <xsl:if test="$parameter/@pack=1"><xsl:text>...</xsl:text></xsl:if>
     <xsl:text> </xsl:text>
 
     <xsl:call-template name="template.parameter.name">
@@ -438,6 +440,9 @@
       <xsl:text>, </xsl:text>
     </xsl:if>
     <xsl:apply-templates mode="highlight"/>
+    <xsl:if test="@pack=1">
+      <xsl:text>...</xsl:text>
+    </xsl:if>
   </xsl:template>
 </xsl:stylesheet>
 
Modified: branches/release/tools/boostbook/xsl/type.xsl
==============================================================================
--- branches/release/tools/boostbook/xsl/type.xsl	(original)
+++ branches/release/tools/boostbook/xsl/type.xsl	2008-06-15 15:48:40 EDT (Sun, 15 Jun 2008)
@@ -533,6 +533,8 @@
         </xsl:otherwise>
       </xsl:choose>
 
+      <xsl:if test="@pack=1"><xsl:text>...</xsl:text></xsl:if>
+
       <!-- Output a comma if not at the end -->
       <xsl:if test="position() < $n">
         <xsl:text>,</xsl:text>
@@ -626,6 +628,7 @@
     <xsl:apply-templates mode="annotation">
       <xsl:with-param name="highlight" select="true()"/>
     </xsl:apply-templates>
+    <xsl:if test="@pack=1"><xsl:text>...</xsl:text></xsl:if>
   </xsl:template>
 
   <!-- Find the maximum length of the types in typedefs -->
@@ -1058,7 +1061,7 @@
           <xsl:with-param name="allow-synopsis-anchors" select="true()"/>
         </xsl:call-template>
         <!-- Associated free functions -->
-        <xsl:apply-templates select="ancestor-or-self::*/free-function-group"
+        <xsl:apply-templates select="free-function-group"
           mode="synopsis">
           <xsl:with-param name="indentation" select="$indentation"/>
           <xsl:with-param name="class" select="@name"/>