Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64248 - in branches/quickbook-1.5-spirit2: . detail doc test
From: daniel_james_at_[hidden]
Date: 2010-07-22 04:03:05


Author: danieljames
Date: 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
New Revision: 64248
URL: http://svn.boost.org/trac/boost/changeset/64248

Log:
Merge from tunk.

A lot of the recent trunk changes are from this branch, so they're not included.

* [63809] - Generate different ids when reusing code snippets.
* [63813] - Make repeated quickbook image attributes a warning rather than an error.
* [63814] - Check the quickbook version is valid.
* [63896] - Restore the invalid doc info attributes.

Added:
   branches/quickbook-1.5-spirit2/test/fail-unknown-quickbook-1.quickbook
      - copied unchanged from r64238, /trunk/tools/quickbook/test/fail-unknown-quickbook-1.quickbook
   branches/quickbook-1.5-spirit2/test/fail-unknown-quickbook-2.quickbook
      - copied unchanged from r64238, /trunk/tools/quickbook/test/fail-unknown-quickbook-2.quickbook
   branches/quickbook-1.5-spirit2/test/fail-unknown-quickbook-3.quickbook
      - copied unchanged from r64238, /trunk/tools/quickbook/test/fail-unknown-quickbook-3.quickbook
Removed:
   branches/quickbook-1.5-spirit2/detail/
   branches/quickbook-1.5-spirit2/test/fail-image_1_5.quickbook
Properties modified:
   branches/quickbook-1.5-spirit2/ (props changed)
Text files modified:
   branches/quickbook-1.5-spirit2/Jamfile.v2 | 1
   branches/quickbook-1.5-spirit2/block_actions.cpp | 10 +++---
   branches/quickbook-1.5-spirit2/code_snippet_actions.cpp | 33 ++++++++++------------
   branches/quickbook-1.5-spirit2/doc/quickbook.qbk | 41 +++++++++++++++++++++-------
   branches/quickbook-1.5-spirit2/doc_info.hpp | 9 ++++++
   branches/quickbook-1.5-spirit2/doc_info_actions.cpp | 45 +++++++++++++++++++++++++++-----
   branches/quickbook-1.5-spirit2/doc_info_actions.hpp | 1
   branches/quickbook-1.5-spirit2/doc_info_grammar.cpp | 38 +++++++--------------------
   branches/quickbook-1.5-spirit2/phrase_image.cpp | 5 +--
   branches/quickbook-1.5-spirit2/process.cpp | 1
   branches/quickbook-1.5-spirit2/state.cpp | 4 +-
   branches/quickbook-1.5-spirit2/template.cpp | 56 +++++++++++++++++++++++++++++++++------
   branches/quickbook-1.5-spirit2/template.hpp | 2
   branches/quickbook-1.5-spirit2/test/Jamfile.v2 | 4 ++
   branches/quickbook-1.5-spirit2/test/callouts.gold | 20 ++++++++++++++
   branches/quickbook-1.5-spirit2/test/callouts.quickbook | 4 ++
   branches/quickbook-1.5-spirit2/test/doc-info-1.gold | 4 ++
   branches/quickbook-1.5-spirit2/test/image_1_5.gold | 7 +++++
   branches/quickbook-1.5-spirit2/test/image_1_5.quickbook | 5 ++
   branches/quickbook-1.5-spirit2/test/quickbook-manual.gold | 3 ++
   20 files changed, 207 insertions(+), 86 deletions(-)

Modified: branches/quickbook-1.5-spirit2/Jamfile.v2
==============================================================================
--- branches/quickbook-1.5-spirit2/Jamfile.v2 (original)
+++ branches/quickbook-1.5-spirit2/Jamfile.v2 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -17,6 +17,7 @@
         <toolset>darwin:<cflags>-g0
         <debug-symbols>off
         <warnings>off
+ <define>BOOST_FILESYSTEM_VERSION=3
     ;
 
 exe quickbook

Modified: branches/quickbook-1.5-spirit2/block_actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/block_actions.cpp (original)
+++ branches/quickbook-1.5-spirit2/block_actions.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -315,9 +315,9 @@
             fs::path path(x);
             if (!path.is_complete())
             {
- fs::path infile = fs::complete(state.filename).normalize();
+ fs::path infile = fs::absolute(state.filename).normalize();
                 path = (infile.parent_path() / path).normalize();
- fs::path outdir = fs::complete(state.outdir).normalize();
+ fs::path outdir = fs::absolute(state.outdir).normalize();
                 path = path_difference(outdir, path);
             }
             return path;
@@ -367,10 +367,10 @@
 
         // update the __FILENAME__ macro
         *state.macro.find("__FILENAME__") =
- quickbook::macro(state.filename.file_string());
+ quickbook::macro(state.filename.native());
 
         // parse the file
- quickbook::parse(state.filename.file_string().c_str(), state, true);
+ quickbook::parse(state.filename.native().c_str(), state, true);
 
         // restore the values
         std::swap(state.filename, filein);
@@ -395,7 +395,7 @@
         state.paragraph_output();
 
         fs::path path = include_search(state.filename.parent_path(), x.path);
- std::string ext = path.extension();
+ std::string ext = path.extension().generic_string();
         std::vector<define_template> storage;
         state.error_count +=
             load_snippets(path.string(), storage, ext, state.doc_id);

Modified: branches/quickbook-1.5-spirit2/code_snippet_actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet_actions.cpp (original)
+++ branches/quickbook-1.5-spirit2/code_snippet_actions.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -27,25 +27,15 @@
         actions.code += x;
     }
 
- namespace detail
- {
- int callout_id = 0;
- }
-
     void code_snippet_actions::process_action::operator()(callout const& x, unused_type, unused_type) const
     {
- using detail::callout_id;
-
         callout_source item;
- item.identifier = std::string(actions.doc_id.begin(), actions.doc_id.end());
- item.identifier += boost::lexical_cast<std::string>(callout_id + actions.callouts.size());
         item.body = template_value(x.position, x.content);
+ item.role = x.role;
 
- actions.code += "``[[callout]";
- actions.code += x.role;
- actions.code += " ";
- actions.code += item.identifier;
- actions.code += "]``";
+ actions.code += "``[[callout" +
+ boost::lexical_cast<std::string>(actions.callouts.size()) +
+ "]]``";
 
         actions.callouts.push_back(item);
     }
@@ -73,7 +63,8 @@
 
     void code_snippet_actions::output_action::operator()(code_snippet const& x, unused_type, unused_type) const
     {
- using detail::callout_id;
+ std::vector<std::string> params;
+
         if (!actions.code.empty())
         {
             detail::unindent(actions.code); // remove all indents
@@ -83,15 +74,21 @@
                 actions.snippet += actions.source_type;
                 actions.snippet += "```\n" + actions.code + "```\n\n";
             }
+
+ if(actions.callouts.size() > 0)
+ {
+ for (size_t i = 0; i < actions.callouts.size(); ++i)
+ {
+ params.push_back("[callout" + boost::lexical_cast<std::string>(i) + "]");
+ }
+ }
         }
 
- std::vector<std::string> empty_params;
- define_template d(x.identifier, empty_params,
+ define_template d(x.identifier, params,
             template_value(x.position, actions.snippet));
         d.callouts = actions.callouts;
         actions.storage.push_back(d);
 
- callout_id += actions.callouts.size();
         actions.callouts.clear();
         actions.code.clear();
         actions.snippet.clear();

Modified: branches/quickbook-1.5-spirit2/doc/quickbook.qbk
==============================================================================
--- branches/quickbook-1.5-spirit2/doc/quickbook.qbk (original)
+++ branches/quickbook-1.5-spirit2/doc/quickbook.qbk 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -191,19 +191,33 @@
 
 [h3 Version 1.5.2 - Boost 1.44.0]
 
-* Generate more valid boostbook (still invalid in a few places).
-* Warn about invalid doc_info members.
-* Support multiple categories in library doc_info.
 * Use the cygwin 1.7 API for better path handling.
-* Fix some corner cases for paragraph detection:
+* Improved boostbook generation:
+ * XML encode the documentation info correctly.
+ * Avoid generating empty paragraphs.
+ * No longer wraps block templates in paragraphs.
+ * Warns if you use invalid doc_info members for docbook document types.
+ * Fixes some other causes of invalid boostbook, although it still
+ generates invalid boostbook in places.
+* Improved grammar:
+ * Supports multiple categories in library doc_info.
+ * No longer requires commas between authors in docinfo.
+ * Allows empty document bodies.
   * A line containing only a comment is no longer interpreted as a
     paragraph break.
   * If a line starts with a comment, interpret it as a paragraph even if it's
     followed by whitespace or a list character.
- * Don't treat 4+ consecutive blank lines as multiple paragraph breaks.
-* Don't require commas between authors in docinfo.
-* Allow empty document bodies.
-* Less empty paragraphs.
+ * Doesn't treat several consecutive blank lines as multiple paragraph breaks.
+* Fixes duplicate image attribute detection.
+* Fixes using code snippets more than once.
+* Early work on quickbook 1.6, available using the `[quickbook 1.6]` version switch,
+ but liable to change in future versions.
+ * When automatically generating ids for headers, use the quickbook
+ source, rather than the generated docbook.
+ * Fix id generation in included files. It wasn't correctly using the
+ main document's documentation id.
+ * Correctly restore the quickbook version switch after including a file
+ with a different version.
 
 [endsect]
 
@@ -786,6 +800,11 @@
 =version=, =id=, =dirname=, =copyright=, =purpose=, =category=, =authors=,
 =license=, =last-revision= and =source-mode= are optional information.
 
+=dirname=, =purpose= and =category= are boostbook attributes which are only
+valid for =library= documents. If you use them for other document types,
+quickbook will warn about them, but still use them, generating invalid markup,
+that's just ignored by the style sheets.
+
 =source-type= is a lowercase string setting the initial __source_mode__. If
 the =source-mode= field is omitted, a default value of =c++= will be used.
 
@@ -1924,7 +1943,7 @@
 
 # Go to Quickbook's source directory (`BOOST_ROOT/tools/quickbook`).
 
-# Build the utility by issuing `bjam --v2`.
+# Build the utility by issuing `bjam`.
 
 # Copy the resulting `quickbook` binary (located under the
   `BOOST_ROOT/bin.v2` hierarchy) to a safe place. Following our previous
@@ -2014,7 +2033,7 @@
 
 # Go to Quickbook's source directory (`BOOST_ROOT\tools\quickbook`).
 
-# Build the utility by issuing `bjam --v2`.
+# Build the utility by issuing `bjam`.
 
 # Copy the resulting `quickbook.exe` binary (located under the
   `BOOST_ROOT\bin.v2` hierarchy) to a safe place. Following our previous
@@ -2065,7 +2084,7 @@
 
 # Go to Quickbook's source directory (`BOOST_ROOT/tools/quickbook`).
 
-# Build the utility by issuing `bjam --v2`.
+# Build the utility by issuing `bjam`.
 
 # Copy the resulting `quickbook` binary (located under the
   `BOOST_ROOT/bin.v2` hierarchy) to a safe place. The traditional location is

Modified: branches/quickbook-1.5-spirit2/doc_info.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/doc_info.hpp (original)
+++ branches/quickbook-1.5-spirit2/doc_info.hpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -55,6 +55,15 @@
         doc_info_post(doc_info& info) : info(info) {}
         doc_info& info;
     };
+
+ struct version
+ {
+ version() : major(-1), minor(-1) {}
+
+ int major;
+ int minor;
+ file_position position;
+ };
 }
 
 #endif // BOOST_SPIRIT_QUICKBOOK_GRAMMARS_HPP

Modified: branches/quickbook-1.5-spirit2/doc_info_actions.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/doc_info_actions.cpp (original)
+++ branches/quickbook-1.5-spirit2/doc_info_actions.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -44,6 +44,43 @@
         };
     }
 
+ void process(quickbook::state& state, version const& x)
+ {
+ if(x.major == -1 || x.minor == -1)
+ {
+ qbk_major_version = 1;
+ qbk_minor_version = 1;
+ qbk_version_n = 101;
+
+ detail::outwarn(x.position.file)
+ << "Warning: Quickbook version undefined. "
+ "Version 1.1 is assumed" << std::endl;
+ }
+ else
+ {
+ qbk_major_version = x.major;
+ qbk_minor_version = x.minor;
+ qbk_version_n = (qbk_major_version * 100) + qbk_minor_version;
+
+ if (qbk_version_n == 106)
+ {
+ detail::outwarn(x.position.file)
+ << "Quickbook 1.6 is still under development and is "
+ "likely to change in the future." << std::endl;
+ }
+ else if(qbk_version_n < 100 || qbk_version_n > 106)
+ {
+ detail::outerr(x.position.file)
+ << "Unknown version of quickbook: quickbook "
+ << qbk_major_version
+ << "."
+ << qbk_minor_version
+ << std::endl;
+ ++state.error_count;
+ }
+ }
+ }
+
     void process(quickbook::state& state, doc_info const& x)
     {
         doc_info info = x;
@@ -83,21 +120,15 @@
         if (info.doc_type != "library")
         {
             if (!boost::apply_visitor(empty_visitor(), info.doc_purpose))
- {
- boost::apply_visitor(clear_visitor(), info.doc_purpose);
                 invalid_attributes.push_back("purpose");
- }
 
             if (!info.doc_categories.empty())
- {
- info.doc_categories.clear();
                 invalid_attributes.push_back("category");
- }
         }
 
         if(!invalid_attributes.empty())
         {
- detail::outwarn(state.filename.file_string(),1)
+ detail::outwarn(state.filename.native(),1)
                 << (invalid_attributes.size() > 1 ?
                     "Invalid attributes" : "Invalid attribute")
                 << " for '" << info.doc_type << "': "

Modified: branches/quickbook-1.5-spirit2/doc_info_actions.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/doc_info_actions.hpp (original)
+++ branches/quickbook-1.5-spirit2/doc_info_actions.hpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -17,6 +17,7 @@
 
 namespace quickbook
 {
+ void process(quickbook::state&, version const&);
     void process(quickbook::state&, doc_info const&);
 }
 

Modified: branches/quickbook-1.5-spirit2/doc_info_grammar.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/doc_info_grammar.cpp (original)
+++ branches/quickbook-1.5-spirit2/doc_info_grammar.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -32,28 +32,10 @@
     namespace repo = boost::spirit::repository;
     namespace ph = boost::phoenix;
     
- void set_quickbook_version(boost::fusion::vector<unsigned, unsigned> version)
- {
- qbk_major_version = boost::fusion::at_c<0>(version);
- qbk_minor_version = boost::fusion::at_c<1>(version);
- qbk_version_n = (qbk_major_version * 100) + qbk_minor_version;
- }
-
- void default_quickbook_version(file_position pos)
- {
- qbk_major_version = 1;
- qbk_minor_version = 1;
- qbk_version_n = 101;
-
- detail::outwarn(pos.file)
- << "Warning: Quickbook version undefined. "
- "Version 1.1 is assumed" << std::endl;
- }
-
     struct doc_info_grammar_local
     {
         qi::symbols<char> doc_types;
- qi::rule<iterator> quickbook_version;
+ qi::rule<iterator, version()> quickbook_version;
         qi::rule<iterator, raw_source()> doc_version;
         qi::rule<iterator, raw_source()> doc_id;
         qi::rule<iterator, raw_source()> doc_dirname;
@@ -88,7 +70,7 @@
>> qi::raw[
                     *(~qi::char_("[]") - qi::eol)
                 ] [member_assign(&doc_info::doc_title)]
- >> local.quickbook_version
+ >> local.quickbook_version [actions.process]
>> *repo::confix(space >> '[', space >> ']' >> +qi::eol)
                 [ local.doc_version [member_assign(&doc_info::doc_version)]
                 | local.doc_id [member_assign(&doc_info::doc_id)]
@@ -108,14 +90,14 @@
             ;
 
         local.quickbook_version =
- repo::confix(space >> '[', space >> ']')
- [ "quickbook"
- >> hard_space
- >> qi::uint_
- >> '.'
- >> uint2_t()
- ] [set_quickbook_version]
- | position [default_quickbook_version]
+ position [member_assign(&version::position)]
+ >> -repo::confix(space >> '[', space >> ']')
+ [ "quickbook"
+ >> hard_space
+ >> qi::uint_ [member_assign(&version::major)]
+ >> '.'
+ >> uint2_t() [member_assign(&version::minor)]
+ ]
             ;
 
         local.doc_version = "version" >> hard_space >> qi::raw[*~qi::char_(']')];

Modified: branches/quickbook-1.5-spirit2/phrase_image.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase_image.cpp (original)
+++ branches/quickbook-1.5-spirit2/phrase_image.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -39,18 +39,17 @@
                 begin = duplicates.begin(), end = duplicates.end();
                 begin != end; ++begin)
             {
- detail::outerr(x.position.file, x.position.line)
+ detail::outwarn(x.position.file, x.position.line)
                     << "Duplicate image attribute: "
                     << begin->first
                     << std::endl;
- ++state.error_count;
             }
         }
     
         fs::path const img_path(x.image_filename);
         attributes.insert(attribute("fileref", x.image_filename));
         // Note: If there is already an alt attribute this is a no-op.
- attributes.insert(attribute("alt", img_path.stem()));
+ attributes.insert(attribute("alt", img_path.stem().generic_string()));
 
         if(img_path.extension() == ".svg")
         {

Modified: branches/quickbook-1.5-spirit2/process.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/process.cpp (original)
+++ branches/quickbook-1.5-spirit2/process.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -65,6 +65,7 @@
     template void process_action::operator()<code_token>(code_token const&) const;
     template void process_action::operator()<char>(char const&) const;
     template void process_action::operator()<unicode_char>(unicode_char const&) const;
+ template void process_action::operator()<version>(version const&) const;
     template void process_action::operator()<doc_info>(doc_info const&) const;
     template void process_action::operator()<doc_info_post>(doc_info_post const&) const;
     template void process_action::operator()<callout_link>(callout_link const&) const;

Modified: branches/quickbook-1.5-spirit2/state.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/state.cpp (original)
+++ branches/quickbook-1.5-spirit2/state.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -35,7 +35,7 @@
         , encoder(encoder)
 
     // state
- , filename(fs::complete(fs::path(filein_)))
+ , filename(fs::absolute(fs::path(filein_)))
         , outdir(outdir_)
         , macro()
         , section_level(0)
@@ -52,7 +52,7 @@
         // turn off __FILENAME__ macro on debug mode = true
         std::string filename_str = debug_mode ?
             std::string("NO_FILENAME_MACRO_GENERATED_IN_DEBUG_MODE") :
- filename.file_string();
+ filename.native();
 
         // add the predefined macros
         macro.add

Modified: branches/quickbook-1.5-spirit2/template.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/template.cpp (original)
+++ branches/quickbook-1.5-spirit2/template.cpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -8,6 +8,7 @@
 =============================================================================*/
 
 #include <boost/spirit/include/qi_symbols.hpp>
+#include <boost/lexical_cast.hpp>
 #include "template.hpp"
 #include "phrase_actions.hpp"
 #include "grammar.hpp"
@@ -20,6 +21,11 @@
 
 namespace quickbook
 {
+ namespace
+ {
+ int callout_id = 0;
+ }
+
     struct template_symbol
     {
         template_symbol(
@@ -322,7 +328,7 @@
                 quickbook_grammar g(actions);
 
                 // do a phrase level parse
- iterator first(body.begin(), body.end(), state.filename.file_string().c_str());
+ iterator first(body.begin(), body.end(), state.filename.native().c_str());
                 first.set_position(template_pos);
                 iterator last(body.end(), body.end());
                 r = boost::spirit::qi::parse(first, last, g.simple_phrase) && first == last;
@@ -340,7 +346,7 @@
                 // the need to check for end of file in the grammar.
                 body += "\n\n";
 
- iterator first(body.begin(), body.end(), state.filename.file_string().c_str());
+ iterator first(body.begin(), body.end(), state.filename.native().c_str());
                 first.set_position(template_pos);
                 iterator last(body.end(), body.end());
 
@@ -396,13 +402,44 @@
             std::vector<template_value> args = x.args;
     
             ///////////////////////////////////
- // Break the arguments
- if (!break_arguments(args, x.symbol->params, x.position))
+ // Initialise the arguments
+
+ if (!x.symbol->callouts.size())
             {
- state.pop(); // restore the state
- --state.template_depth;
- ++state.error_count;
- return;
+ // Break the arguments for a template
+
+ if (!break_arguments(args, x.symbol->params, x.position))
+ {
+ state.pop(); // restore the state
+ --state.template_depth;
+ ++state.error_count;
+ return;
+ }
+ }
+ else
+ {
+ if (!args.empty())
+ {
+ detail::outerr(x.position.file, x.position.line)
+ << "Arguments for code snippet."
+ <<std::endl;
+ ++state.error_count;
+
+ args.clear();
+ }
+
+ BOOST_ASSERT(x.symbol->params.size() == x.symbol->callouts.size());
+ unsigned int size = x.symbol->callouts.size();
+
+ for(unsigned int i = 0; i < size; ++i)
+ {
+ template_value value;
+ value.content = "[[callout]" + x.symbol->callouts[i].role + " " +
+ state.doc_id.value +
+ boost::lexical_cast<std::string>(callout_id + i) +
+ "]";
+ args.push_back(value);
+ }
             }
 
             ///////////////////////////////////
@@ -456,7 +493,8 @@
             callout_list list;
             BOOST_FOREACH(callout_source const& c, x.symbol->callouts) {
                 callout_item item;
- item.identifier = c.identifier;
+ item.identifier = state.doc_id.value +
+ boost::lexical_cast<std::string>(callout_id++);
                 
                 state.push();
                 // TODO: adjust the position?

Modified: branches/quickbook-1.5-spirit2/template.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/template.hpp (original)
+++ branches/quickbook-1.5-spirit2/template.hpp 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -44,7 +44,7 @@
     };
 
     struct callout_source {
- std::string identifier;
+ std::string role;
         template_value body;
     };
     

Modified: branches/quickbook-1.5-spirit2/test/Jamfile.v2
==============================================================================
--- branches/quickbook-1.5-spirit2/test/Jamfile.v2 (original)
+++ branches/quickbook-1.5-spirit2/test/Jamfile.v2 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -65,7 +65,9 @@
     [ quickbook-fail-test fail-template-section-1 ]
     [ quickbook-fail-test fail-template-section-2 ]
     [ quickbook-fail-test fail-template-section-3 ]
- [ quickbook-fail-test fail-image_1_5 ]
+ [ quickbook-fail-test fail-unknown-quickbook-1 ]
+ [ quickbook-fail-test fail-unknown-quickbook-2 ]
+ [ quickbook-fail-test fail-unknown-quickbook-3 ]
     [ quickbook-test utf-8 ]
     [ quickbook-test utf-8-bom ]
     [ quickbook-test unicode-escape ]

Modified: branches/quickbook-1.5-spirit2/test/callouts.gold
==============================================================================
--- branches/quickbook-1.5-spirit2/test/callouts.gold (original)
+++ branches/quickbook-1.5-spirit2/test/callouts.gold 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -66,4 +66,24 @@
       </important>
     </callout>
   </calloutlist>
+ <para>
+ Example 3 (again!):
+ </para>
+ <para>
+
+<programlisting><phrase role="keyword">int</phrase> <phrase role="identifier">roll_die</phrase><phrase role="special">()</phrase> <phrase role="special">{</phrase>
+ <co id="callout_tests3co" linkends="callout_tests3" /><phrase role="identifier">boost</phrase><phrase role="special">::</phrase><phrase role="identifier">variate_generator</phrase><phrase role="special">&lt;</phrase><phrase role="identifier">boost</phrase><phrase role="special">::</phrase><phrase role="identifier">mt19937</phrase><phrase role="special">&amp;,</phrase> <phrase role="identifier">boost</phrase><phrase role="special">::</phrase><phrase role="identifier">uniform_int</phrase><phrase role="special">&lt;&gt;</phrase> <phrase role="special">&gt;</phrase> <phrase role="identifier">die</phrase><phrase role="special">(</phrase><phrase role="identifier">gen</phrase><phrase role="special">,</phrase> <phrase role="identifier">dist</phrase><phrase role="special">);</phrase>
+<phrase role="special">}</phrase>
+
+</programlisting>
+ </para>
+ <calloutlist>
+ <callout arearefs="callout_tests3co" id="callout_tests3">
+ <important>
+ <para>
+ test
+ </para>
+ </important>
+ </callout>
+ </calloutlist>
 </article>

Modified: branches/quickbook-1.5-spirit2/test/callouts.quickbook
==============================================================================
--- branches/quickbook-1.5-spirit2/test/callouts.quickbook (original)
+++ branches/quickbook-1.5-spirit2/test/callouts.quickbook 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -15,3 +15,7 @@
 Example 3:
 
 [example3]
+
+Example 3 (again!):
+
+[example3]

Modified: branches/quickbook-1.5-spirit2/test/doc-info-1.gold
==============================================================================
--- branches/quickbook-1.5-spirit2/test/doc-info-1.gold (original)
+++ branches/quickbook-1.5-spirit2/test/doc-info-1.gold 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -12,5 +12,9 @@
       <firstname>Jane</firstname> <surname>Doe</surname>
     </author>
     </authorgroup>
+ <articlepurpose>
+ Inline code test: <code>1 + 2</code>
+ </articlepurpose>
+ <articlecategory name="category:tests"></articlecategory> <articlecategory name="category:irrelevance"></articlecategory>
   </articleinfo>
 </article>

Deleted: branches/quickbook-1.5-spirit2/test/fail-image_1_5.quickbook
==============================================================================
--- branches/quickbook-1.5-spirit2/test/fail-image_1_5.quickbook 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
+++ (empty file)
@@ -1,5 +0,0 @@
-[article Images 1.5
- [quickbook 1.5]
-]
-
-[$test.gif [width 10cm] [height 10cm] [width 10cm]]

Modified: branches/quickbook-1.5-spirit2/test/image_1_5.gold
==============================================================================
--- branches/quickbook-1.5-spirit2/test/image_1_5.gold (original)
+++ branches/quickbook-1.5-spirit2/test/image_1_5.gold 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -56,4 +56,11 @@
     </textobject>
     </inlinemediaobject>
   </para>
+ <para>
+ <inlinemediaobject><imageobject><imagedata fileref="test.gif" height="10cm" width="10cm"></imagedata></imageobject>
+ <textobject>
+ <phrase>test</phrase>
+ </textobject>
+ </inlinemediaobject>
+ </para>
 </article>

Modified: branches/quickbook-1.5-spirit2/test/image_1_5.quickbook
==============================================================================
--- branches/quickbook-1.5-spirit2/test/image_1_5.quickbook (original)
+++ branches/quickbook-1.5-spirit2/test/image_1_5.quickbook 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -13,4 +13,7 @@
 
 [$ [/comment] test.gif ]
 [$ [/comment] test.gif [/comment] ]
-[$ [/comment] test.gif [/comment] [alt comment] ]
\ No newline at end of file
+[$ [/comment] test.gif [/comment] [alt comment] ]
+
+[/ This should warn about repeated attribute and then ignore it. ]
+[$test.gif [width 10cm] [height 10cm] [width 20cm]]

Modified: branches/quickbook-1.5-spirit2/test/quickbook-manual.gold
==============================================================================
--- branches/quickbook-1.5-spirit2/test/quickbook-manual.gold (original)
+++ branches/quickbook-1.5-spirit2/test/quickbook-manual.gold 2010-07-22 04:03:02 EDT (Thu, 22 Jul 2010)
@@ -21,6 +21,9 @@
         file LICENSE_1_0.txt or copy at <ulink url="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)
       </para>
     </legalnotice>
+ <articlepurpose>
+ <emphasis>WikiWiki</emphasis> style documentation tool
+ </articlepurpose>
   </articleinfo>
   <section id="quickbook.intro">
     <title><link linkend="quickbook.intro"> Introduction</link></title>


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