$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r73983 - in branches/quickbook-dev/tools: . auto_index/build bcp bcp/doc bcp/doc/html boostbook/test/doxygen boostbook/test/doxygen/boost boostbook/xsl/doxygen quickbook quickbook/src quickbook/test quickbook/test/snippets regression/src
From: dnljms_at_[hidden]
Date: 2011-08-21 09:27:55
Author: danieljames
Date: 2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
New Revision: 73983
URL: http://svn.boost.org/trac/boost/changeset/73983
Log:
Quickbook: Merge to quickbook-dev.
Added:
   branches/quickbook-dev/tools/quickbook/test/table_1_3.xml
      - copied unchanged from r73419, /trunk/tools/quickbook/test/table_1_3.xml
Properties modified: 
   branches/quickbook-dev/tools/   (props changed)
   branches/quickbook-dev/tools/quickbook/   (props changed)
   branches/quickbook-dev/tools/regression/src/library_status.cpp   (props changed)
Text files modified: 
   branches/quickbook-dev/tools/auto_index/build/Jamfile.v2                 |     2                                         
   branches/quickbook-dev/tools/bcp/add_path.cpp                            |    14                                         
   branches/quickbook-dev/tools/bcp/doc/bcp.qbk                             |     5                                         
   branches/quickbook-dev/tools/bcp/doc/html/index.html                     |    48 +-                                      
   branches/quickbook-dev/tools/boostbook/test/doxygen/autodoc.gold         |     3                                         
   branches/quickbook-dev/tools/boostbook/test/doxygen/boost/example.hpp    |     2                                         
   branches/quickbook-dev/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl |    10                                         
   branches/quickbook-dev/tools/quickbook/src/actions.cpp                   |     8                                         
   branches/quickbook-dev/tools/quickbook/src/block_element_grammar.cpp     |     2                                         
   branches/quickbook-dev/tools/quickbook/src/code_snippet.cpp              |    10                                         
   branches/quickbook-dev/tools/quickbook/src/doc_info_actions.cpp          |    13                                         
   branches/quickbook-dev/tools/quickbook/src/id_generator.cpp              |   310 +++++++++++++-------                    
   branches/quickbook-dev/tools/quickbook/src/id_generator.hpp              |    76 ++++                                    
   branches/quickbook-dev/tools/quickbook/src/post_process.hpp              |     2                                         
   branches/quickbook-dev/tools/quickbook/src/utils.cpp                     |     6                                         
   branches/quickbook-dev/tools/quickbook/src/values.hpp                    |    40 +-                                      
   branches/quickbook-dev/tools/quickbook/test/escape.gold                  |     9                                         
   branches/quickbook-dev/tools/quickbook/test/escape.quickbook             |    13                                         
   branches/quickbook-dev/tools/quickbook/test/identifier_1_5.gold          |   599 ++++++++++++++++++++++++++++++++++++++++
   branches/quickbook-dev/tools/quickbook/test/identifier_1_5.quickbook     |   145 +++++++++                               
   branches/quickbook-dev/tools/quickbook/test/identifier_1_6.gold          |   599 ++++++++++++++++++++++++++++++++++++++++
   branches/quickbook-dev/tools/quickbook/test/identifier_1_6.quickbook     |   145 +++++++++                               
   branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.cpp       |     9                                         
   branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.gold      |    18 +                                       
   branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.quickbook |     2                                         
   branches/quickbook-dev/tools/quickbook/test/table_1_3.gold               |   115 +++++++                                 
   branches/quickbook-dev/tools/quickbook/test/table_1_3.quickbook          |    32 ++                                      
   branches/quickbook-dev/tools/quickbook/test/table_1_5.gold               |   115 +++++++                                 
   branches/quickbook-dev/tools/quickbook/test/table_1_5.quickbook          |    32 ++                                      
   29 files changed, 2205 insertions(+), 179 deletions(-)
Modified: branches/quickbook-dev/tools/auto_index/build/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/tools/auto_index/build/Jamfile.v2	(original)
+++ branches/quickbook-dev/tools/auto_index/build/Jamfile.v2	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -13,6 +13,8 @@
 : <define>BOOST_ALL_NO_LIB=1 <link>static release ;
 
 install aii : auto_index : <location>. ;
+install i : auto_index : <location>../../../dist/bin ;
+
 
 
 
Modified: branches/quickbook-dev/tools/bcp/add_path.cpp
==============================================================================
--- branches/quickbook-dev/tools/bcp/add_path.cpp	(original)
+++ branches/quickbook-dev/tools/bcp/add_path.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -193,6 +193,14 @@
    //
 static const std::pair<fs::path, fs::path>
    specials[] = {
+      std::pair<fs::path, fs::path>("boost/filesystem/convenience.hpp", "boost/filesystem.hpp"),
+      std::pair<fs::path, fs::path>("boost/filesystem/exception.hpp", "boost/filesystem.hpp"),
+      std::pair<fs::path, fs::path>("boost/filesystem/fstream.hpp", "boost/filesystem.hpp"),
+      std::pair<fs::path, fs::path>("boost/filesystem/operations.hpp", "boost/filesystem.hpp"),
+      std::pair<fs::path, fs::path>("boost/filesystem/path.hpp", "boost/filesystem.hpp"),
+      std::pair<fs::path, fs::path>("boost/filesystem.hpp", "libs/filesystem/build"),
+      std::pair<fs::path, fs::path>("boost/filesystem.hpp", "libs/filesystem/v2"),
+      std::pair<fs::path, fs::path>("boost/filesystem.hpp", "libs/filesystem/v3"),
       std::pair<fs::path, fs::path>("boost/config.hpp", "boost/config"),
       std::pair<fs::path, fs::path>("tools/build/allyourbase.jam", "Jamrules"),
       std::pair<fs::path, fs::path>("tools/build/allyourbase.jam", "project-root.jam"),
@@ -204,6 +212,12 @@
       std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "project-root.jam"),
       std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "boost-build.jam"),
       std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "Jamfile.v2"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "boostcpp.jam"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "bootstrap.bat"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "bootstrap.sh"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "Jamroot"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "INSTALL"),
+      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "LICENSE_1_0.txt"),
       std::pair<fs::path, fs::path>("boost/preprocessor/iterate.hpp", "boost/preprocessor/iteration"),
       std::pair<fs::path, fs::path>("boost/preprocessor/slot/slot.hpp", "boost/preprocessor/slot/detail"),
       std::pair<fs::path, fs::path>("boost/function.hpp", "boost/function/detail"),
Modified: branches/quickbook-dev/tools/bcp/doc/bcp.qbk
==============================================================================
--- branches/quickbook-dev/tools/bcp/doc/bcp.qbk	(original)
+++ branches/quickbook-dev/tools/bcp/doc/bcp.qbk	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -35,14 +35,15 @@
 ]
 
 Copies boost/regex.hpp and all dependencies including the regex source code (in libs/regex/src) and 
-build files (in libs/regex/build) to /foo.  Does not copy the regex documentation,  test, or example code.
+build files (in libs/regex/build) to /foo.  Does not copy the regex documentation, test, or example code.
+Also does not copy the Boost.Build system.
 
 [pre 
 bcp regex /foo
 ]
 
 Copies the full regex lib (in libs/regex) including dependencies (such as the boost.test source required 
-by the regex test programs) to /foo.
+by the regex test programs) to /foo.  Does not copy the Boost.Build system.
 
 [pre 
 bcp --namespace=myboost --namespace-alias regex config build /foo
Modified: branches/quickbook-dev/tools/bcp/doc/html/index.html
==============================================================================
--- branches/quickbook-dev/tools/bcp/doc/html/index.html	(original)
+++ branches/quickbook-dev/tools/bcp/doc/html/index.html	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>BCP</title>
 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
 <link rel="home" href="index.html" title="BCP">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,7 +27,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2209 John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id759699"></a><p>
+<a name="id917214"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -38,21 +38,21 @@
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl>
-<dt><span class="section"> Overview</span></dt>
-<dt><span class="section"> Examples</span></dt>
-<dt><span class="section"> Syntax</span></dt>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Examples</span></dt>
+<dt><span class="section">Syntax</span></dt>
 <dd><dl>
-<dt><span class="section"> Behaviour Selection</span></dt>
-<dt><span class="section"> Options</span></dt>
-<dt><span class="section"> module-list</span></dt>
-<dt><span class="section"> output-path</span></dt>
+<dt><span class="section">Behaviour Selection</span></dt>
+<dt><span class="section">Options</span></dt>
+<dt><span class="section">module-list</span></dt>
+<dt><span class="section">output-path</span></dt>
 <dt><span class="section">Dependencies</span></dt>
 </dl></dd>
 </dl>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="bcp.overview"></a><a class="link" href="index.html#bcp.overview" title="Overview"> Overview</a>
+<a name="bcp.overview"></a><a class="link" href="index.html#bcp.overview" title="Overview">Overview</a>
 </h2></div></div></div>
 <p>
       The bcp utility is a tool for extracting subsets of Boost, it's useful for
@@ -66,7 +66,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="bcp.examples"></a><a class="link" href="index.html#bcp.examples" title="Examples"> Examples</a>
+<a name="bcp.examples"></a><a class="link" href="index.html#bcp.examples" title="Examples">Examples</a>
 </h2></div></div></div>
 <pre class="programlisting">bcp scoped_ptr /foo
 </pre>
@@ -78,13 +78,15 @@
 <p>
       Copies boost/regex.hpp and all dependencies including the regex source code
       (in libs/regex/src) and build files (in libs/regex/build) to /foo. Does not
-      copy the regex documentation, test, or example code.
+      copy the regex documentation, test, or example code. Also does not copy the
+      Boost.Build system.
     </p>
 <pre class="programlisting">bcp regex /foo
 </pre>
 <p>
       Copies the full regex lib (in libs/regex) including dependencies (such as the
-      boost.test source required by the regex test programs) to /foo.
+      boost.test source required by the regex test programs) to /foo. Does not copy
+      the Boost.Build system.
     </p>
 <pre class="programlisting">bcp --namespace=myboost --namespace-alias regex config build /foo
 </pre>
@@ -111,18 +113,18 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="bcp.syntax"></a><a class="link" href="index.html#bcp.syntax" title="Syntax"> Syntax</a>
+<a name="bcp.syntax"></a><a class="link" href="index.html#bcp.syntax" title="Syntax">Syntax</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"> Behaviour Selection</span></dt>
-<dt><span class="section"> Options</span></dt>
-<dt><span class="section"> module-list</span></dt>
-<dt><span class="section"> output-path</span></dt>
+<dt><span class="section">Behaviour Selection</span></dt>
+<dt><span class="section">Options</span></dt>
+<dt><span class="section">module-list</span></dt>
+<dt><span class="section">output-path</span></dt>
 <dt><span class="section">Dependencies</span></dt>
 </dl></div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="bcp.syntax.main"></a><a class="link" href="index.html#bcp.syntax.main" title="Behaviour Selection"> Behaviour Selection</a>
+<a name="bcp.syntax.main"></a><a class="link" href="index.html#bcp.syntax.main" title="Behaviour Selection">Behaviour Selection</a>
 </h3></div></div></div>
 <pre class="programlisting">bcp --list [options] module-list
 </pre>
@@ -163,7 +165,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="bcp.syntax.options"></a><a class="link" href="index.html#bcp.syntax.options" title="Options"> Options</a>
+<a name="bcp.syntax.options"></a><a class="link" href="index.html#bcp.syntax.options" title="Options">Options</a>
 </h3></div></div></div>
 <pre class="programlisting">--boost=path
 </pre>
@@ -211,7 +213,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="bcp.syntax.module"></a><a class="link" href="index.html#bcp.syntax.module" title="module-list"> module-list</a>
+<a name="bcp.syntax.module"></a><a class="link" href="index.html#bcp.syntax.module" title="module-list">module-list</a>
 </h3></div></div></div>
 <p>
         When the --scan option is not used then a list of boost files or library
@@ -243,7 +245,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="bcp.syntax.output"></a><a class="link" href="index.html#bcp.syntax.output" title="output-path"> output-path</a>
+<a name="bcp.syntax.output"></a><a class="link" href="index.html#bcp.syntax.output" title="output-path">output-path</a>
 </h3></div></div></div>
 <p>
         The path to which files will be copied (this path must exist).
@@ -336,7 +338,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 08, 2010 at 22:44:20 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 14, 2011 at 16:17:07 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: branches/quickbook-dev/tools/boostbook/test/doxygen/autodoc.gold
==============================================================================
--- branches/quickbook-dev/tools/boostbook/test/doxygen/autodoc.gold	(original)
+++ branches/quickbook-dev/tools/boostbook/test/doxygen/autodoc.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -3,7 +3,8 @@
       <template-type-parameter name="TypeParameter"><purpose><para>A template parameter </para></purpose></template-type-parameter>
       <template-nontype-parameter name="NonTypeParameter"><type>int</type><purpose><para>This is a non-type template parameter </para></purpose></template-nontype-parameter>
       <template-type-parameter name="TypeParameterWithDefault"><default>int</default><purpose><para>This is a template parameter with a default argument </para></purpose></template-type-parameter>
-    </template><description><para>Test some doxygen markup</para><para>Embedded docbook list:</para><para> 
+    </template><description><para>Test some doxygen markup</para><para><warning><para>This is just an example.</para></warning>
+Embedded docbook list:</para><para> 
  <orderedlist><listitem><simpara>1</simpara></listitem><listitem><simpara>2</simpara></listitem></orderedlist>
  </para><para><emphasis>Special</emphasis> <emphasis role="bold">Bold</emphasis> <computeroutput>Typewriter</computeroutput> <emphasis>Italics</emphasis> <emphasis>emphasis</emphasis> <computeroutput>parameter</computeroutput> </para><para><itemizedlist>
 <listitem><para>Arg1 first argument. </para></listitem>
Modified: branches/quickbook-dev/tools/boostbook/test/doxygen/boost/example.hpp
==============================================================================
--- branches/quickbook-dev/tools/boostbook/test/doxygen/boost/example.hpp	(original)
+++ branches/quickbook-dev/tools/boostbook/test/doxygen/boost/example.hpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -68,6 +68,8 @@
     /**
      * Test some doxygen markup
      *
+     * \warning This is just an example.
+     *
      * Embedded docbook list:
      *
      * \xmlonly
Modified: branches/quickbook-dev/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
==============================================================================
--- branches/quickbook-dev/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	(original)
+++ branches/quickbook-dev/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -1276,7 +1276,9 @@
                   not (@kind='return') and 
                   not (@kind='post') and
                   not (@kind='attention') and
-                  not (@kind='see')">
+                  not (@kind='see') and
+                  not (@kind='warning') 
+                  ">
       <xsl:apply-templates mode="passthrough"/>
     </xsl:if>
   </xsl:template>
@@ -1287,6 +1289,12 @@
     </note>
   </xsl:template>
 
+  <xsl:template match="para/simplesect[@kind='warning']" mode="passthrough">
+    <warning>
+      <xsl:apply-templates mode="passthrough"/>
+    </warning>
+  </xsl:template>
+
   <xsl:template match="para/simplesect[@kind='par']" mode="passthrough">
     <formalpara>
       <xsl:apply-templates mode="passthrough"/>
Modified: branches/quickbook-dev/tools/quickbook/src/actions.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/actions.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/actions.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -370,7 +370,7 @@
             std::string anchor = actions.ids.add(
                 actions.section_id + '.' +
                     detail::make_identifier(content.get_boostbook()),
-                id_generator::generated);
+                id_generator::generated_heading);
 
             write_bridgehead(actions, level,
                 content.get_boostbook(), anchor, false);
@@ -380,7 +380,7 @@
             id_generator::categories category =
                 !element_id.empty() ?
                     id_generator::explicit_id :
-                    id_generator::generated;
+                    id_generator::generated_heading;
 
             std::string id =
                 !element_id.empty() ?
@@ -1590,7 +1590,7 @@
                 actions.doc_id + "." + actions.qualified_section_id,
             !element_id.empty() ?
                 id_generator::explicit_id :
-                id_generator::generated);
+                id_generator::generated_section);
 
         actions.out << "\n<section id=\"" << full_id << "\">\n";
         actions.out << "<title>";
@@ -1786,7 +1786,7 @@
                 quickbook::actions const& actions)
         {
             fs::path current = actions.filename.parent_path();
-            fs::path path(name);
+            fs::path path = detail::generic_to_path(name);
 
             // If the path is relative, try and resolve it.
             if (!path.has_root_directory() && !path.has_root_name())
Modified: branches/quickbook-dev/tools/quickbook/src/block_element_grammar.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/block_element_grammar.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/block_element_grammar.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -203,7 +203,7 @@
             ("table", element_info(element_info::nested_block, &local.table, block_tags::table))
             ;
 
-        local.same_line = (cl::eps_p(*cl::blank_p >> cl::eol_p) | space);
+        local.same_line = *cl::blank_p >> !(comment >> space);
 
         local.table =
                 local.same_line
Modified: branches/quickbook-dev/tools/quickbook/src/code_snippet.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/code_snippet.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/code_snippet.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -164,12 +164,12 @@
                 // Note: Unlike escaped_comment and ignore, this doesn't
                 // swallow preceeding whitespace.
                 pass_thru_comment
-                    =   "#="
+                    =   "#=" >> (cl::eps_p - '=')
                     >>  (   *(cl::anychar_p - cl::eol_p)
                         >>  (cl::eol_p | cl::end_p)
                         )                           [boost::bind(&actions_type::pass_thru, &actions, _1, _2)]
                     |   cl::confix_p(
-                            "\"\"\"=",
+                            "\"\"\"=" >> (cl::eps_p - '='),
                             (*cl::anychar_p)        [boost::bind(&actions_type::pass_thru, &actions, _1, _2)],
                             "\"\"\""
                         )
@@ -286,12 +286,12 @@
                 // Note: Unlike escaped_comment and ignore, this doesn't
                 // swallow preceeding whitespace.
                 pass_thru_comment
-                    =   "//="
+                    =   "//=" >> (cl::eps_p - '=')
                     >>  (   *(cl::anychar_p - cl::eol_p)
                         >>  (cl::eol_p | cl::end_p)
                         )                           [boost::bind(&actions_type::pass_thru, &actions, _1, _2)]
                     |   cl::confix_p(
-                            "/*`",
+                            "/*=" >> (cl::eps_p - '='),
                             (*cl::anychar_p)        [boost::bind(&actions_type::pass_thru, &actions, _1, _2)],
                             "*/"
                         )
@@ -334,7 +334,7 @@
             a.id = "global tag";
             a.start_snippet(first, first);
         }
-        
+
         if(is_python) {
             boost::spirit::classic::parse(first, last, python_code_snippet_grammar(a));
         }
Modified: branches/quickbook-dev/tools/quickbook/src/doc_info_actions.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/doc_info_actions.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/doc_info_actions.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -128,6 +128,8 @@
                 ;
         }
 
+        bool generated_id = false;
+
         // Note: this is the version number of the parent document.
         if (qbk_version_n >= 106)
         {
@@ -135,8 +137,10 @@
                 actions.doc_id = include_doc_id.get_quickbook();
             else if (!id.empty())
                 actions.doc_id = id.get_quickbook();
-            else if (docinfo_type)
+            else if (docinfo_type) {
                 actions.doc_id = detail::make_identifier(actions.doc_title_qbk);
+                generated_id = true;
+            }
         }
         else
         {
@@ -144,8 +148,10 @@
                 actions.doc_id = id.get_quickbook();
             else if (!include_doc_id.empty())
                 actions.doc_id = include_doc_id.get_quickbook();
-            else
+            else {
                 actions.doc_id = detail::make_identifier(actions.doc_title_qbk);
+                generated_id = true;
+            }
         }
 
         assert(!actions.doc_id.empty());
@@ -281,7 +287,8 @@
 
         out << '<' << actions.doc_type << "\n"
             << "    id=\""
-            << actions.ids.add(actions.doc_id, id_generator::explicit_id)
+            << actions.ids.add(actions.doc_id, generated_id ?
+                id_generator::generated_doc : id_generator::explicit_id)
             << "\"\n"
             ;
         
Modified: branches/quickbook-dev/tools/quickbook/src/id_generator.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/id_generator.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/id_generator.cpp	2011-08-21 09:27:52 EDT (Sun, 21 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>
@@ -17,7 +18,7 @@
 {
     // string_ref
 
-    class string_ref
+    struct string_ref
     {
     public:
         typedef std::string::const_iterator iterator;
@@ -78,36 +79,37 @@
             x.begin(), x.end(), y.begin(), y.end());
     }
 
+    //
     // id_generator
+    //
 
-    struct id_generator::id
+    static const std::size_t max_size = 32;
+
+    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 == '_');
 
-    struct id_generator::placeholder
-    {
-        typedef std::pair<std::string const, id_generator::id> id_pair;
+                    if (it != id.end()) result += '_';
+                }
+                else {
+                    result += *it;
+                    ++it;
+                }
+            }
+            
+            return result;
+        }
+    }
 
-        placeholder(id_generator::categories category, id_pair& id)
-          : category(category),
-            id(id),
-            final_id() {}
-    
-        id_generator::categories category;
-        id_pair& id;
-        std::string final_id; // Set in the second pass.
-    };
-    
     id_generator::id_generator()
     {
     }
@@ -121,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;
@@ -151,32 +153,121 @@
         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 const& name = data->name;
+
+            std::size_t seperator = name.rfind('.') + 1;
+            data->generation_data.reset(new id_generation_data(
+                std::string(name, 0, seperator),
+                normalize_id(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.
+        //
+        // Not caring too much about 'category' and 'used', would want to if
+        // still creating ids.
+        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.
@@ -194,8 +285,10 @@
         std::string escape_postfix;
         std::string processing_instruction_postfix;
         std::string comment_postfix;
+        std::string whitespace;
         std::string tag_end;
         std::string name_end;
+        std::string attribute_assign;
         std::vector<std::string> id_attributes;
         
         std::string replace(std::string const&, id_generator&);
@@ -219,12 +312,14 @@
     }
 
     xml_processor::xml_processor()
-        : escape_prefix("!--quickbook-escape-prefix-->")
-        , escape_postfix("!--quickbook-escape-postfix-->")
+        : escape_prefix("<!--quickbook-escape-prefix-->")
+        , escape_postfix("<!--quickbook-escape-postfix-->")
         , processing_instruction_postfix("?>")
         , comment_postfix("-->")
+        , whitespace(" \t\n\r")
         , tag_end(" \t\n\r>")
         , name_end("= \t\n\r>")
+        , attribute_assign("= \t\n\r")
     {
         static int const n_id_attributes = sizeof(id_attributes_)/sizeof(char const*);
         for (int i = 0; i != n_id_attributes; ++i)
@@ -240,110 +335,115 @@
         std::string result;
 
         typedef std::string::const_iterator iterator;
-        iterator pos = source.begin(), end = source.end();
-        iterator next = pos;
 
-        while (true) {
-            next = std::find(next, end, '<');
-            if (next == end) break;
+        // copied is the point up to which the source has been copied, or
+        // replaced, to result.
+        iterator copied = source.begin();
+
+        iterator end = source.end();
 
-            if (end - pos > escape_prefix.size() && std::equal(
-                    escape_prefix.begin(), escape_prefix.end(), pos))
+        for(iterator it = copied; it != end; it = std::find(it, end, '<'))
+        {
+            assert(copied <= it && it <= end);        
+
+            if (static_cast<std::size_t>(end - it) > escape_prefix.size() &&
+                    std::equal(escape_prefix.begin(), escape_prefix.end(), it))
             {
-                next = std::search(next + escape_prefix.size(), end,
+                it = std::search(it + escape_prefix.size(), end,
                     escape_postfix.begin(), escape_postfix.end());
 
-                if (next == end) break;
+                if (it == end) break;
 
-                next += escape_postfix.size();
+                it += escape_postfix.size();
                 continue;
             }
 
-            ++next;
-            if (next == end) break;
+            ++it;
+            if (it == end) break;
 
-            switch(*next)
+            switch(*it)
             {
             case '?':
-                next = std::search(next, end,
+                it = std::search(it, end,
                     processing_instruction_postfix.begin(),
                     processing_instruction_postfix.end());
-
-                if (next != end) next += processing_instruction_postfix.size();
                 break;
+
             case '!':
-                if (end - next > 3 && next[1] == '-' && next[2] == '-')
+                if (end - it > 3 && it[1] == '-' && it[2] == '-')
                 {
-                    next = std::search(next + 3, end,
-                        comment_postfix.begin(), comment_postfix.end());
-
-                    if (next != end) next += comment_postfix.size();
+                    it = std::search(it + 3, end,
+                        comment_postfix. begin(), comment_postfix.end());
+                    if (it != end) it += comment_postfix.size();
                 }
                 else
                 {
-                    next = std::find(next + 1, end, '>');
-                    if (next != end) ++next;
+                    it = std::find(it, end, '>');
                 }
                 break;
+
             default:
-                if (*next >= 'a' || *next <= 'z' ||
-                        *next >= 'A' || *next <= 'Z' ||
-                        *next == '_' || *next == ':')
+                if ((*it >= 'a' && *it <= 'z') ||
+                        (*it >= 'A' && *it <= 'Z') ||
+                        *it == '_' || *it == ':')
                 {
-                    next = std::find_first_of(
-                        next + 1, end, tag_end.begin(), tag_end.end());
+                    it = std::find_first_of(
+                        it + 1, end, tag_end.begin(), tag_end.end());
 
                     while (true) {
-                        while(next != end && (*next == ' ' || *next == '\t'))
-                            ++next;
+                        while(it != end &&
+                                std::find(whitespace.begin(),
+                                    whitespace.end(), *it)
+                                != whitespace.end())
+                            ++it;
                             
-                        iterator name_start = next;
+                        iterator name_start = it;
 
-                        next = std::find_first_of(
-                            next, end, name_end.begin(), name_end.end());
+                        it = std::find_first_of(
+                            it, end, name_end.begin(), name_end.end());
                         
-                        if (next == end || *next == '>') break;
+                        if (it == end || *it == '>') break;
 
-                        string_ref name(name_start, next);
-                        ++next;
+                        string_ref name(name_start, it);
+                        ++it;
 
-                        while (next != end &&
-                                std::find(name_end.begin(), name_end.end(), *next)
-                                != name_end.end())
-                            ++next;
+                        while (it != end &&
+                                std::find(attribute_assign.begin(),
+                                    attribute_assign.end(), *it)
+                                != attribute_assign.end())
+                            ++it;
 
-                        if (next == end || (*next != '"' && *next != '\'')) break;
+                        if (it == end || (*it != '"' && *it != '\'')) break;
 
-                        char delim = *next;
-                        ++next;
+                        char delim = *it;
+                        ++it;
 
-                        iterator value_start = next;
+                        iterator value_start = it;
 
-                        next = std::find(next, end, delim);
-                        string_ref value(value_start, next);
-                        if (next == end) break;
-                        ++next;
+                        it = std::find(it, end, delim);
+                        string_ref value(value_start, it);
+                        if (it == end) break;
+                        ++it;
 
-                        if (std::find(id_attributes.begin(),
-                                    id_attributes.end(), name)
+                        if (std::find(id_attributes.begin(), id_attributes.end(),
+                                    name)
                                 != id_attributes.end())
                         {
-                            result.append(pos, value.begin());
+                            result.append(copied, value.begin());
                             string_ref x = ids.get(value);
                             result.append(x.begin(), x.end());
-                            pos = value.end();
+                            copied = value.end();
                         }
                     }
                 }
                 else
                 {
-                    next = std::find(next + 1, end, '>');
-                    if (next != end) ++next;
+                    it = std::find(it, end, '>');
                 }
             }
         }
         
-        result.append(pos, source.end());
+        result.append(copied, source.end());
         return result;
     }
 }
Modified: branches/quickbook-dev/tools/quickbook/src/id_generator.hpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/id_generator.hpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/id_generator.hpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -11,33 +11,85 @@
 
 #include "fwd.hpp"
 #include <boost/unordered/unordered_map.hpp>
+#include <boost/shared_ptr.hpp>
 #include <deque>
 #include <string>
 
 namespace quickbook
 {
-    class string_ref;
+    struct string_ref;
 
-    class id_generator
+    struct id_generator
     {
     public:
 
         enum categories
         {
             explicit_id = 0,    // Explicitly given by user
-            generated,          // Generated from source, e.g. table title
+            generated_doc,      // Generated ids for document.
+            generated_section,  // Generated ids for sections.
+            generated_heading,  // Generated ids for headings.
+            generated,          // Generated ids for other elements.
             numbered,           // Just used to avoid random docbook ids
             default_category
         };
 
     private:
 
-        struct id;
-        struct placeholder;
-        typedef boost::unordered_map<std::string, id> placeholder_map;
+        struct placeholder_id;
+        struct id_data;
+        struct id_generation_data;
+
+        struct placeholder_id
+        {
+            placeholder_id(id_generator::categories category, id_data* data)
+              : category(category),
+                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;
+            bool used;
+            boost::shared_ptr<id_generation_data> generation_data;
+        };
         
-        placeholder_map ids_;
-        std::deque<placeholder> placeholders_;
+        struct id_generation_data
+        {
+            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();
@@ -47,6 +99,14 @@
 
         std::string replace_placeholders(std::string const&);
         string_ref get(string_ref placeholder);
+
+    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: branches/quickbook-dev/tools/quickbook/src/post_process.hpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/post_process.hpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/post_process.hpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -19,7 +19,7 @@
       , int indent = -1
       , int linewidth = -1);
 
-    class post_process_failure : public std::runtime_error
+    struct post_process_failure : public std::runtime_error
     {
     public:
         explicit post_process_failure(std::string const& error)
Modified: branches/quickbook-dev/tools/quickbook/src/utils.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/utils.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/utils.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -138,7 +138,7 @@
     // Although, given how UTF-8 works, if we've read anything in, the files
     // probably broken.
 
-    template <class InputIterator, class OutputIterator>
+    template <typename InputIterator, typename OutputIterator>
     bool check_bom(InputIterator& begin, InputIterator end,
             OutputIterator out, char const* chars, int length)
     {
@@ -157,7 +157,7 @@
         return false;
     }
     
-    template <class InputIterator, class OutputIterator>
+    template <typename InputIterator, typename OutputIterator>
     std::string read_bom(InputIterator& begin, InputIterator end,
             OutputIterator out)
     {
@@ -188,7 +188,7 @@
     // Copy a string, converting mac and windows style newlines to unix
     // newlines.
 
-    template <class InputIterator, class OutputIterator>
+    template <typename InputIterator, typename OutputIterator>
     void normalize(InputIterator begin, InputIterator end,
             OutputIterator out)
     {
Modified: branches/quickbook-dev/tools/quickbook/src/values.hpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/values.hpp	(original)
+++ branches/quickbook-dev/tools/quickbook/src/values.hpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -22,17 +22,17 @@
 
 namespace quickbook
 {
-    class value;
-    class stored_value;
-    class value_builder;
-    class value_error;
+    struct value;
+    struct stored_value;
+    struct value_builder;
+    struct value_error;
 
     namespace detail
     {
         ////////////////////////////////////////////////////////////////////////
         // Node
     
-        class value_node
+        struct value_node
         {
         private:
             value_node(value_node const&);
@@ -81,10 +81,10 @@
         // This defines most of the public methods for value.
         // 'begin' and 'end' are defined with the iterators later.
     
-        class value_base
+        struct value_base
         {
         public:
-            class iterator;
+            struct iterator;
 
             typedef iterator const_iterator;
             typedef value_node::tag_type tag_type;
@@ -133,20 +133,20 @@
 
             // value_builder needs to access 'value_' to get the node
             // from a value.
-            friend class quickbook::value_builder;
-            friend class quickbook::stored_value;
+            friend struct quickbook::value_builder;
+            friend struct quickbook::stored_value;
         };
         
         ////////////////////////////////////////////////////////////////////////
         // Reference and proxy values for use in iterators
 
-        class value_ref : public value_base
+        struct value_ref : public value_base
         {
         public:
             explicit value_ref(value_node* base) : value_base(base) {}
         };
         
-        class value_proxy : public value_base
+        struct value_proxy : public value_base
         {
         public:
             explicit value_proxy(value_node* base) : value_base(base) {}
@@ -157,7 +157,7 @@
         ////////////////////////////////////////////////////////////////////////
         // Iterators
 
-        class value_base::iterator
+        struct value_base::iterator
             : public boost::forward_iterator_helper<
                 iterator, value, int, value_proxy, value_ref>
         {
@@ -186,7 +186,7 @@
         ////////////////////////////////////////////////////////////////////////
         // Reference counting for values
 
-        class value_counted : public value_base
+        struct value_counted : public value_base
         {
             value_counted& operator=(value_counted const&);
         protected:
@@ -203,7 +203,7 @@
         // Values are immutable, so this class is used to build a list of
         // value nodes before constructing the value.
 
-        class value_list_builder {
+        struct value_list_builder {
             value_list_builder(value_list_builder const&);
             value_list_builder& operator=(value_list_builder const&);
         public:
@@ -226,7 +226,7 @@
     //
     // Most of the methods are in value_base.
 
-    class value : public detail::value_counted
+    struct value : public detail::value_counted
     {
     public:
         value();
@@ -237,7 +237,7 @@
         void swap(value& x) { detail::value_counted::swap(x); }
     };
     
-    class stored_value : public detail::value_counted
+    struct stored_value : public detail::value_counted
     {
     public:
         stored_value();
@@ -269,7 +269,7 @@
     //
     // Used to incrementally build a valueeter tree.
 
-    class value_builder {
+    struct value_builder {
     public:
         value_builder();
         void swap(value_builder& b);
@@ -299,7 +299,7 @@
     // Value Error
     //
     
-    class value_error : public std::logic_error
+    struct value_error : public std::logic_error
     {
     public:
         explicit value_error(std::string const&);
@@ -310,9 +310,9 @@
     //
     // Convenience class for unpacking value values.
 
-    class value_consumer {
+    struct value_consumer {
     public:
-        class iterator
+        struct iterator
             : public boost::input_iterator_helper<iterator,
                 boost::iterator_value<value::iterator>::type,
                 boost::iterator_difference<value::iterator>::type,
Modified: branches/quickbook-dev/tools/quickbook/test/escape.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/escape.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/escape.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -13,5 +13,14 @@
     <para>
       These should be properly encoded: > < "
     </para>
+    <para>
+      This <link linkend="$0">link</link> shouldn't be changed.
+    </para>
+    <para>
+      Some other problematic links:
+<link linkend="$157">one</link>,
+<link linkend="$-256">two</link>,
+<link linkend="$text">three</link>.
+    </para>
   </section>
 </article>
Modified: branches/quickbook-dev/tools/quickbook/test/escape.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/escape.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/escape.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -11,5 +11,18 @@
 
 These should be properly encoded: \> \< \"
 
+[/ The following tests are based on internal knowledge of
+   how quickbook's id generator works. They make sure it
+   doesn't mess up escaped docbook. ]
+
+'''This <link linkend="$0">link</link> shouldn't be changed.'''
+
+'''
+Some other problematic links:
+<link linkend="$157">one</link>,
+<link linkend="$-256">two</link>,
+<link linkend="$text">three</link>.
+'''
+
 [endsect]
 
Modified: branches/quickbook-dev/tools/quickbook/test/identifier_1_5.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/identifier_1_5.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/identifier_1_5.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -8,4 +8,603 @@
     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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h1">
+    <phrase id="identifiers_in_quickbook_1_5.identifier_10_0"/><link linkend="identifiers_in_quickbook_1_5.identifier_10_0">Identifier
+    10</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h2">
+    <phrase id="identifiers_in_quickbook_1_5.identifier_10_1"/><link linkend="identifiers_in_quickbook_1_5.identifier_10_1">Identifier
+    10</link>
+  </bridgehead>
+  <table frame="all" id="identifiers_in_quickbook_1_5.identifier_10_2">
+    <title>Identifier 10</title>
+    <tgroup cols="1">
+      <tbody>
+        <row>
+          <entry>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h3">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h4">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d0"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h5">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h6">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d1"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h7">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d2"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h8">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d3"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h9">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d5"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h10">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d6"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h11">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d7"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h12">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h13">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d8"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h14">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d9"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h15">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_0"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h16">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_1"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h17">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_2"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h18">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_3"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h19">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_4"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h20">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_5"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h21">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_6"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h22">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_7"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h23">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_8"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h24">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_9"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h25">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_10"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h26">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_11"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h27">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_12"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h28">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_13"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h29">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_14"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h30">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_16"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h31">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_17"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h32">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_18"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h33">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_19"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h34">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_20"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h35">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_21"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h36">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_22"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h37">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_23"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h38">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_24"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h39">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_25"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h40">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_26"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h41">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h42">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_27"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h43">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_28"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h44">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_29"/><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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h45">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d4"/><link
+    linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_d4">Generate
+    a really long id and d4</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h46">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_15"/><link
+    linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_15">Generate
+    a really long id and 15</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h47">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_30"/><link
+    linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_30">Generate
+    a really long id and d4</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h48">
+    <phrase id="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_31"/><link
+    linkend="identifiers_in_quickbook_1_5.generate_a_really_long_id_and_31">Generate
+    a really long id and 15</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h49">
+    <phrase id="identifiers_in_quickbook_1_5.a2345678901234567890123456789012"/><link
+    linkend="identifiers_in_quickbook_1_5.a2345678901234567890123456789012">a2345678901234567890123456789012</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h50">
+    <phrase id="identifiers_in_quickbook_1_5.a0"/><link linkend="identifiers_in_quickbook_1_5.a0">a2345678901234567890123456789012</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h51">
+    <phrase id="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcdef"/><link
+    linkend="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcdef">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h52">
+    <phrase id="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde0"/><link
+    linkend="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde0">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h53">
+    <phrase id="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde1"/><link
+    linkend="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde1">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h54">
+    <phrase id="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde2"/><link
+    linkend="identifiers_in_quickbook_1_5.abcdefghijklmnopqrstuvwxyzabcde2">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h55">
+    <phrase id="identifiers_in_quickbook_1_5.markup_in__code__phrase_role__identifier__heading__phrase___code___in__emphasis_role__bold__order__emphasis__to_test_normalization"/><link
+    linkend="identifiers_in_quickbook_1_5.markup_in__code__phrase_role__identifier__heading__phrase___code___in__emphasis_role__bold__order__emphasis__to_test_normalization">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h56">
+    <phrase id="identifiers_in_quickbook_1_5.markup_in_code_phrase_role_iden0"/><link
+    linkend="identifiers_in_quickbook_1_5.markup_in_code_phrase_role_iden0">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_5.h57">
+    <phrase id="identifiers_in_quickbook_1_5.markup_in_code_phrase_role_iden1"/><link
+    linkend="identifiers_in_quickbook_1_5.markup_in_code_phrase_role_iden1">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <section id="identifiers_in_quickbook_1_5.identifier_10">
+    <title><link linkend="identifiers_in_quickbook_1_5.identifier_10">Identifier
+    10</link></title>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h0">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h1">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d0"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d0">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h2">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h4">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d1"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d1">Generate
+      a really long id and duplicate it by having lots of headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h5">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d2"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d2">Generate
+      a really long id and duplicate it by having lots of headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h6">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d3"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d3">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h7">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d5"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d5">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h8">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d6"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d6">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h9">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d7"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d7">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h10">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h11">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d8"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d8">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h12">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d9"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d9">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h13">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_0"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_0">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h14">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_1"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_1">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h15">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_2"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_2">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h16">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_3"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_3">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h17">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_4"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_4">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h18">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_5"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_5">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h19">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_6"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_6">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h20">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_7"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_7">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h21">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_8"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_8">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h22">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_9"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_9">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h23">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_10"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_10">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h24">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_11"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_11">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h25">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_12"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_12">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h26">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_13"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_13">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h27">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_14"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_14">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h28">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_16"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_16">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h29">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_17"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_17">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h30">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_18"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_18">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h31">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_19"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_19">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h32">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_20"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_20">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h33">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_21"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_21">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h34">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_22"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_22">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h35">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_23"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_23">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h36">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_24"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_24">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h37">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_25"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_25">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h38">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_26"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_26">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h39">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h40">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_27"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_27">Generate
+      a really long id and duplicate it by having even more headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h41">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_28"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_28">Generate
+      a really long id and duplicate it by having even more headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h42">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_29"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_29">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h43">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d4"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_d4">Generate
+      a really long id and d4</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h44">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_15"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_15">Generate
+      a really long id and 15</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h45">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_30"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_30">Generate
+      a really long id and d4</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h46">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_31"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.generate_a_really_long_id_and_31">Generate
+      a really long id and 15</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h47">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.a2345678901234567890123456789012"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.a2345678901234567890123456789012">a2345678901234567890123456789012</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h48">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.a0"/><link linkend="identifiers_in_quickbook_1_5.identifier_10.a0">a2345678901234567890123456789012</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h49">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcdef"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcdef">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h50">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde0"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde0">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h51">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde1"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde1">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h52">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde2"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.abcdefghijklmnopqrstuvwxyzabcde2">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h53">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.markup_in__code__phrase_role__identifier__heading__phrase___code___in__emphasis_role__bold__order__emphasis__to_test_normalization"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.markup_in__code__phrase_role__identifier__heading__phrase___code___in__emphasis_role__bold__order__emphasis__to_test_normalization">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h54">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.markup_in_code_phrase_role_iden0"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.markup_in_code_phrase_role_iden0">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.identifier_10.h55">
+      <phrase id="identifiers_in_quickbook_1_5.identifier_10.markup_in_code_phrase_role_iden1"/><link
+      linkend="identifiers_in_quickbook_1_5.identifier_10.markup_in_code_phrase_role_iden1">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <table frame="all" id="identifiers_in_quickbook_1_5.identifier_10.h3">
+      <title>h3</title>
+      <tgroup cols="1">
+        <tbody>
+          <row>
+            <entry>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <table frame="all" id="identifiers_in_quickbook_1_5.identifier_10.h3_0">
+      <title>h3</title>
+      <tgroup cols="1">
+        <tbody>
+          <row>
+            <entry>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+  </section>
+  <section id="identifiers_in_quickbook_1_5.punctuation___stuff">
+    <title><link linkend="identifiers_in_quickbook_1_5.punctuation___stuff">Punctuation
+    & stuff</link></title>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.punctuation___stuff.h0">
+      <phrase id="identifiers_in_quickbook_1_5.punctuation___stuff.a___b"/><link
+      linkend="identifiers_in_quickbook_1_5.punctuation___stuff.a___b">A + B</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_5.punctuation___stuff.h1">
+      <phrase id="identifiers_in_quickbook_1_5.punctuation___stuff.a_b0"/><link linkend="identifiers_in_quickbook_1_5.punctuation___stuff.a_b0">A
+      + B</link>
+    </bridgehead>
+  </section>
 </article>
Modified: branches/quickbook-dev/tools/quickbook/test/identifier_1_5.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/identifier_1_5.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/identifier_1_5.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -2,4 +2,147 @@
     [quickbook 1.5]
 ]
 
-[heading Test heading with `code`]
\ No newline at end of file
+[heading Test heading with `code`]
+
+[heading Identifier 10]
+[heading Identifier 10]
+[table Identifier 10
+[[]]
+]
+
+[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 Identifier 10]
+
+[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]
+
+[table h3
+[[]]
+]
+
+[table h3
+[[]]
+]
+
+[endsect]
+
+[section Punctuation & stuff]
+
+[heading A + B]
+[heading A + B]
+
+[endsect]
\ No newline at end of file
Modified: branches/quickbook-dev/tools/quickbook/test/identifier_1_6.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/identifier_1_6.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/identifier_1_6.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -7,4 +7,603 @@
     <phrase id="identifiers_in_quickbook_1_6.test_heading_with__code_"/><link linkend="identifiers_in_quickbook_1_6.test_heading_with__code_">Test
     heading with <code><phrase role="identifier">code</phrase></code></link>
   </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h1">
+    <phrase id="identifiers_in_quickbook_1_6.identifier_10_0"/><link linkend="identifiers_in_quickbook_1_6.identifier_10_0">Identifier
+    10</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h2">
+    <phrase id="identifiers_in_quickbook_1_6.identifier_10_1"/><link linkend="identifiers_in_quickbook_1_6.identifier_10_1">Identifier
+    10</link>
+  </bridgehead>
+  <table frame="all" id="identifiers_in_quickbook_1_6.identifier_10_2">
+    <title>Identifier 10</title>
+    <tgroup cols="1">
+      <tbody>
+        <row>
+          <entry>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h3">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/><link
+    linkend="identifiers_in_quickbook_1_6.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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h4">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d0"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d0">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h5">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/><link
+    linkend="identifiers_in_quickbook_1_6.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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h6">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d1"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d1">Generate
+    a really long id and duplicate it by having lots of headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h7">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d2"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d2">Generate
+    a really long id and duplicate it by having lots of headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h8">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d3"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d3">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h9">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d5"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d5">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h10">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d6"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d6">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h11">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d7"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d7">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h12">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/><link
+    linkend="identifiers_in_quickbook_1_6.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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h13">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d8"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d8">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h14">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d9"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d9">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h15">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_0"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_0">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h16">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_1"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_1">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h17">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_2"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_2">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h18">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_3"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_3">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h19">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_4"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_4">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h20">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_5"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_5">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h21">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_6"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_6">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h22">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_7"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_7">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h23">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_8"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_8">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h24">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_9"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_9">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h25">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_10"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_10">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h26">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_11"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_11">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h27">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_12"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_12">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h28">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_13"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_13">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h29">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_14"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_14">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h30">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_16"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_16">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h31">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_17"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_17">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h32">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_18"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_18">Generate
+    a really long id and duplicate it by having too many headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h33">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_19"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_19">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h34">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_20"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_20">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h35">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_21"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_21">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h36">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_22"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_22">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h37">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_23"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_23">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h38">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_24"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_24">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h39">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_25"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_25">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h40">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_26"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_26">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h41">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/><link
+    linkend="identifiers_in_quickbook_1_6.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>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h42">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_27"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_27">Generate
+    a really long id and duplicate it by having even more headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h43">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_28"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_28">Generate
+    a really long id and duplicate it by having even more headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h44">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_29"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_29">Generate
+    a really long id and duplicate it by having several headers</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h45">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d4"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_d4">Generate
+    a really long id and d4</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h46">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_15"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_15">Generate
+    a really long id and 15</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h47">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_30"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_30">Generate
+    a really long id and d4</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h48">
+    <phrase id="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_31"/><link
+    linkend="identifiers_in_quickbook_1_6.generate_a_really_long_id_and_31">Generate
+    a really long id and 15</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h49">
+    <phrase id="identifiers_in_quickbook_1_6.a2345678901234567890123456789012"/><link
+    linkend="identifiers_in_quickbook_1_6.a2345678901234567890123456789012">a2345678901234567890123456789012</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h50">
+    <phrase id="identifiers_in_quickbook_1_6.a0"/><link linkend="identifiers_in_quickbook_1_6.a0">a2345678901234567890123456789012</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h51">
+    <phrase id="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcdef"/><link
+    linkend="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcdef">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h52">
+    <phrase id="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde0"/><link
+    linkend="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde0">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h53">
+    <phrase id="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde1"/><link
+    linkend="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde1">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h54">
+    <phrase id="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde2"/><link
+    linkend="identifiers_in_quickbook_1_6.abcdefghijklmnopqrstuvwxyzabcde2">abcdefghijklmnopqrstuvwxyzabcdef</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h55">
+    <phrase id="identifiers_in_quickbook_1_6.markup_in__heading___in__order__to_test_normalization"/><link
+    linkend="identifiers_in_quickbook_1_6.markup_in__heading___in__order__to_test_normalization">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h56">
+    <phrase id="identifiers_in_quickbook_1_6.markup_in_heading_in_order_to_t0"/><link
+    linkend="identifiers_in_quickbook_1_6.markup_in_heading_in_order_to_t0">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <bridgehead renderas="sect2" id="identifiers_in_quickbook_1_6.h57">
+    <phrase id="identifiers_in_quickbook_1_6.markup_in_heading_in_order_to_t1"/><link
+    linkend="identifiers_in_quickbook_1_6.markup_in_heading_in_order_to_t1">Markup
+    in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+    to test normalization</link>
+  </bridgehead>
+  <section id="identifiers_in_quickbook_1_6.identifier_10">
+    <title><link linkend="identifiers_in_quickbook_1_6.identifier_10">Identifier
+    10</link></title>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h0">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_several_headers"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h1">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d0"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d0">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h2">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_lots_of_headers"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h4">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d1"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d1">Generate
+      a really long id and duplicate it by having lots of headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h5">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d2"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d2">Generate
+      a really long id and duplicate it by having lots of headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h6">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d3"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d3">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h7">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d5"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d5">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h8">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d6"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d6">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h9">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d7"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d7">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h10">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_too_many_headers"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h11">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d8"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d8">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h12">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d9"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d9">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h13">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_0"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_0">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h14">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_1"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_1">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h15">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_2"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_2">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h16">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_3"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_3">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h17">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_4"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_4">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h18">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_5"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_5">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h19">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_6"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_6">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h20">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_7"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_7">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h21">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_8"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_8">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h22">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_9"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_9">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h23">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_10"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_10">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h24">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_11"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_11">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h25">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_12"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_12">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h26">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_13"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_13">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h27">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_14"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_14">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h28">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_16"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_16">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h29">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_17"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_17">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h30">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_18"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_18">Generate
+      a really long id and duplicate it by having too many headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h31">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_19"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_19">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h32">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_20"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_20">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h33">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_21"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_21">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h34">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_22"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_22">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h35">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_23"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_23">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h36">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_24"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_24">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h37">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_25"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_25">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h38">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_26"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_26">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h39">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_duplicate_it_by_having_even_more_headers"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.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>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h40">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_27"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_27">Generate
+      a really long id and duplicate it by having even more headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h41">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_28"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_28">Generate
+      a really long id and duplicate it by having even more headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h42">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_29"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_29">Generate
+      a really long id and duplicate it by having several headers</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h43">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d4"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_d4">Generate
+      a really long id and d4</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h44">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_15"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_15">Generate
+      a really long id and 15</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h45">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_30"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_30">Generate
+      a really long id and d4</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h46">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_31"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.generate_a_really_long_id_and_31">Generate
+      a really long id and 15</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h47">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.a2345678901234567890123456789012"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.a2345678901234567890123456789012">a2345678901234567890123456789012</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h48">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.a0"/><link linkend="identifiers_in_quickbook_1_6.identifier_10.a0">a2345678901234567890123456789012</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h49">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcdef"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcdef">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h50">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde0"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde0">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h51">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde1"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde1">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h52">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde2"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.abcdefghijklmnopqrstuvwxyzabcde2">abcdefghijklmnopqrstuvwxyzabcdef</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h53">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.markup_in__heading___in__order__to_test_normalization"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.markup_in__heading___in__order__to_test_normalization">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h54">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.markup_in_heading_in_order_to_t0"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.markup_in_heading_in_order_to_t0">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.identifier_10.h55">
+      <phrase id="identifiers_in_quickbook_1_6.identifier_10.markup_in_heading_in_order_to_t1"/><link
+      linkend="identifiers_in_quickbook_1_6.identifier_10.markup_in_heading_in_order_to_t1">Markup
+      in <code><phrase role="identifier">heading</phrase></code> in <emphasis role="bold">order</emphasis>
+      to test normalization</link>
+    </bridgehead>
+    <table frame="all" id="identifiers_in_quickbook_1_6.identifier_10.h3">
+      <title>h3</title>
+      <tgroup cols="1">
+        <tbody>
+          <row>
+            <entry>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <table frame="all" id="identifiers_in_quickbook_1_6.identifier_10.h3_0">
+      <title>h3</title>
+      <tgroup cols="1">
+        <tbody>
+          <row>
+            <entry>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+  </section>
+  <section id="identifiers_in_quickbook_1_6.punctuation___stuff">
+    <title><link linkend="identifiers_in_quickbook_1_6.punctuation___stuff">Punctuation
+    & stuff</link></title>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.punctuation___stuff.h0">
+      <phrase id="identifiers_in_quickbook_1_6.punctuation___stuff.a___b"/><link
+      linkend="identifiers_in_quickbook_1_6.punctuation___stuff.a___b">A + B</link>
+    </bridgehead>
+    <bridgehead renderas="sect3" id="identifiers_in_quickbook_1_6.punctuation___stuff.h1">
+      <phrase id="identifiers_in_quickbook_1_6.punctuation___stuff.a_b0"/><link linkend="identifiers_in_quickbook_1_6.punctuation___stuff.a_b0">A
+      + B</link>
+    </bridgehead>
+  </section>
 </article>
Modified: branches/quickbook-dev/tools/quickbook/test/identifier_1_6.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/identifier_1_6.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/identifier_1_6.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -2,4 +2,147 @@
     [quickbook 1.6]
 ]
 
-[heading Test heading with `code`]
\ No newline at end of file
+[heading Test heading with `code`]
+
+[heading Identifier 10]
+[heading Identifier 10]
+[table Identifier 10
+[[]]
+]
+
+[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 Identifier 10]
+
+[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]
+
+[table h3
+[[]]
+]
+
+[table h3
+[[]]
+]
+
+[endsect]
+
+[section Punctuation & stuff]
+
+[heading A + B]
+[heading A + B]
+
+[endsect]
\ No newline at end of file
Modified: branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.cpp	(original)
+++ branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.cpp	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -1,3 +1,4 @@
+//[foo_cpp_copyright
 /*=============================================================================
     Copyright (c) 2011 Daniel James
 
@@ -5,6 +6,7 @@
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
+//]
 
 //[foo_cpp
 struct Foo{
@@ -19,4 +21,11 @@
   int x;
 //->
 };
+
+/*=
+int main()
+{
+    Foo x;
+}
+*/
 //]
Modified: branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -5,11 +5,29 @@
   <title>Pass thru test</title>
   <para>
     
+<programlisting><phrase role="comment">/*=============================================================================
+    Copyright (c) 2011 Daniel James
+
+    Use, modification and distribution is subject to the Boost Software
+    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+    http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/</phrase>
+</programlisting>
+  </para>
+  <para>
+    
 <programlisting><phrase role="keyword">struct</phrase> <phrase role="identifier">Foo</phrase><phrase role="special">{</phrase>
 
   <phrase role="identifier">Foo</phrase><phrase role="special">();</phrase>
 
 <phrase role="special">};</phrase>
+
+
+<phrase role="keyword">int</phrase> <phrase role="identifier">main</phrase><phrase role="special">()</phrase>
+<phrase role="special">{</phrase>
+    <phrase role="identifier">Foo</phrase> <phrase role="identifier">x</phrase><phrase role="special">;</phrase>
+<phrase role="special">}</phrase>
+
 </programlisting>
   </para>
   <para>
Modified: branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/snippets/pass_thru.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -5,6 +5,8 @@
 [import pass_thru.cpp]
 [import pass_thru.py]
 
+[foo_cpp_copyright]
+
 [foo_cpp]
 
 [foo_py]
\ No newline at end of file
Modified: branches/quickbook-dev/tools/quickbook/test/table_1_3.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/table_1_3.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/table_1_3.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -47,6 +47,121 @@
       </tbody>
     </tgroup>
   </informaltable>
+  <table frame="all" id="table_1_3.t1">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_3.t2">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_3.t3">
+    <title>Title [/ ] containing a comment</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_3.t4">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_3.t5">
+    <title>[[Title]]</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
   <section id="table_1_3.section1">
     <title><link linkend="table_1_3.section1">Section 1</link></title>
     <table frame="all" id="table_1_3.section1.t0">
Modified: branches/quickbook-dev/tools/quickbook/test/table_1_3.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/table_1_3.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/table_1_3.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -13,6 +13,38 @@
     [[cell]]
 ]
 
+[table [/ Comment?] Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table [/ Multi line
+comment] Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table Title [/  ] containing a comment
+    [[Heading]]
+    [[cell]]
+]
+
+[/ These two might be considered to be a bug. ]
+
+[table [/ Multi line
+comment]
+    Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table [/ Multi line
+comment]
+    [[Title]]
+    [[Heading]]
+    [[cell]]
+]
+
 [section:section1 Section 1]
 
 [table A & B
Modified: branches/quickbook-dev/tools/quickbook/test/table_1_5.gold
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/table_1_5.gold	(original)
+++ branches/quickbook-dev/tools/quickbook/test/table_1_5.gold	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -115,6 +115,121 @@
       </tbody>
     </tgroup>
   </table>
+  <table frame="all" id="table_1_5.title">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_5.title0">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_5.title_______containing_a_comment">
+    <title>Title [/ ] containing a comment</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_5.title1">
+    <title>Title</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+  <table frame="all" id="table_1_5.__title__">
+    <title>[[Title]]</title>
+    <tgroup cols="1">
+      <thead>
+        <row>
+          <entry>
+            <para>
+              Heading
+            </para>
+          </entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry>
+            <para>
+              cell
+            </para>
+          </entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
   <section id="table_1_5.section1">
     <title><link linkend="table_1_5.section1">Section 1</link></title>
     <table frame="all" id="table_1_5.section1.table1">
Modified: branches/quickbook-dev/tools/quickbook/test/table_1_5.quickbook
==============================================================================
--- branches/quickbook-dev/tools/quickbook/test/table_1_5.quickbook	(original)
+++ branches/quickbook-dev/tools/quickbook/test/table_1_5.quickbook	2011-08-21 09:27:52 EDT (Sun, 21 Aug 2011)
@@ -28,6 +28,38 @@
     [[cell]]
 ]
 
+[table [/ Comment?] Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table [/ Multi line
+comment] Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table Title [/  ] containing a comment
+    [[Heading]]
+    [[cell]]
+]
+
+[/ These two might be considered to be a bug. ]
+
+[table [/ Multi line
+comment]
+    Title
+    [[Heading]]
+    [[cell]]
+]
+
+[table [/ Multi line
+comment]
+    [[Title]]
+    [[Heading]]
+    [[cell]]
+]
+
 [section:section1 Section 1]
 
 [table:table1 Table 1