Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r59669 - in branches/quickbook-1.5-spirit2: . test
From: daniel_james_at_[hidden]
Date: 2010-02-13 10:04:12


Author: danieljames
Date: 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
New Revision: 59669
URL: http://svn.boost.org/trac/boost/changeset/59669

Log:
HTML callouts.
Text files modified:
   branches/quickbook-1.5-spirit2/boostbook.cpp | 29 ++++++++++++++++++++
   branches/quickbook-1.5-spirit2/code_snippet.cpp | 46 ++++++++++----------------------
   branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp | 2 +
   branches/quickbook-1.5-spirit2/code_snippet_types.hpp | 7 +++-
   branches/quickbook-1.5-spirit2/encoder.hpp | 3 ++
   branches/quickbook-1.5-spirit2/encoder_impl.hpp | 4 ++
   branches/quickbook-1.5-spirit2/html.cpp | 40 ++++++++++++++++++++++++++++
   branches/quickbook-1.5-spirit2/phrase.cpp | 19 ++++++++++++
   branches/quickbook-1.5-spirit2/process.cpp | 2 +
   branches/quickbook-1.5-spirit2/template.cpp | 56 +++++++++++++++++++++++++++++++++++++++
   branches/quickbook-1.5-spirit2/template.hpp | 19 +++++++++++++
   branches/quickbook-1.5-spirit2/test/callouts.gold | 56 ++++++++++++++++++++--------------------
   branches/quickbook-1.5-spirit2/test/quickbook-manual.gold | 21 ++++++++++----
   13 files changed, 235 insertions(+), 69 deletions(-)

Modified: branches/quickbook-1.5-spirit2/boostbook.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/boostbook.cpp (original)
+++ branches/quickbook-1.5-spirit2/boostbook.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -318,6 +318,35 @@
         state.phrase << std::string(x.mark == '#' ? "\n</orderedlist>" : "\n</itemizedlist>");
     }
 
+ void boostbook_encoder::operator()(quickbook::state& state, callout_link const& x) const
+ {
+ state.phrase
+ << "<phrase role=\"" << x.role << "\">"
+ << "<co id=\"" << x.identifier << "co\""
+ << " linkends=\"" << x.identifier << "\""
+ << " />"
+ << "</phrase>";
+ }
+
+ void boostbook_encoder::operator()(quickbook::state& state, callout_list const& x) const
+ {
+ state.phrase
+ << "<calloutlist>";
+
+ BOOST_FOREACH(callout_item const& c, x)
+ {
+ state.phrase
+ << "<callout arearefs=\"" << c.identifier << "co\""
+ << " id=\"" << c.identifier << "\""
+ << ">"
+ << c.content
+ << "</callout>";
+ }
+
+ state.phrase
+ << "</calloutlist>";
+ }
+
     void boostbook_encoder::operator()(quickbook::state& state, code_token const& x) const
     {
         std::string type = x.type;

Modified: branches/quickbook-1.5-spirit2/code_snippet.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet.cpp (original)
+++ branches/quickbook-1.5-spirit2/code_snippet.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -35,16 +35,18 @@
     void code_snippet_actions::process_action::operator()(callout const& x, unused_type, unused_type) const
     {
         using detail::callout_id;
- actions.code += "``'''";
- actions.code += std::string("<phrase role=\"") + x.role + "\">";
- actions.code += "<co id=\"";
- actions.code += actions.doc_id + boost::lexical_cast<std::string>(callout_id + actions.callouts.size()) + "co\" ";
- actions.code += "linkends=\"";
- actions.code += actions.doc_id + boost::lexical_cast<std::string>(callout_id + actions.callouts.size()) + "\" />";
- actions.code += "</phrase>";
- actions.code += "'''``";
 
- actions.callouts.push_back(x.content);
+ callout_source item;
+ item.identifier = actions.doc_id + boost::lexical_cast<std::string>(callout_id + actions.callouts.size());
+ item.body = template_value(x.position, x.content);
+
+ actions.code += "``[[callout]";
+ actions.code += x.role;
+ actions.code += " ";
+ actions.code += item.identifier;
+ actions.code += "]``";
+
+ actions.callouts.push_back(item);
     }
 
     void code_snippet_actions::process_action::operator()(escaped_comment const& x, unused_type, unused_type) const
@@ -80,31 +82,13 @@
                 actions.snippet += actions.source_type;
                 actions.snippet += "```\n" + actions.code + "```\n\n";
             }
-
- if(actions.callouts.size() > 0)
- {
- actions.snippet += "'''<calloutlist>'''";
- for (size_t i = 0; i < actions.callouts.size(); ++i)
- {
- actions.snippet += "'''<callout arearefs=\"";
- actions.snippet += actions.doc_id + boost::lexical_cast<std::string>(callout_id + i) + "co\" ";
- actions.snippet += "id=\"";
- actions.snippet += actions.doc_id + boost::lexical_cast<std::string>(callout_id + i) + "\">";
- actions.snippet += "'''";
-
- actions.snippet += "'''<para>'''";
- actions.snippet += actions.callouts[i];
- actions.snippet += "\n";
- actions.snippet += "'''</para>'''";
- actions.snippet += "'''</callout>'''";
- }
- actions.snippet += "'''</calloutlist>'''";
- }
         }
 
         std::vector<std::string> empty_params;
- actions.storage.push_back(define_template(
- x.identifier, empty_params, template_value(x.position, actions.snippet)));
+ define_template d(x.identifier, empty_params,
+ template_value(x.position, actions.snippet));
+ d.callouts = actions.callouts;
+ actions.storage.push_back(d);
 
         callout_id += actions.callouts.size();
         actions.callouts.clear();

Modified: branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp (original)
+++ branches/quickbook-1.5-spirit2/code_snippet_grammar.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -182,6 +182,7 @@
 
         inline_callout =
                 "/*<"
+ >> position
>> *(qi::char_ - ">*/")
>> ">*/"
>> qi::attr("callout_bug")
@@ -189,6 +190,7 @@
 
         line_callout =
                 "/*<<"
+ >> position
>> *(qi::char_ - ">>*/")
>> ">>*/"
>> qi::omit[*qi::space]

Modified: branches/quickbook-1.5-spirit2/code_snippet_types.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/code_snippet_types.hpp (original)
+++ branches/quickbook-1.5-spirit2/code_snippet_types.hpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -17,6 +17,7 @@
 #include <boost/fusion/include/adapt_struct.hpp>
 #include <boost/spirit/include/support_unused.hpp>
 #include "fwd.hpp"
+#include "template.hpp"
 
 namespace quickbook
 {
@@ -28,8 +29,9 @@
     
     struct callout
     {
- std::string content;
         char const* role;
+ quickbook::file_position position;
+ std::string content;
     };
     
     struct escaped_comment
@@ -46,6 +48,7 @@
 
 BOOST_FUSION_ADAPT_STRUCT(
     quickbook::callout,
+ (quickbook::file_position, position)
     (std::string, content)
     (char const*, role)
 )
@@ -97,7 +100,7 @@
         output_action output;
         std::string code;
         std::string snippet;
- std::vector<std::string> callouts;
+ quickbook::callouts callouts;
         std::vector<define_template>& storage;
         std::string const doc_id;
         char const* const source_type;

Modified: branches/quickbook-1.5-spirit2/encoder.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/encoder.hpp (original)
+++ branches/quickbook-1.5-spirit2/encoder.hpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -19,6 +19,7 @@
 #include "syntax_highlight.hpp"
 #include "doc_info.hpp"
 #include "gen_types.hpp"
+#include "template.hpp"
 
 namespace quickbook
 {
@@ -54,6 +55,8 @@
         virtual void operator()(quickbook::state&, table2 const&) const = 0;
         virtual void operator()(quickbook::state&, xinclude2 const&) const = 0;
         virtual void operator()(quickbook::state&, list2 const&) const = 0;
+ virtual void operator()(quickbook::state&, callout_link const&) const = 0;
+ virtual void operator()(quickbook::state&, callout_list const&) const = 0;
     
         virtual void operator()(quickbook::state&, code_token const&) const = 0;
     

Modified: branches/quickbook-1.5-spirit2/encoder_impl.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/encoder_impl.hpp (original)
+++ branches/quickbook-1.5-spirit2/encoder_impl.hpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -27,6 +27,8 @@
         virtual void operator()(quickbook::state&, table2 const&) const;
         virtual void operator()(quickbook::state&, xinclude2 const&) const;
         virtual void operator()(quickbook::state&, list2 const&) const;
+ virtual void operator()(quickbook::state&, callout_link const&) const;
+ virtual void operator()(quickbook::state&, callout_list const&) const;
     
         virtual void operator()(quickbook::state&, code_token const&) const;
     
@@ -57,6 +59,8 @@
         virtual void operator()(quickbook::state&, table2 const&) const;
         virtual void operator()(quickbook::state&, xinclude2 const&) const;
         virtual void operator()(quickbook::state&, list2 const&) const;
+ virtual void operator()(quickbook::state&, callout_link const&) const;
+ virtual void operator()(quickbook::state&, callout_list const&) const;
     
         virtual void operator()(quickbook::state&, code_token const&) const;
     

Modified: branches/quickbook-1.5-spirit2/html.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/html.cpp (original)
+++ branches/quickbook-1.5-spirit2/html.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -302,6 +302,46 @@
         state.phrase << std::string(x.mark == '#' ? "\n</ol>" : "\n</ul>");
     }
 
+ void html_encoder::operator()(quickbook::state& state, callout_link const& x) const
+ {
+ state.phrase
+ << "<span"
+ << " class=\"" << x.role << "\""
+ << " id=\"" << x.identifier << "co\""
+ << ">"
+ << "<a href=\"#" << x.identifier << "\">"
+ // TODO: Get correct number
+ // TODO: Better style
+ << "(c)"
+ << "</a>"
+ << "</span>"
+ ;
+ }
+
+ void html_encoder::operator()(quickbook::state& state, callout_list const& x) const
+ {
+ state.phrase
+ << "<dl class=\"calloutlist\">";
+ unsigned int count = 0;
+
+ BOOST_FOREACH(callout_item const& c, x)
+ {
+ state.phrase
+ << "<dt id=\"" << c.identifier << "\">"
+ << "<a href=\"#" << c.identifier << "co\">"
+ << "callout " << ++count
+ << "</a>"
+ << "</dt>"
+ << "<dd>"
+ << c.content
+ << "</dd>"
+ ;
+ }
+
+ state.phrase
+ << "</ol>";
+ }
+
     void html_encoder::operator()(quickbook::state& state, code_token const& x) const
     {
         std::string type = x.type;

Modified: branches/quickbook-1.5-spirit2/phrase.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/phrase.cpp (original)
+++ branches/quickbook-1.5-spirit2/phrase.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -76,6 +76,12 @@
     (std::string, content)
 )
 
+BOOST_FUSION_ADAPT_STRUCT(
+ quickbook::callout_link,
+ (std::string, role)
+ (std::string, identifier)
+)
+
 namespace quickbook
 {
     namespace qi = boost::spirit::qi;
@@ -101,6 +107,7 @@
         qi::rule<iterator, quickbook::formatted()> escape_markup;
         qi::rule<iterator> comment;
         qi::rule<iterator> dummy_block;
+ qi::rule<iterator, quickbook::callout_link()> callout_link;
         qi::rule<iterator, quickbook::cond_phrase()> cond_phrase;
         qi::rule<iterator, std::string()> macro_identifier;
         qi::rule<iterator, quickbook::image()> image, image_1_4, image_1_5;
@@ -167,7 +174,8 @@
 
         phrase_markup =
             ( '['
- >> ( cond_phrase
+ >> ( callout_link
+ | cond_phrase
                 | image
                 | url
                 | link
@@ -274,6 +282,15 @@
             '[' >> *(dummy_block | (qi::char_ - ']')) >> ']'
             ;
 
+ // Don't use this, it's meant to be private.
+ callout_link =
+ "[callout]"
+ >> *~qi::char_(' ')
+ >> ' '
+ >> *~qi::char_(']')
+ >> qi::attr(nothing())
+ ;
+
         cond_phrase =
                 '?'
>> blank

Modified: branches/quickbook-1.5-spirit2/process.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/process.cpp (original)
+++ branches/quickbook-1.5-spirit2/process.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -63,4 +63,6 @@
     template void process_action::operator()<char>(char 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;
+ template void process_action::operator()<callout_list>(callout_list const&) const;
 }
\ No newline at end of file

Modified: branches/quickbook-1.5-spirit2/template.cpp
==============================================================================
--- branches/quickbook-1.5-spirit2/template.cpp (original)
+++ branches/quickbook-1.5-spirit2/template.cpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -31,10 +31,24 @@
            , params(params)
            , body(body)
            , parent(parent) {}
+
+ template_symbol(
+ std::string const& identifier,
+ std::vector<std::string> const& params,
+ template_value const& body,
+ quickbook::callouts const& callouts,
+ template_scope const* parent)
+ : identifier(identifier)
+ , params(params)
+ , body(body)
+ , callouts(callouts)
+ , parent(parent) {}
+
     
         std::string identifier;
         std::vector<std::string> params;
         template_value body;
+ quickbook::callouts callouts;
         template_scope const* parent;
     };
 
@@ -121,6 +135,7 @@
             definition.id,
             definition.params,
             definition.body,
+ definition.callouts,
             parent ? parent : &top_scope());
 
         scopes.front().symbols.add(ts.identifier.c_str(), ts);
@@ -341,6 +356,7 @@
                 r = boost::spirit::qi::parse(first, last, block_p) && first == last;
                 state.phrase.swap(result);
             }
+
             return r;
         }
     }
@@ -422,7 +438,45 @@
 
         state.pop(); // restore the state
         --state.template_depth;
-
+
+ if(x.symbol->callouts.size()) {
+ callout_list list;
+ BOOST_FOREACH(callout_source const& c, x.symbol->callouts) {
+ callout_item item;
+ item.identifier = c.identifier;
+
+ std::size_t pos = c.body.content.find_first_not_of(" \t\n\r");
+ if(pos != std::string::npos) {
+ std::string content = "\n";
+ content.append(c.body.content, pos, c.body.content.size() - pos);
+
+ state.push();
+ // TODO: adjust the position?
+ bool r = parse_template(content, item.content, c.body.position, false, state);
+ state.pop();
+
+ if(!r)
+ {
+ detail::outerr(c.body.position.file, c.body.position.line)
+ << "Error expanding callout."
+ << std::endl;
+ ++state.error_count;
+ return "";
+ }
+ }
+
+ list.push_back(item);
+ }
+
+ state.push();
+ {
+ quickbook::actions actions(state);
+ actions.process(list);
+ }
+ result += state.phrase.str();
+ state.pop();
+ }
+
         return result;
     }
 }

Modified: branches/quickbook-1.5-spirit2/template.hpp
==============================================================================
--- branches/quickbook-1.5-spirit2/template.hpp (original)
+++ branches/quickbook-1.5-spirit2/template.hpp 2010-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -35,6 +35,24 @@
         std::string content;
     };
 
+ struct callout_link {
+ std::string role;
+ std::string identifier;
+ };
+
+ struct callout_source {
+ std::string identifier;
+ template_value body;
+ };
+
+ struct callout_item {
+ std::string identifier;
+ std::string content;
+ };
+
+ typedef std::vector<callout_source> callouts;
+ typedef std::vector<callout_item> callout_list;
+
     struct define_template
     {
         define_template() {}
@@ -51,6 +69,7 @@
         std::string id;
         std::vector<std::string> params;
         template_value body;
+ quickbook::callouts callouts;
     };
 
     struct call_template {

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-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -15,14 +15,18 @@
     <para>
       
 <programlisting><phrase role="keyword">int</phrase> <phrase role="identifier">roll_die</phrase><phrase role="special">()</phrase> <phrase role="special">{</phrase>
- <phrase role="identifier">boost</phrase><phrase role="special">::</phrase><phrase role="identifier">uniform_int</phrase><phrase role="special">&lt;&gt;</phrase> <phrase role="identifier">dist</phrase><phrase role="special">(</phrase><phrase role="number">1</phrase><phrase role="special">,</phrase> <phrase role="number">6</phrase><phrase role="special">);</phrase> <!--quickbook-escape-prefix--><phrase role="callout_bug"><co id="callout_tests0co" linkends="callout_tests0" /></phrase><!--quickbook-escape-postfix-->
+ <phrase role="identifier">boost</phrase><phrase role="special">::</phrase><phrase role="identifier">uniform_int</phrase><phrase role="special">&lt;&gt;</phrase> <phrase role="identifier">dist</phrase><phrase role="special">(</phrase><phrase role="number">1</phrase><phrase role="special">,</phrase> <phrase role="number">6</phrase><phrase role="special">);</phrase> <phrase role="callout_bug"><co id="callout_tests0co" linkends="callout_tests0" /></phrase>
 <phrase role="special">}</phrase>
 
 </programlisting>
     </para>
- <para>
- <calloutlist><callout arearefs="callout_tests0co" id="callout_tests0"><para> create a uniform_int distribution </para></callout></calloutlist>
- </para>
+ <calloutlist>
+ <callout arearefs="callout_tests0co" id="callout_tests0">
+ <para>
+ create a uniform_int distribution
+ </para>
+ </callout>
+ </calloutlist>
   </para>
   <para>
     Example 2:
@@ -31,22 +35,20 @@
     <para>
       
 <programlisting><phrase role="keyword">int</phrase> <phrase role="identifier">roll_die</phrase><phrase role="special">()</phrase> <phrase role="special">{</phrase>
- <!--quickbook-escape-prefix--><phrase role="line_callout_bug"><co id="callout_tests1co" linkends="callout_tests1" /></phrase><!--quickbook-escape-postfix--><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="line_callout_bug"><co id="callout_tests1co" linkends="callout_tests1" /></phrase><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>
- <para>
- <calloutlist><callout arearefs="callout_tests1co" id="callout_tests1"><para>
- </para>
- <important>
- <para>
- test
- </para>
- </important>
- <para>
- </para></callout></calloutlist>
- </para>
+ <calloutlist>
+ <callout arearefs="callout_tests1co" id="callout_tests1">
+ <important>
+ <para>
+ test
+ </para>
+ </important>
+ </callout>
+ </calloutlist>
   </para>
   <para>
     Example 3:
@@ -55,21 +57,19 @@
     <para>
       
 <programlisting><phrase role="keyword">int</phrase> <phrase role="identifier">roll_die</phrase><phrase role="special">()</phrase> <phrase role="special">{</phrase>
- <!--quickbook-escape-prefix--><phrase role="line_callout_bug"><co id="callout_tests2co" linkends="callout_tests2" /></phrase><!--quickbook-escape-postfix--><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="line_callout_bug"><co id="callout_tests2co" linkends="callout_tests2" /></phrase><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>
- <para>
- <calloutlist><callout arearefs="callout_tests2co" id="callout_tests2"><para>
- </para>
- <important>
- <para>
- test
- </para>
- </important>
- <para>
- </para></callout></calloutlist>
- </para>
+ <calloutlist>
+ <callout arearefs="callout_tests2co" id="callout_tests2">
+ <important>
+ <para>
+ test
+ </para>
+ </important>
+ </callout>
+ </calloutlist>
   </para>
 </article>

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-02-13 10:04:09 EST (Sat, 13 Feb 2010)
@@ -2612,16 +2612,25 @@
         <para>
           <para>
             
-<programlisting><phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">string</phrase> <phrase role="identifier">foo_bar</phrase><phrase role="special">()</phrase> <!--quickbook-escape-prefix--><phrase role="callout_bug"><co id="quickbook0co" linkends="quickbook0" /></phrase><!--quickbook-escape-postfix-->
+<programlisting><phrase role="identifier">std</phrase><phrase role="special">::</phrase><phrase role="identifier">string</phrase> <phrase role="identifier">foo_bar</phrase><phrase role="special">()</phrase> <phrase role="callout_bug"><co id="quickbook0co" linkends="quickbook0" /></phrase>
 <phrase role="special">{</phrase>
- <phrase role="keyword">return</phrase> <phrase role="string">&quot;foo-bar&quot;</phrase><phrase role="special">;</phrase> <!--quickbook-escape-prefix--><phrase role="callout_bug"><co id="quickbook1co" linkends="quickbook1" /></phrase><!--quickbook-escape-postfix-->
+ <phrase role="keyword">return</phrase> <phrase role="string">&quot;foo-bar&quot;</phrase><phrase role="special">;</phrase> <phrase role="callout_bug"><co id="quickbook1co" linkends="quickbook1" /></phrase>
 <phrase role="special">}</phrase>
 </programlisting>
           </para>
- <para>
- <calloutlist><callout arearefs="quickbook0co" id="quickbook0"><para> The <emphasis>Mythical</emphasis> FooBar. See <ulink url="http://en.wikipedia.org/wiki/Foobar">Foobar
- for details</ulink> </para></callout><callout arearefs="quickbook1co" id="quickbook1"><para> return 'em, foo-bar man! </para></callout></calloutlist>
- </para>
+ <calloutlist>
+ <callout arearefs="quickbook0co" id="quickbook0">
+ <para>
+ The <emphasis>Mythical</emphasis> FooBar. See <ulink url="http://en.wikipedia.org/wiki/Foobar">Foobar
+ for details</ulink>
+ </para>
+ </callout>
+ <callout arearefs="quickbook1co" id="quickbook1">
+ <para>
+ return 'em, foo-bar man!
+ </para>
+ </callout>
+ </calloutlist>
         </para>
         <para>
           Checkout <ulink url="../../test/stub.cpp">stub.cpp</ulink> to see the actual


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