Boost logo

Boost-Commit :

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 =
- &current_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]


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk