Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r73974 - in trunk/tools/quickbook: src test
From: dnljms_at_[hidden]
Date: 2011-08-20 19:35:20


Author: danieljames
Date: 2011-08-20 19:35:20 EDT (Sat, 20 Aug 2011)
New Revision: 73974
URL: http://svn.boost.org/trac/boost/changeset/73974

Log:
Quickbook: Better id generation for duplicates.

- Replaces repeated underscores with single underscores
- Truncates if they're too long.
- If the result ends with if a number, adds an underscore to separate
  that from the duplicate number.

Only doing this for the duplicate ids, so that the main generated id
doesn't change for existing documentation. Will do something similar for
all generated ids in quickbook 1.6.
Text files modified:
   trunk/tools/quickbook/src/id_generator.cpp | 170 +++++++++++--
   trunk/tools/quickbook/src/id_generator.hpp | 70 ++++
   trunk/tools/quickbook/test/identifier_1_5.gold | 487 ++++++++++++++++++++++++++++++++++++++++
   trunk/tools/quickbook/test/identifier_1_5.quickbook | 124 ++++++++++
   4 files changed, 804 insertions(+), 47 deletions(-)

Modified: trunk/tools/quickbook/src/id_generator.cpp
==============================================================================
--- trunk/tools/quickbook/src/id_generator.cpp (original)
+++ trunk/tools/quickbook/src/id_generator.cpp 2011-08-20 19:35:20 EDT (Sat, 20 Aug 2011)
@@ -9,6 +9,7 @@
 #include "id_generator.hpp"
 #include "markups.hpp"
 #include "phrase_tags.hpp"
+#include <cctype>
 #include <boost/lexical_cast.hpp>
 #include <algorithm>
 #include <vector>
@@ -78,21 +79,36 @@
             x.begin(), x.end(), y.begin(), y.end());
     }
 
+ //
     // id_generator
+ //
+
+ static const std::size_t max_size = 32;
 
- struct id_generator::id
+ namespace
     {
- id()
- : category(id_generator::default_category),
- used(false),
- count(0) {}
-
- id_generator::categories category;
+ std::string normalize_id(std::string const& id)
+ {
+ std::string result;
 
- // These are updated when generating ids
- bool used;
- int count;
- };
+ std::string::const_iterator it = id.begin();
+ while (it != id.end()) {
+ if (*it == '_') {
+ do {
+ ++it;
+ } while(it != id.end() && *it == '_');
+
+ if (it != id.end()) result += '_';
+ }
+ else {
+ result += *it;
+ ++it;
+ }
+ }
+
+ return result;
+ }
+ }
 
     id_generator::id_generator()
     {
@@ -107,25 +123,25 @@
             id_generator::categories category)
     {
         std::string result;
- id_generator::id& id = ids_[value];
+
+ id_data& data = ids.emplace(value, value, category).first->second;
 
         // Doesn't check if explicit ids collide, could probably be a warning.
         if (category == explicit_id)
         {
- id.category = category;
- id.used = true;
+ data.category = category;
+ data.used = true;
             result = value;
         }
         else
         {
- if (category < id.category) id.category = category;
+ if (category < data.category) data.category = category;
 
             // '$' can't appear in quickbook ids, so use it indicate a
             // placeholder id.
             result = "$" +
- boost::lexical_cast<std::string>(placeholders_.size());
- placeholders_.push_back(
- id_generator::placeholder(category, *ids_.find(value)));
+ boost::lexical_cast<std::string>(placeholders.size());
+ placeholders.push_back(placeholder_id(category, &data));
         }
 
         return result;
@@ -137,32 +153,118 @@
         if (value.size() <= 1 || *value.begin() != '$')
             return value;
 
- id_generator::placeholder& placeholder = placeholders_.at(
+ placeholder_id* placeholder = &placeholders.at(
             boost::lexical_cast<int>(std::string(
                 value.begin() + 1, value.end())));
 
- if (placeholder.final_id.empty())
+ if (placeholder->final_id.empty())
         {
- if (placeholder.category < id_generator::numbered &&
- !placeholder.id.second.used &&
- placeholder.id.second.category == placeholder.category)
+ if (placeholder->category < id_generator::numbered &&
+ !placeholder->data->used &&
+ placeholder->data->category == placeholder->category)
             {
- placeholder.id.second.used = true;
- placeholder.final_id = placeholder.id.first;
+ placeholder->data->used = true;
+ placeholder->final_id = placeholder->data->name;
             }
- else while(true)
+ else
             {
- int count = placeholder.id.second.count++;
- placeholder.final_id = placeholder.id.first +
- boost::lexical_cast<std::string>(count);
- // TODO: Should add final_id to ids_, there are some
- // edges cases where it could collide.
- if (ids_.find(placeholder.final_id) == ids_.end())
- break;
+ generate_id(placeholder);
             }
         }
 
- return string_ref(placeholder.final_id);
+ return string_ref(placeholder->final_id);
+ }
+
+ void id_generator::generate_id(placeholder_id* placeholder)
+ {
+ id_data* data = placeholder->data;
+
+ if (!data->generation_data)
+ {
+ std::string name = normalize_id(data->name);
+
+ std::size_t seperator = name.rfind('.') + 1;
+ data->generation_data.reset(new id_generation_data(
+ std::string(name, 0, seperator),
+ std::string(name, seperator)
+ ));
+
+ try_potential_id(placeholder);
+ }
+
+ while(!try_counted_id(placeholder)) {};
+ }
+
+ bool id_generator::try_potential_id(placeholder_id* placeholder)
+ {
+ placeholder->final_id =
+ placeholder->data->generation_data->parent +
+ placeholder->data->generation_data->base;
+
+ // Be careful here as it's quite likely that final_id is the
+ // same as the original id, so this will just find the original
+ // data.
+ std::pair<boost::unordered_map<std::string, id_data>::iterator, bool>
+ insert = ids.emplace(placeholder->final_id, placeholder->final_id,
+ placeholder->category, true);
+
+ if (insert.first->second.generation_data)
+ {
+ placeholder->data->generation_data =
+ insert.first->second.generation_data;
+ }
+ else
+ {
+ insert.first->second.generation_data =
+ placeholder->data->generation_data;
+ }
+
+ return insert.second;
+ }
+
+ bool id_generator::try_counted_id(placeholder_id* placeholder)
+ {
+ std::string name =
+ placeholder->data->generation_data->base +
+ (placeholder->data->generation_data->needs_underscore ? "_" : "") +
+ boost::lexical_cast<std::string>(
+ placeholder->data->generation_data->count);
+
+ if (name.length() > max_size)
+ {
+ std::size_t new_end =
+ placeholder->data->generation_data->base.length() -
+ (name.length() - max_size);
+
+ while (new_end > 0 &&
+ std::isdigit(placeholder->data->generation_data->base[new_end - 1]))
+ --new_end;
+
+ placeholder->data->generation_data->base.erase(new_end);
+ placeholder->data->generation_data->new_base_value();
+
+ // Return result of try_potential_id to use the truncated id
+ // without a number.
+ try_potential_id(placeholder);
+ return false;
+ }
+
+ placeholder->final_id =
+ placeholder->data->generation_data->parent + name;
+
+ std::pair<boost::unordered_map<std::string, id_data>::iterator, bool>
+ insert = ids.emplace(placeholder->final_id, placeholder->final_id,
+ placeholder->category, true);
+
+ ++placeholder->data->generation_data->count;
+
+ return insert.second;
+ }
+
+ void id_generator::id_generation_data::new_base_value() {
+ count = 0;
+ needs_underscore == !base.empty() &&
+ std::isdigit(base[base.length() - 1]);
     }
 
     // Very simple xml subset parser which replaces id values.

Modified: trunk/tools/quickbook/src/id_generator.hpp
==============================================================================
--- trunk/tools/quickbook/src/id_generator.hpp (original)
+++ trunk/tools/quickbook/src/id_generator.hpp 2011-08-20 19:35:20 EDT (Sat, 20 Aug 2011)
@@ -11,6 +11,7 @@
 
 #include "fwd.hpp"
 #include <boost/unordered/unordered_map.hpp>
+#include <boost/shared_ptr.hpp>
 #include <deque>
 #include <string>
 
@@ -32,25 +33,66 @@
 
     private:
 
- struct id;
- typedef boost::unordered_map<std::string, id> placeholder_map;
+ struct placeholder_id;
+ struct id_data;
+ struct id_generation_data;
 
- struct placeholder
+ struct placeholder_id
         {
- typedef std::pair<std::string const, id_generator::id> id_pair;
-
- placeholder(id_generator::categories category, id_pair& id)
+ placeholder_id(id_generator::categories category, id_data* data)
               : category(category),
- id(id),
+ data(data),
                 final_id() {}
-
+
+ id_generator::categories category;
+ id_data* data;
+ std::string final_id;
+
+ };
+
+ struct id_data
+ {
+ id_data(std::string const& name,
+ id_generator::categories category,
+ bool used = false)
+ : name(name),
+ category(category),
+ used(used),
+ generation_data() {}
+
+ std::string name;
             id_generator::categories category;
- id_pair& id;
- std::string final_id; // Set in the second pass.
+ bool used;
+ boost::shared_ptr<id_generation_data> generation_data;
         };
         
- placeholder_map ids_;
- std::deque<placeholder> placeholders_;
+ struct id_generation_data
+ {
+ id_generation_data()
+ : parent(),
+ base(),
+ needs_underscore(false),
+ count(0) {}
+
+ id_generation_data(std::string const& parent, std::string const& base)
+ : parent(parent),
+ base(base),
+ needs_underscore(false),
+ count(0)
+ {
+ new_base_value();
+ }
+
+ void new_base_value();
+
+ std::string parent;
+ std::string base;
+ bool needs_underscore;
+ int count;
+ };
+
+ boost::unordered_map<std::string, id_data> ids;
+ std::deque<placeholder_id> placeholders;
 
     public:
         id_generator();
@@ -64,6 +106,10 @@
     private:
         id_generator(id_generator const&);
         id_generator& operator=(id_generator const&);
+
+ void generate_id(placeholder_id*);
+ bool try_potential_id(placeholder_id*);
+ bool try_counted_id(placeholder_id*);
     };
 }
 

Modified: trunk/tools/quickbook/test/identifier_1_5.gold
==============================================================================
--- trunk/tools/quickbook/test/identifier_1_5.gold (original)
+++ trunk/tools/quickbook/test/identifier_1_5.gold 2011-08-20 19:35:20 EDT (Sat, 20 Aug 2011)
@@ -7,4 +7,491 @@
     <link linkend="identifiers_in_quickbook_1_5.test_heading_with__code__phrase_role__identifier__code__phrase___code_">Test
     heading with <code><phrase role="identifier">code</phrase></code></link>
   </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h1">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_several_headers">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d0"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h2">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d0">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h3">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d1"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h4">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d1">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d2"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h5">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d2">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d3"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h6">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d3">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d5"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h7">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d5">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d6"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h8">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d6">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d7"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h9">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d7">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h10">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d8"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h11">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d8">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d9"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h12">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d9">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_0"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h13">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_0">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_1"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h14">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_1">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_2"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h15">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_2">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_3"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h16">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_3">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_4"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h17">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_4">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_5"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h18">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_5">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_6"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h19">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_6">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_7"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h20">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_7">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_8"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h21">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_8">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_9"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h22">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_9">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_10"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h23">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_10">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_11"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h24">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_11">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_12"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h25">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_12">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_13"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h26">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_13">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_14"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h27">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_14">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_16"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h28">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_16">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_17"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h29">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_17">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_18"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h30">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_18">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_19"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h31">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_19">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_20"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h32">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_20">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_21"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h33">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_21">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_22"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h34">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_22">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_23"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h35">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_23">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_24"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h36">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_24">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_25"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h37">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_25">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_26"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h38">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_26">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h39">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_27"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h40">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_27">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_28"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h41">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_28">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_29"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h42">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_29">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d4"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h43">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d4">Generate
+ a really long id and d4</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_15"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h44">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_15">Generate
+ a really long id and 15</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_30"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h45">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_30">Generate
+ a really long id and d4</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_31"/>
+ <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h46">
+ <link linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_31">Generate
+ a really long id and 15</link>
+ </bridgehead>
+ <section id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in">
+ <title><link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in">Something
+ to put the ids in</link></title> <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h0">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_several_headers">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d0"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h1">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d0">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h2">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d1"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h3">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d1">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d2"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h4">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d2">Generate
+ a really long id and duplicate it by having lots of headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d3"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h5">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d3">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d5"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h6">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d5">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d6"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h7">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d6">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d7"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h8">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d7">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h9">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d8"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h10">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d8">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d9"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h11">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d9">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_0"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h12">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_0">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_1"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h13">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_1">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_2"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h14">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_2">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_3"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h15">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_3">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_4"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h16">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_4">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_5"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h17">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_5">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_6"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h18">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_6">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_7"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h19">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_7">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_8"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h20">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_8">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_9"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h21">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_9">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_10"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h22">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_10">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_11"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h23">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_11">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_12"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h24">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_12">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_13"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h25">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_13">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_14"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h26">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_14">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_16"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h27">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_16">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_17"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h28">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_17">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_18"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h29">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_18">Generate
+ a really long id and duplicate it by having too many headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_19"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h30">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_19">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_20"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h31">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_20">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_21"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h32">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_21">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_22"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h33">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_22">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_23"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h34">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_23">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_24"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h35">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_24">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_25"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h36">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_25">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_26"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h37">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_26">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h38">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_27"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h39">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_27">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_28"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h40">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_28">Generate
+ a really long id and duplicate it by having even more headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_29"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h41">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_29">Generate
+ a really long id and duplicate it by having several headers</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d4"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h42">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_d4">Generate
+ a really long id and d4</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_15"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h43">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_15">Generate
+ a really long id and 15</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_30"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h44">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_30">Generate
+ a really long id and d4</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_31"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h45">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.generate_a_really_long_id_and_31">Generate
+ a really long id and 15</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.a2345678901234567890123456789012"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h46">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.a2345678901234567890123456789012">a2345678901234567890123456789012</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.a0"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h47">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.a0">a2345678901234567890123456789012</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcdef"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h48">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcdef">abcdefghijklmnopqrstuvwxyzabcdef</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde0"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h49">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde0">abcdefghijklmnopqrstuvwxyzabcdef</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde1"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h50">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde1">abcdefghijklmnopqrstuvwxyzabcdef</link>
+ </bridgehead>
+ <anchor id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde2"/>
+ <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.h51">
+ <link linkend="identifiers_in_quickbook_1_5.something_to_put_the_ids_in.abcdefghijklmnopqrstuvwxyzabcde2">abcdefghijklmnopqrstuvwxyzabcdef</link>
+ </bridgehead>
+ </section>
 </article>

Modified: trunk/tools/quickbook/test/identifier_1_5.quickbook
==============================================================================
--- trunk/tools/quickbook/test/identifier_1_5.quickbook (original)
+++ trunk/tools/quickbook/test/identifier_1_5.quickbook 2011-08-20 19:35:20 EDT (Sat, 20 Aug 2011)
@@ -2,4 +2,126 @@
     [quickbook 1.5]
 ]
 
-[heading Test heading with `code`]
\ No newline at end of file
+[heading Test heading with `code`]
+
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having several headers]
+
+[heading Generate a really long id and d4]
+[heading Generate a really long id and 15]
+[heading Generate a really long id and d4]
+[heading Generate a really long id and 15]
+
+[heading a2345678901234567890123456789012]
+[heading a2345678901234567890123456789012]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+
+[heading Markup in `heading` in *order* to test normalization]
+[heading Markup in `heading` in *order* to test normalization]
+[heading Markup in `heading` in *order* to test normalization]
+
+[section Something to put the ids in]
+
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having lots of headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having too many headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having several headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having even more headers]
+[heading Generate a really long id and duplicate it by having several headers]
+
+[heading Generate a really long id and d4]
+[heading Generate a really long id and 15]
+[heading Generate a really long id and d4]
+[heading Generate a really long id and 15]
+
+[heading a2345678901234567890123456789012]
+[heading a2345678901234567890123456789012]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+[heading abcdefghijklmnopqrstuvwxyzabcdef]
+
+[heading Markup in `heading` in *order* to test normalization]
+[heading Markup in `heading` in *order* to test normalization]
+[heading Markup in `heading` in *order* to test normalization]
+
+[endsect]
\ No newline at end of file


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