$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56702 - in branches/release: . boost/algorithm/string boost/archive boost/config boost/fusion boost/graph boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/system boost/tr1 boost/type_traits boost/unordered/detail boost/utility boost/wave doc/html libs libs/config libs/functional/hash/test libs/fusion libs/graph_parallel libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/program_options libs/property_tree libs/python libs/regex libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/system libs/timer libs/tr1 libs/type_traits libs/unordered/test/helpers libs/unordered/test/unordered libs/utility libs/wave status tools/boostbook/doc tools/boostbook/test tools/boostbook/test/doxygen tools/boostbook/test/doxygen/boost tools/boostbook/xsl/doxygen tools/build/v2 tools/regression tools/wave
From: daniel_james_at_[hidden]
Date: 2009-10-10 10:53:48
Author: danieljames
Date: 2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
New Revision: 56702
URL: http://svn.boost.org/trac/boost/changeset/56702
Log:
Merge some documentation changes and inspect fixes.
Merged revisions 55370,55729,56440,56570-56571,56603,56697-56699 via svnmerge from 
https://svn.boost.org/svn/boost/trunk
........
  r55370 | danieljames | 2009-08-02 19:18:14 +0100 (Sun, 02 Aug 2009) | 1 line
  
  Pass through more elements in doxygen2boostbook. Refs #3309.
........
  r55729 | danieljames | 2009-08-23 11:07:25 +0100 (Sun, 23 Aug 2009) | 3 lines
  
  Add depencies on doxygen documentation to standalone documentation targets.
  
  This seems to be needed for building pdfs.
........
  r56440 | danieljames | 2009-09-27 20:11:39 +0100 (Sun, 27 Sep 2009) | 1 line
  
  Fix silly error in doxygen test file.
........
  r56570 | danieljames | 2009-10-04 11:37:36 +0100 (Sun, 04 Oct 2009) | 1 line
  
  Clean up some unordered TODOs.
........
  r56571 | danieljames | 2009-10-04 11:37:56 +0100 (Sun, 04 Oct 2009) | 1 line
  
  Detab.
........
  r56603 | danieljames | 2009-10-05 22:29:39 +0100 (Mon, 05 Oct 2009) | 1 line
  
  Various inspect fixes.
........
  r56697 | danieljames | 2009-10-10 14:00:28 +0100 (Sat, 10 Oct 2009) | 1 line
  
  Add forwarding html file for accumulators.
........
  r56698 | danieljames | 2009-10-10 14:01:14 +0100 (Sat, 10 Oct 2009) | 1 line
  
  Missing newline.
........
  r56699 | danieljames | 2009-10-10 14:01:30 +0100 (Sat, 10 Oct 2009) | 1 line
  
  Add copyright to boostbook reference xml.
........
Added:
   branches/release/doc/html/accumulators.html
      - copied unchanged from r56699, /trunk/doc/html/accumulators.html
   branches/release/doc/html/quickbook.html
      - copied unchanged from r56603, /trunk/doc/html/quickbook.html
Properties modified: 
   branches/release/   (props changed)
   branches/release/boost/algorithm/string/   (props changed)
   branches/release/boost/archive/   (props changed)
   branches/release/boost/config/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/graph/   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/program_options/   (props changed)
   branches/release/boost/property_tree/   (props changed)
   branches/release/boost/python/   (props changed)
   branches/release/boost/regex/   (props changed)
   branches/release/boost/serialization/   (props changed)
   branches/release/boost/signals/   (props changed)
   branches/release/boost/signals2/   (props changed)
   branches/release/boost/spirit/   (props changed)
   branches/release/boost/system/   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/utility/value_init.hpp   (props changed)
   branches/release/boost/wave/   (props changed)
   branches/release/index.html   (props changed)
   branches/release/libs/config/   (props changed)
   branches/release/libs/fusion/   (props changed)
   branches/release/libs/graph_parallel/   (props changed)
   branches/release/libs/libraries.htm   (props changed)
   branches/release/libs/maintainers.txt   (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html   (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst   (props changed)
   branches/release/libs/numeric/ublas/   (props changed)
   branches/release/libs/program_options/   (props changed)
   branches/release/libs/property_tree/   (props changed)
   branches/release/libs/python/   (props changed)
   branches/release/libs/regex/   (props changed)
   branches/release/libs/serialization/   (props changed)
   branches/release/libs/signals/   (props changed)
   branches/release/libs/signals2/   (props changed)
   branches/release/libs/spirit/   (props changed)
   branches/release/libs/spirit/classic/example/   (props changed)
   branches/release/libs/spirit/example/   (props changed)
   branches/release/libs/spirit/phoenix/   (props changed)
   branches/release/libs/spirit/test/   (props changed)
   branches/release/libs/system/   (props changed)
   branches/release/libs/timer/   (props changed)
   branches/release/libs/tr1/   (props changed)
   branches/release/libs/type_traits/   (props changed)
   branches/release/libs/utility/swap.html   (props changed)
   branches/release/libs/utility/value_init.htm   (props changed)
   branches/release/libs/utility/value_init_test.cpp   (props changed)
   branches/release/libs/wave/   (props changed)
   branches/release/status/   (props changed)
   branches/release/tools/build/v2/   (props changed)
   branches/release/tools/regression/   (props changed)
   branches/release/tools/wave/   (props changed)
Text files modified: 
   branches/release/boost/unordered/detail/buckets.hpp                |     7 ++---                                   
   branches/release/boost/unordered/detail/equivalent.hpp             |     1                                         
   branches/release/boost/unordered/detail/table.hpp                  |    19 +++++----------                         
   branches/release/libs/functional/hash/test/namespace_fail_test.cpp |     2                                         
   branches/release/libs/unordered/test/helpers/list.hpp              |     4 +-                                      
   branches/release/libs/unordered/test/unordered/rehash_tests.cpp    |    43 ++++++++++++++++++++++++++++++++++++    
   branches/release/tools/boostbook/doc/reference.xml                 |     7 +++++                                   
   branches/release/tools/boostbook/test/alt.xml                      |     9 ++++++                                  
   branches/release/tools/boostbook/test/doxygen/Jamfile.v2           |     5 ++++                                    
   branches/release/tools/boostbook/test/doxygen/boost/example.hpp    |    47 +++++++++++++++++++++++++++++++++++++++ 
   branches/release/tools/boostbook/test/doxygen/example.xml          |     9 ++++++                                  
   branches/release/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl |    21 +++++++++++++----                       
   12 files changed, 146 insertions(+), 28 deletions(-)
Modified: branches/release/boost/unordered/detail/buckets.hpp
==============================================================================
--- branches/release/boost/unordered/detail/buckets.hpp	(original)
+++ branches/release/boost/unordered/detail/buckets.hpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -15,7 +15,6 @@
     
     ////////////////////////////////////////////////////////////////////////////
     // Buckets
-    // TODO: Are these needed?
     
     template <class A, class G>
     inline BOOST_DEDUCED_TYPENAME hash_buckets<A, G>::bucket_ptr
@@ -32,7 +31,7 @@
     }
     
     template <class A, class G>
-    inline std::size_t hash_buckets<A, G>::bucket_size(std::size_t index) const
+    std::size_t hash_buckets<A, G>::bucket_size(std::size_t index) const
     {
         if(!buckets_) return 0;
         bucket_ptr ptr = get_bucket(index)->next_;
@@ -157,7 +156,7 @@
     template <class A, class G>
     inline void hash_buckets<A, G>::move(hash_buckets& other)
     {
-    	BOOST_ASSERT(node_alloc() == other.node_alloc());
+        BOOST_ASSERT(node_alloc() == other.node_alloc());
         if(this->buckets_) { this->delete_buckets(); }
         this->buckets_ = other.buckets_;
         this->bucket_count_ = other.bucket_count_;
@@ -168,7 +167,7 @@
     template <class A, class G>
     inline void hash_buckets<A, G>::swap(hash_buckets<A, G>& other)
     {
-    	BOOST_ASSERT(node_alloc() == other.node_alloc());
+        BOOST_ASSERT(node_alloc() == other.node_alloc());
         std::swap(buckets_, other.buckets_);
         std::swap(bucket_count_, other.bucket_count_);
     }
Modified: branches/release/boost/unordered/detail/equivalent.hpp
==============================================================================
--- branches/release/boost/unordered/detail/equivalent.hpp	(original)
+++ branches/release/boost/unordered/detail/equivalent.hpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -257,7 +257,6 @@
 
     // if hash function throws, or inserting > 1 element, basic exception safety
     // strong otherwise
-    // TODO: Should I special case an empty container?
     template <class H, class P, class A, class K>
     template <class I>
     void hash_equivalent_table<H, P, A, K>::insert_range(I i, I j)
Modified: branches/release/boost/unordered/detail/table.hpp
==============================================================================
--- branches/release/boost/unordered/detail/table.hpp	(original)
+++ branches/release/boost/unordered/detail/table.hpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -193,7 +193,7 @@
         BOOST_ASSERT(this->bucket_count_ != 0);
         return static_cast<float>(this->size_)
             / static_cast<float>(this->bucket_count_);
-	}
+    }
 
     ////////////////////////////////////////////////////////////////////////////
     // Constructors
@@ -431,23 +431,20 @@
 
     // if hash function throws, basic exception safety
     // strong otherwise.
-    // TODO: Should this always create buckets?
+
     template <class H, class P, class A, class G, class K>
     inline void hash_table<H, P, A, G, K>::rehash(std::size_t min_buckets)
     {
         using namespace std;
 
-        if(!this->buckets_) {
+        if(!this->size_) {
+            if(this->buckets_) this->delete_buckets();
             this->bucket_count_ = next_prime(min_buckets);
-            this->create_buckets();
-            this->init_buckets();
         }
         else {
             // no throw:
-            // TODO: Needlessly calling next_prime twice.
-            min_buckets = (std::max)(
-                next_prime(min_buckets),
-                this->min_buckets_for_size(this->size_));
+            min_buckets = next_prime((std::max)(min_buckets,
+                    double_to_size_t(floor(this->size_ / (double) mlf_)) + 1));
             if(min_buckets != this->bucket_count_) rehash_impl(min_buckets);
         }
     }
@@ -619,7 +616,6 @@
     template <class H, class P, class A, class G, class K>
     void hash_table<H, P, A, G, K>::clear()
     {
-        // TODO: Is this check needed when called internally?
         if(!this->size_) return;
 
         bucket_ptr end = this->get_bucket(this->bucket_count_);
@@ -645,8 +641,7 @@
     }
     
     template <class H, class P, class A, class G, class K>
-    std::size_t hash_table<H, P, A, G, K>
-        ::erase_key(key_type const& k)
+    std::size_t hash_table<H, P, A, G, K>::erase_key(key_type const& k)
     {
         if(!this->size_) return 0;
     
Modified: branches/release/libs/functional/hash/test/namespace_fail_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/namespace_fail_test.cpp	(original)
+++ branches/release/libs/functional/hash/test/namespace_fail_test.cpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -11,4 +11,4 @@
 
 typedef list<int> foo;
 
-int main() {}
\ No newline at end of file
+int main() {}
Modified: branches/release/libs/unordered/test/helpers/list.hpp
==============================================================================
--- branches/release/libs/unordered/test/helpers/list.hpp	(original)
+++ branches/release/libs/unordered/test/helpers/list.hpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -29,8 +29,8 @@
         template <typename T>
         class list_node
         {
-	    list_node(list_node const&);
-	    list_node& operator=(list_node const&);
+            list_node(list_node const&);
+            list_node& operator=(list_node const&);
         public:
             T value_;
             list_node* next_;
Modified: branches/release/libs/unordered/test/unordered/rehash_tests.cpp
==============================================================================
--- branches/release/libs/unordered/test/unordered/rehash_tests.cpp	(original)
+++ branches/release/libs/unordered/test/unordered/rehash_tests.cpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -33,6 +33,43 @@
 }
 
 template <class X>
+void rehash_empty_test2(X* = 0, test::random_generator generator = test::default_generator)
+{
+    test::random_values<X> v(1000, generator);
+    test::ordered<X> tracker;
+
+    X x;
+
+    x.rehash(10000);
+    BOOST_TEST(postcondition(x, 10000));
+
+    tracker.insert_range(v.begin(), v.end());
+    x.insert(v.begin(), v.end());
+    tracker.compare(x);
+
+    BOOST_TEST(postcondition(x, 10000));
+}
+
+template <class X>
+void rehash_empty_test3(X* = 0, test::random_generator generator = test::default_generator)
+{
+    test::random_values<X> v(1000, generator);
+    test::ordered<X> tracker;
+
+    X x;
+
+    x.rehash(0);
+    BOOST_TEST(postcondition(x, 0));
+
+    tracker.insert_range(v.begin(), v.end());
+    x.insert(v.begin(), v.end());
+    tracker.compare(x);
+
+    BOOST_TEST(postcondition(x, 0));
+}
+
+
+template <class X>
 void rehash_test1(X* = 0, test::random_generator generator = test::default_generator)
 {
     test::random_values<X> v(1000, generator);
@@ -63,6 +100,12 @@
 UNORDERED_TEST(rehash_empty_test1,
     ((int_set_ptr)(int_multiset_ptr)(int_map_ptr)(int_multimap_ptr))
 )
+UNORDERED_TEST(rehash_empty_test2,
+    ((int_set_ptr)(int_multiset_ptr)(int_map_ptr)(int_multimap_ptr))
+)
+UNORDERED_TEST(rehash_empty_test3,
+    ((int_set_ptr)(int_multiset_ptr)(int_map_ptr)(int_multimap_ptr))
+)
 UNORDERED_TEST(rehash_test1,
     ((int_set_ptr)(int_multiset_ptr)(int_map_ptr)(int_multimap_ptr))
 )
Modified: branches/release/tools/boostbook/doc/reference.xml
==============================================================================
--- branches/release/tools/boostbook/doc/reference.xml	(original)
+++ branches/release/tools/boostbook/doc/reference.xml	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -1,4 +1,11 @@
 <?xml version="1.0" standalone="yes"?>
+<!--
+   Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
+  
+   Distributed under the Boost Software License, Version 1.0.
+   (See accompanying file LICENSE_1_0.txt or copy at
+   http://www.boost.org/LICENSE_1_0.txt)
+  -->
 <chapter id="reference">
   <title>Reference</title>
   <para>Elements:<itemizedlist spacing="compact"><listitem><simpara><link linkend="boostbook.dtd.access">Element <sgmltag>access</sgmltag> - Declares an access specification for class members</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.boostbook">Element <sgmltag>boostbook</sgmltag> - Defines a BoostBook book</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.class">Element <sgmltag>class</sgmltag> - Declares a class or class template</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.class-specialization">Element <sgmltag>class-specialization</sgmltag> - A specialization (partial or full) of a class template</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.code">Element <sgmltag>code</sgmltag> - Mimics the <sgmltag>code</sgmltag> tag in HTML</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.compile-fail-test">Element <sgmltag>compile-fail-test</sgmltag> - A testcase that should 
fail to compile</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.compile-test">Element <sgmltag>compile-test</sgmltag> - A testcase that should compile correctly</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.complexity">Element <sgmltag>complexity</sgmltag> - The time/space/etc. complexity of a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.constructor">Element <sgmltag>constructor</sgmltag> - Declares a constructor of the enclosing class</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.copy-assignment">Element <sgmltag>copy-assignment</sgmltag> - Declares a copy-assignment operator</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.data-member">Element <sgmltag>data-member</sgmltag> - Declares a data member of a class</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.default">Element <sgmltag>default</sgmltag> - The default value of a function
 or template parameter</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.description">Element <sgmltag>description</sgmltag> - Detailed description of a construct</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.destructor">Element <sgmltag>destructor</sgmltag> - Declares a destructor for the enclosing class</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.effects">Element <sgmltag>effects</sgmltag> - Declares the side effects of a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.enum">Element <sgmltag>enum</sgmltag> - Declares an enumeration type</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.enumname">Element <sgmltag>enumname</sgmltag> - References an enumeration type with the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.enumvalue">Element <sgmltag>enumvalue</sgmltag> - A single value of an enumeration</link></simpara></listite
m><listitem><simpara><link linkend="boostbook.dtd.free-function-group">Element <sgmltag>free-function-group</sgmltag> - A set of functions that are grouped together under one name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.function">Element <sgmltag>function</sgmltag> - Declares a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.functionname">Element <sgmltag>functionname</sgmltag> - References a function with the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.globalname">Element <sgmltag>globalname</sgmltag> - References a global with the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.header">Element <sgmltag>header</sgmltag> - Declares a C++ header with the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.headername">Element <sgmltag>headername</sgmltag> - References a C++ header with the given name</link></simpara></listitem><
listitem><simpara><link linkend="boostbook.dtd.if-fails">Element <sgmltag>if-fails</sgmltag> - What it means when a testcase fails</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.inherit">Element <sgmltag>inherit</sgmltag> - Declares a base class of the enclosing class or struct</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.lib">Element <sgmltag>lib</sgmltag> - A library dependency</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.library">Element <sgmltag>library</sgmltag> - Top-level element for a library</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.library-reference">Element <sgmltag>library-reference</sgmltag> - Declares the reference material for a library</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.librarycategory">Element <sgmltag>librarycategory</sgmltag> - Declares that the enclosing library is in this category</link></simpara></listitem><listitem><simpara><li
nk linkend="boostbook.dtd.librarycategorydef">Element <sgmltag>librarycategorydef</sgmltag> - Defines a new library category</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.librarycategorylist">Element <sgmltag>librarycategorylist</sgmltag> - Categorized listing of libraries</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.libraryinfo">Element <sgmltag>libraryinfo</sgmltag> - Provides information about a library</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.librarylist">Element <sgmltag>librarylist</sgmltag> - Placeholder for an alphabetical list of libraries</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.libraryname">Element <sgmltag>libraryname</sgmltag> - References a library of the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.librarypurpose">Element <sgmltag>librarypurpose</sgmltag> - Describes in one short sentence or phrase the purpose of a library</link
></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.link-fail-test">Element <sgmltag>link-fail-test</sgmltag> - Declares a test that should compile but fail to link</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.link-test">Element <sgmltag>link-test</sgmltag> - Declares a test that should compile and link</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.macroname">Element <sgmltag>macroname</sgmltag> - References a macro with the given name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.method">Element <sgmltag>method</sgmltag> - Declares a method, i.e., a member function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.method-group">Element <sgmltag>method-group</sgmltag> - A set of methods that are grouped together under one name</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.namespace">Element <sgmltag>namespace</sgmltag> - Declares a namespace</link></s
impara></listitem><listitem><simpara><link linkend="boostbook.dtd.notes">Element <sgmltag>notes</sgmltag> - Non-normative notes about a function's semantics</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.overloaded-function">Element <sgmltag>overloaded-function</sgmltag> - An overloaded function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.overloaded-method">Element <sgmltag>overloaded-method</sgmltag> - An overloaded method</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.parameter">Element <sgmltag>parameter</sgmltag> - A function parameter</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.paramtype">Element <sgmltag>paramtype</sgmltag> - The type of a function parameter</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.postconditions">Element <sgmltag>postconditions</sgmltag> - Conditions that must hold after the function returns</link></simpara></listitem><listitem><simpar
a><link linkend="boostbook.dtd.precondition">Element <sgmltag>precondition</sgmltag> - Conditions that must be met prior to executing a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.programlisting">Element <sgmltag>programlisting</sgmltag> - A sample of program code</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.purpose">Element <sgmltag>purpose</sgmltag> - A short description of an entity's use</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.rationale">Element <sgmltag>rationale</sgmltag> - Describes the rationale for a particular function's design</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.requirement">Element <sgmltag>requirement</sgmltag> - A requirement/property in the Jamfile for a testcase</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.requires">Element <sgmltag>requires</sgmltag> - Declares the requirements of a function</link></simpara></listitem><l
istitem><simpara><link linkend="boostbook.dtd.returns">Element <sgmltag>returns</sgmltag> - Description of the return value of a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.run-fail-test">Element <sgmltag>run-fail-test</sgmltag> - A testcase that should compile and link, but fail on execution</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.run-test">Element <sgmltag>run-test</sgmltag> - A testcase that should compile, link, and execute</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.signature">Element <sgmltag>signature</sgmltag> - One signature of an overloaded function or method</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.snippet">Element <sgmltag>snippet</sgmltag> - Pulls in a code snippet from a <sgmltag>programlisting</sgmltag> element</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.source">Element <sgmltag>source</sgmltag> - Defines source code for a te
st</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.specialization">Element <sgmltag>specialization</sgmltag> - Defines the specialization arguments for a class specialization</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.static-constant">Element <sgmltag>static-constant</sgmltag> - Declares a static constant, e.g., <code>const int foo = 5;</code>.</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.struct">Element <sgmltag>struct</sgmltag> - Declares a C++ struct</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.struct-specialization">Element <sgmltag>struct-specialization</sgmltag> - A specialization (full or partial) of a struct template</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.template">Element <sgmltag>template</sgmltag> - Declares the template parameters of a class or function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.template-arg">Ele
ment <sgmltag>template-arg</sgmltag> - A template argument in a specialization</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.template-nontype-parameter">Element <sgmltag>template-nontype-parameter</sgmltag> - A nontype template parameter</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.template-type-parameter">Element <sgmltag>template-type-parameter</sgmltag> - Declares a template type parameter</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.template-varargs">Element <sgmltag>template-varargs</sgmltag> - Declares a variable-length list of template parameters</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.testsuite">Element <sgmltag>testsuite</sgmltag> - Describes a library testsuite</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.throws">Element <sgmltag>throws</sgmltag> - Description of the exceptions thrown by a function</link></simpara></listitem><listitem><simpara><li
nk linkend="boostbook.dtd.type">Element <sgmltag>type</sgmltag> - The type of an element or return type of a function</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.typedef">Element <sgmltag>typedef</sgmltag> - Declares a typedef</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.union">Element <sgmltag>union</sgmltag> - Declares a C++ union or union template</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.union-specialization">Element <sgmltag>union-specialization</sgmltag> - A specialization (full or partial) of a union template</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.using-class">Element <sgmltag>using-class</sgmltag> - Injects the method and function names of a class into the local scope</link></simpara></listitem><listitem><simpara><link linkend="boostbook.dtd.using-namespace">Element <sgmltag>using-namespace</sgmltag> - Injects the declared names from a namespace into the local scope</link>
</simpara></listitem></itemizedlist></para>
Modified: branches/release/tools/boostbook/test/alt.xml
==============================================================================
--- branches/release/tools/boostbook/test/alt.xml	(original)
+++ branches/release/tools/boostbook/test/alt.xml	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -1,3 +1,10 @@
+
+<!--
+Copyright Daniel James 2009
+Distributed under the Boost Software License, Version 1.0. (See accompanying
+file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+-->
+
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML//EN"
   "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
@@ -37,4 +44,4 @@
       </macro>
     </header>
   </library-reference>
-</library>
\ No newline at end of file
+</library>
Modified: branches/release/tools/boostbook/test/doxygen/Jamfile.v2
==============================================================================
--- branches/release/tools/boostbook/test/doxygen/Jamfile.v2	(original)
+++ branches/release/tools/boostbook/test/doxygen/Jamfile.v2	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -1,3 +1,8 @@
+
+# Copyright 2009 Daniel James.
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
 import doxygen ;
 
 doxygen autodoc
Modified: branches/release/tools/boostbook/test/doxygen/boost/example.hpp
==============================================================================
--- branches/release/tools/boostbook/test/doxygen/boost/example.hpp	(original)
+++ branches/release/tools/boostbook/test/doxygen/boost/example.hpp	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -1,8 +1,25 @@
+
+// Copyright 2009 Daniel James.
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+/*!
+    \class example::example
+    
+    \brief Documentation for class example
+ */
+
+/*!
+    \def EXAMPLE
+    
+    \brief Documentation for macro example
+ */
+
 int global_integer;
 static int global_static_integer;
 const int global_const_integer = 1;
 static const int global_static_const_integer = 2;
-enum global_enum { enumerator };
+enum global_enum { enumerator1 = 1, enumerator2 };
 
 namespace example
 {
@@ -48,7 +65,35 @@
         enum private_class_enum { enumerator3 };
     };
     
+    /**
+     * Test some doxygen markup
+     *
+     * Embedded docbook list:
+     *
+     * \xmlonly
+     * <orderedlist><listitem>1</listitem><listitem>2</listitem></orderedlist>
+     * \endxmlonly
+     *
+     * \a Special \b Bold \c Typewriter \e Italics \em emphasis \p parameter
+     *
+     * \arg Arg1 first argument.
+     * \arg Arg2 second argument.
+     *
+     * \li First list item.
+     * \li Second list item
+     *
+     * Line 1\n
+     * Line 2
+     *
+     * \code
+     *     void foo() {}
+     * \endcode
+     *
+     */
+
     template <typename TypeParameter, int NonTypeParameter,
         typename TypeParameterWithDefault = int>
     struct example_template {};
 }
+
+#define EXAMPLE(m) The macro
Modified: branches/release/tools/boostbook/test/doxygen/example.xml
==============================================================================
--- branches/release/tools/boostbook/test/doxygen/example.xml	(original)
+++ branches/release/tools/boostbook/test/doxygen/example.xml	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -1,6 +1,13 @@
+
+<!--
+Copyright Daniel James 2009
+Distributed under the Boost Software License, Version 1.0. (See accompanying
+file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+-->
+
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
 <library id="example" name="Example" dirname="example" xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Example</title>
 <xi:include href="autodoc.xml" />
-</library>
\ No newline at end of file
+</library>
Modified: branches/release/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
==============================================================================
--- branches/release/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	(original)
+++ branches/release/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	2009-10-10 10:53:46 EDT (Sat, 10 Oct 2009)
@@ -308,7 +308,7 @@
 
           <xsl:if test="initializer">
             <default>
-              <xsl:apply-templates select="initializer" mode="passthrough"/>
+              <xsl:apply-templates select="initializer/*|initializer/text()" mode="passthrough"/>
             </default>
           </xsl:if>
 
@@ -1216,12 +1216,13 @@
     </xsl:if>
   </xsl:template>
 
-  <xsl:template match="computeroutput|orderedlist|itemizedlist|listitem" 
-    mode="passthrough">
-    <xsl:element name="{name(.)}">
+  <xsl:template match="*" mode="passthrough">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
       <xsl:apply-templates mode="passthrough"/>
-    </xsl:element>
+    </xsl:copy>
   </xsl:template>
+
   <xsl:template match="parameterlist" mode="passthrough"/>
 
   <xsl:template match="bold" mode="passthrough">
@@ -1230,6 +1231,10 @@
     </emphasis>
   </xsl:template>
 
+  <xsl:template match="linebreak" mode="passthrough">
+    <sbr/>
+  </xsl:template>
+
   <xsl:template match="briefdescription" mode="passthrough">
     <xsl:if test="text()|*">
       <purpose>
@@ -1254,6 +1259,12 @@
     </xsl:if>
   </xsl:template>
 
+  <!-- Ignore ref elements for now, as there is a lot of documentation which
+       will have incorrect ref elements at the moment -->
+  <xsl:template match="ref" mode="passthrough">
+    <xsl:apply-templates mode="passthrough"/>
+  </xsl:template>
+
   <!-- Handle function clauses -->
   <xsl:template match="simplesect" mode="function-clauses">
     <xsl:if test="@kind='pre'">