$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r75610 - in branches/quickbook-dev/tools/quickbook: src test/include
From: dnljms_at_[hidden]
Date: 2011-11-22 18:44:17
Author: danieljames
Date: 2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
New Revision: 75610
URL: http://svn.boost.org/trac/boost/changeset/75610
Log:
Quickbook: Some id_manager clean up.
Tweak the id handling for using 1.5- compatibility mode inside 1.6
documents (you can't see this in the tests).
Added:
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.gold   (contents, props changed)
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.quickbook   (contents, props changed)
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_1.qbk   (contents, props changed)
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_5.qbk   (contents, props changed)
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_6.qbk   (contents, props changed)
Text files modified: 
   branches/quickbook-dev/tools/quickbook/src/id_manager.cpp                       |   257 +++++++++++++++++----------------       
   branches/quickbook-dev/tools/quickbook/test/include/Jamfile.v2                  |     1                                         
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.gold      |   287 ++++++++++++++++++++++++++++++++++++-   
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.quickbook |    11 +                                       
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.gold      |   303 +++++++++++++++++++++++++++++++++++++-- 
   branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.quickbook |    11 +                                       
   6 files changed, 713 insertions(+), 157 deletions(-)
Modified: branches/quickbook-dev/tools/quickbook/src/id_manager.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/id_manager.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/id_manager.cpp	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -10,7 +10,6 @@
 #include "utils.hpp"
 #include "string_ref.hpp"
 #include <boost/intrusive_ptr.hpp>
-#include <boost/shared_ptr.hpp>
 #include <boost/unordered_map.hpp>
 #include <boost/lexical_cast.hpp>
 #include <boost/range/algorithm.hpp>
@@ -131,7 +130,6 @@
     struct id_state
     {
         boost::intrusive_ptr<file_info> current_file;
-
         std::deque<id_placeholder> placeholders;
 
         // Placeholder methods
@@ -143,32 +141,38 @@
 
         // Events
 
-        std::string start_file(
+        id_placeholder* start_file(
+                unsigned compatibility_version,
+                bool document_root,
                 std::string const& include_doc_id,
                 std::string const& id,
                 value const& title);
 
         void end_file();
 
-        std::string add_id(
+        id_placeholder* add_id(
                 std::string const& id,
                 id_category category);
-        id_placeholder* add_id_impl(
-                std::string const& id,
-                id_category category,
-                boost::intrusive_ptr<section_info> const& section);
-        std::string old_style_id(
+        id_placeholder* old_style_id(
             std::string const& id,
             id_category category);
-        std::string begin_section(
+        id_placeholder* begin_section(
                 std::string const& id,
                 id_category category);
         void end_section();
-        boost::intrusive_ptr<section_info> end_section(
-            boost::intrusive_ptr<file_info> const& file,
-            boost::intrusive_ptr<section_info> const& section);
 
-        void switch_section(boost::intrusive_ptr<section_info> const&);
+private:
+        id_placeholder* add_id_to_section(
+                std::string const& id,
+                id_category category,
+                boost::intrusive_ptr<section_info> const& section);
+        id_placeholder* create_new_section(
+                std::string const& id,
+                id_category category);
+
+        void switch_section(id_placeholder*);
+        void reswitch_sections(boost::intrusive_ptr<section_info> const&,
+            boost::intrusive_ptr<section_info> const&);
         void restore_section();
     };
 
@@ -180,7 +184,7 @@
         bool document_root; // !parent || document != parent->document
         unsigned compatibility_version;
         boost::intrusive_ptr<section_info> switched_section;
-        boost::intrusive_ptr<section_info> original_section;
+        id_placeholder* original_placeholder;
 
         // The 1.1-1.5 document id would actually change per file due to
         // explicit ids in includes and a bug which would sometimes use the
@@ -191,7 +195,7 @@
                 unsigned compatibility_version) :
             parent(parent), document(parent->document), document_root(false),
             compatibility_version(compatibility_version),
-            switched_section(), original_section()
+            switched_section(), original_placeholder()
         {}
 
         file_info(boost::intrusive_ptr<file_info> const& parent,
@@ -199,7 +203,7 @@
                 unsigned compatibility_version) :
             parent(parent), document(document), document_root(true),
             compatibility_version(compatibility_version),
-            switched_section(), original_section()
+            switched_section(), original_placeholder()
         {}
     };
 
@@ -254,10 +258,7 @@
             std::string const& id,
             value const& title)
     {
-        state->current_file =
-            new file_info(state->current_file, compatibility_version);
-
-        state->start_file(include_doc_id, id, title);
+        state->start_file(compatibility_version, false, include_doc_id, id, title);
     }
 
     std::string id_manager::start_file_with_docinfo(
@@ -266,25 +267,19 @@
             std::string const& id,
             value const& title)
     {
-        state->current_file =
-            new file_info(state->current_file, new doc_info(),
-                compatibility_version);
-
-        std::string x = state->start_file(include_doc_id, id, title);
-        return x;
+        return state->start_file(compatibility_version, true, include_doc_id,
+            id, title)->to_string();
     }
 
     void id_manager::end_file()
     {
         state->end_file();
-        state->current_file = state->current_file->parent;
     }
 
     std::string id_manager::begin_section(std::string const& id,
             id_category category)
     {
-        state->current_file->document->section_id_1_1 = id;
-        return state->begin_section(id, category);
+        return state->begin_section(id, category)->to_string();
     }
 
     void id_manager::end_section()
@@ -299,12 +294,12 @@
 
     std::string id_manager::old_style_id(std::string const& id, id_category category)
     {
-        return state->old_style_id(id, category);
+        return state->old_style_id(id, category)->to_string();
     }
 
     std::string id_manager::add_id(std::string const& id, id_category category)
     {
-        return state->add_id(id, category);
+        return state->add_id(id, category)->to_string();
     }
 
     std::string id_manager::add_anchor(std::string const& id, id_category category)
@@ -400,41 +395,76 @@
         return &placeholders.at(index);
     }
 
-    void id_state::switch_section(boost::intrusive_ptr<section_info> const& p)
+    void id_state::switch_section(id_placeholder* p)
     {
-        assert(!current_file->switched_section);
-        current_file->original_section = current_file->document->current_section;
-        current_file->document->current_section = current_file->switched_section = p;
+        assert(!current_file->original_placeholder);
+        current_file->switched_section = current_file->document->current_section;
+        current_file->original_placeholder = current_file->switched_section->placeholder_1_6;
+        current_file->switched_section->placeholder_1_6 = p;
     }
 
-    void id_state::restore_section()
+    void id_state::reswitch_sections(
+        boost::intrusive_ptr<section_info> const& popped_section,
+        boost::intrusive_ptr<section_info> const& parent_section)
     {
-        if (current_file->switched_section) {
-            boost::intrusive_ptr<section_info>* section_ptr =
-                ¤t_file->document->current_section;
-
-            while (*section_ptr) {
-                if (*section_ptr == current_file->switched_section) {
-                    *section_ptr = current_file->original_section;
-                    break;
-                }
+        boost::intrusive_ptr<file_info> file = current_file;
+        boost::intrusive_ptr<file_info> first_switched_file;
 
-                section_ptr = &(*section_ptr)->parent;
+        for (;;) {
+            if (file->switched_section == popped_section)
+            {
+                first_switched_file = file;
+                file->switched_section = parent_section;
             }
+            
+            if (file->document_root) break;
+            file = file->parent;
+        }
+        
+        if (first_switched_file) {
+            first_switched_file->original_placeholder =
+                parent_section->placeholder_1_6;
+            parent_section->placeholder_1_6 =
+                popped_section->placeholder_1_6;
         }
     }
 
-    std::string id_state::start_file(
+    void id_state::restore_section()
+    {
+        if (current_file->original_placeholder) {
+            current_file->switched_section->placeholder_1_6 =
+                current_file->original_placeholder;        
+        }
+    }
+
+    id_placeholder* id_state::start_file(
+            unsigned compatibility_version,
+            bool document_root,
             std::string const& include_doc_id,
             std::string const& id,
             value const& title)
     {
-        boost::intrusive_ptr<file_info> parent = current_file->parent;
+        // Create new file
+
+        boost::intrusive_ptr<file_info> parent = current_file;
+
+        if (document_root) {
+            current_file = new file_info(parent, new doc_info(),
+                    compatibility_version);
+        }
+        else {
+            current_file =
+                new file_info(parent, compatibility_version);
+        }
+
+        // Choose specified id to use. Prefer 'include_doc_id' (the id
+        // specified in an 'include' element) unless backwards compatibility
+        // is required.
 
         std::string initial_doc_id;
 
-        if (current_file->document_root ||
-            current_file->compatibility_version >= 106u ||
+        if (document_root ||
+            compatibility_version >= 106u ||
             (parent && parent->compatibility_version >= 106u)) {
             initial_doc_id = !include_doc_id.empty() ? include_doc_id : id;
         }
@@ -442,9 +472,13 @@
             initial_doc_id = !id.empty() ? id : include_doc_id;
         }
 
-        if (current_file->compatibility_version < 106u) {
-            // To be backwards compatible this is set even when docinfo is
+        // Set variables used for backwards compatible id generation.
+        // They're a bit odd because of old bugs.
+
+        if (document_root || compatibility_version < 106u) {
+            // Note: this is done for older versions even if docinfo is
             // otherwise ignored.
+
             if (title.check())
                 current_file->document->last_title_1_1 =
                     title.get_quickbook();
@@ -456,57 +490,53 @@
             current_file->doc_id_1_1 = parent->doc_id_1_1;
         }
 
-        if (current_file->document_root) {
-            // TODO: Revise fallback for old versions
+        if (document_root) {
             if (!initial_doc_id.empty()) {
-                return begin_section(id, id_category::explicit_section_id);
+                return create_new_section(id, id_category::explicit_section_id);
             }
             else if (!title.empty()) {
-                return begin_section(
+                return create_new_section(
                     detail::make_identifier(title.get_quickbook()),
                     id_category::generated_doc);
             }
-            else if (current_file->compatibility_version >= 106u) {
-                return begin_section("doc", id_category::numbered);
+            else if (compatibility_version >= 106u) {
+                return create_new_section("doc", id_category::numbered);
             }
             else {
-                return begin_section("", id_category::generated_doc);
+                return create_new_section("", id_category::generated_doc);
             }
         }
-        else if (current_file->compatibility_version >= 106u &&
-                !initial_doc_id.empty()) {
-
-            boost::intrusive_ptr<section_info> alt_section =
-                new section_info(
-                    this->current_file->document->current_section->parent,
-                    current_file->compatibility_version, initial_doc_id);
-
-            alt_section->placeholder_1_6 = add_id_impl(initial_doc_id,
-                id_category::explicit_section_id,
-                boost::intrusive_ptr<section_info>());
-            switch_section(alt_section);
-
-            return "";
-        }
         else {
-            return "";
+            // If an id was set for the file, then switch the current section
+            // with a new section with this id. This will be maintained in
+            // 'end_section' if the current section ends, and then the original
+            // section restored in 'end_file'
+
+            if (compatibility_version >= 106u && !initial_doc_id.empty()) {
+                switch_section(add_id_to_section(initial_doc_id,
+                    id_category::explicit_section_id,
+                    boost::intrusive_ptr<section_info>()));
+            }
+
+            return 0;
         }
     }
 
     void id_state::end_file()
     {
         restore_section();
+        current_file = current_file->parent;
     }
 
-    std::string id_state::add_id(
+    id_placeholder* id_state::add_id(
             std::string const& id,
             id_category category)
     {
-        return add_id_impl(id, category,
-            current_file->document->current_section)->to_string();
+        return add_id_to_section(id, category,
+            current_file->document->current_section);
     }
 
-    id_placeholder* id_state::add_id_impl(
+    id_placeholder* id_state::add_id_to_section(
             std::string const& id,
             id_category category,
             boost::intrusive_ptr<section_info> const& section)
@@ -541,22 +571,28 @@
         }
     }
 
-    std::string id_state::old_style_id(
+    id_placeholder* id_state::old_style_id(
         std::string const& id,
         id_category category)
     {
         return current_file->compatibility_version < 103u ?
             add_placeholder(
-                current_file->document->section_id_1_1 + "." + id, category)
-                    ->to_string() : add_id(id, category);
+                current_file->document->section_id_1_1 + "." + id, category) :
+                add_id(id, category);
     }
 
-    std::string id_state::begin_section(
+    id_placeholder* id_state::begin_section(
             std::string const& id,
             id_category category)
     {
-        // TODO: Begin 1.6 section inside 1.1 section
+        current_file->document->section_id_1_1 = id;
+        return create_new_section(id, category);
+    }
 
+    id_placeholder* id_state::create_new_section(
+            std::string const& id,
+            id_category category)
+    {
         boost::intrusive_ptr<section_info> parent =
             current_file->document->current_section;
 
@@ -566,7 +602,7 @@
         id_placeholder* p;
 
         if (new_section->compatibility_version >= 106u) {
-            p = add_id_impl(id, category, parent);
+            p = add_id_to_section(id, category, parent);
             new_section->placeholder_1_6 = p;
         }
         else if (new_section->compatibility_version >= 103u) {
@@ -598,52 +634,19 @@
         }
 
         current_file->document->current_section = new_section;
-
-        return p->to_string();
+        
+        return p;
     }
 
     void id_state::end_section()
     {
-        current_file->document->current_section =
-            end_section(current_file, current_file->document->current_section);
-
-    }
-
-    boost::intrusive_ptr<section_info> id_state::end_section(
-            boost::intrusive_ptr<file_info> const& file,
-            boost::intrusive_ptr<section_info> const& section)
-    {
-        if (file->switched_section == section) {
-            if (!file->document_root) {
-                file->original_section = end_section(
-                    file->parent, file->original_section);
-            }
-            else {
-                file->original_section =
-                    file->original_section->parent;
-            }
-
-            boost::intrusive_ptr<section_info> alt_section =
-                new section_info(
-                    file->original_section->parent,
-                    file->original_section->compatibility_version,
-                    file->switched_section->placeholder_1_6->id);
-
-            alt_section->placeholder_1_6 =
-                file->switched_section->placeholder_1_6;
+        boost::intrusive_ptr<section_info> popped_section =
+            current_file->document->current_section;
+        current_file->document->current_section = popped_section->parent;
 
-            file->switched_section = alt_section;
-            return alt_section;
-        }
-        else {
-            if (!file->switched_section && !file->document_root)
-                return end_section(current_file->parent, section);
-            else
-                return section->parent;
-        }
+        reswitch_sections(popped_section, popped_section->parent);
     }
 
-
     //
     // Xml subset parser used for finding id values.
     //
@@ -817,7 +820,7 @@
     // Data used for generating placeholders that have duplicates.
     //
 
-    struct id_generation_data
+    struct id_generation_data : intrusive_base
     {
         id_generation_data(std::string const& src_id)
           : child_start(src_id.rfind('.') + 1),
@@ -872,7 +875,7 @@
         id_category category;   // The highest priority category of the
                                 // placeholders that want to use this id.
         bool used;              // Whether this id has been used.
-        boost::shared_ptr<id_generation_data> generation_data;
+        boost::intrusive_ptr<id_generation_data> generation_data;
                                 // If a duplicates are found, this is
                                 // created to generate new ids.
                                 //
Modified: branches/quickbook-dev/tools/quickbook/test/include/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/include/Jamfile.v2	(original)
+++ branches/quickbook-dev/tools/quickbook/test/include/Jamfile.v2	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -36,6 +36,7 @@
     [ quickbook-test in_section-1_6 ]
     [ quickbook-test compatibility-1_1 ]
     [ quickbook-test compatibility-1_5 ]
+    [ quickbook-test compatibility-1_6 ]
     [ quickbook-test source_mode-1_5 ]
     [ quickbook-test source_mode-1_6 ]
     [ quickbook-test nested_compatibility-1_5 ]
Modified: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.gold	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -3,22 +3,22 @@
 <article id="compatibility" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 $"
  xmlns:xi="http://www.w3.org/2001/XInclude">
   <title>Test Compatibility Mode</title>
-  <section id="compatibility.outer">
+  <section id="compatibility.collision">
     <title>Outer</title>
     <section id="test_compatibility_mode.inner">
       <title>Inner</title>
-      <bridgehead renderas="sect4" id="test_compatibility_mode.outer.inner.h0">
-        <phrase id="test_compatibility_mode.outer.inner.header"/><link linkend="test_compatibility_mode.outer.inner.header">Header</link>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h0">
+        <phrase id="test_compatibility_mode.collision.inner.header"/><link linkend="test_compatibility_mode.collision.inner.header">Header</link>
       </bridgehead>
       <bridgehead renderas="sect1" id="inner.heading1">
         Heading1
       </bridgehead>
-      <bridgehead renderas="sect4" id="test_compatibility_mode.outer.inner.h1">
-        <phrase id="test_compatibility_mode.outer.inner.x1"/><link linkend="test_compatibility_mode.outer.inner.x1">Header
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h1">
+        <phrase id="test_compatibility_mode.collision.inner.x1"/><link linkend="test_compatibility_mode.collision.inner.x1">Header
         with id</link>
       </bridgehead>
-      <bridgehead renderas="sect1" id="test_compatibility_mode.outer.inner.h2">
-        <phrase id="test_compatibility_mode.outer.inner.x2"/><link linkend="test_compatibility_mode.outer.inner.x2">Heading1
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h2">
+        <phrase id="test_compatibility_mode.collision.inner.x2"/><link linkend="test_compatibility_mode.collision.inner.x2">Heading1
         with id</link>
       </bridgehead>
       <informaltable frame="all">
@@ -37,7 +37,7 @@
           </tbody>
         </tgroup>
       </informaltable>
-      <informaltable frame="all" id="test_compatibility_mode.outer.inner.withid">
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid">
         <tgroup cols="1">
           <thead>
             <row>
@@ -53,7 +53,7 @@
           </tbody>
         </tgroup>
       </informaltable>
-      <table frame="all" id="test_compatibility_mode.outer.inner.t0">
+      <table frame="all" id="test_compatibility_mode.collision.inner.t0">
         <title>With Title</title>
         <tgroup cols="1">
           <thead>
@@ -70,7 +70,7 @@
           </tbody>
         </tgroup>
       </table>
-      <table frame="all" id="test_compatibility_mode.outer.inner.x">
+      <table frame="all" id="test_compatibility_mode.collision.inner.x">
         <title>Id and Title</title>
         <tgroup cols="1">
           <thead>
@@ -92,4 +92,271 @@
       <title>Inner with id</title>
     </section>
   </section>
+  <section id="compatibility.collision0">
+    <title>Include compatibility 1.1</title>
+    <section id="test_compatibility_mode.inner0">
+      <title>Inner</title>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h3">
+        <phrase id="test_compatibility_mode.collision.inner.header0"/><link linkend="test_compatibility_mode.collision.inner.header0">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="inner.heading1_0">
+        Heading1
+      </bridgehead>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h4">
+        <phrase id="test_compatibility_mode.collision.inner.x1_0"/><link linkend="test_compatibility_mode.collision.inner.x1_0">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h5">
+        <phrase id="test_compatibility_mode.collision.inner.x2_0"/><link linkend="test_compatibility_mode.collision.inner.x2_0">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid0">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="test_compatibility_mode.collision.inner.t1">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="test_compatibility_mode.collision.inner.x0">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="test_compatibility_mode.x0">
+      <title>Inner with id</title>
+    </section>
+  </section>
+  <section id="compatibility.collision1">
+    <title>Include compatibility 1.5</title>
+    <section id="test_compatibility_mode.collision.inner">
+      <title><link linkend="test_compatibility_mode.collision.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h6">
+        <phrase id="test_compatibility_mode.collision.inner.header1"/><link linkend="test_compatibility_mode.collision.inner.header1">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h7">
+        <phrase id="test_compatibility_mode.collision.inner.heading1"/><link linkend="test_compatibility_mode.collision.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h8">
+        <phrase id="test_compatibility_mode.collision.inner.x1_1"/><link linkend="test_compatibility_mode.collision.inner.x1_1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h9">
+        <phrase id="test_compatibility_mode.collision.inner.x2_1"/><link linkend="test_compatibility_mode.collision.inner.x2_1">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid1">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="test_compatibility_mode.collision.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="test_compatibility_mode.collision.inner.x3">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="test_compatibility_mode.collision.x">
+      <title><link linkend="test_compatibility_mode.collision.x">Inner with id</link></title>
+    </section>
+  </section>
+  <section id="compatibility.collision2">
+    <title>Include compatibility 1.6</title>
+    <section id="compatibility.collision.inner">
+      <title><link linkend="compatibility.collision.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h0">
+        <phrase id="compatibility.collision.inner.header"/><link linkend="compatibility.collision.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h1">
+        <phrase id="compatibility.collision.inner.heading1"/><link linkend="compatibility.collision.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h2">
+        <phrase id="compatibility.collision.inner.x1"/><link linkend="compatibility.collision.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h3">
+        <phrase id="compatibility.collision.inner.x2"/><link linkend="compatibility.collision.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="compatibility.collision.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="compatibility.collision.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="compatibility.collision.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="compatibility.collision.x">
+      <title><link linkend="compatibility.collision.x">Inner with id</link></title>
+    </section>
+  </section>
 </article>
Modified: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_1.quickbook	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -4,6 +4,15 @@
 [id compatibility]
 ]
 
-[section Outer]
+[section:collision Outer]
 [include compatibility-inc.qbk]
 [endsect]
+[section:collision Include compatibility 1.1]
+[include compatibility-inc_1_1.qbk]
+[endsect]
+[section:collision Include compatibility 1.5]
+[include compatibility-inc_1_5.qbk]
+[endsect]
+[section:collision Include compatibility 1.6]
+[include compatibility-inc_1_6.qbk]
+[endsect]
Modified: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.gold	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -3,22 +3,289 @@
 <article id="compatibility" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 $"
  xmlns:xi="http://www.w3.org/2001/XInclude">
   <title>Test Compatibility Mode</title>
-  <section id="compatibility.outer">
-    <title><link linkend="compatibility.outer">Outer</link></title>
-    <section id="test_compatibility_mode.outer.inner">
-      <title><link linkend="test_compatibility_mode.outer.inner">Inner</link></title>
-      <bridgehead renderas="sect4" id="test_compatibility_mode.outer.inner.h0">
-        <phrase id="test_compatibility_mode.outer.inner.header"/><link linkend="test_compatibility_mode.outer.inner.header">Header</link>
-      </bridgehead>
-      <bridgehead renderas="sect1" id="test_compatibility_mode.outer.inner.h1">
-        <phrase id="test_compatibility_mode.outer.inner.heading1"/><link linkend="test_compatibility_mode.outer.inner.heading1">Heading1</link>
+  <section id="compatibility.collision">
+    <title><link linkend="compatibility.collision">Outer</link></title>
+    <section id="test_compatibility_mode.collision.inner">
+      <title><link linkend="test_compatibility_mode.collision.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h0">
+        <phrase id="test_compatibility_mode.collision.inner.header"/><link linkend="test_compatibility_mode.collision.inner.header">Header</link>
       </bridgehead>
-      <bridgehead renderas="sect4" id="test_compatibility_mode.outer.inner.h2">
-        <phrase id="test_compatibility_mode.outer.inner.x1"/><link linkend="test_compatibility_mode.outer.inner.x1">Header
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h1">
+        <phrase id="test_compatibility_mode.collision.inner.heading1"/><link linkend="test_compatibility_mode.collision.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h2">
+        <phrase id="test_compatibility_mode.collision.inner.x1"/><link linkend="test_compatibility_mode.collision.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h3">
+        <phrase id="test_compatibility_mode.collision.inner.x2"/><link linkend="test_compatibility_mode.collision.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="test_compatibility_mode.collision.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="test_compatibility_mode.collision.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="test_compatibility_mode.collision.x">
+      <title><link linkend="test_compatibility_mode.collision.x">Inner with id</link></title>
+    </section>
+  </section>
+  <section id="compatibility.collision0">
+    <title><link linkend="compatibility.collision0">Include compatibility 1.1</link></title>
+    <section id="test_compatibility_mode.inner">
+      <title>Inner</title>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h4">
+        <phrase id="test_compatibility_mode.collision.inner.header0"/><link linkend="test_compatibility_mode.collision.inner.header0">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="inner.heading1">
+        Heading1
+      </bridgehead>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h5">
+        <phrase id="test_compatibility_mode.collision.inner.x1_0"/><link linkend="test_compatibility_mode.collision.inner.x1_0">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h6">
+        <phrase id="test_compatibility_mode.collision.inner.x2_0"/><link linkend="test_compatibility_mode.collision.inner.x2_0">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid0">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="test_compatibility_mode.collision.inner.t0">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="test_compatibility_mode.collision.inner.x0">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="test_compatibility_mode.x">
+      <title>Inner with id</title>
+    </section>
+  </section>
+  <section id="compatibility.collision1">
+    <title><link linkend="compatibility.collision1">Include compatibility 1.5</link></title>
+    <section id="test_compatibility_mode.collision.inner0">
+      <title><link linkend="test_compatibility_mode.collision.inner0">Inner</link></title>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h7">
+        <phrase id="test_compatibility_mode.collision.inner.header1"/><link linkend="test_compatibility_mode.collision.inner.header1">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h8">
+        <phrase id="test_compatibility_mode.collision.inner.heading1_0"/><link linkend="test_compatibility_mode.collision.inner.heading1_0">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="test_compatibility_mode.collision.inner.h9">
+        <phrase id="test_compatibility_mode.collision.inner.x1_1"/><link linkend="test_compatibility_mode.collision.inner.x1_1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="test_compatibility_mode.collision.inner.h10">
+        <phrase id="test_compatibility_mode.collision.inner.x2_1"/><link linkend="test_compatibility_mode.collision.inner.x2_1">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="test_compatibility_mode.collision.inner.withid1">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="test_compatibility_mode.collision.inner.with_title0">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="test_compatibility_mode.collision.inner.x3">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="test_compatibility_mode.collision.x0">
+      <title><link linkend="test_compatibility_mode.collision.x0">Inner with id</link></title>
+    </section>
+  </section>
+  <section id="compatibility.collision2">
+    <title><link linkend="compatibility.collision2">Include compatibility 1.6</link></title>
+    <section id="compatibility.collision.inner">
+      <title><link linkend="compatibility.collision.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h0">
+        <phrase id="compatibility.collision.inner.header"/><link linkend="compatibility.collision.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h1">
+        <phrase id="compatibility.collision.inner.heading1"/><link linkend="compatibility.collision.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h2">
+        <phrase id="compatibility.collision.inner.x1"/><link linkend="compatibility.collision.inner.x1">Header
         with id</link>
       </bridgehead>
-      <bridgehead renderas="sect1" id="test_compatibility_mode.outer.inner.h3">
-        <phrase id="test_compatibility_mode.outer.inner.x2"/><link linkend="test_compatibility_mode.outer.inner.x2">Heading1
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h3">
+        <phrase id="compatibility.collision.inner.x2"/><link linkend="compatibility.collision.inner.x2">Heading1
         with id</link>
       </bridgehead>
       <informaltable frame="all">
@@ -37,7 +304,7 @@
           </tbody>
         </tgroup>
       </informaltable>
-      <informaltable frame="all" id="test_compatibility_mode.outer.inner.withid">
+      <informaltable frame="all" id="compatibility.collision.inner.withid">
         <tgroup cols="1">
           <thead>
             <row>
@@ -53,7 +320,7 @@
           </tbody>
         </tgroup>
       </informaltable>
-      <table frame="all" id="test_compatibility_mode.outer.inner.with_title">
+      <table frame="all" id="compatibility.collision.inner.with_title">
         <title>With Title</title>
         <tgroup cols="1">
           <thead>
@@ -70,7 +337,7 @@
           </tbody>
         </tgroup>
       </table>
-      <table frame="all" id="test_compatibility_mode.outer.inner.x">
+      <table frame="all" id="compatibility.collision.inner.x">
         <title>Id and Title</title>
         <tgroup cols="1">
           <thead>
@@ -88,8 +355,8 @@
         </tgroup>
       </table>
     </section>
-    <section id="test_compatibility_mode.outer.x">
-      <title><link linkend="test_compatibility_mode.outer.x">Inner with id</link></title>
+    <section id="compatibility.collision.x">
+      <title><link linkend="compatibility.collision.x">Inner with id</link></title>
     </section>
   </section>
 </article>
Modified: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_5.quickbook	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -4,6 +4,15 @@
 [quickbook 1.6]
 ]
 
-[section Outer]
+[section:collision Outer]
 [include compatibility-inc.qbk]
 [endsect]
+[section:collision Include compatibility 1.1]
+[include compatibility-inc_1_1.qbk]
+[endsect]
+[section:collision Include compatibility 1.5]
+[include compatibility-inc_1_5.qbk]
+[endsect]
+[section:collision Include compatibility 1.6]
+[include compatibility-inc_1_6.qbk]
+[endsect]
Added: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.gold
==============================================================================
--- (empty file)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.gold	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<article id="compatibility" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 $"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+  <title>Test Compatibility Mode</title>
+  <section id="compatibility.collision">
+    <title><link linkend="compatibility.collision">Outer</link></title>
+    <section id="compatibility.collision.inner">
+      <title><link linkend="compatibility.collision.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h0">
+        <phrase id="compatibility.collision.inner.header"/><link linkend="compatibility.collision.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h1">
+        <phrase id="compatibility.collision.inner.heading1"/><link linkend="compatibility.collision.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision.inner.h2">
+        <phrase id="compatibility.collision.inner.x1"/><link linkend="compatibility.collision.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision.inner.h3">
+        <phrase id="compatibility.collision.inner.x2"/><link linkend="compatibility.collision.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="compatibility.collision.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="compatibility.collision.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="compatibility.collision.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="compatibility.collision.x">
+      <title><link linkend="compatibility.collision.x">Inner with id</link></title>
+    </section>
+  </section>
+  <section id="compatibility.collision0">
+    <title><link linkend="compatibility.collision0">Include compatibility 1.1</link></title>
+    <section id="compatibility.collision0.inner">
+      <title>Inner</title>
+      <bridgehead renderas="sect4" id="compatibility.collision0.inner.h0">
+        <phrase id="compatibility.collision0.inner.header"/><link linkend="compatibility.collision0.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="inner.heading1">
+        Heading1
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision0.inner.h1">
+        <phrase id="compatibility.collision0.inner.x1"/><link linkend="compatibility.collision0.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision0.inner.h2">
+        <phrase id="compatibility.collision0.inner.x2"/><link linkend="compatibility.collision0.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="compatibility.collision0.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="compatibility.collision0.inner.t0">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="compatibility.collision0.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="compatibility.collision0.x">
+      <title>Inner with id</title>
+    </section>
+  </section>
+  <section id="compatibility.collision1">
+    <title><link linkend="compatibility.collision1">Include compatibility 1.5</link></title>
+    <section id="compatibility.collision1.inner">
+      <title><link linkend="compatibility.collision1.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="compatibility.collision1.inner.h0">
+        <phrase id="compatibility.collision1.inner.header"/><link linkend="compatibility.collision1.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision1.inner.h1">
+        <phrase id="compatibility.collision1.inner.heading1"/><link linkend="compatibility.collision1.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision1.inner.h2">
+        <phrase id="compatibility.collision1.inner.x1"/><link linkend="compatibility.collision1.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision1.inner.h3">
+        <phrase id="compatibility.collision1.inner.x2"/><link linkend="compatibility.collision1.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="compatibility.collision1.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="compatibility.collision1.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="compatibility.collision1.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="compatibility.collision1.x">
+      <title><link linkend="compatibility.collision1.x">Inner with id</link></title>
+    </section>
+  </section>
+  <section id="compatibility.collision2">
+    <title><link linkend="compatibility.collision2">Include compatibility 1.6</link></title>
+    <section id="compatibility.collision2.inner">
+      <title><link linkend="compatibility.collision2.inner">Inner</link></title>
+      <bridgehead renderas="sect4" id="compatibility.collision2.inner.h0">
+        <phrase id="compatibility.collision2.inner.header"/><link linkend="compatibility.collision2.inner.header">Header</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision2.inner.h1">
+        <phrase id="compatibility.collision2.inner.heading1"/><link linkend="compatibility.collision2.inner.heading1">Heading1</link>
+      </bridgehead>
+      <bridgehead renderas="sect4" id="compatibility.collision2.inner.h2">
+        <phrase id="compatibility.collision2.inner.x1"/><link linkend="compatibility.collision2.inner.x1">Header
+        with id</link>
+      </bridgehead>
+      <bridgehead renderas="sect1" id="compatibility.collision2.inner.h3">
+        <phrase id="compatibility.collision2.inner.x2"/><link linkend="compatibility.collision2.inner.x2">Heading1
+        with id</link>
+      </bridgehead>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <informaltable frame="all" id="compatibility.collision2.inner.withid">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <table frame="all" id="compatibility.collision2.inner.with_title">
+        <title>With Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+      <table frame="all" id="compatibility.collision2.inner.x">
+        <title>Id and Title</title>
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+    <section id="compatibility.collision2.x">
+      <title><link linkend="compatibility.collision2.x">Inner with id</link></title>
+    </section>
+  </section>
+</article>
Added: branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.quickbook
==============================================================================
--- (empty file)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-1_6.quickbook	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -0,0 +1,17 @@
+[article Test Compatibility Mode
+[id compatibility]
+[quickbook 1.6]
+]
+
+[section:collision Outer]
+[include compatibility-inc.qbk]
+[endsect]
+[section:collision Include compatibility 1.1]
+[include compatibility-inc_1_1.qbk]
+[endsect]
+[section:collision Include compatibility 1.5]
+[include compatibility-inc_1_5.qbk]
+[endsect]
+[section:collision Include compatibility 1.6]
+[include compatibility-inc_1_6.qbk]
+[endsect]
Added: branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_1.qbk
==============================================================================
--- (empty file)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_1.qbk	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -0,0 +1,33 @@
+[compatibility-mode 1.1]
+
+[section Inner]
+
+[heading Header]
+
+[h1 Heading1]
+
+[heading:x1 Header with id]
+
+[h1:x2 Heading1 with id]
+
+[table
+[[]][[]]
+]
+
+[table:withid
+[[]][[]]
+]
+
+[table With Title
+[[]][[]]
+]
+
+[table:x Id and Title
+[[]][[]]
+]
+
+
+[endsect]
+
+[section:x Inner with id]
+[endsect]
Added: branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_5.qbk
==============================================================================
--- (empty file)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_5.qbk	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -0,0 +1,33 @@
+[compatibility-mode 1.5]
+
+[section Inner]
+
+[heading Header]
+
+[h1 Heading1]
+
+[heading:x1 Header with id]
+
+[h1:x2 Heading1 with id]
+
+[table
+[[]][[]]
+]
+
+[table:withid
+[[]][[]]
+]
+
+[table With Title
+[[]][[]]
+]
+
+[table:x Id and Title
+[[]][[]]
+]
+
+
+[endsect]
+
+[section:x Inner with id]
+[endsect]
Added: branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_6.qbk
==============================================================================
--- (empty file)
+++ branches/quickbook-dev/tools/quickbook/test/include/compatibility-inc_1_6.qbk	2011-11-22 18:44:16 EST (Tue, 22 Nov 2011)
@@ -0,0 +1,33 @@
+[compatibility-mode 1.6]
+
+[section Inner]
+
+[heading Header]
+
+[h1 Heading1]
+
+[heading:x1 Header with id]
+
+[h1:x2 Heading1 with id]
+
+[table
+[[]][[]]
+]
+
+[table:withid
+[[]][[]]
+]
+
+[table With Title
+[[]][[]]
+]
+
+[table:x Id and Title
+[[]][[]]
+]
+
+
+[endsect]
+
+[section:x Inner with id]
+[endsect]