Boost logo

Boost-Commit :

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 &#169; 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: &gt; &lt; &quot;
     </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
+ &amp; 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
+ &amp; 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


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