[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fdo-commits
Subject:    [fdo-commits] r7425 - in trunk/Thirdparty/boost/tools: . auto_index/doc/html/images auto_index/src b
From:       svn_fdo () osgeo ! org
Date:       2015-12-10 12:37:00
Message-ID: 20151210123700.E92CA39015C () trac ! osgeo ! org
[Download RAW message or body]

Author: kwi
Date: 2015-12-10 04:37:00 -0800 (Thu, 10 Dec 2015)
New Revision: 7425

Added:
   trunk/Thirdparty/boost/tools/boostdep/
   trunk/Thirdparty/boost/tools/build/Jamroot.jam
   trunk/Thirdparty/boost/tools/build/boost-build.jam
   trunk/Thirdparty/boost/tools/build/bootstrap.bat
   trunk/Thirdparty/boost/tools/build/bootstrap.sh
   trunk/Thirdparty/boost/tools/build/doc/
   trunk/Thirdparty/boost/tools/build/example/
   trunk/Thirdparty/boost/tools/build/index.html
   trunk/Thirdparty/boost/tools/build/notes/
   trunk/Thirdparty/boost/tools/build/scripts/
   trunk/Thirdparty/boost/tools/build/src/
   trunk/Thirdparty/boost/tools/build/test/
   trunk/Thirdparty/boost/tools/build/tutorial.html
   trunk/Thirdparty/boost/tools/build/website/
Removed:
   trunk/Thirdparty/boost/tools/build/src/engine/bin.ntx86/
   trunk/Thirdparty/boost/tools/build/src/engine/bin.ntx86_64/
   trunk/Thirdparty/boost/tools/build/src/engine/bootstrap/
Modified:
   trunk/Thirdparty/boost/tools/Jamfile.v2
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/caution.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/home.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/important.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/next.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/note.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/prev.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/tip.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/up.svg
   trunk/Thirdparty/boost/tools/auto_index/doc/html/images/warning.svg
   trunk/Thirdparty/boost/tools/auto_index/src/auto_index.cpp
   trunk/Thirdparty/boost/tools/bcp/add_dependent_lib.cpp
   trunk/Thirdparty/boost/tools/bcp/add_path.cpp
   trunk/Thirdparty/boost/tools/bcp/copy_path.cpp
   trunk/Thirdparty/boost/tools/bcp/scan_licence.cpp
   trunk/Thirdparty/boost/tools/boostbook/doc/Jamfile.v2
   trunk/Thirdparty/boost/tools/boostbook/doc/boostbook.xml
   trunk/Thirdparty/boost/tools/boostbook/doc/documenting.xml
   trunk/Thirdparty/boost/tools/boostbook/doc/reference.xml
   trunk/Thirdparty/boost/tools/boostbook/doc/together.xml
   trunk/Thirdparty/boost/tools/boostbook/dtd/1.1/boostbook.dtd
   trunk/Thirdparty/boost/tools/boostbook/dtd/boostbook.dtd
   trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.py
   trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.sh
   trunk/Thirdparty/boost/tools/boostbook/test/doxygen/autodoc.gold
   trunk/Thirdparty/boost/tools/boostbook/test/doxygen/boost/example.hpp
   trunk/Thirdparty/boost/tools/boostbook/xsl/annotation.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/docbook-layout.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/docbook.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/fo.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/html-base.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/html-help.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/html-single.xsl
   trunk/Thirdparty/boost/tools/boostbook/xsl/source-highlight.xsl
   trunk/Thirdparty/boost/tools/build/src/engine/build.sh
   trunk/Thirdparty/boost/tools/inspect/apple_macro_check.cpp
   trunk/Thirdparty/boost/tools/inspect/ascii_check.hpp
   trunk/Thirdparty/boost/tools/inspect/assert_macro_check.cpp
   trunk/Thirdparty/boost/tools/inspect/build/msvc/boost_inspect.vcxproj
   trunk/Thirdparty/boost/tools/inspect/build/msvc/readme.txt
   trunk/Thirdparty/boost/tools/inspect/deprecated_macro_check.cpp
   trunk/Thirdparty/boost/tools/inspect/doc/inspect.qbk
   trunk/Thirdparty/boost/tools/inspect/inspect.cpp
   trunk/Thirdparty/boost/tools/inspect/inspector.hpp
   trunk/Thirdparty/boost/tools/inspect/link_check.cpp
   trunk/Thirdparty/boost/tools/inspect/link_check.hpp
   trunk/Thirdparty/boost/tools/inspect/path_name_check.cpp
   trunk/Thirdparty/boost/tools/inspect/tab_check.hpp
   trunk/Thirdparty/boost/tools/inspect/time_string.hpp
   trunk/Thirdparty/boost/tools/inspect/unnamed_namespace_check.cpp
   trunk/Thirdparty/boost/tools/quickbook/doc/1_6.qbk
   trunk/Thirdparty/boost/tools/quickbook/doc/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/doc/block.qbk
   trunk/Thirdparty/boost/tools/quickbook/doc/change_log.qbk
   trunk/Thirdparty/boost/tools/quickbook/doc/phrase.qbk
   trunk/Thirdparty/boost/tools/quickbook/doc/quickbook.qbk
   trunk/Thirdparty/boost/tools/quickbook/doc/structure.qbk
   trunk/Thirdparty/boost/tools/quickbook/src/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/src/actions.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/actions.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/block_element_grammar.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/block_tags.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/code_snippet.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/doc_info_actions.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/doc_info_grammar.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/files.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/fwd.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/grammar.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/grammar.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/grammar_impl.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/main_grammar.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/markups.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/phrase_element_grammar.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/quickbook.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/state.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/state.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/state_save.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/syntax_highlight.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/template_tags.hpp
   trunk/Thirdparty/boost/tools/quickbook/src/utils.cpp
   trunk/Thirdparty/boost/tools/quickbook/src/utils.hpp
   trunk/Thirdparty/boost/tools/quickbook/test/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/command-line/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/doc-info/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.gold
   trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/include/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_5.gold
   trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_6.gold
   trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc1.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc2.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.gold
   trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.gold
   trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.gold
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.gold
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.gold
   trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.gold
   trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/python/output-deps.py
   trunk/Thirdparty/boost/tools/quickbook/test/snippets/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.gold
   trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.gold
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.gold
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.gold
   trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/unit/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/utf16be_bom-1_5-fail.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/utf16le_bom-1_5-fail.quickbook
   trunk/Thirdparty/boost/tools/quickbook/test/versions/Jamfile.v2
   trunk/Thirdparty/boost/tools/quickbook/test/xinclude/Jamfile.v2
Log:
RFC #70: VS 2015 - merge sandbox to trunk: thirdparty\boost\tools folder

Modified: trunk/Thirdparty/boost/tools/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/Jamfile.v2	2015-12-10 12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/Jamfile.v2	2015-12-10 12:37:00 UTC (rev 7425)
@@ -12,18 +12,16 @@
     :
     requirements
     <link>static
+    <implicit-dependency>/boost//headers 
+    : 
+    usage-requirements <implicit-dependency>/boost//headers 
     ;
 
-use-project /boost/regression : regression/build ;
-
 TOOLS =
     bcp//bcp
     inspect/build//inspect
     quickbook//quickbook
-    /boost/regression//compiler_status
-    /boost/regression//library_status
-    /boost/regression//process_jam_log
-    wave/build//wave
+    /boost/libs/wave/tool//wave
     ;
 
 install dist-bin

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/caution.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/caution.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/caution.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,68 +1,68 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 \
Build 51448)  --><svg height="120.648" id="Layer_1" inkscape:version="0.42" \
sodipodi:docbase="F:\openclip\svg da inviare" sodipodi:docname="Attenzione.svg" \
sodipodi:version="0.32" space="preserve" \
style="overflow:visible;enable-background:new 0 0 133.878 120.648;" version="1.1" \
viewBox="0 0 133.878 120.648" width="133.878" xmlns="http://www.w3.org/2000/svg" \
xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" \
                xmlns:svg="http://www.w3.org/2000/svg">
-  <metadata>
-    <rdf:RDF xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-      <cc:Work rdf:about="">
-        <dc:title>Attenzione</dc:title>
-        <dc:description></dc:description>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>pulsante</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:publisher>
-          <cc:Agent rdf:about="http://www.openclipart.org/">
-            <dc:title>Open Clip Art Library</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Architetto Francesco Rollandin</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>Architetto Francesco Rollandin</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date></dc:date>
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
-        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
-        <dc:language>en</dc:language>
-      </cc:Work>
-      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <defs id="defs43"/>
-  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" \
inkscape:current-layer="Layer_1" inkscape:cx="66.939003" inkscape:cy="60.324001" \
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="510" \
inkscape:window-width="787" inkscape:window-x="44" inkscape:window-y="58" \
                inkscape:zoom="2.9838869" pagecolor="#ffffff"/>
-  <g id="g3">
-    <linearGradient gradientTransform="matrix(56.9977 90.4964 90.4964 -56.9977 \
-27343.9609 47971.0547)" gradientUnits="userSpaceOnUse" id="XMLID_4_" x1="-244.5732" \
                x2="-242.8169" y1="455.4199" y2="455.4199">
-      <stop id="stop6" offset="0" style="stop-color:#FFFA5F"/>
-      <stop id="stop8" offset="1" style="stop-color:#9F3300"/>
-    </linearGradient>
-    <path d="M51.333,8.834C34.985,37.343,18.638,65.854,2.289,94.363   \
c-7.081,12.352,3.352,26.285,16.453,26.285c6.708,0,13.418,0,20.128,0c22.109,0,44.217,0,66.327,0c3.644,0,7.286,0,10.931,0 \
c13.293,0,20.963-14.273,16.452-26.031c-4.114-10.729-11.861-20.99-17.542-30.922c-8.81-15.403-17.618-30.809-26.429-46.212 \
c-1.813-3.167-3.622-6.333-5.434-9.5C76.601-3.516,57.616-2.03,51.333,8.834 \
                M53.973,9.064" id="path10" style="fill:url(#XMLID_4_);"/>
-    <path d="M55.474,12.388c-8.247,14.279-16.492,28.559-24.739,42.839   \
c-5.526,9.567-11.05,19.137-16.577,28.707c-2.732,4.73-7.323,10.456-8.284,16c-3.799,21.9,34.927,15.743,46.734,15.743 \
c20.073,0,40.144,0,60.215,0c13.716,0,18.636-11.963,12.229-23.063c-6.462-11.195-12.927-22.388-19.389-33.582 \
c-7.249-12.557-14.499-25.113-21.75-37.671c-1.682-2.916-3.364-5.829-5.049-8.745C73.767,3.785,60.676,3.364,55.474,12.388" \
                id="path12" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFF200;"/>
-    <path d="M55.474,12.388c-8.247,14.279-16.492,28.559-24.739,42.839c-5.526,9.567-11.05,19.137-16.577,28.707 \
c-2.732,4.73-7.323,10.456-8.284,16c-3.799,21.9,34.927,15.743,46.734,15.743c20.073,0,40.144,0,60.215,0 \
c13.716,0,18.636-11.963,12.229-23.063c-6.462-11.195-12.927-22.388-19.389-33.582c-7.249-12.557-14.499-25.113-21.75-37.671 \
c-1.682-2.916-3.364-5.829-5.049-8.745C73.767,3.785,60.676,3.364,55.474,12.388" \
                id="path14" style="fill:#FFCE00;"/>
-    <path d="M126.731,95.522c-8.733-15.127-17.468-30.253-26.201-45.379   \
c-5.537-9.595-11.078-19.188-16.616-28.781c-3.938-6.821-7.459-15.689-16.813-15.689c1.013,0,5.901,10.225,6.469,11.196 \
c5.451,9.314,10.902,18.63,16.352,27.947c9.217,15.749,18.433,31.498,27.646,47.249c2.302,3.933,5.356,10.555,1.308,14.397 \
c-3.148,2.987-7.99,3.196-12.099,3.196c-7.225,0-14.448,0-21.674,0c-22.125,0-44.251,0-66.377,0c-3.598,0-7.197,0-10.794,0 \
c5.285,7.909,16.341,6.02,24.546,6.02c13.009,0,26.017,0,39.023,0c11.979,0,23.958,0,35.937,0c2.516,0,5.032,0,7.547,0 \
                C125.136,115.678,131.878,104.435,126.731,95.522" id="path16" \
                style="fill:#FFB600;"/>
-    <path d="M14.615,112.457c-4.483-7.751,1.908-16.103,5.793-22.834   \
c4.698-8.138,9.398-16.276,14.097-24.414C44.54,47.83,54.574,30.448,64.61,13.069c0.789-1.367,3.725-4.568,2.594-5.539 \
c-3.913-3.353-10.287,1.936-12.107,5.087c-3.129,5.417-6.258,10.835-9.386,16.252c-11.105,19.226-22.209,38.453-33.313,57.68 \
c-1.649,2.854-3.299,5.713-4.95,8.569c-4.771,8.265-0.075,19.162,9.658,20.446C16.124,114.65,15.294,113.615,14.615,112.457" \
                id="path18" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFE600;"/>
-    <path d="M77.076,34.654c0,10.183-1.788,20.758-3.439,30.772   \
c-0.369,2.239-4.03,23.609-7.796,14.179c-4.247-10.632-4.832-23.419-5.958-34.696c-0.363-3.638-1.538-8.425-0.563-12.06 \
C61.667,24.099,77.076,25.199,77.076,34.654" id="path20" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFE1;"/>
-    <path d="M77.076,34.654c-2.018,0.995-1.521,8.717-1.797,11.395c-0.685,6.643-1.505,13.282-2.614,19.869 \
c-0.79,4.701-1.301,10.862-3.954,14.981c-1.642,2.567-3.405-5.958-3.634-6.932c-2.948-12.443-4.464-25.664-5.09-38.43 \
c-0.272-5.52,5.164-8.854,10.277-7.622c3.87,0.933,5.217,7.36,7.688,6.738c0.009-11.451-19.755-11.453-19.746,0 \
c0.017,11.956,2.087,24.599,4.423,36.294c0.501,2.507,1.642,12.376,5.449,12.376c4.059-0.021,5.285-11.432,5.79-14.137 \
c1.261-6.765,2.139-13.605,2.887-20.444C77.084,45.722,79.281,35.942,77.076,34.654" \
                id="path22" style="fill:#FFFFFF;"/>
-    <linearGradient gradientTransform="matrix(68.2284 33.0019 33.0019 -68.2284 \
1613.9791 39385.6641)" gradientUnits="userSpaceOnUse" id="XMLID_5_" x1="-246.981" \
                x2="-245.2275" y1="458.29" y2="458.29">
-      <stop id="stop25" offset="0" style="stop-color:#FFFA5F"/>
-      <stop id="stop27" offset="1" style="stop-color:#9F3300"/>
-    </linearGradient>
-    <path d="M57.957,34.654c0,10.053,1.632,20.54,3.242,30.431   \
c0.479,2.936,4.912,26.502,9.99,15.164c4.987-11.134,5.351-25.201,6.386-37.184c0.273-3.169,1.153-7.045,0.421-10.221 \
C75.628,22.587,57.957,23.788,57.957,34.654 \
M60.207,34.654c0-8.061,13.138-9.015,15.459-1.792c1.156,3.597-0.13,8.748-0.508,12.38   \
c-1.135,10.904-2.052,22.602-5.501,33.069c-2.816,8.545-5.546-10.187-5.934-12.522C62.039,55.63,60.207,44.985,60.207,34.654" \
                id="path29" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#XMLID_5_);"/>
-    <path d="M77.076,96.788c0,11.964-18.555,11.964-18.555,0   \
C58.521,84.822,77.076,84.822,77.076,96.788" id="path31" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFE1;"/>
-    <path d="M77.076,96.788c-2.605,1.661-2.157,6.757-7.044,8.101c-6.178,1.7-12.033-4.159-10.336-10.335 \
c1.439-5.23,7.657-7.767,12.341-5.021c2.91,1.704,3.164,7.913,5.915,7.256c0-14.267-22.698-12.238-20.143,1.826 \
c0.987,5.444,6.375,9.15,11.814,8.162C72.417,106.271,81.44,98.19,77.076,96.788" \
                id="path33" style="fill:#FFFFFF;"/>
-    <linearGradient gradientTransform="matrix(68.2241 32.9998 32.9998 -68.2241 \
1604.682 39402.625)" gradientUnits="userSpaceOnUse" id="XMLID_6_" x1="-246.998" \
                x2="-245.2348" y1="458.0625" y2="458.0625">
-      <stop id="stop36" offset="0" style="stop-color:#FFFA5F"/>
-      <stop id="stop38" offset="1" style="stop-color:#9F3300"/>
-    </linearGradient>
-    <path d="M57.395,96.788c0,13.41,20.805,13.41,20.805,0   \
C78.2,83.376,57.395,83.375,57.395,96.788 \
M59.647,96.788c0-10.514,16.301-10.514,16.301,0   \
C75.948,107.3,59.647,107.3,59.647,96.788" id="path40" \
                style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#XMLID_6_);"/>
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 \
Build 51448)  --><svg height="120.648" id="Layer_1" inkscape:version="0.42" \
sodipodi:docbase="F:\openclip\svg da inviare" sodipodi:docname="Attenzione.svg" \
sodipodi:version="0.32" space="preserve" \
style="overflow:visible;enable-background:new 0 0 133.878 120.648;" version="1.1" \
viewBox="0 0 133.878 120.648" width="133.878" xmlns="http://www.w3.org/2000/svg" \
xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" \
xmlns:svg="http://www.w3.org/2000/svg"> +  <metadata>
+    <rdf:RDF xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> +      <cc:Work \
rdf:about=""> +        <dc:title>Attenzione</dc:title>
+        <dc:description></dc:description>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>pulsante</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent rdf:about="http://www.openclipart.org/">
+            <dc:title>Open Clip Art Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Architetto Francesco Rollandin</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Architetto Francesco Rollandin</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:date></dc:date>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+        <dc:language>en</dc:language>
+      </cc:Work>
+      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs id="defs43"/>
+  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" \
inkscape:current-layer="Layer_1" inkscape:cx="66.939003" inkscape:cy="60.324001" \
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="510" \
inkscape:window-width="787" inkscape:window-x="44" inkscape:window-y="58" \
inkscape:zoom="2.9838869" pagecolor="#ffffff"/> +  <g id="g3">
+    <linearGradient gradientTransform="matrix(56.9977 90.4964 90.4964 -56.9977 \
-27343.9609 47971.0547)" gradientUnits="userSpaceOnUse" id="XMLID_4_" x1="-244.5732" \
x2="-242.8169" y1="455.4199" y2="455.4199"> +      <stop id="stop6" offset="0" \
style="stop-color:#FFFA5F"/> +      <stop id="stop8" offset="1" \
style="stop-color:#9F3300"/> +    </linearGradient>
+    <path d="M51.333,8.834C34.985,37.343,18.638,65.854,2.289,94.363   \
c-7.081,12.352,3.352,26.285,16.453,26.285c6.708,0,13.418,0,20.128,0c22.109,0,44.217,0,66.327,0c3.644,0,7.286,0,10.931,0 \
c13.293,0,20.963-14.273,16.452-26.031c-4.114-10.729-11.861-20.99-17.542-30.922c-8.81-15.403-17.618-30.809-26.429-46.212 \
c-1.813-3.167-3.622-6.333-5.434-9.5C76.601-3.516,57.616-2.03,51.333,8.834 \
M53.973,9.064" id="path10" style="fill:url(#XMLID_4_);"/> +    <path \
d="M55.474,12.388c-8.247,14.279-16.492,28.559-24.739,42.839   \
c-5.526,9.567-11.05,19.137-16.577,28.707c-2.732,4.73-7.323,10.456-8.284,16c-3.799,21.9,34.927,15.743,46.734,15.743 \
c20.073,0,40.144,0,60.215,0c13.716,0,18.636-11.963,12.229-23.063c-6.462-11.195-12.927-22.388-19.389-33.582 \
c-7.249-12.557-14.499-25.113-21.75-37.671c-1.682-2.916-3.364-5.829-5.049-8.745C73.767,3.785,60.676,3.364,55.474,12.388" \
id="path12" style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFF200;"/> +    <path \
d="M55.474,12.388c-8.247,14.279-16.492,28.559-24.739,42.839c-5.526,9.567-11.05,19.137-16.577,28.707 \
c-2.732,4.73-7.323,10.456-8.284,16c-3.799,21.9,34.927,15.743,46.734,15.743c20.073,0,40.144,0,60.215,0 \
c13.716,0,18.636-11.963,12.229-23.063c-6.462-11.195-12.927-22.388-19.389-33.582c-7.249-12.557-14.499-25.113-21.75-37.671 \
c-1.682-2.916-3.364-5.829-5.049-8.745C73.767,3.785,60.676,3.364,55.474,12.388" \
id="path14" style="fill:#FFCE00;"/> +    <path \
d="M126.731,95.522c-8.733-15.127-17.468-30.253-26.201-45.379   \
c-5.537-9.595-11.078-19.188-16.616-28.781c-3.938-6.821-7.459-15.689-16.813-15.689c1.013,0,5.901,10.225,6.469,11.196 \
c5.451,9.314,10.902,18.63,16.352,27.947c9.217,15.749,18.433,31.498,27.646,47.249c2.302,3.933,5.356,10.555,1.308,14.397 \
c-3.148,2.987-7.99,3.196-12.099,3.196c-7.225,0-14.448,0-21.674,0c-22.125,0-44.251,0-66.377,0c-3.598,0-7.197,0-10.794,0 \
c5.285,7.909,16.341,6.02,24.546,6.02c13.009,0,26.017,0,39.023,0c11.979,0,23.958,0,35.937,0c2.516,0,5.032,0,7.547,0 \
C125.136,115.678,131.878,104.435,126.731,95.522" id="path16" style="fill:#FFB600;"/> \
+    <path d="M14.615,112.457c-4.483-7.751,1.908-16.103,5.793-22.834   \
c4.698-8.138,9.398-16.276,14.097-24.414C44.54,47.83,54.574,30.448,64.61,13.069c0.789-1.367,3.725-4.568,2.594-5.539 \
c-3.913-3.353-10.287,1.936-12.107,5.087c-3.129,5.417-6.258,10.835-9.386,16.252c-11.105,19.226-22.209,38.453-33.313,57.68 \
c-1.649,2.854-3.299,5.713-4.95,8.569c-4.771,8.265-0.075,19.162,9.658,20.446C16.124,114.65,15.294,113.615,14.615,112.457" \
id="path18" style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFE600;"/> +    <path \
d="M77.076,34.654c0,10.183-1.788,20.758-3.439,30.772   \
c-0.369,2.239-4.03,23.609-7.796,14.179c-4.247-10.632-4.832-23.419-5.958-34.696c-0.363-3.638-1.538-8.425-0.563-12.06 \
C61.667,24.099,77.076,25.199,77.076,34.654" id="path20" \
style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFE1;"/> +    <path \
d="M77.076,34.654c-2.018,0.995-1.521,8.717-1.797,11.395c-0.685,6.643-1.505,13.282-2.614,19.869 \
c-0.79,4.701-1.301,10.862-3.954,14.981c-1.642,2.567-3.405-5.958-3.634-6.932c-2.948-12.443-4.464-25.664-5.09-38.43 \
c-0.272-5.52,5.164-8.854,10.277-7.622c3.87,0.933,5.217,7.36,7.688,6.738c0.009-11.451-19.755-11.453-19.746,0 \
c0.017,11.956,2.087,24.599,4.423,36.294c0.501,2.507,1.642,12.376,5.449,12.376c4.059-0.021,5.285-11.432,5.79-14.137 \
c1.261-6.765,2.139-13.605,2.887-20.444C77.084,45.722,79.281,35.942,77.076,34.654" \
id="path22" style="fill:#FFFFFF;"/> +    <linearGradient \
gradientTransform="matrix(68.2284 33.0019 33.0019 -68.2284 1613.9791 39385.6641)" \
gradientUnits="userSpaceOnUse" id="XMLID_5_" x1="-246.981" x2="-245.2275" y1="458.29" \
y2="458.29"> +      <stop id="stop25" offset="0" style="stop-color:#FFFA5F"/>
+      <stop id="stop27" offset="1" style="stop-color:#9F3300"/>
+    </linearGradient>
+    <path d="M57.957,34.654c0,10.053,1.632,20.54,3.242,30.431   \
c0.479,2.936,4.912,26.502,9.99,15.164c4.987-11.134,5.351-25.201,6.386-37.184c0.273-3.169,1.153-7.045,0.421-10.221 \
C75.628,22.587,57.957,23.788,57.957,34.654 \
M60.207,34.654c0-8.061,13.138-9.015,15.459-1.792c1.156,3.597-0.13,8.748-0.508,12.38   \
c-1.135,10.904-2.052,22.602-5.501,33.069c-2.816,8.545-5.546-10.187-5.934-12.522C62.039,55.63,60.207,44.985,60.207,34.654" \
id="path29" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#XMLID_5_);"/> +    \
<path d="M77.076,96.788c0,11.964-18.555,11.964-18.555,0   \
C58.521,84.822,77.076,84.822,77.076,96.788" id="path31" \
style="fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFE1;"/> +    <path \
d="M77.076,96.788c-2.605,1.661-2.157,6.757-7.044,8.101c-6.178,1.7-12.033-4.159-10.336-10.335 \
c1.439-5.23,7.657-7.767,12.341-5.021c2.91,1.704,3.164,7.913,5.915,7.256c0-14.267-22.698-12.238-20.143,1.826 \
c0.987,5.444,6.375,9.15,11.814,8.162C72.417,106.271,81.44,98.19,77.076,96.788" \
id="path33" style="fill:#FFFFFF;"/> +    <linearGradient \
gradientTransform="matrix(68.2241 32.9998 32.9998 -68.2241 1604.682 39402.625)" \
gradientUnits="userSpaceOnUse" id="XMLID_6_" x1="-246.998" x2="-245.2348" \
y1="458.0625" y2="458.0625"> +      <stop id="stop36" offset="0" \
style="stop-color:#FFFA5F"/> +      <stop id="stop38" offset="1" \
style="stop-color:#9F3300"/> +    </linearGradient>
+    <path d="M57.395,96.788c0,13.41,20.805,13.41,20.805,0   \
C78.2,83.376,57.395,83.375,57.395,96.788 \
M59.647,96.788c0-10.514,16.301-10.514,16.301,0   \
C75.948,107.3,59.647,107.3,59.647,96.788" id="path40" \
style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#XMLID_6_);"/> +  </g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/home.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/home.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/home.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st1 "fill:none;stroke:none;">
-	<!ENTITY st2 "fill:#000000;">
-	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;">
-	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
-	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_3" style="&st0;">
-		<g style="&st4;">
-			<path style="&st3;" \
d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1 \
.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
                
-				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c \
0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
                
-			<path style="&st2;" \
d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1 \
.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
                
-				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9c \
0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
                
-			<path style="&st2;" \
d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/>
                
-			<path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/>
                
-			<path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/>
                
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st5;">
-		<path style="&st1;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st1 "fill:none;stroke:none;">
+	<!ENTITY st2 "fill:#000000;">
+	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:6.3469;stroke-linejoin:round;">
+	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_3" style="&st0;">
+		<g style="&st4;">
+			<path style="&st3;" \
d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1 \
.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
 +				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9 \
c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
 +			<path style="&st2;" \
d="M22.9,7.1L5.1,21.8l0,0c-0.3,0.3-0.5,0.8-0.5,1.2c0,0.2,0,0.4,0.1,0.6c0.3,0.6,0.9,1,1 \
.6,1c0,0,1.1,0,2.2,0c0,2.4,0,14.2,0,14.2c0,1.1,0.8,1.9,1.8,1.9h27.4c1.1,0,1.9-0.9,1.9-2c0,0,0-11.8,0-14.2c1,0,2,0,2,0c0.8,0,1.4-0.5,1.7-1.2
 +				c0.1-0.2,0.1-0.4,0.1-0.6c0-0.5-0.2-1-0.7-1.4c0,0-3.6-3-4.5-3.7c0-1.2,0-6.9,0-6.9 \
c0-1.2-0.8-2-2-2h-4.8c-1,0-1.7,0.6-1.9,1.5c-1.9-1.6-4.1-3.5-4.1-3.5l0.1,0.1c-0.7-0.7-1.8-0.8-2.7-0.1z"/>
 +			<path style="&st2;" \
d="M41.8,22.8l-5.1-4.2v-0.1L31,13.7v0l-6.5-5.5C24.2,8,24,8,23.8,8.2L6.2,22.9c-0.1,0.1-0.1,0.3,0.1,0.3h1.6H10h28.1h1.2h2.3c0.2,0,0.4-0.2,0.2-0.4z"/>
 +			<path d="M35.8,16.8l0-5.1c0-0.2-0.1-0.4-0.3-0.4h-3.2c-0.2,0-0.3,0.1-0.3,0.3v2.2l3.9,2.9z"/>
 +			<path d="M11.9,24.7V37c0,0.3,0.1,0.4,0.3,0.4h23.6c0.3,0,0.4-0.2,0.4-0.4V24.7H11.9z"/>
 +		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st5;">
+		<path style="&st1;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/important.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/important.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/important.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:#FFFFFF;stroke:none;">
-	<!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
                
-	<!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
-	<!ENTITY st3 "fill:none;stroke:none;">
-	<!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st5 "stroke:none;">
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_3" style="&st4;">
-		<g>
-			<path style="&st2;" \
d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0 \
                .6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/>
                
-			<path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/>
-			<path style="&st0;" d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/>
-			<g>
-				<path style="&st5;" \
d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z \
                M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/>
-			</g>
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st4;">
-		<path style="&st3;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke-width:6.6112;stroke-linecap:round;stroke-linejoin:round;">
 +	<!ENTITY st2 "stroke:#FFFFFF;stroke-width:6.6112;">
+	<!ENTITY st3 "fill:none;stroke:none;">
+	<!ENTITY st4 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st5 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_3" style="&st4;">
+		<g>
+			<path style="&st2;" \
d="M41.7,35.3L26.6,9.4c-0.6-1-1.7-1.7-2.9-1.6c-1.2,0-2.3,0.7-2.9,1.7L6.3,35.4c-0.6,1-0 \
.6,2.3,0,3.3c0.6,1,1.7,1.6,2.9,1.6h29.6c1.2,0,2.3-0.6,2.9-1.7c0.6-1,0.6-2.3,0-3.3z"/> \
+			<path style="&st1;" d="M23.7,11L9.2,37h29.6L23.7,11z"/> +			<path style="&st0;" \
d="M23.7,11.9L10.3,36.1h27.5l-14-24.1z"/> +			<g>
+				<path style="&st5;" \
d="M24.1,34c-1.1,0-1.8-0.8-1.8-1.8c0-1.1,0.7-1.8,1.8-1.8c1.1,0,1.8,0.7,1.8,1.8c0,1-0.7,1.8-1.8,1.8h0z \
M22.9,29.3l-0.4-9.1h3.2l-0.4,9.1h-2.3z"/> +			</g>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st4;">
+		<path style="&st3;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/next.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/next.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/next.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:none;stroke:none;">
-	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
                
-	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st3 "stroke:none;">
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_3" style="&st2;">
-		<g>
-			<path style="&st1;" \
d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0. \
4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
                
-			<path style="&st3;" \
d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0. \
4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
                
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st2;">
-		<path style="&st0;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
 +	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" \
d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0. \
4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
 +			<path style="&st3;" \
d="M22.4,41.1c0,0.3,0.3,0.3,0.5,0.2l16.6-16.9c0.5-0.5,0.4-0.7,0-1L22.9,6.7c-0.1-0.1-0. \
4-0.1-0.4,0.1v10H8.9c-0.3,0-0.5,0.2-0.5,0.4l0,13.3C8.4,30.9,8.6,31,9,31h13.5l-0.1,10.1z"/>
 +		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/note.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/note.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/note.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;">
                
-	<!ENTITY st1 "fill:none;stroke-width:1.2429;">
-	<!ENTITY st2 "fill:#FFFFFF;stroke:none;">
-	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
                
-	<!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;">
-	<!ENTITY st5 "fill:none;stroke:none;">
-	<!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
                
-	<!ENTITY st8 "stroke:none;">
-	<!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;">
-]>
-<svg  xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 \
                48" xml:space="preserve">
-	<g id="Layer_x0020_1" style="&st6;">
-		<path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/>
-		<path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
-		<path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
-		<path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
-		<path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
-	</g>
-	<g id="Layer_x0020_4" style="&st6;">
-		<path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
-		<path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
-		<path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/>
-		<path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/>
-		<path style="&st2;" \
                d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/>
-	</g>
-	<g id="crop" style="&st6;">
-		<path style="&st5;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:#FFFFFF;stroke-width:12.1438;stroke-linejoin:round;">
 +	<!ENTITY st1 "fill:none;stroke-width:1.2429;">
+	<!ENTITY st2 "fill:#FFFFFF;stroke:none;">
+	<!ENTITY st3 "fill:none;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
 +	<!ENTITY st4 "fill:#FFFFFF;stroke-width:6.3824;stroke-linejoin:round;">
+	<!ENTITY st5 "fill:none;stroke:none;">
+	<!ENTITY st6 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st7 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:12.7649;stroke-linejoin:round;">
 +	<!ENTITY st8 "stroke:none;">
+	<!ENTITY st9 "fill:none;stroke-width:4.9715;stroke-linejoin:round;">
+]>
+<svg  xmlns="http://www.w3.org/2000/svg" width="48pt" height="48pt" viewBox="0 0 48 \
48" xml:space="preserve"> +	<g id="Layer_x0020_1" style="&st6;">
+		<path style="&st0;" d="M35.7,19.8v18.9H11V8.8h13.9l10.8,11z"/>
+		<path style="&st3;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st7;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+		<path style="&st4;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+		<path style="&st2;" d="M35.7,8.8H11v29.9h24.7V8.8z"/>
+	</g>
+	<g id="Layer_x0020_4" style="&st6;">
+		<path style="&st9;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st8;" d="M38.7,30.4L25,16.7l-7.7-3l2.7,8.7l13.3,13.4l5.4-5.4z"/>
+		<path style="&st8;" d="M20.6,14.7l-2.5,2.5L17,13.4l3.6,1.3z"/>
+		<path style="&st1;" d="M19.6,22.2l3-0.3l2.4-2.4l0.4-2.8"/>
+		<path style="&st2;" \
d="M20.4,14.9L18.3,17l1.6,5.2l2.7-0.3l2.4-2.4l0.3-2.4l-5-2.2z"/> +	</g>
+	<g id="crop" style="&st6;">
+		<path style="&st5;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/prev.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/prev.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/prev.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:none;stroke:none;">
-	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
                
-	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st3 "stroke:none;">
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_3" style="&st2;">
-		<g>
-			<path style="&st1;" \
d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4 \
,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
                
-			<path style="&st3;" \
d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4 \
,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
                
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st2;">
-		<path style="&st0;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
 +	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" \
d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4 \
,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
 +			<path style="&st3;" \
d="M25.6,6.9c0-0.3-0.3-0.3-0.5-0.2L8.4,23.6c-0.5,0.5-0.4,0.7,0,1l16.6,16.6c0.1,0.1,0.4 \
,0.1,0.4-0.1v-10h13.6c0.3,0,0.5-0.2,0.5-0.4l0-13.3c0-0.3-0.2-0.5-0.5-0.5H25.5l0.1-10.1z"/>
 +		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/tip.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/tip.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/tip.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,84 +1,84 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="1052.3622047" \
id="svg2" inkscape:version="0.42.2" sodipodi:docbase="/home/sergio/tmp/downloads" \
sodipodi:docname="lamp.svg" sodipodi:version="0.32" width="744.09448819" \
xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" \
                xmlns:svg="http://www.w3.org/2000/svg" \
                xmlns:xlink="http://www.w3.org/1999/xlink">
-  <metadata>
-    <rdf:RDF xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-      <cc:Work rdf:about="">
-        <dc:title>lamp</dc:title>
-        <dc:description></dc:description>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>office</rdf:li>
-            <rdf:li></rdf:li>
-            <rdf:li>lamp</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:publisher>
-          <cc:Agent rdf:about="http://www.openclipart.org/">
-            <dc:title>Open Clip Art Library</dc:title>
-          </cc:Agent>
-        </dc:publisher>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Sergio Luiz Araujo Silva</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>Public Domain</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date>set 2005</dc:date>
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
-        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
-        <dc:language>en</dc:language>
-      </cc:Work>
-      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
-        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
-        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <defs id="defs4">
-    <linearGradient id="linearGradient13125">
-      <stop id="stop13127" offset="0.0000000" \
                style="stop-color:#ffffff;stop-opacity:1.0000000;"/>
-      <stop id="stop13129" offset="1" style="stop-color:#fffeff;stop-opacity:0;"/>
-    </linearGradient>
-    <linearGradient id="linearGradient12389">
-      <stop id="stop12391" offset="0.0000000" \
                style="stop-color:#fefefe;stop-opacity:1.0000000;"/>
-      <stop id="stop12393" offset="1.0000000" \
                style="stop-color:#fffefe;stop-opacity:1.0000000;"/>
-    </linearGradient>
-    <radialGradient cx="358.25909" cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient13131" inkscape:collect="always" \
                r="27.486719" xlink:href="#linearGradient13125"/>
-    <radialGradient cx="358.25909" cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient14587" inkscape:collect="always" \
                r="27.486719" xlink:href="#linearGradient13125"/>
-    <radialGradient cx="358.25909" cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient15390" inkscape:collect="always" \
                r="27.486719" xlink:href="#linearGradient13125"/>
-    <radialGradient cx="358.25909" cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient16141" inkscape:collect="always" \
                r="27.486719" xlink:href="#linearGradient13125"/>
-  </defs>
-  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" \
inkscape:current-layer="layer1" inkscape:cx="344.34505" inkscape:cy="795.78292" \
inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" \
inkscape:pageshadow="2" inkscape:window-height="693" inkscape:window-width="1024" \
inkscape:window-x="0" inkscape:window-y="25" inkscape:zoom="0.72123084" \
                pagecolor="#ffffff" showguides="true"/>
-  <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
-    <path d="M 369.44028,121.86683 C 302.64703,119.68096 242.59223,184.30679 \
250.47188,250.87980 C 252.47522,280.21980 267.84094,306.49880 285.94332,328.82253 C \
303.71281,358.65039 312.13900,393.24133 313.51068,427.73030 C 317.00419,446.97288 \
338.01608,454.57063 355.35334,455.26572 C 375.18456,456.91501 395.94281,455.09265 \
414.43470,447.69729 C 430.92724,435.70557 427.37713,413.20597 430.74488,395.55648 C \
434.70351,361.57615 449.78002,329.76555 471.07843,303.26619 C 504.41026,252.31528 \
488.56419,176.76397 437.75400,143.26422 C 417.82956,129.49394 393.70573,121.69096 \
369.44028,121.86683 z " id="path1384" \
style="opacity:1.0000000;fill:#f3f2f3;fill-opacity:0.83333331;stroke:#000000;stroke-wi \
dth:0.58960420;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
                
-    <path d="M 425.72698,154.07768 C 437.68158,164.87540 453.68534,182.03604 \
451.17873,203.82428 C 455.99913,200.54641 460.81954,197.26853 465.63995,193.99066 C \
459.85546,170.27425 448.28648,162.75442 425.72698,154.07768 z " id="path2153" \
sodipodi:nodetypes="cccc" \
style="fill:#fefefe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 506.99897 296.94009 A 37.120701 18.718985 0 1 1  432.75756,296.94009 \
A 37.120701 18.718985 0 1 1  506.99897 296.94009 z" id="path2881" \
sodipodi:cx="469.87827" sodipodi:cy="296.94009" sodipodi:rx="37.120701" \
sodipodi:ry="18.718985" sodipodi:type="arc" \
style="opacity:1.0000000;color:#000000;fill:#fefefe;fill-opacity:1.0000000;fill-rule:n \
onzero;stroke:none;stroke-width:0.64700001;stroke-linecap:butt;stroke-linejoin:miter;m \
arker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.00000 \
00;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" \
                transform="matrix(0.818103,0.000000,0.000000,0.896150,-13.89510,-26.68653)"/>
                
-    <path d="M 359.20536,314.30802 L 336.64585,244.31570 C 362.29042,230.62575 \
382.72895,234.28926 403.16748,243.15881 L 379.45107,315.46491 L 379.45107,315.46491" \
id="path3617" sodipodi:nodetypes="ccccc" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f9595;stroke-width \
                :0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 513.73605 514.32300 A 52.508934 11.885468 0 1 1  408.71818,514.32300 \
A 52.508934 11.885468 0 1 1  513.73605 514.32300 z" id="path4361" \
sodipodi:cx="461.22711" sodipodi:cy="514.32300" sodipodi:rx="52.508934" \
sodipodi:ry="11.885468" sodipodi:type="arc" \
style="opacity:1.0000000;color:#000000;fill:#a0a0a0;fill-opacity:1.0000000;fill-rule:n \
onzero;stroke:none;stroke-width:0.64700001;stroke-linecap:butt;stroke-linejoin:miter;m \
arker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.00000 \
00;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" \
                transform="matrix(0.982435,0.000000,0.000000,1.387810,-83.52495,-281.2705)"/>
                
-    <path d="M 315.87677,433.07959 C 319.14672,442.90428 329.03398,448.82383 \
338.76816,450.68840 C 362.00206,456.37952 386.74882,455.38004 409.63484,448.57985 C \
414.28840,447.19363 419.18392,445.42184 422.06530,441.25295 C 423.42527,439.84003 \
425.68582,434.46169 424.07088,434.30126 C 411.81432,444.17256 395.75685,447.78808 \
380.34111,448.56322 C 362.85475,449.05661 344.64886,448.26521 328.51659,440.79114 C \
324.02706,438.71576 319.76022,436.14612 315.87677,433.07959 z " id="path4363" \
style="fill:#d6dee6;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 400.47436,522.16227 C 396.48542,528.09177 392.49650,534.02126 \
388.50756,539.95076 C 383.93367,541.47295 366.98819,546.44954 353.57745,538.01018 C \
350.34318,532.29631 347.10892,526.58244 343.87465,520.86856 C 364.35835,531.64946 \
396.48542,523.99502 400.47436,522.16227 z " id="path5094" sodipodi:nodetypes="ccccc" \
style="fill:#090a0c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-wid \
                th:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 419.65600,444.27781 C 419.97026,446.39906 420.28452,448.52031 \
420.59878,450.64156 C 421.46299,450.95582 422.32720,451.27008 423.19142,451.58434 C \
423.19142,452.91994 423.19142,454.25554 423.19142,455.59114 C 422.32720,455.98397 \
421.46299,456.37678 420.59878,456.76961 C 420.36308,459.20512 420.12739,461.64063 \
419.89170,464.07614 C 420.52021,464.23327 421.14873,464.39039 421.77725,464.54753 C \
421.69869,466.59021 421.62012,468.63289 421.54156,470.67558 C 420.83447,471.46123 \
420.12739,472.24688 419.42030,473.03253 C 419.57744,474.05387 419.73456,475.07522 \
419.89170,476.09656 C 420.91303,477.11790 421.93438,478.13925 422.95572,479.16058 C \
422.87716,480.18193 422.79859,481.20328 422.72003,482.22461 C 422.01294,483.01026 \
421.30586,483.79591 420.59878,484.58156 C 420.36308,485.05294 420.12739,485.52433 \
419.89170,485.99572 C 419.57744,486.70280 419.26317,487.40989 418.94892,488.11697 C \
419.10605,489.05975 419.26317,490.00253 419.42030,490.94531 C 419.89170,491.65239 \
420.36308,  492.35947 420.83447,493.06655 C 420.67734,494.71641 420.52021,496.36627 \
420.36308,498.01614 C 415.02067,505.24410 409.67827,512.47206 404.33587,519.70003 C \
403.15740,520.24998 401.97892,520.79994 400.80045,521.34989 C 397.81498,522.29266 \
394.82952,523.23544 391.84406,524.17822 C 386.34452,524.80674 380.84498,525.43525 \
375.34545,526.06378 C 371.96717,525.90664 368.58887,525.74952 365.21059,525.59238 C \
362.46082,525.51382 359.71105,525.43525 356.96128,525.35669 C 353.42587,524.49247 \
349.89045,523.62827 346.35503,522.76405 C 345.17656,521.82128 343.99809,520.87850 \
342.81962,519.93572 C 339.75559,517.81447 336.69157,515.69322 333.62754,513.57197 C \
328.75652,508.30813 323.88551,503.04429 319.01448,497.78044 C 319.01448,496.52341 \
319.01448,495.26636 319.01448,494.00933 C 319.87870,494.00933 320.74291,494.00933 \
321.60712,494.00933 C 321.13574,492.83086 320.66435,491.65239 320.19296,490.47392 C \
319.09305,488.19554 317.99314,485.91716 316.89323,483.63878 C 316.89323,482.93170 \
316.89323,482.2  2461 316.89323,481.51753 C 318.38597,480.26049 319.87869,479.00345 \
321.37143,477.74642 C 320.03583,475.54660 318.70022,473.34679 317.36462,471.14697 C \
317.28606,470.83271 317.20748,470.51845 317.12892,470.20419 C 318.46453,468.39720 \
319.80013,466.59021 321.13574,464.78322 C 320.74291,463.68331 320.35009,462.58341 \
319.95726,461.48350 C 319.09305,460.38359 318.22883,459.28369 317.36462,458.18378 C \
317.12892,457.31956 316.89323,456.45536 316.65753,455.59114 C 317.75744,454.17697 \
318.85735,452.76281 319.95726,451.34864 C 319.87870,450.01304 319.80013,448.67744 \
319.72157,447.34184 C 319.32874,446.71332 318.93592,446.08480 318.54310,445.45628 C \
318.62166,444.74920 318.70023,444.04212 318.77879,443.33503 C 319.48588,443.25647 \
320.19296,443.17790 320.90004,443.09934 C 324.04263,445.22059 327.18523,447.34184 \
330.32782,449.46309 C 348.08347,456.92674 391.76550,461.09068 419.65600,444.27781 z " \
id="path7284" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" \
style="fill:#fba2  46;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-w \
idth:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 389.86281,523.00744 C 389.46998,521.82897 391.23336,522.26765 \
390.84054,521.08918 C 383.37688,521.01061 375.91323,520.93205 368.44957,520.85348 C \
368.44957,520.53923 368.44957,520.22496 368.44957,519.91070 C 374.10624,519.75357 \
379.76290,519.59645 385.41957,519.43932 C 388.24790,518.88937 391.07623,518.33941 \
393.90457,517.78946 C 395.39730,517.55377 396.89003,517.31807 398.38277,517.08237 C \
401.44679,515.03969 404.51082,512.99701 407.57485,510.95432 C 407.49629,510.64006 \
407.41771,510.32580 407.33915,510.01153 C 401.36822,510.48292 395.39730,510.95432 \
389.42637,511.42571 C 387.30512,511.81853 385.18387,512.21135 383.06263,512.60418 C \
379.13438,512.36849 375.20615,512.13279 371.27790,511.89710 C 369.78518,511.73997 \
368.29244,511.58284 366.79971,511.42571 C 364.44277,510.32580 362.08582,509.22589 \
359.72888,508.12598 C 376.54175,507.18320 396.89003,507.18320 415.11707,493.98432 C \
391.31192,502.15506 371.27790,500.19093 355.01499,497.99112 C 375.91322,494.06288 \
396.57577,  493.19867 417.00262,478.42849 C 387.38368,489.42756 366.24975,485.57788 \
349.35832,483.84946 C 371.51360,479.29269 403.56804,478.27136 414.40998,466.64376 C \
383.06263,474.89306 355.95776,473.47890 338.75207,469.47210 C 352.81517,467.58654 \
366.87827,465.70098 380.94137,463.81543 C 374.10624,463.18691 367.27110,462.55840 \
360.43596,461.92988 C 373.32059,459.73006 386.20522,457.53024 399.08985,455.33043 C \
381.88416,456.19465 346.53000,460.82997 319.89653,444.48849 C 323.66763,447.63108 \
328.61721,449.83090 331.20985,453.91627 C 327.28161,453.44487 323.35338,452.97349 \
319.42513,452.50210 C 319.66083,453.83770 319.89653,455.17330 320.13222,456.50890 C \
324.13902,459.02298 328.14582,461.53704 332.15263,464.05112 C 327.43875,466.25093 \
322.72485,468.45075 318.01096,470.65057 C 323.90332,472.53612 329.79568,474.42169 \
335.68805,476.30724 C 330.03138,478.66418 322.48915,476.30724 318.71804,483.37807 C \
325.55318,486.59923 335.21666,487.22774 339.22346,493.04154 C 333.33110,493.51293 \
326.73166,489.2  7043 321.54639,494.45571 C 327.67444,498.06968 333.80249,501.68367 \
339.93055,505.29765 C 336.55226,504.82626 333.17397,504.35487 329.79568,503.88348 C \
334.58814,509.30445 341.26727,513.37780 346.05972,518.79877 C 362.00838,520.29150 \
373.91416,521.51471 389.86281,523.00744 z " id="path6556" \
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" \
style="fill:#ffc080;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 410.63580,448.38806 C 375.91016,459.46570 347.07688,453.33765 \
330.49970,448.38806 C 332.54238,449.09515 334.58507,449.80223 336.62775,450.50931 C \
365.30391,460.56561 396.80839,453.41621 407.80747,450.27362 C 408.75025,449.64510 \
409.69303,449.01658 410.63580,448.38806 z " id="path7286" sodipodi:nodetypes="ccccc" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 431.22109,368.33927 C 427.74256,388.71364 424.26401,409.08801 \
420.78546,429.46237 C 416.60557,437.06563 407.94091,440.30372 400.07083,442.61238 C \
391.48668,445.18530 382.40444,445.05799 373.54205,444.61656 C 371.08048,446.38986 \
364.99205,442.92177 370.06503,441.81235 C 377.17154,440.98795 384.60188,442.10538 \
391.38552,439.26558 C 401.04319,435.47671 410.26670,429.97354 417.05844,422.00834 C \
421.19961,403.95301 425.34070,385.89766 429.48184,367.84233 C 430.06159,368.00798 \
430.64135,368.17360 431.22109,368.33927 z " id="path3629" \
style="fill:#ffffff;fill-opacity:0.64285713;fill-rule:evenodd;stroke:none;stroke-width \
                :1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 353.42087,428.84088 L 351.10708,419.00725 L 351.68553,378.22661 L \
353.13164,373.45440 L 353.05576,339.28565 L 349.95018,336.28751 L 349.37173,316.04336 \
C 363.86558,304.49563 376.56238,306.21837 388.70625,316.23514 L 388.12780,336.28907 L \
385.23556,339.18131 L 384.65711,373.58108 L 386.39245,378.21491 L 385.81401,427.68398 \
L 382.34331,429.99778 L 374.24503,428.84088 L 371.35278,425.37019 L \
366.14675,425.37019 L 360.94071,429.41933 L 353.42087,428.84088 z " id="path3619" \
sodipodi:nodetypes="ccccccccccccccccccc" \
style="fill:#c1c1c1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#9b989f;stroke-wid \
                th:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 358.25832,325.31572 L 358.25832,416.41507" id="path5096" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width \
                :0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 380.15345,325.31572 L 380.15345,416.41507" id="path5824" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width \
                :0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 361.91098,325.31572 L 361.91098,416.41507" id="path5826" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f8f92;stroke-width \
                :0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 376.52161,325.31572 L 376.52161,416.41507" id="path6554" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f8f92;stroke-width \
                :0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <g id="g9475" transform="matrix(0.911601,0.000000,0.000000,0.911601,328.5961,-156.2531)">
                
-      <path d="M 86.864034,673.56687 L 79.199560,676.97330 L 77.155700,678.67652 L \
75.793127,679.69845 L 65.573829,679.35780 L 65.403508,678.33587 L 70.683478,676.97330 \
C 70.683478,676.97330 74.430554,676.63266 75.111841,676.46234 C 75.793127,676.29201 \
78.688595,674.92944 78.688595,674.92944 L 84.649852,671.52301 L 87.034355,671.52301 L \
86.864034,673.56687 z " id="path8741" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-      <path d="M 91.973683,686.34099 L 88.056285,686.17067 L 85.331139,687.53324 L \
81.073098,689.23646 L 77.836987,691.45064 L 75.111841,692.30225 L 70.853800,692.64289 \
L 69.320905,693.15386 L 71.024122,693.83514 L 75.963449,693.83514 L \
80.221490,694.51643 L 83.627923,693.83514 L 87.545320,690.42871 C 87.545320,690.42871 \
90.270466,689.23646 90.951753,688.89581 C 91.633039,688.55517 93.165934,687.87388 \
93.165934,687.87388 L 91.973683,686.34099 z " id="path8743" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-      <path d="M 94.017542,700.30736 L 89.078215,703.03251 L 85.842104,705.07637 L \
83.457601,706.94991 L 77.836987,708.14216 L 75.622806,708.14216 L 81.584063,710.01570 \
L 86.353069,707.97184 L 91.292396,705.58733 L 92.825291,704.05444 L \
94.017542,700.30736 z " id="path8745" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-      <path d="M 91.462718,717.85049 C 91.462718,717.85049 81.924706,721.59757 \
81.584063,722.27885 C 81.243420,722.96014 78.688595,723.98207 78.688595,723.98207 L \
72.897660,724.66336 L 71.024122,725.68529 L 76.644736,726.36657 L 82.435671,724.49304 \
L 86.693712,724.32271 L 89.929823,722.10853 L 91.462718,720.40532 L \
91.462718,717.85049 z " id="path8747" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
                1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    </g>
-    <path d="M 378.14273,525.28637 C 377.57434,530.51553 378.00099,537.83204 \
377.43261,543.06120 C 372.27918,543.00443 367.82875,543.82657 360.97078,541.72320 C \
359.43614,536.89190 356.80919,529.30796 355.27454,524.47667 C 356.26507,524.72572 \
356.68741,524.86790 357.82038,524.93742 C 358.95335,525.00694 360.79692,524.96593 \
361.90337,525.03791 C 363.00981,525.10990 364.25012,525.06768 365.31257,525.13480 C \
366.37503,525.20191 367.41113,525.22689 368.41214,525.28180 C 369.41314,525.33669 \
370.37905,525.38365 371.30113,525.41898 C 372.22321,525.45432 374.35115,525.55378 \
375.17683,525.56221 C 376.00251,525.57065 375.56381,525.48806 376.27564,525.46225 C \
376.98745,525.43643 377.56225,525.35378 378.14273,525.28637 z " id="path10207" \
sodipodi:nodetypes="ccccsssssssc" \
style="fill:#ffffff;fill-opacity:0.31547615;fill-rule:evenodd;stroke:none;stroke-width \
                :1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
                
-    <path d="M 467.06377,199.37552 L 453.69293,208.53364 L 451.86130,221.53816 L \
468.71223,214.21167 L 467.06377,199.37552 z " id="path16869" \
style="fill:#fefefe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity \
:1.0000000;color:#000000;marker:none;marker-start:none;marker-mid:none;marker-end:none \
;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible"/>
                
-  </g>
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg height="1052.3622047" \
id="svg2" inkscape:version="0.42.2" sodipodi:docbase="/home/sergio/tmp/downloads" \
sodipodi:docname="lamp.svg" sodipodi:version="0.32" width="744.09448819" \
xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" \
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" \
xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +  \
<metadata> +    <rdf:RDF xmlns:cc="http://web.resource.org/cc/" \
xmlns:dc="http://purl.org/dc/elements/1.1/" \
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> +      <cc:Work \
rdf:about=""> +        <dc:title>lamp</dc:title>
+        <dc:description></dc:description>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>office</rdf:li>
+            <rdf:li></rdf:li>
+            <rdf:li>lamp</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent rdf:about="http://www.openclipart.org/">
+            <dc:title>Open Clip Art Library</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Sergio Luiz Araujo Silva</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Public Domain</dc:title>
+          </cc:Agent>
+        </dc:rights>
+        <dc:date>set 2005</dc:date>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+        <dc:language>en</dc:language>
+      </cc:Work>
+      <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <defs id="defs4">
+    <linearGradient id="linearGradient13125">
+      <stop id="stop13127" offset="0.0000000" \
style="stop-color:#ffffff;stop-opacity:1.0000000;"/> +      <stop id="stop13129" \
offset="1" style="stop-color:#fffeff;stop-opacity:0;"/> +    </linearGradient>
+    <linearGradient id="linearGradient12389">
+      <stop id="stop12391" offset="0.0000000" \
style="stop-color:#fefefe;stop-opacity:1.0000000;"/> +      <stop id="stop12393" \
offset="1.0000000" style="stop-color:#fffefe;stop-opacity:1.0000000;"/> +    \
</linearGradient> +    <radialGradient cx="358.25909" cy="186.06468" fx="358.25909" \
fy="186.06468" gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient13131" inkscape:collect="always" \
r="27.486719" xlink:href="#linearGradient13125"/> +    <radialGradient cx="358.25909" \
cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient14587" inkscape:collect="always" \
r="27.486719" xlink:href="#linearGradient13125"/> +    <radialGradient cx="358.25909" \
cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient15390" inkscape:collect="always" \
r="27.486719" xlink:href="#linearGradient13125"/> +    <radialGradient cx="358.25909" \
cy="186.06468" fx="358.25909" fy="186.06468" \
gradientTransform="matrix(1.000001,-8.244061e-7,3.143917e-7,0.381356,-4.028738e-4,115.1081)" \
gradientUnits="userSpaceOnUse" id="radialGradient16141" inkscape:collect="always" \
r="27.486719" xlink:href="#linearGradient13125"/> +  </defs>
+  <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" \
inkscape:current-layer="layer1" inkscape:cx="344.34505" inkscape:cy="795.78292" \
inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" \
inkscape:pageshadow="2" inkscape:window-height="693" inkscape:window-width="1024" \
inkscape:window-x="0" inkscape:window-y="25" inkscape:zoom="0.72123084" \
pagecolor="#ffffff" showguides="true"/> +  <g id="layer1" inkscape:groupmode="layer" \
inkscape:label="Layer 1"> +    <path d="M 369.44028,121.86683 C 302.64703,119.68096 \
242.59223,184.30679 250.47188,250.87980 C 252.47522,280.21980 267.84094,306.49880 \
285.94332,328.82253 C 303.71281,358.65039 312.13900,393.24133 313.51068,427.73030 C \
317.00419,446.97288 338.01608,454.57063 355.35334,455.26572 C 375.18456,456.91501 \
395.94281,455.09265 414.43470,447.69729 C 430.92724,435.70557 427.37713,413.20597 \
430.74488,395.55648 C 434.70351,361.57615 449.78002,329.76555 471.07843,303.26619 C \
504.41026,252.31528 488.56419,176.76397 437.75400,143.26422 C 417.82956,129.49394 \
393.70573,121.69096 369.44028,121.86683 z " id="path1384" \
style="opacity:1.0000000;fill:#f3f2f3;fill-opacity:0.83333331;stroke:#000000;stroke-wi \
dth:0.58960420;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
 +    <path d="M 425.72698,154.07768 C 437.68158,164.87540 453.68534,182.03604 \
451.17873,203.82428 C 455.99913,200.54641 460.81954,197.26853 465.63995,193.99066 C \
459.85546,170.27425 448.28648,162.75442 425.72698,154.07768 z " id="path2153" \
sodipodi:nodetypes="cccc" \
style="fill:#fefefe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 506.99897 296.94009 A 37.120701 18.718985 0 1 1  432.75756,296.94009 A \
37.120701 18.718985 0 1 1  506.99897 296.94009 z" id="path2881" \
sodipodi:cx="469.87827" sodipodi:cy="296.94009" sodipodi:rx="37.120701" \
sodipodi:ry="18.718985" sodipodi:type="arc" \
style="opacity:1.0000000;color:#000000;fill:#fefefe;fill-opacity:1.0000000;fill-rule:n \
onzero;stroke:none;stroke-width:0.64700001;stroke-linecap:butt;stroke-linejoin:miter;m \
arker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.00000 \
00;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" \
transform="matrix(0.818103,0.000000,0.000000,0.896150,-13.89510,-26.68653)"/> +    \
<path d="M 359.20536,314.30802 L 336.64585,244.31570 C 362.29042,230.62575 \
382.72895,234.28926 403.16748,243.15881 L 379.45107,315.46491 L 379.45107,315.46491" \
id="path3617" sodipodi:nodetypes="ccccc" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f9595;stroke-width \
:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> + \
<path d="M 513.73605 514.32300 A 52.508934 11.885468 0 1 1  408.71818,514.32300 A \
52.508934 11.885468 0 1 1  513.73605 514.32300 z" id="path4361" \
sodipodi:cx="461.22711" sodipodi:cy="514.32300" sodipodi:rx="52.508934" \
sodipodi:ry="11.885468" sodipodi:type="arc" \
style="opacity:1.0000000;color:#000000;fill:#a0a0a0;fill-opacity:1.0000000;fill-rule:n \
onzero;stroke:none;stroke-width:0.64700001;stroke-linecap:butt;stroke-linejoin:miter;m \
arker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.00000 \
00;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" \
transform="matrix(0.982435,0.000000,0.000000,1.387810,-83.52495,-281.2705)"/> +    \
<path d="M 315.87677,433.07959 C 319.14672,442.90428 329.03398,448.82383 \
338.76816,450.68840 C 362.00206,456.37952 386.74882,455.38004 409.63484,448.57985 C \
414.28840,447.19363 419.18392,445.42184 422.06530,441.25295 C 423.42527,439.84003 \
425.68582,434.46169 424.07088,434.30126 C 411.81432,444.17256 395.75685,447.78808 \
380.34111,448.56322 C 362.85475,449.05661 344.64886,448.26521 328.51659,440.79114 C \
324.02706,438.71576 319.76022,436.14612 315.87677,433.07959 z " id="path4363" \
style="fill:#d6dee6;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 400.47436,522.16227 C 396.48542,528.09177 392.49650,534.02126 \
388.50756,539.95076 C 383.93367,541.47295 366.98819,546.44954 353.57745,538.01018 C \
350.34318,532.29631 347.10892,526.58244 343.87465,520.86856 C 364.35835,531.64946 \
396.48542,523.99502 400.47436,522.16227 z " id="path5094" sodipodi:nodetypes="ccccc" \
style="fill:#090a0c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-wid \
th:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> \
+    <path d="M 419.65600,444.27781 C 419.97026,446.39906 420.28452,448.52031 \
420.59878,450.64156 C 421.46299,450.95582 422.32720,451.27008 423.19142,451.58434 C \
423.19142,452.91994 423.19142,454.25554 423.19142,455.59114 C 422.32720,455.98397 \
421.46299,456.37678 420.59878,456.76961 C 420.36308,459.20512 420.12739,461.64063 \
419.89170,464.07614 C 420.52021,464.23327 421.14873,464.39039 421.77725,464.54753 C \
421.69869,466.59021 421.62012,468.63289 421.54156,470.67558 C 420.83447,471.46123 \
420.12739,472.24688 419.42030,473.03253 C 419.57744,474.05387 419.73456,475.07522 \
419.89170,476.09656 C 420.91303,477.11790 421.93438,478.13925 422.95572,479.16058 C \
422.87716,480.18193 422.79859,481.20328 422.72003,482.22461 C 422.01294,483.01026 \
421.30586,483.79591 420.59878,484.58156 C 420.36308,485.05294 420.12739,485.52433 \
419.89170,485.99572 C 419.57744,486.70280 419.26317,487.40989 418.94892,488.11697 C \
419.10605,489.05975 419.26317,490.00253 419.42030,490.94531 C 419.89170,491.65239 \
420.36308,  492.35947 420.83447,493.06655 C 420.67734,494.71641 420.52021,496.36627 \
420.36308,498.01614 C 415.02067,505.24410 409.67827,512.47206 404.33587,519.70003 C \
403.15740,520.24998 401.97892,520.79994 400.80045,521.34989 C 397.81498,522.29266 \
394.82952,523.23544 391.84406,524.17822 C 386.34452,524.80674 380.84498,525.43525 \
375.34545,526.06378 C 371.96717,525.90664 368.58887,525.74952 365.21059,525.59238 C \
362.46082,525.51382 359.71105,525.43525 356.96128,525.35669 C 353.42587,524.49247 \
349.89045,523.62827 346.35503,522.76405 C 345.17656,521.82128 343.99809,520.87850 \
342.81962,519.93572 C 339.75559,517.81447 336.69157,515.69322 333.62754,513.57197 C \
328.75652,508.30813 323.88551,503.04429 319.01448,497.78044 C 319.01448,496.52341 \
319.01448,495.26636 319.01448,494.00933 C 319.87870,494.00933 320.74291,494.00933 \
321.60712,494.00933 C 321.13574,492.83086 320.66435,491.65239 320.19296,490.47392 C \
319.09305,488.19554 317.99314,485.91716 316.89323,483.63878 C 316.89323,482.93170 \
316.89323,482.2  2461 316.89323,481.51753 C 318.38597,480.26049 319.87869,479.00345 \
321.37143,477.74642 C 320.03583,475.54660 318.70022,473.34679 317.36462,471.14697 C \
317.28606,470.83271 317.20748,470.51845 317.12892,470.20419 C 318.46453,468.39720 \
319.80013,466.59021 321.13574,464.78322 C 320.74291,463.68331 320.35009,462.58341 \
319.95726,461.48350 C 319.09305,460.38359 318.22883,459.28369 317.36462,458.18378 C \
317.12892,457.31956 316.89323,456.45536 316.65753,455.59114 C 317.75744,454.17697 \
318.85735,452.76281 319.95726,451.34864 C 319.87870,450.01304 319.80013,448.67744 \
319.72157,447.34184 C 319.32874,446.71332 318.93592,446.08480 318.54310,445.45628 C \
318.62166,444.74920 318.70023,444.04212 318.77879,443.33503 C 319.48588,443.25647 \
320.19296,443.17790 320.90004,443.09934 C 324.04263,445.22059 327.18523,447.34184 \
330.32782,449.46309 C 348.08347,456.92674 391.76550,461.09068 419.65600,444.27781 z " \
id="path7284" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" \
style="fill:#fba2  46;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-w \
idth:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/>
 +    <path d="M 389.86281,523.00744 C 389.46998,521.82897 391.23336,522.26765 \
390.84054,521.08918 C 383.37688,521.01061 375.91323,520.93205 368.44957,520.85348 C \
368.44957,520.53923 368.44957,520.22496 368.44957,519.91070 C 374.10624,519.75357 \
379.76290,519.59645 385.41957,519.43932 C 388.24790,518.88937 391.07623,518.33941 \
393.90457,517.78946 C 395.39730,517.55377 396.89003,517.31807 398.38277,517.08237 C \
401.44679,515.03969 404.51082,512.99701 407.57485,510.95432 C 407.49629,510.64006 \
407.41771,510.32580 407.33915,510.01153 C 401.36822,510.48292 395.39730,510.95432 \
389.42637,511.42571 C 387.30512,511.81853 385.18387,512.21135 383.06263,512.60418 C \
379.13438,512.36849 375.20615,512.13279 371.27790,511.89710 C 369.78518,511.73997 \
368.29244,511.58284 366.79971,511.42571 C 364.44277,510.32580 362.08582,509.22589 \
359.72888,508.12598 C 376.54175,507.18320 396.89003,507.18320 415.11707,493.98432 C \
391.31192,502.15506 371.27790,500.19093 355.01499,497.99112 C 375.91322,494.06288 \
396.57577,  493.19867 417.00262,478.42849 C 387.38368,489.42756 366.24975,485.57788 \
349.35832,483.84946 C 371.51360,479.29269 403.56804,478.27136 414.40998,466.64376 C \
383.06263,474.89306 355.95776,473.47890 338.75207,469.47210 C 352.81517,467.58654 \
366.87827,465.70098 380.94137,463.81543 C 374.10624,463.18691 367.27110,462.55840 \
360.43596,461.92988 C 373.32059,459.73006 386.20522,457.53024 399.08985,455.33043 C \
381.88416,456.19465 346.53000,460.82997 319.89653,444.48849 C 323.66763,447.63108 \
328.61721,449.83090 331.20985,453.91627 C 327.28161,453.44487 323.35338,452.97349 \
319.42513,452.50210 C 319.66083,453.83770 319.89653,455.17330 320.13222,456.50890 C \
324.13902,459.02298 328.14582,461.53704 332.15263,464.05112 C 327.43875,466.25093 \
322.72485,468.45075 318.01096,470.65057 C 323.90332,472.53612 329.79568,474.42169 \
335.68805,476.30724 C 330.03138,478.66418 322.48915,476.30724 318.71804,483.37807 C \
325.55318,486.59923 335.21666,487.22774 339.22346,493.04154 C 333.33110,493.51293 \
326.73166,489.2  7043 321.54639,494.45571 C 327.67444,498.06968 333.80249,501.68367 \
339.93055,505.29765 C 336.55226,504.82626 333.17397,504.35487 329.79568,503.88348 C \
334.58814,509.30445 341.26727,513.37780 346.05972,518.79877 C 362.00838,520.29150 \
373.91416,521.51471 389.86281,523.00744 z " id="path6556" \
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" \
style="fill:#ffc080;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 410.63580,448.38806 C 375.91016,459.46570 347.07688,453.33765 \
330.49970,448.38806 C 332.54238,449.09515 334.58507,449.80223 336.62775,450.50931 C \
365.30391,460.56561 396.80839,453.41621 407.80747,450.27362 C 408.75025,449.64510 \
409.69303,449.01658 410.63580,448.38806 z " id="path7286" sodipodi:nodetypes="ccccc" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 431.22109,368.33927 C 427.74256,388.71364 424.26401,409.08801 \
420.78546,429.46237 C 416.60557,437.06563 407.94091,440.30372 400.07083,442.61238 C \
391.48668,445.18530 382.40444,445.05799 373.54205,444.61656 C 371.08048,446.38986 \
364.99205,442.92177 370.06503,441.81235 C 377.17154,440.98795 384.60188,442.10538 \
391.38552,439.26558 C 401.04319,435.47671 410.26670,429.97354 417.05844,422.00834 C \
421.19961,403.95301 425.34070,385.89766 429.48184,367.84233 C 430.06159,368.00798 \
430.64135,368.17360 431.22109,368.33927 z " id="path3629" \
style="fill:#ffffff;fill-opacity:0.64285713;fill-rule:evenodd;stroke:none;stroke-width \
:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +  \
<path d="M 353.42087,428.84088 L 351.10708,419.00725 L 351.68553,378.22661 L \
353.13164,373.45440 L 353.05576,339.28565 L 349.95018,336.28751 L 349.37173,316.04336 \
C 363.86558,304.49563 376.56238,306.21837 388.70625,316.23514 L 388.12780,336.28907 L \
385.23556,339.18131 L 384.65711,373.58108 L 386.39245,378.21491 L 385.81401,427.68398 \
L 382.34331,429.99778 L 374.24503,428.84088 L 371.35278,425.37019 L \
366.14675,425.37019 L 360.94071,429.41933 L 353.42087,428.84088 z " id="path3619" \
sodipodi:nodetypes="ccccccccccccccccccc" \
style="fill:#c1c1c1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#9b989f;stroke-wid \
th:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> \
+    <path d="M 358.25832,325.31572 L 358.25832,416.41507" id="path5096" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width \
:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> + \
<path d="M 380.15345,325.31572 L 380.15345,416.41507" id="path5824" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width \
:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> + \
<path d="M 361.91098,325.31572 L 361.91098,416.41507" id="path5826" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f8f92;stroke-width \
:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> + \
<path d="M 376.52161,325.31572 L 376.52161,416.41507" id="path6554" \
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#8f8f92;stroke-width \
:0.91160071px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> + \
<g id="g9475" transform="matrix(0.911601,0.000000,0.000000,0.911601,328.5961,-156.2531)">
 +      <path d="M 86.864034,673.56687 L 79.199560,676.97330 L 77.155700,678.67652 L \
75.793127,679.69845 L 65.573829,679.35780 L 65.403508,678.33587 L 70.683478,676.97330 \
C 70.683478,676.97330 74.430554,676.63266 75.111841,676.46234 C 75.793127,676.29201 \
78.688595,674.92944 78.688595,674.92944 L 84.649852,671.52301 L 87.034355,671.52301 L \
86.864034,673.56687 z " id="path8741" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 91.973683,686.34099 L 88.056285,686.17067 L 85.331139,687.53324 L \
81.073098,689.23646 L 77.836987,691.45064 L 75.111841,692.30225 L 70.853800,692.64289 \
L 69.320905,693.15386 L 71.024122,693.83514 L 75.963449,693.83514 L \
80.221490,694.51643 L 83.627923,693.83514 L 87.545320,690.42871 C 87.545320,690.42871 \
90.270466,689.23646 90.951753,688.89581 C 91.633039,688.55517 93.165934,687.87388 \
93.165934,687.87388 L 91.973683,686.34099 z " id="path8743" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 94.017542,700.30736 L 89.078215,703.03251 L 85.842104,705.07637 L \
83.457601,706.94991 L 77.836987,708.14216 L 75.622806,708.14216 L 81.584063,710.01570 \
L 86.353069,707.97184 L 91.292396,705.58733 L 92.825291,704.05444 L \
94.017542,700.30736 z " id="path8745" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
<path d="M 91.462718,717.85049 C 91.462718,717.85049 81.924706,721.59757 \
81.584063,722.27885 C 81.243420,722.96014 78.688595,723.98207 78.688595,723.98207 L \
72.897660,724.66336 L 71.024122,725.68529 L 76.644736,726.36657 L 82.435671,724.49304 \
L 86.693712,724.32271 L 89.929823,722.10853 L 91.462718,720.40532 L \
91.462718,717.85049 z " id="path8747" \
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"/> +   \
</g> +    <path d="M 378.14273,525.28637 C 377.57434,530.51553 378.00099,537.83204 \
377.43261,543.06120 C 372.27918,543.00443 367.82875,543.82657 360.97078,541.72320 C \
359.43614,536.89190 356.80919,529.30796 355.27454,524.47667 C 356.26507,524.72572 \
356.68741,524.86790 357.82038,524.93742 C 358.95335,525.00694 360.79692,524.96593 \
361.90337,525.03791 C 363.00981,525.10990 364.25012,525.06768 365.31257,525.13480 C \
366.37503,525.20191 367.41113,525.22689 368.41214,525.28180 C 369.41314,525.33669 \
370.37905,525.38365 371.30113,525.41898 C 372.22321,525.45432 374.35115,525.55378 \
375.17683,525.56221 C 376.00251,525.57065 375.56381,525.48806 376.27564,525.46225 C \
376.98745,525.43643 377.56225,525.35378 378.14273,525.28637 z " id="path10207" \
+    <path d="M 467.06377,199.37552 L 453.69293,208.53364 L 451.86130,221.53816 L \
468.71223,214.21167 L 467.06377,199.37552 z " id="path16869" \
style="fill:#fefefe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width: \
1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;opacity \
:1.0000000;color:#000000;marker:none;marker-start:none;marker-mid:none;marker-end:none \
;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0;visibility:visible;display:inline;overflow:visible"/>
 +  </g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/up.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/up.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/up.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:none;stroke:none;">
-	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
                
-	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st3 "stroke:none;">
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_3" style="&st2;">
-		<g>
-			<path style="&st1;" \
d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0. \
1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
                
-			<path style="&st3;" \
d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0. \
1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
                
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st2;">
-		<path style="&st0;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:none;stroke:none;">
+	<!ENTITY st1 "fill:#FFFFFF;stroke:#FFFFFF;stroke-width:7.5901;stroke-linejoin:round;">
 +	<!ENTITY st2 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st3 "stroke:none;">
+]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_3" style="&st2;">
+		<g>
+			<path style="&st1;" \
d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0. \
1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
 +			<path style="&st3;" \
d="M41.1,25.6c0.3,0,0.3-0.3,0.2-0.5L24.4,8.4c-0.5-0.5-0.7-0.4-1,0L6.7,25.1c-0.1,0.1-0. \
1,0.4,0.1,0.4h10v13.6c0,0.3,0.2,0.5,0.4,0.5l13.3,0c0.3,0,0.5-0.2,0.5-0.5V25.5l10.1,0.1z"/>
 +		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st2;">
+		<path style="&st0;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/doc/html/images/warning.svg
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/doc/html/images/warning.svg	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/doc/html/images/warning.svg	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
-<!DOCTYPE svg [
-	<!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;">
                
-	<!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
                
-	<!ENTITY st2 "fill:none;stroke:none;">
-	<!ENTITY st3 "fill:#000000;">
-	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
-	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
                
-]>
-<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
                xmlns="http://www.w3.org/2000/svg">
-	<g id="Layer_x0020_4" style="&st1;">
-		<g style="&st4;">
-			<path style="&st0;" \
                d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
                
-			<path style="&st3;" \
                d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
                
-			<path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/>
-			<path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/>
-		</g>
-	</g>
-	<g id="crop_x0020_marks" style="&st5;">
-		<path style="&st2;" d="M48,48H0V0h48v48z"/>
-	</g>
-</svg>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In  -->
+<!DOCTYPE svg [
+	<!ENTITY st0 "fill:#000000;stroke:#FFFFFF;stroke-width:7.9139;stroke-linejoin:round;">
 +	<!ENTITY st1 "fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#000000;stroke-miterlimit:4;">
 +	<!ENTITY st2 "fill:none;stroke:none;">
+	<!ENTITY st3 "fill:#000000;">
+	<!ENTITY st4 "fill-rule:evenodd;clip-rule:evenodd;stroke:none;">
+	<!ENTITY st5 "fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
 +]>
+<svg  width="48pt" height="48pt" viewBox="0 0 48 48" xml:space="preserve" \
xmlns="http://www.w3.org/2000/svg"> +	<g id="Layer_x0020_4" style="&st1;">
+		<g style="&st4;">
+			<path style="&st0;" \
d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/> +			<path \
style="&st3;" d="M16.4,42.3L5.7,31.6V16.4L16.4,5.7h15.2l10.7,10.7v15.2L31.6,42.3H16.4z"/>
 +			<path d="M11.7,17.7l18.7,18.7l5.9-5.9L17.6,11.7l-5.9,5.9z"/>
+			<path d="M11.7,30.5l5.9,5.9l18.7-18.7l-5.9-5.9L11.7,30.5z"/>
+		</g>
+	</g>
+	<g id="crop_x0020_marks" style="&st5;">
+		<path style="&st2;" d="M48,48H0V0h48v48z"/>
+	</g>
+</svg>

Modified: trunk/Thirdparty/boost/tools/auto_index/src/auto_index.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/auto_index/src/auto_index.cpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/auto_index/src/auto_index.cpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -590,6 +590,8 @@
                         preferred_term = true;
                      }
                      parent = parent->parent.lock();
+                     if(!parent)
+                        break;
                   }
                }
                catch(const std::exception&){}

Modified: trunk/Thirdparty/boost/tools/bcp/add_dependent_lib.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/bcp/add_dependent_lib.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/bcp/add_dependent_lib.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -81,7 +81,7 @@
                "\\("
                   "[^\\(\\);{}]*"          // argument list
                "\\)"
-               "\\s*"
+               "\\s*(?:BOOST[_A-Z]+\\s*)?"
                "\\{"                       // start of definition
             "|"
                "(\\<\\w+\\>)"              // Maybe class name
@@ -93,7 +93,7 @@
                "\\("
                   "[^\\(\\);{}]*"          // argument list
                "\\)"
-               "\\s*"
+               "\\s*(?:BOOST[_A-Z]+\\s*)?"
                "\\{"                       // start of definition
             ")"                            // end branch reset
             );
@@ -135,7 +135,7 @@
          "\\<(?!return)\\w+\\>[^:;{}#=<>!~%.\\w]*(";
          // List of function names goes here...
       const char* e3 = 
-         ")\\s*\\([^;()]*\\)\\s*;)";
+         ")\\s*\\([^;()]*\\)\\s*(?:BOOST[_A-Z]+\\s*)?;)";
 
       std::string class_name_list;
       std::set<std::string>::const_iterator i = class_names[libname].begin(), j = \
class_names[libname].end();

Modified: trunk/Thirdparty/boost/tools/bcp/add_path.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/bcp/add_path.cpp	2015-12-10 12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/bcp/add_path.cpp	2015-12-10 12:37:00 UTC (rev 7425)
@@ -193,6 +193,14 @@
    //
 static const std::pair<fs::path, fs::path>
    specials[] = {
+      std::pair<fs::path, fs::path>("boost/atomic/capabilities.hpp", \
"boost/atomic/detail"), +      std::pair<fs::path, \
fs::path>("boost/chrono/chrono.hpp", "libs/chrono/src"), +      std::pair<fs::path, \
fs::path>("boost/chrono/chrono.hpp", "libs/chrono/build"), +      std::pair<fs::path, \
fs::path>("boost/cerrno.hpp", "libs/system/build"), +      std::pair<fs::path, \
fs::path>("boost/cerrno.hpp", "libs/system/src"), +      std::pair<fs::path, \
fs::path>("libs/thread/build", "boost/system"), +      std::pair<fs::path, \
fs::path>("libs/thread/build", "boost/cerrno.hpp"), +      std::pair<fs::path, \
                fs::path>("libs/thread/build", "boost/chrono"),
       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"), @@ -202,22 +210,16 @@
       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"),
-      std::pair<fs::path, fs::path>("tools/build/allyourbase.jam", \
                "boost-build.jam"),
-      std::pair<fs::path, fs::path>("tools/build/v1/allyourbase.jam", "Jamrules"),
-      std::pair<fs::path, fs::path>("tools/build/v1/allyourbase.jam", \
                "project-root.jam"),
-      std::pair<fs::path, fs::path>("tools/build/v1/allyourbase.jam", \
                "boost-build.jam"),
-      std::pair<fs::path, fs::path>("tools/build/v2/boost-build.jam", "Jamrules"),
-      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>("tools/build/boost-build.jam", "Jamrules"), +      std::pair<fs::path, \
fs::path>("tools/build/boost-build.jam", "project-root.jam"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "boost-build.jam"), +    \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "Jamfile.v2"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "boostcpp.jam"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "bootstrap.bat"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "bootstrap.sh"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "Jamroot"), +      \
std::pair<fs::path, fs::path>("tools/build/boost-build.jam", "INSTALL"), +      \
                std::pair<fs::path, fs::path>("tools/build/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: trunk/Thirdparty/boost/tools/bcp/copy_path.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/bcp/copy_path.cpp	2015-12-10 12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/bcp/copy_path.cpp	2015-12-10 12:37:00 UTC (rev 7425)
@@ -151,7 +151,7 @@
          "|"
             "()boost(_asio_detail_posix_thread_function|_regex_free_static_mutex)"
          "|"
-            "()(lw_thread_routine|at_thread_exit|on_process_enter|on_process_exit|on_thread_enter|on_thread_exit|tss_cleanup_implemented)"
 +         "()\\<(lw_thread_routine|at_thread_exit|on_process_enter|on_process_exit|on_thread_enter|on_thread_exit|tss_cleanup_implemented)\\>"
  "|"
             "(BOOST_CLASS_REQUIRE4?[^;]*)boost((?:_\\w+)?\\s*,)"
          "|"

Modified: trunk/Thirdparty/boost/tools/bcp/scan_licence.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/bcp/scan_licence.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/bcp/scan_licence.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -1,8 +1,8 @@
 /*
  *
  * Copyright (c) 2003 Dr John Maddock
- * Use, modification and distribution is subject to the 
- * Boost Software License, Version 1.0. (See accompanying file 
+ * 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)
  *
  */
@@ -27,7 +27,7 @@
 {
   char last_char = '\0';
   while (start != v.begin() && context_lines >= 0) {
-    if ((*start == '\r') || (*start == '\n')
+    if (((*start == '\r') || (*start == '\n'))
         && ((last_char == *start) || ((last_char != '\r') && (last_char != '\n'))))
         --context_lines;
 
@@ -48,7 +48,7 @@
 {
   char last_char = '\0';
   while (end != v.end() && context_lines >= 0) {
-    if (*end == '\r' || *end == '\n'
+    if ((*end == '\r' || *end == '\n')
         && (last_char == *end || (last_char != '\r' && last_char != '\n')))
         --context_lines;
 
@@ -79,7 +79,7 @@
   return std::string(start_of_line, first_noncomment_char);
 }
 
-static std::string 
+static std::string
 html_escape(fileview::const_iterator first, fileview::const_iterator last)
 {
   std::string result;
@@ -110,7 +110,7 @@
    int author_count = 0;
    int nonbsl_author_count = 0;
    bool has_non_bsl_license = false;
-   fileview::const_iterator start_of_license = v.begin(), 
+   fileview::const_iterator start_of_license = v.begin(),
                             end_of_license = v.end();
    bool start_in_middle_of_line = false;
 
@@ -122,7 +122,7 @@
            start_of_license = m[0].first;
          end_of_license = m[0].second;
 
-         if (is_non_bsl_license(i) && i < licenses.second - 1) 
+         if (is_non_bsl_license(i) && i < licenses.second - 1)
            has_non_bsl_license = true;
 
          // add this license to the list:
@@ -137,9 +137,9 @@
          {
 #if 0
              // Not dealing with copyrights because we don't have the years
-            if ((*cpy)[0].first < start_of_license) 
+            if ((*cpy)[0].first < start_of_license)
               start_of_license = (*cpy)[0].first;
-            if ((*cpy)[0].second > end_of_license) 
+            if ((*cpy)[0].second > end_of_license)
               end_of_license = (*cpy)[0].second;
 #endif
 
@@ -161,7 +161,7 @@
                   m_author_data[name].insert(p);
                   ++author_count;
 
-                  // If this is not the Boost Software License (license 0), and the \
author hasn't given  +                  // If this is not the Boost Software License \
(license 0), and the author hasn't given  // blanket permission, note this for the \
report.  if (has_non_bsl_license
                       && m_bsl_authors.find(name) == m_bsl_authors.end()) {
@@ -199,12 +199,12 @@
 
    if (has_non_bsl_license) {
      bool converted = false;
-     if (nonbsl_author_count == 0 
+     if (nonbsl_author_count == 0
          && license_count == 1) {
        // Grab a few lines of context
-       fileview::const_iterator context_start = 
+       fileview::const_iterator context_start =
          context_before_license(v, start_of_license);
-       fileview::const_iterator context_end = 
+       fileview::const_iterator context_end =
          context_after_license(v, end_of_license);
 
        // TBD: For files that aren't C++ code, this will have to
@@ -213,14 +213,14 @@
 
        // Create enough information to permit manual verification of
        // the correctness of the transformation
-       std::string before_conversion = 
+       std::string before_conversion =
          html_escape(context_start, start_of_license);
        before_conversion += "<b>";
        before_conversion += html_escape(start_of_license, end_of_license);
        before_conversion += "</b>";
        before_conversion += html_escape(end_of_license, context_end);
 
-       std::string after_conversion = 
+       std::string after_conversion =
          html_escape(context_start, start_of_license);
        if (start_in_middle_of_line)
          after_conversion += '\n';
@@ -233,7 +233,7 @@
        after_conversion += "</b>";
        after_conversion += html_escape(end_of_license, context_end);
 
-       m_converted_to_bsl[p] = 
+       m_converted_to_bsl[p] =
          std::make_pair(before_conversion, after_conversion);
 
        // Perform the actual conversion

Modified: trunk/Thirdparty/boost/tools/boostbook/doc/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/doc/Jamfile.v2	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/doc/Jamfile.v2	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -4,7 +4,7 @@
 #   (See accompanying file LICENSE_1_0.txt or copy at
 #   http://www.boost.org/LICENSE_1_0.txt)
 
-project boost/doc ;
+project boostbook/doc ;
 import boostbook : boostbook ;
 
 boostbook boostbook : boostbook.xml :

Modified: trunk/Thirdparty/boost/tools/boostbook/doc/boostbook.xml
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/doc/boostbook.xml	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/doc/boostbook.xml	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -9,7 +9,7 @@
 <!DOCTYPE part PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
   "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
 <part xmlns:xi="http://www.w3.org/2001/XInclude" id="boostbook"
-     last-revision="$Date: 2010-07-19 16:29:09 -0700 (Mon, 19 Jul 2010) $">
+     last-revision="$Date$">
   <partinfo>
     <author>
       <firstname>Douglas</firstname>
@@ -140,9 +140,9 @@
       happen in the BBv2 user configuration file,
       <filename>user-config.jam</filename>. If you do not have a copy
       of this file in your home directory, you should copy the one
-      that resides in <code>tools/build/v2</code> to your home
+      that resides in <code>tools/build/</code> to your home
       directory. Alternatively, you can edit
-      <filename>tools/build/v2/user-config.jam</filename> directly or
+      <filename>tools/build/user-config.jam</filename> directly or
       a site-wide <filename>site-config.jam</filename> file.</para>
 
       <section id="boostbook.setup.xsltproc">

Modified: trunk/Thirdparty/boost/tools/boostbook/doc/documenting.xml
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/doc/documenting.xml	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/doc/documenting.xml	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -9,7 +9,7 @@
 <!DOCTYPE chapter PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
   "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
 <chapter xmlns:xi="http://www.w3.org/2001/XInclude" id="boostbook.documenting"
-         last-revision="$Date: 2008-07-12 12:30:45 -0700 (Sat, 12 Jul 2008) $">
+         last-revision="$Date$">
   <title>Documenting libraries</title>
     
   <para>BoostBook is an extension to <ulink
@@ -40,7 +40,7 @@
 &lt;!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
   "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"&gt;
 &lt;library name="Any" dirname="any" xmlns:xi="http://www.w3.org/2001/XInclude"
-  id="any" last-revision="$Date: 2008-07-12 12:30:45 -0700 (Sat, 12 Jul 2008) $"&gt;
+  id="any" last-revision="$Date$"&gt;
   &lt;libraryinfo&gt;
     &lt;author&gt;
       &lt;firstname&gt;Kevlin&lt;/firstname&gt;
@@ -99,7 +99,7 @@
       <varlistentry>
         <term><code>last-revision</code></term>
         <listitem>
-          <simpara>Always set to <code>$Date: 2008-07-12 12:30:45 -0700 (Sat, 12 Jul \
2008) $</code>, which is +          <simpara>Always set to <code>$Date$</code>, which \
is  expanded by CVS to include the date and time that the file
           was last modified.</simpara>
         </listitem>

Modified: trunk/Thirdparty/boost/tools/boostbook/doc/reference.xml
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/doc/reference.xml	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/doc/reference.xml	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -36,7 +36,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -140,7 +140,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -176,7 +176,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -218,7 +218,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -258,7 +258,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -294,7 +294,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' \
if the parameter is a parameter pack.</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -340,7 +340,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -378,7 +378,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -441,7 +441,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -481,7 +481,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -516,7 +516,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -555,7 +555,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>access</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
access specifier ("public", "private", or "protected") of the \
inheritance.</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' \
if this is a pack exapansion.</entry></row> @@ -599,7 +599,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -717,7 +717,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -754,7 +754,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>alt</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  </tbody>
@@ -789,7 +789,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -863,7 +863,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>cv</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>cv-qualifiers \
for this method, e.g., const volatile</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row> @@ -939,7 +939,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -991,7 +991,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1050,7 +1050,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>alt</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  </tbody>
@@ -1085,7 +1085,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1129,7 +1129,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>alt</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1165,7 +1165,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1201,7 +1201,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1236,7 +1236,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -1273,7 +1273,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1308,7 +1308,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1344,7 +1344,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1379,7 +1379,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' \
if this is a pack exapansion.</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1415,7 +1415,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>alt</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  </tbody>
@@ -1450,7 +1450,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1528,7 +1528,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1563,7 +1563,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1598,7 +1598,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -1668,7 +1668,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1712,7 +1712,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>cv</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>cv-qualifiers \
for this method, e.g., const volatile</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -1783,7 +1783,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1852,7 +1852,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1887,7 +1887,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -1965,7 +1965,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>cv</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>cv-qualifiers \
for this method, e.g., const volatile</entry></row>  \
<row><entry>specifiers</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>The \
specifiers for this function, e.g., inline, static, etc.</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -2007,7 +2007,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2046,7 +2046,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the access specification, e.g. "public", "private", or "protected".</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  </tbody>
@@ -2126,7 +2126,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2165,7 +2165,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2201,7 +2201,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2236,7 +2236,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2277,7 +2277,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2346,7 +2346,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2381,7 +2381,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2416,7 +2416,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>pack</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set to '1' \
if the parameter is a parameter pack.</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row> @@ -2453,7 +2453,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>dirname</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry/></row> \
<row><entry>url</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row> @@ -2497,7 +2497,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2532,7 +2532,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2568,7 +2568,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>alt</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry/></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  </tbody>
@@ -2603,7 +2603,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2639,7 +2639,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2692,7 +2692,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2728,7 +2728,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2763,7 +2763,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2798,7 +2798,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2833,7 +2833,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2868,7 +2868,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>
@@ -2903,7 +2903,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>name</entry><entry>#REQUIRED</entry><entry>CDATA</entry><entry>The name \
of the element being declared to referenced</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row> @@ -2939,7 +2939,7 @@
           </thead>
           <tbody>
 
-<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date: 2009-10-10 07:53:46 -0700 (Sat, 10 Oct 2009) $ to keep "last revised" \
information in sync with CVS changes</entry></row> \
+<row><entry>last-revision</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Set \
to $Date$ to keep "last revised" information in sync with CVS changes</entry></row>  \
<row><entry>id</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>A global \
identifier for this element</entry></row>  \
<row><entry>xml:base</entry><entry>#IMPLIED</entry><entry>CDATA</entry><entry>Implementation \
detail used by XIncludes</entry></row>  </tbody>

Modified: trunk/Thirdparty/boost/tools/boostbook/doc/together.xml
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/doc/together.xml	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/doc/together.xml	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -9,7 +9,7 @@
 <!DOCTYPE chapter PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
   "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
 <chapter xmlns:xi="http://www.w3.org/2001/XInclude" id="boostbook.together"
-         last-revision="$Date: 2009-04-15 00:37:45 -0700 (Wed, 15 Apr 2009) $">
+         last-revision="$Date$">
   <title>Bringing Together a BoostBook Document</title>
 
   <section id="boostbook.linking">

Modified: trunk/Thirdparty/boost/tools/boostbook/dtd/1.1/boostbook.dtd
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/dtd/1.1/boostbook.dtd	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/dtd/1.1/boostbook.dtd	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -16,8 +16,8 @@
    PUBLIC "-//Boost//DTD BoostBook XML V1.1//EN"
    SYSTEM "http://www.boost.org/tools/boostbook/dtd/1.1/boostbook.dtd"
 
-   $Revision: 55188 $
-   $Date: 2009-07-26 13:11:03 -0700 (Sun, 26 Jul 2009) $
+   $Revision$
+   $Date$
 -->
 
 <!--========== Define XInclude features. ==========-->

Modified: trunk/Thirdparty/boost/tools/boostbook/dtd/boostbook.dtd
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/dtd/boostbook.dtd	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/dtd/boostbook.dtd	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -16,8 +16,8 @@
    PUBLIC "-//Boost//DTD BoostBook XML V1.1//EN"
    SYSTEM "http://www.boost.org/tools/boostbook/dtd/1.1/boostbook.dtd"
 
-   $Revision: 51774 $
-   $Date: 2009-03-14 04:42:38 -0700 (Sat, 14 Mar 2009) $
+   $Revision$
+   $Date$
 -->
 
 <!--========== Define XInclude features. ==========-->

Modified: trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.py
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.py	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.py	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -242,8 +242,8 @@
         JAM_CONFIG_IN_TEMP="yes"
         print "    Updating Boost.Jam configuration in %s... " % JAM_CONFIG_OUT
         return JAM_CONFIG_OUT
-    elif os.environ.has_key( "BOOST_ROOT" ) and os.path.exists( os.path.join( \
                os.environ[ "BOOST_ROOT" ], "tools/build/v2/user-config.jam" ) ):
-        JAM_CONFIG_IN=os.path.join( os.environ[ "BOOST_ROOT" ], \
"tools/build/v2/user-config.jam" ) +    elif os.environ.has_key( "BOOST_ROOT" ) and \
os.path.exists( os.path.join( os.environ[ "BOOST_ROOT" ], \
"tools/build/user-config.jam" ) ): +        JAM_CONFIG_IN=os.path.join( os.environ[ \
                "BOOST_ROOT" ], "tools/build/user-config.jam" )
         print "    Found user-config.jam in BOOST_ROOT directory (%s)" % \
JAM_CONFIG_IN  JAM_CONFIG_IN_TEMP="no"
         print "    Writing Boost.Jam configuration to %s... " % JAM_CONFIG_OUT
@@ -286,7 +286,7 @@
 
     print "done."
 
-    print "Done! Execute \"bjam --v2\" in a documentation directory to generate"
+    print "Done! Execute \"b2\" in a documentation directory to generate"
     print "documentation with BoostBook. If you have not already, you will need"
     print "to compile Boost.Jam."
 

Modified: trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.sh
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.sh	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/setup_boostbook.sh	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -129,8 +129,8 @@
   JAM_CONFIG_IN_TEMP="yes"
   echo -n "Updating Boost.Jam configuration in $JAM_CONFIG_OUT... "
 
-elif test -r "$BOOST_ROOT/tools/build/v2/user-config.jam"; then
-  JAM_CONFIG_IN="$BOOST_ROOT/tools/build/v2/user-config.jam";
+elif test -r "$BOOST_ROOT/tools/build/user-config.jam"; then
+  JAM_CONFIG_IN="$BOOST_ROOT/tools/build/user-config.jam";
   JAM_CONFIG_IN_TEMP="no"
   echo -n "Writing Boost.Jam configuration to $JAM_CONFIG_OUT... "
 else
@@ -176,6 +176,6 @@
 rm -f setup_boostbook.awk
 echo "done."
 
-echo "Done! Execute \"bjam --v2\" in a documentation directory to generate"
+echo "Done! Execute \"b2\" in a documentation directory to generate"
 echo "documentation with BoostBook. If you have not already, you will need"
 echo "to compile Boost.Jam."

Modified: trunk/Thirdparty/boost/tools/boostbook/test/doxygen/autodoc.gold
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/test/doxygen/autodoc.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/test/doxygen/autodoc.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,12 +1,60 @@
 <?xml version="1.0" standalone="yes"?>
-<library-reference id="example_reference"><title>Example Reference</title><header \
name="boost/example.hpp"><namespace name="example"><class \
name="example"><purpose>Documentation for class example. </purpose><class \
name="inner_class"><data-member name="x"><type>int</type></data-member></class><enum \
name="class_enum"><enumvalue name="enumerator"/></enum><typedef \
name="documented_type1"><description><para>This type has documentation. \
</para></description><type>int</type></typedef><typedef \
name="documented_type2"><purpose>This type has documentation. \
</purpose><type>long</type></typedef><typedef \
name="documented_type3"><description><para>This type has documentation. \
</para></description><type>long double</type></typedef><typedef \
name="undocumented_type1"><type>short</type></typedef><typedef \
name="undocumented_type2"><type>double</type></typedef><data-member \
name="integer"><type>int</type></data-member><data-member name="mutable_integer" \
specifiers="mutable"><type>int</type></data-member  ><data-member \
name="const_integer"><type>const int</type></data-member><data-member \
name="static_integer" specifiers="static"><type>int</type></data-member><data-member \
name="static_const_integer" specifiers="static"><type>const \
int</type></data-member><method-group name="public member functions"><method \
name="conversion-operator" cv="" \
specifiers="explicit"><type>int</type></method></method-group><constructor cv="= \
default"><parameter name=""><paramtype><classname>example</classname> const \
&amp;</paramtype></parameter></constructor><copy-assignment cv="= delete"><parameter \
name=""><paramtype><classname>example</classname> const \
&amp;</paramtype></parameter></copy-assignment></class><struct \
name="example_template"><template> +<library-reference \
id="example_reference"><title>Example Reference</title><header \
name="boost/example.hpp"> +<namespace name="example">
+<class name="example"><purpose>Documentation for class example. \
</purpose><description><para>Detailed documentation</para><para><programlisting \
language="c++">void class_code_sample(); +</programlisting> \
</para></description><class name="inner_class"><data-member \
name="x"><type>int</type></data-member> +</class><enum name="class_enum"><enumvalue \
name="enumerator"/></enum> +<typedef name="documented_type1"><description><para>This \
type has documentation. </para></description><type>int</type></typedef> +<typedef \
name="documented_type2"><purpose>This type has documentation. \
</purpose><type>long</type></typedef> +<typedef \
name="documented_type3"><description><para>This type has documentation. \
</para></description><type>long double</type></typedef> +<typedef \
name="undocumented_type1"><type>short</type></typedef> +<typedef \
name="undocumented_type2"><type>double</type></typedef> +<data-member \
name="integer"><type>int</type></data-member> +<data-member name="mutable_integer" \
specifiers="mutable"><type>int</type></data-member> +<data-member \
name="const_integer"><type>const int</type></data-member> +<data-member \
name="static_integer" specifiers="static"><type>int</type></data-member> \
+<data-member name="static_const_integer" specifiers="static"><type>const \
int</type></data-member> +<method-group name="public member functions">
+<method name="virtual_method" specifiers="virtual"><type>int</type></method>
+<method name="virtual_abstract_method" cv="= 0" \
specifiers="virtual"><type>int</type></method> +<method name="virtual_const_method" \
cv="const" specifiers="virtual"><type>int</type></method> +<method \
name="method_with_default_value"><type>int</type><parameter \
name=""><paramtype>int</paramtype><default>default_value</default></parameter></method>
 +<method name="method_with_fp"><type>int</type><parameter \
name="fp"><paramtype>int(*)()</paramtype></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="method_with_string_default1"><type>int</type><parameter name=""><paramtype>char \
*</paramtype><default>")"</default></parameter><parameter name=""><paramtype>volatile \
char</paramtype></parameter></method> +<method \
name="method_with_string_default2"><type>int</type><parameter name=""><paramtype>char \
*</paramtype><default>"("</default></parameter><parameter name=""><paramtype>volatile \
char</paramtype></parameter></method> +<method \
name="method_with_char_default1"><type>int</type><parameter \
name=""><paramtype>char</paramtype><default>'('</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="method_with_char_default2"><type>int</type><parameter \
name=""><paramtype>char</paramtype><default>')'</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="volatile_method_with_fp" cv="volatile"><type>int</type><parameter \
name="fp"><paramtype>int(*)()</paramtype></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="volatile_method_with_string_default1" cv="volatile"><type>int</type><parameter \
name=""><paramtype>char *</paramtype><default>")"</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="volatile_method_with_string_default2" cv="volatile"><type>int</type><parameter \
name=""><paramtype>char *</paramtype><default>"("</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="volatile_method_with_char_default1" cv="volatile"><type>int</type><parameter \
name=""><paramtype>char</paramtype><default>'('</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="volatile_method_with_char_default2" cv="volatile"><type>int</type><parameter \
name=""><paramtype>char</paramtype><default>')'</default></parameter><parameter \
name=""><paramtype>volatile char</paramtype></parameter></method> +<method \
name="const_method" cv="const"><type>void</type></method> +<method \
name="volatile_method" cv="volatile"><type>void</type></method> +<method \
name="trad_noexcept" cv="noexcept"><type>void</type></method> +<method \
name="trad_noexcept_if" cv="noexcept(a==b \
&amp;&amp;(c||d)))"><type>void</type></method> +<method name="boost_noexcept" \
cv="noexcept"><type>void</type></method> +<method name="boost_noexcept_if" \
cv="noexcept(condition)"><type>void</type></method> +<method name="trad_constexpr" \
cv="constexpr"><type>void</type></method> +<method name="boost_constexpr" \
cv="constexpr"><type>void</type></method> +<method name="boost_constexpr_or_const" \
cv="constexpr"><type>void</type></method> +<method name="constexpr_noexcept" \
cv="constexpr noexcept"><type>void</type></method> +<method \
name="conversion-operator" specifiers="explicit"><type>int</type></method> \
+</method-group> +<constructor cv="= default"><parameter \
name=""><paramtype><classname>example</classname> const \
&amp;</paramtype></parameter></constructor> +<copy-assignment cv="= \
delete"><type><classname>example</classname> &amp;</type><parameter \
name=""><paramtype><classname>example</classname> const \
&amp;</paramtype></parameter></copy-assignment> +<method-group name="public static \
functions"> +<method name="static_method" \
specifiers="static"><type>int</type></method> +<method name="static_constexpr" \
cv="constexpr" specifiers="static"><type>int</type></method> +</method-group>
+</class><struct name="example_template"><template>
       <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><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> \
+<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>
 <listitem><para>Arg2 second argument.</para></listitem>
 </itemizedlist>
@@ -15,19 +63,37 @@
 <listitem><para>Second list item</para></listitem>
 </itemizedlist>
 Line 1<sbr/>
- Line 2</para><para><programlisting>     void foo() {}
+ Line 2</para><para><programlisting language="c++">void foo() {}
 </programlisting></para><para>
 </para></description></struct><struct name="specialization_test"><template>
       <template-type-parameter name="T"/>
     </template></struct><struct-specialization name="specialization_test"><template>
       <template-type-parameter name="T"/>
-    </template><specialization><template-arg>T \
*</template-arg></specialization><method-group name="public member \
functions"/><constructor><description><para>A constructor. \
</para></description></constructor><destructor><description><para>A destructor. \
</para></description></destructor><copy-assignment cv=""><parameter \
name=""><paramtype>const <classname>specialization_test</classname> \
&amp;</paramtype></parameter><description><para>An assignment operator. \
</para></description></copy-assignment></struct-specialization><enum \
name="namespace_enum"><enumvalue name="enumerator"/></enum><data-member \
name="namespace_integer"><type>int</type></data-member><data-member \
name="namespace_static_integer" \
specifiers="static"><type>int</type></data-member><data-member \
name="namespace_const_integer"><type>const int</type></data-member><data-member \
name="namespace_static_const_integer" specifiers="static"><type>const \
int</type></data-member><function name="namespace_func"><type>int</type><parameter  \
name="i"><paramtype>int</paramtype><description><para>A function parameter \
</para></description></parameter><parameter \
name="j"><paramtype>int</paramtype><description><para>Another \
</para></description></parameter><description><para> +    \
</template><specialization><template-arg>T \
*</template-arg></specialization><method-group name="public member functions"> \
+</method-group> +<constructor><description><para>A constructor. \
</para></description></constructor> +<destructor><description><para>A destructor. \
</para></description></destructor> \
+<copy-assignment><type><emphasis>unspecified</emphasis></type><parameter \
name=""><paramtype>const <classname>specialization_test</classname> \
&amp;</paramtype></parameter><description><para>An assignment operator. \
</para></description></copy-assignment> +</struct-specialization><enum \
name="namespace_enum"><enumvalue name="enumerator"/></enum> +<data-member \
name="namespace_integer"><type>int</type></data-member> +<data-member \
name="namespace_static_integer" specifiers="static"><type>int</type></data-member> \
+<data-member name="namespace_const_integer"><type>const int</type></data-member> \
+<data-member name="namespace_static_const_integer" specifiers="static"><type>const \
int</type></data-member> +<function name="free_function"><type>void</type><parameter \
name="x"><paramtype>int</paramtype><description><para>Parameter \
description.</para></description></parameter><description><para> +<programlisting \
language="c++">void function_code_sample(); +</programlisting> \
</para></description></function> +<function \
name="namespace_func"><type>int</type><parameter \
name="i"><paramtype>int</paramtype><description><para>A function parameter \
</para></description></parameter><parameter \
name="j"><paramtype>int</paramtype><description><para>Another \
</para></description></parameter><description><para>  
 
 This is a test function. <classname alt="example::example">Link to class</classname> \
<classname alt="example::example_template">Link to class template</classname> \
<note><para>This is a note.</para></note>  <para><emphasis role="bold">See \
Also:</emphasis><para><classname alt="example::example">example::example</classname> \
and <classname alt="example::example_template">example_template</classname> \
                </para></para>
-</para></description><requires><para>i &gt; j</para></requires><returns><para>The \
answer </para></returns></function><function \
name="namespace_func_template"><type>void</type><template> \
+</para></description><requires><para>i &gt; j</para></requires><returns><para>The \
answer </para></returns></function> +<function \
                name="namespace_func_template"><type>void</type><template>
           <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><description><para>Testing a function template. 
-</para></description></function></namespace><macro name="EXAMPLE" \
kind="functionlike"><macro-parameter name="m"/><purpose>Documentation for macro \
example. </purpose></macro></header></library-reference> \
+</para></description></function> +</namespace>
+<macro name="EXAMPLE" kind="functionlike"><macro-parameter \
name="m"/><purpose>Documentation for macro example. </purpose></macro> +</header>
+</library-reference>
\ No newline at end of file

Modified: trunk/Thirdparty/boost/tools/boostbook/test/doxygen/boost/example.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/test/doxygen/boost/example.hpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/test/doxygen/boost/example.hpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -7,6 +7,12 @@
     \class example::example
     
     \brief Documentation for class example
+
+    Detailed documentation
+
+    \code{.cpp}
+    void class_code_sample();
+    \endcode
  */
 
 /*!
@@ -23,6 +29,16 @@
 
 namespace example
 {
+    /*!
+
+    \param x Parameter description.
+
+    \code{.cpp}
+    void function_code_sample();
+    \endcode
+     */
+    void free_function(int x);
+
     int namespace_integer;
     static int namespace_static_integer;
     const int namespace_const_integer = 1;
@@ -34,7 +50,40 @@
     public:
         example(example const&) = default;
         example& operator=(example const&) = delete;
+        virtual int virtual_method();
+        virtual int virtual_abstract_method() = 0;
+        virtual int virtual_const_method() const;
+        int method_with_default_value(int = default_value);
 
+        int method_with_fp(int (*fp)(), volatile char);
+        int method_with_string_default1(char* = ")", volatile char);
+        int method_with_string_default2(char* = "(", volatile char);
+        int method_with_char_default1(char = '(', volatile char);
+        int method_with_char_default2(char = ')', volatile char);
+
+        int volatile_method_with_fp(int (*fp)(), volatile char) volatile;
+        int volatile_method_with_string_default1(char* = ")", volatile char) \
volatile; +        int volatile_method_with_string_default2(char* = "(", volatile \
char) volatile; +        int volatile_method_with_char_default1(char = '(', volatile \
char) volatile; +        int volatile_method_with_char_default2(char = ')', volatile \
char) volatile; +
+        void const_method() const;
+        void volatile_method() volatile;
+
+        void trad_noexcept() noexcept;
+        void trad_noexcept_if() noexcept(a == b && (c || d));
+        void boost_noexcept() BOOST_NOEXCEPT;
+        void boost_noexcept_if() BOOST_NOEXCEPT_IF(a == b && (c || d));
+
+        void trad_constexpr() constexpr;
+        void boost_constexpr() BOOST_CONSTEXPR;
+        void boost_constexpr_or_const() BOOST_CONSTEXPR_OR_CONST;
+
+        void constexpr_noexcept() constexpr noexcept;
+
+        static int static_method();
+        static int static_constexpr() constexpr;
+
         int integer;
         static int static_integer;
         mutable int mutable_integer;
@@ -149,7 +198,7 @@
         /** A destructor. */
         ~specialization_test();
         /** An assignment operator. */
-        specialization_test& operator=(const specialization_test&);
+        detail::unspecified& operator=(const specialization_test&);
     };
 }
 

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/annotation.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/annotation.xsl	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/annotation.xsl	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -400,6 +400,14 @@
     </computeroutput>
   </xsl:template>
 
+  <xsl:template match="code[@language='c++']" mode="annotation">
+    <computeroutput>
+      <xsl:apply-templates mode="annotation">
+        <xsl:with-param name="highlight" select="true()"/>
+      </xsl:apply-templates>
+    </computeroutput>
+  </xsl:template>
+
   <xsl:template match="bold" mode="annotation">
     <emphasis role="bold">
       <xsl:apply-templates mode="annotation"/>

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/docbook-layout.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/docbook-layout.xsl	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/docbook-layout.xsl	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -10,11 +10,16 @@
 <xsl:stylesheet version = "1.0"
    xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
 >
+
   <!-- needed for calsTable template -->
   
   <xsl:import
     href="http://docbook.sourceforge.net/release/xsl/current/html/formal.xsl"/>
 
+  <!-- Optionally add the section id to each section's class.
+       This is useful if you want to style individual sections differently. -->
+  <xsl:param name="boost.section.class.add.id" select="0"/>
+
   <!--
      Override the behaviour of some DocBook elements for better
      integration with the new look & feel.
@@ -208,4 +213,50 @@
       <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
     </xsl:apply-templates>
   </xsl:template>
+  
+  
+  <!-- Adds role class for section element resulting div. So that
+       we can style them in the resulting HTML.
+       Also, add the section id, if boost.section.class.add.id = 1.
+       This can be used to style individual sections differently. -->
+  <xsl:template match="section" mode="class.value">
+    <xsl:param name="class" select="local-name(.)"/>
+    <xsl:param name="node" select="."/>
+    <xsl:variable name="id">
+      <xsl:if test="$boost.section.class.add.id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$node"/>
+        </xsl:call-template>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:value-of select="normalize-space(concat($class, ' ',
+        @role, ' ', translate($id, '.', '_')))"/>
+  </xsl:template>
+  
+  <!-- Adds role class for simplesect element resulting div. So that
+       we can style them in the resulting HTML. -->
+  <xsl:template match="simplesect" mode="class.value">
+    <xsl:param name="class" select="local-name(.)"/>
+    <xsl:param name="node" select="."/>
+    <xsl:value-of select="normalize-space(concat($class,' ',@role))"/>
+  </xsl:template>
+  
+  <!-- Allow for specifying that a section should not include the parents
+       labeling. This allows us to start clean numering of a sub-section. -->
+  <xsl:template match="section[@label-style='no-parent']" mode="label.markup">
+	  <xsl:choose>
+	    <xsl:when test="@label">
+	      <xsl:value-of select="@label"/>
+	    </xsl:when>
+	    <xsl:when test="$label != 0">
+	      <xsl:variable name="format">
+	        <xsl:call-template name="autolabel.format">
+	          <xsl:with-param name="format" select="$section.autolabel"/>
+	        </xsl:call-template>
+	      </xsl:variable>
+	      <xsl:number format="{$format}" count="section"/>
+	    </xsl:when>
+	  </xsl:choose>
+  </xsl:template>
+  
 </xsl:stylesheet>

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/docbook.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/docbook.xsl	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/docbook.xsl	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -398,6 +398,10 @@
     </computeroutput>
   </xsl:template>
 
+  <xsl:template match="code[@language='c++']">
+    <xsl:apply-templates select="." mode="annotation"/>
+  </xsl:template>
+
   <xsl:template match="bold">
     <emphasis role="bold">
       <xsl:apply-templates mode="annotation"/>
@@ -454,6 +458,10 @@
     </programlisting>
   </xsl:template>
 
+  <xsl:template match="programlisting[@language='c++']">
+    <xsl:apply-templates select="." mode="annotation"/>
+  </xsl:template>
+
   <!-- These DocBook elements have special meaning. Use the annotation mode -->
   <xsl:template match="classname|methodname|functionname|enumname|
                        macroname|headername|globalname">

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -202,6 +202,7 @@
         <xsl:attribute name="name">
           <xsl:value-of select="$name"/>
         </xsl:attribute>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
         
         <xsl:apply-templates>
           <xsl:with-param name="with-namespace-refs" 
@@ -209,6 +210,7 @@
           <xsl:with-param name="in-file" select="$in-file"/>
         </xsl:apply-templates>
       </namespace>
+      <xsl:text>&#10;</xsl:text><!-- Newline -->
     </xsl:if>
   </xsl:template>
 
@@ -301,6 +303,7 @@
         <xsl:apply-templates select="detaileddescription" mode="passthrough"/>
         <xsl:apply-templates select="inbodydescription" mode="passthrough"/>
       </enum>
+      <xsl:text>&#10;</xsl:text><!-- Newline -->
     </xsl:if>
   </xsl:template>
 
@@ -387,6 +390,7 @@
             <xsl:with-param name="header" select="location/attribute::file"/>
           </xsl:call-template>
         </xsl:attribute>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
         
         <xsl:if test="briefdescription/*|detaileddescription/*|inbodydescription/*">
           <xsl:apply-templates select="briefdescription/*" mode="passthrough"/>
@@ -400,6 +404,7 @@
           <xsl:with-param name="in-file" select="location/attribute::file"/>
         </xsl:apply-templates>
       </header>
+      <xsl:text>&#10;</xsl:text><!-- Newline -->
     </xsl:if>
   </xsl:template>
 
@@ -518,6 +523,7 @@
           <xsl:apply-templates select="detaileddescription" mode="passthrough"/>
           <xsl:apply-templates select="inbodydescription" mode="passthrough"/>
         </macro>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
       </xsl:when>
 
       <xsl:when test="@kind='function'">
@@ -717,29 +723,35 @@
       <xsl:when test="@kind='public-static-func'">
         <!-- TBD: pass on the fact that these are static functions -->
         <method-group name="public static functions">
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
             <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
       </xsl:when>
       <xsl:when test="@kind='protected-static-func'">
         <!-- TBD: pass on the fact that these are static functions -->
         <method-group name="protected static functions">
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
             <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
       </xsl:when>
       <xsl:when test="@kind='private-static-func'">
         <!-- TBD: pass on the fact that these are static functions -->
         <method-group name="private static functions">
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
             <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
       </xsl:when>
       <xsl:when test="@kind='public-func'">
         <xsl:variable name="members" select="./memberdef"/>
@@ -750,21 +762,25 @@
         </xsl:variable>
         <xsl:if test="$num-internal-only &lt; count($members)">
           <method-group name="public member functions">
+            <xsl:text>&#10;</xsl:text><!-- Newline -->
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
               <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
           <xsl:apply-templates/>
         </xsl:if>
       </xsl:when>
       <xsl:when test="@kind='protected-func'">
         <method-group name="protected member functions">
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
           <xsl:apply-templates>
             <xsl:with-param name="in-section" select="true()"/>
             <xsl:with-param name="in-file" select="$in-file"/>
           </xsl:apply-templates>
         </method-group>
+        <xsl:text>&#10;</xsl:text><!-- Newline -->
         <xsl:apply-templates/>
       </xsl:when>
       <xsl:when test="@kind='private-func'">
@@ -776,22 +792,26 @@
         </xsl:variable>
         <xsl:if test="$num-internal-only &lt; count($members)">
           <method-group name="private member functions">
+            <xsl:text>&#10;</xsl:text><!-- Newline -->
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
               <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
         </xsl:if>
         <xsl:apply-templates/>
       </xsl:when>
       <xsl:when test="@kind='friend'">
         <xsl:if test="./memberdef/detaileddescription/para or \
./memberdef/briefdescription/para">  <method-group name="friend functions">
+            <xsl:text>&#10;</xsl:text><!-- Newline -->
             <xsl:apply-templates>
               <xsl:with-param name="in-section" select="true()"/>
               <xsl:with-param name="in-file" select="$in-file"/>
             </xsl:apply-templates>
           </method-group>
+          <xsl:text>&#10;</xsl:text><!-- Newline -->
         </xsl:if>
       </xsl:when>
       <xsl:when test="@kind='public-static-attrib' or @kind='public-attrib'">
@@ -968,6 +988,7 @@
         
         <type><xsl:apply-templates select="type"/></type>
       </typedef>
+      <xsl:text>&#10;</xsl:text><!-- Newline -->
     </xsl:if>
   </xsl:template>
 
@@ -1038,6 +1059,162 @@
     </xsl:if>
   </xsl:template>
 
+  <xsl:template name="function.attributes">
+
+    <!-- argsstring = '(arguments) [= delete] [= default] [constexpt]' -->
+    <xsl:variable name="extra-qualifiers-a">
+      <xsl:if test="contains(argsstring/text(), '(')">
+        <xsl:call-template name="strip-brackets">
+          <xsl:with-param name="text" select="substring-after(argsstring/text(), \
'(')" /> +        </xsl:call-template>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:variable name="extra-qualifiers">
+      <xsl:if test="$extra-qualifiers-a">
+        <xsl:value-of select="concat(' ', normalize-space($extra-qualifiers-a), ' \
')" /> +      </xsl:if>
+    </xsl:variable>
+
+    <!-- CV Qualifiers -->
+    <!-- Plus deleted and defaulted function markers as they're not properly
+         supported in boostbook -->
+
+    <!-- noexcept is complicated because is can have parameters.
+         TODO: should really remove the noexcept parameters before doing
+               anything else. -->
+    <xsl:variable name="noexcept">
+      <xsl:choose>
+        <xsl:when test="contains($extra-qualifiers, ' noexcept(')">
+          <xsl:call-template name="noexcept-if">
+            <xsl:with-param name="condition" \
select="substring-after($extra-qualifiers, ' noexcept(')" /> +          \
</xsl:call-template> +        </xsl:when>
+
+        <xsl:when test="contains($extra-qualifiers, ' BOOST_NOEXCEPT_IF(')">
+          <xsl:call-template name="noexcept-if">
+            <xsl:with-param name="condition" \
select="substring-after($extra-qualifiers, ' BOOST_NOEXCEPT_IF(')" /> +          \
</xsl:call-template> +        </xsl:when>
+
+        <xsl:when test="contains($extra-qualifiers, ' noexcept ') or \
contains($extra-qualifiers, ' BOOST_NOEXCEPT ')"> +          <xsl:value-of \
select="'noexcept '" /> +        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <!-- Calculate constexpr now, so that we can avoid it getting confused
+         with const -->
+    <xsl:variable name="constexpr" select="
+        contains($extra-qualifiers, ' const expr ') or
+        contains($extra-qualifiers, ' BOOST_CONSTEXPR ') or
+        contains($extra-qualifiers, ' BOOST_CONSTEXPR_OR_CONST ')" />
+
+    <!-- The 'substring' trick includes the string if the condition is true -->
+    <xsl:variable name="cv-qualifiers" select="normalize-space(concat(
+        substring('constexpr ', 1, 999 * $constexpr),
+        substring('const ', 1, 999 * (not($constexpr) and @const='yes')),
+        substring('volatile ', 1, 999 * (@volatile='yes' or \
contains($extra-qualifiers, ' volatile '))), +        $noexcept,
+        substring('= delete ', 1, 999 * contains($extra-qualifiers, ' =delete ')),
+        substring('= default ', 1, 999 * contains($extra-qualifiers, ' =default ')),
+        substring('= 0 ', 1, 999 * (@virt = 'pure-virtual')),
+        ''))" />
+
+    <!-- Specifiers -->
+    <xsl:variable name="specifiers" select="normalize-space(concat(
+        substring('explicit ', 1, 999 * (@explicit = 'yes')),
+        substring('virtual ', 1, 999 * (
+            @virtual='yes' or @virt='virtual' or @virt='pure-virtual')),
+        substring('static ', 1, 999 * (@static = 'yes')),
+        ''))" />
+
+    <xsl:if test="$cv-qualifiers">
+      <xsl:attribute name="cv">
+        <xsl:value-of select="$cv-qualifiers" />
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="$specifiers">
+      <xsl:attribute name="specifiers">
+        <xsl:value-of select="$specifiers" />
+      </xsl:attribute>
+    </xsl:if>
+
+  </xsl:template>
+
+  <!-- $condition = string after the opening bracket of the condition -->
+  <xsl:template name="noexcept-if">
+    <xsl:param name="condition"/>
+
+    <xsl:variable name="trailing">
+      <xsl:call-template name="strip-brackets">
+        <xsl:with-param name="text" select="$condition" />
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="string-length($trailing)">
+        <xsl:value-of select="concat(
+            'noexcept(',
+            substring($condition, 1, string-length($condition) - \
string-length($trailing)), +            ') ')" />
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- Something has gone wrong so: -->
+        <xsl:value-of select="'noexcept(condition) '" />
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- $text = substring after the opening bracket -->
+  <xsl:template name="strip-brackets">
+    <xsl:param name="text"/>
+
+    <xsl:if test="contains($text, ')')">
+      <xsl:variable name="prefix1" select="substring-before($text, ')')" />
+      <xsl:variable name="prefix2" select="substring($prefix1, 1,
+          string-length(substring-before($prefix1, '(')) +
+          999 * not(contains($prefix1, '(')))" />
+      <xsl:variable name="prefix3" select="substring($prefix2, 1,
+          string-length(substring-before($prefix2, '&quot;')) +
+          999 * not(contains($prefix2, '&quot;')))" />
+      <xsl:variable name="prefix" select="substring($prefix3, 1,
+          string-length(substring-before($prefix3, &quot;'&quot;)) +
+          999 * not(contains($prefix3, &quot;'&quot;)))" />
+
+      <xsl:variable name="prefix-length" select="string-length($prefix)" />
+      <xsl:variable name="char" select="substring($text, $prefix-length + 1, 1)" />
+
+      <xsl:choose>
+        <xsl:when test="$char=')'">
+          <xsl:value-of select="substring($text, $prefix-length + 2)" />
+        </xsl:when>
+        <xsl:when test="$char='('">
+          <xsl:variable name="text2">
+            <xsl:call-template name="strip-brackets">
+              <xsl:with-param name="text" select="substring($text, $prefix-length + \
2)" /> +            </xsl:call-template>
+          </xsl:variable>
+          <xsl:call-template name="strip-brackets">
+            <xsl:with-param name="text" select="$text2" />
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$char=&quot;'&quot;">
+          <!-- Not bothering with escapes, because this is crazy enough as it is -->
+          <xsl:call-template name="strip-brackets">
+            <xsl:with-param name="text" select="substring-after(substring($text, \
$prefix-length + 2), &quot;'&quot;)" /> +          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$char='&quot;'">
+          <!-- Not bothering with escapes, because this is crazy enough as it is -->
+          <xsl:call-template name="strip-brackets">
+            <xsl:with-param name="text" select="substring-after(substring($text, \
$prefix-length + 2), '&quot;')" /> +          </xsl:call-template>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:template>
+
   <!-- Handle function children -->
   <xsl:template name="function.children">
     <xsl:param name="is-overloaded" select="false()"/>
@@ -1125,6 +1302,7 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:if>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Emit overload signatures -->
@@ -1164,20 +1342,10 @@
       <xsl:if test="@explicit = 'yes'">
         <xsl:attribute name="specifiers">explicit</xsl:attribute>
       </xsl:if>
-      <!-- CV Qualifiers -->
-      <xsl:if test="contains(argsstring/text(),'=delete') or \
                contains(argsstring/text(),'=default')">
-        <xsl:attribute name="cv">
-          <!-- Cheat and add deleted and defaulted function markers to the CV \
                qualifiers -->
-          <xsl:if test="contains(argsstring/text(),'=delete')">
-            <xsl:text>= delete</xsl:text>
-          </xsl:if>
-          <xsl:if test="contains(argsstring/text(),'=default')">
-            <xsl:text>= default</xsl:text>
-          </xsl:if>
-        </xsl:attribute>
-      </xsl:if>
+      <xsl:call-template name="function.attributes"/>
       <xsl:call-template name="function.children"/>
     </constructor>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Handle Destructors -->
@@ -1185,41 +1353,21 @@
     <destructor>
       <xsl:call-template name="function.children"/>
     </destructor>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Handle Copy Assignment -->
   <xsl:template name="copy-assignment">
     <copy-assignment>
-      <!-- CV Qualifiers -->
-      <xsl:if test="not (@const='no' and @volatile='no')">
-        <xsl:attribute name="cv">
-          <xsl:if test="@const='yes'">
-            <xsl:text>const</xsl:text>
-          </xsl:if>
-          <xsl:if test="@volatile='yes'">
-            <xsl:if test="@const='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>volatile</xsl:text>
-          </xsl:if>
-          <!-- Cheat and add deleted and defaulted function markers to the CV \
                qualifiers -->
-          <xsl:if test="contains(argsstring/text(),'=delete')">
-            <xsl:if test="@const='yes' or @volatile='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>= delete</xsl:text>
-          </xsl:if>
-          <xsl:if test="contains(argsstring/text(),'=default')">
-            <xsl:if test="@const='yes' or @volatile='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>= default</xsl:text>
-          </xsl:if>
-        </xsl:attribute>
-      </xsl:if>
+      <xsl:call-template name="function.attributes"/>
+      <!-- Return type -->
+      <xsl:element name="type">
+        <xsl:apply-templates select="type"/>
+      </xsl:element>
 
       <xsl:call-template name="function.children"/>
     </copy-assignment>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Handle conversion operator -->
@@ -1228,33 +1376,8 @@
       <xsl:attribute name="name">
         <xsl:text>conversion-operator</xsl:text>
       </xsl:attribute>
+      <xsl:call-template name="function.attributes"/>
 
-      <!-- CV Qualifiers -->
-      <xsl:if test="not (@const='no' and @volatile='no') or \
                contains(argsstring/text(),'=delete')">
-        <xsl:attribute name="cv">
-          <xsl:if test="@const='yes'">
-            <xsl:text>const</xsl:text>
-          </xsl:if>
-          <xsl:if test="@volatile='yes'">
-            <xsl:if test="@const='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>volatile</xsl:text>
-          </xsl:if>
-          <!-- Cheat and add deleted function markers to the CV qualifiers -->
-          <xsl:if test="contains(argsstring/text(),'=delete')">
-            <xsl:if test="@const='yes' or @volatile='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>= delete</xsl:text>
-          </xsl:if>
-        </xsl:attribute>
-      </xsl:if>
-
-      <xsl:if test="@explicit = 'yes'">
-        <xsl:attribute name="specifiers">explicit</xsl:attribute>
-      </xsl:if>
-
       <!-- Conversion type -->
       <type>
         <xsl:value-of select="substring-after(name/text(), 'operator ')"/>
@@ -1262,6 +1385,7 @@
 
       <xsl:call-template name="function.children"/>
     </method>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Handle methods -->
@@ -1270,45 +1394,16 @@
       <xsl:attribute name="name">
         <xsl:value-of select="name/text()"/>
       </xsl:attribute>
+      <xsl:call-template name="function.attributes"/>
 
-      <!-- CV Qualifiers -->
-      <xsl:if test="not (@const='no' and @volatile='no') or \
                contains(argsstring/text(),'=delete')">
-        <xsl:attribute name="cv">
-          <xsl:if test="@const='yes'">
-            <xsl:text>const</xsl:text>
-          </xsl:if>
-          <xsl:if test="@volatile='yes'">
-            <xsl:if test="@const='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>volatile</xsl:text>
-          </xsl:if>
-          <!-- Cheat and add deleted function markers to the CV qualifiers -->
-          <xsl:if test="contains(argsstring/text(),'=default')">
-            <xsl:if test="@const='yes' or @volatile='yes'">
-              <xsl:text> </xsl:text>
-            </xsl:if>
-            <xsl:text>= default</xsl:text>
-          </xsl:if>
-        </xsl:attribute>
-      </xsl:if>
-
       <!-- Return type -->
       <xsl:element name="type">
-        <!-- Cheat on virtual and static by dropping them into the type -->
-        <xsl:if test="@static='yes'">
-          <xsl:text>static </xsl:text>
-        </xsl:if>
-
-        <xsl:if test="@virtual='yes'">
-          <xsl:text>virtual </xsl:text>
-        </xsl:if>
-
         <xsl:apply-templates select="type"/>
       </xsl:element>
 
       <xsl:call-template name="function.children"/>
     </method>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
   </xsl:template>
 
   <!-- Handle member variables -->
@@ -1336,6 +1431,7 @@
       <xsl:apply-templates select="detaileddescription" mode="passthrough"/>
       <xsl:apply-templates select="inbodydescription" mode="passthrough"/>
     </data-member>
+    <xsl:text>&#10;</xsl:text><!-- Newline -->
     </xsl:if>
   </xsl:template>
 
@@ -1612,7 +1708,7 @@
 
   <!-- Handle program listings -->
   <xsl:template match="programlisting" mode="passthrough">
-    <programlisting>
+    <programlisting language="c++">
       <xsl:apply-templates mode="programlisting"/>
     </programlisting>
   </xsl:template>

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/fo.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/fo.xsl	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/fo.xsl	2015-12-10 12:37:00 UTC (rev \
7425) @@ -221,8 +221,133 @@
   </fo:list-item>
 </xsl:template>
 
+
 <!-- 
 
+  The following rules apply text coloring to Quickbook items like
+  
+    [role blue Some blue text]
+   
+  These correspond to an arbitrary list of colors added to the CSS file
+  
+    $(BOOST-ROOT)\doc\src\boostbook.css
+   
+  and are required for building pdf documentation.
+ 
+  A more elegant way of doing this is probably possible.
+  Other colors can be added simply by copying these examples.
+-->
+  
+<xsl:template match="phrase[@role='red']">
+  <fo:inline color="red">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='blue']">
+  <fo:inline color="blue">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='green']">
+  <fo:inline color="green">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+<xsl:template match="phrase[@role='lime']">
+  <fo:inline color="lime">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+<xsl:template match="phrase[@role='navy']">
+  <fo:inline color="navy">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+<xsl:template match="phrase[@role='yellow']">
+  <fo:inline color="yellow">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+<xsl:template match="phrase[@role='magenta']">
+  <fo:inline color="magenta">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='indigo']">
+  <fo:inline color="indigo">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+  
+<xsl:template match="phrase[@role='cyan']">
+  <fo:inline color="cyan">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+  
+<xsl:template match="phrase[@role='purple']">
+  <fo:inline color="purple">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+  
+<xsl:template match="phrase[@role='gold']">
+  <fo:inline color="gold">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+  
+<xsl:template match="phrase[@role='silver']">
+  <fo:inline color="silver">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+  
+<xsl:template match="phrase[@role='gray']">
+  <fo:inline color="gray">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<!-- alignment -->
+
+<xsl:template match="phrase[@role='aligncenter']">
+  <fo:inline>
+    <fo:block text-align="center">
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='alignleft']">
+  <fo:inline>
+    <fo:block text-align="left">
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='alignright']">
+  <fo:inline>
+    <fo:block text-align="right">
+     <xsl:apply-templates/>
+    </fo:block>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="phrase[@role='alignjustify']">
+  <fo:inline>
+    <fo:block text-align="justify">
+     <xsl:apply-templates/>
+    </fo:block>
+  </fo:inline>
+</xsl:template>
+
+  <!-- 
+
  The following rules apply syntax highlighting to phrases
  that have been appropriately marked up, the highlighting
  used is the same as that used by our CSS style sheets,

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/html-base.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/html-base.xsl	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/html-base.xsl	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -35,6 +35,8 @@
   <xsl:param name="boost.mathjax" select="0"/>
   <xsl:param name="boost.mathjax.script"
              select="'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'"/>
 +  <!--See usage below for explanation of this param-->
+  <xsl:param name="boost.noexpand.chapter.toc" select="0"/>
 
   <xsl:param name="admon.style"/>
   <xsl:param name="admon.graphics">1</xsl:param>
@@ -138,9 +140,9 @@
   <xsl:template name="format.svn.revision">
     <xsl:param name="text"/>
 
-    <!-- Remove the "$Date: " -->
+    <!-- Remove the "$Date: " or "$Date:: " -->
     <xsl:variable name="text.noprefix"
-      select="substring-after($text, '$Date: ')"/>
+      select="substring-after($text, ': ')"/>
 
     <!-- Grab the year -->
     <xsl:variable name="year" select="substring-before($text.noprefix, '-')"/>
@@ -182,8 +184,10 @@
       </xsl:choose>
     </xsl:variable>
 
-    <xsl:value-of select="concat($month.name, ' ', $day, ', ', $year, ' at ',
-                                 $time, ' ', $timezone)"/>
+    <xsl:value-of select="concat($month.name, ' ', $day, ', ', $year)"/>
+    <xsl:if test="$time != ''">
+      <xsl:value-of select="concat(' at ', $time, ' ', $timezone)"/>
+    </xsl:if>
   </xsl:template>
 
   <!-- Footer Copyright -->
@@ -228,11 +232,14 @@
               <xsl:value-of
                 select="normalize-space($revision-node/attribute::rev:last-revision)"/>
  </xsl:variable>
-            <xsl:if test="string-length($revision-text) &gt; 0">
+            <xsl:if test="string-length($revision-text) &gt; 0 and \
not($revision-text = '$Date$')">  <p>
                 <small>
                   <xsl:text>Last revised: </xsl:text>
                   <xsl:choose>
+                    <xsl:when test="not(contains($revision-text, '$Date: ')) and \
not(contains($revision-text, '$Date:: '))"> +                      <xsl:value-of \
select="$revision-text"/> +                    </xsl:when>
                     <xsl:when test="contains($revision-text, '/')">
                       <xsl:call-template name="format.cvs.revision">
                         <xsl:with-param name="text" select="$revision-text"/>
@@ -380,4 +387,33 @@
    <xsl:value-of select="'index'"/>
 </xsl:template>
 
+<xsl:template match="preface|chapter|appendix|article" mode="toc">
+  <xsl:param name="toc-context" select="."/>
+
+  <!--
+      When boost.noexpand.chapter.toc is set to 1, then the TOC for
+      chapters is only one level deep (ie toc.max.depth has no effect)
+      and nested sections within chapters are not shown.  TOC's and LOC's 
+      at other levels are not effected and respond to toc.max.depth as normal.
+  -->
+  <xsl:choose>
+    <xsl:when test="local-name($toc-context) = 'book' and \
$boost.noexpand.chapter.toc = 1"> +      <xsl:call-template name="subtoc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+        <xsl:with-param name="nodes" select="foo"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="subtoc">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+        <xsl:with-param name="nodes"
+              select="section|sect1|glossary|bibliography|index
+                     |bridgehead[$bridgehead.in.toc != 0]"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
 </xsl:stylesheet>
+
+

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/html-help.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/html-help.xsl	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/html-help.xsl	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -28,104 +28,6 @@
   <xsl:param name="draft.mode">no</xsl:param>
   <xsl:param name="admon.graphics" select="1"/>
 
-  <xsl:template name="format.cvs.revision">
-    <xsl:param name="text"/>
-
-    <!-- Remove the "$Date: " -->
-    <xsl:variable name="text.noprefix"
-      select="substring-after($text, '$Date: ')"/>
-
-    <!-- Grab the year -->
-    <xsl:variable name="year" select="substring-before($text.noprefix, '/')"/>
-    <xsl:variable name="text.noyear"
-      select="substring-after($text.noprefix, '/')"/>
-
-    <!-- Grab the month -->
-    <xsl:variable name="month" select="substring-before($text.noyear, '/')"/>
-    <xsl:variable name="text.nomonth"
-      select="substring-after($text.noyear, '/')"/>
-
-    <!-- Grab the year -->
-    <xsl:variable name="day" select="substring-before($text.nomonth, ' ')"/>
-    <xsl:variable name="text.noday"
-      select="substring-after($text.nomonth, ' ')"/>
-
-    <!-- Get the time -->
-    <xsl:variable name="time" select="substring-before($text.noday, ' ')"/>
-
-    <xsl:variable name="month.name">
-      <xsl:choose>
-        <xsl:when test="$month=1">January</xsl:when>
-        <xsl:when test="$month=2">February</xsl:when>
-        <xsl:when test="$month=3">March</xsl:when>
-        <xsl:when test="$month=4">April</xsl:when>
-        <xsl:when test="$month=5">May</xsl:when>
-        <xsl:when test="$month=6">June</xsl:when>
-        <xsl:when test="$month=7">July</xsl:when>
-        <xsl:when test="$month=8">August</xsl:when>
-        <xsl:when test="$month=9">September</xsl:when>
-        <xsl:when test="$month=10">October</xsl:when>
-        <xsl:when test="$month=11">November</xsl:when>
-        <xsl:when test="$month=12">December</xsl:when>
-      </xsl:choose>
-    </xsl:variable>
-
-    <xsl:value-of select="concat($month.name, ' ', $day, ', ', $year, ' at ',
-                                 $time, ' GMT')"/>
-  </xsl:template>
-
-
-  <xsl:template name="format.svn.revision">
-    <xsl:param name="text"/>
-
-    <!-- Remove the "$Date: " -->
-    <xsl:variable name="text.noprefix"
-      select="substring-after($text, '$Date: ')"/>
-
-    <!-- Grab the year -->
-    <xsl:variable name="year" select="substring-before($text.noprefix, '-')"/>
-    <xsl:variable name="text.noyear"
-      select="substring-after($text.noprefix, '-')"/>
-
-    <!-- Grab the month -->
-    <xsl:variable name="month" select="substring-before($text.noyear, '-')"/>
-    <xsl:variable name="text.nomonth"
-      select="substring-after($text.noyear, '-')"/>
-
-    <!-- Grab the year -->
-    <xsl:variable name="day" select="substring-before($text.nomonth, ' ')"/>
-    <xsl:variable name="text.noday"
-      select="substring-after($text.nomonth, ' ')"/>
-
-    <!-- Get the time -->
-    <xsl:variable name="time" select="substring-before($text.noday, ' ')"/>
-    <xsl:variable name="text.notime"
-      select="substring-after($text.noday, ' ')"/>
-
-    <!-- Get the timezone -->
-    <xsl:variable name="timezone" select="substring-before($text.notime, ' ')"/>
-
-    <xsl:variable name="month.name">
-      <xsl:choose>
-        <xsl:when test="$month=1">January</xsl:when>
-        <xsl:when test="$month=2">February</xsl:when>
-        <xsl:when test="$month=3">March</xsl:when>
-        <xsl:when test="$month=4">April</xsl:when>
-        <xsl:when test="$month=5">May</xsl:when>
-        <xsl:when test="$month=6">June</xsl:when>
-        <xsl:when test="$month=7">July</xsl:when>
-        <xsl:when test="$month=8">August</xsl:when>
-        <xsl:when test="$month=9">September</xsl:when>
-        <xsl:when test="$month=10">October</xsl:when>
-        <xsl:when test="$month=11">November</xsl:when>
-        <xsl:when test="$month=12">December</xsl:when>
-      </xsl:choose>
-    </xsl:variable>
-
-    <xsl:value-of select="concat($month.name, ' ', $day, ', ', $year, ' at ',
-                                 $time, ' ', $timezone)"/>
-  </xsl:template>
-
   <!-- We don't want refentry's to show up in the TOC because they
        will merely be redundant with the synopsis. -->
   <xsl:template match="refentry" mode="toc"/>

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/html-single.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/html-single.xsl	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/html-single.xsl	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -13,9 +13,21 @@
   <!-- Import the HTML stylesheet -->
   <xsl:import 
     href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
-  <xsl:import href="admon.xsl"/>
-  <xsl:import href="relative-href.xsl"/>
+  <xsl:import
+    href="http://docbook.sourceforge.net/release/xsl/current/html/math.xsl"/>
 
+  <xsl:output method="html" encoding="US-ASCII" indent="no"/>
+  
+  <!-- We have to make sure that our templates override all
+       docbook templates.  Therefore, we include our own templates
+       instead of importing them.  In order for this to work,
+       the stylesheets included here cannot also include each other -->
+  <xsl:include href="docbook-layout.xsl"/>
+  <xsl:include href="admon.xsl"/>
+  <xsl:include href="xref.xsl"/>
+  <xsl:include href="relative-href.xsl"/>
+  <xsl:include href="callout.xsl"/>
+
   <xsl:param name="admon.style"/>
   <xsl:param name="admon.graphics">1</xsl:param>
   <xsl:param name="chapter.autolabel" select="0"/>

Modified: trunk/Thirdparty/boost/tools/boostbook/xsl/source-highlight.xsl
===================================================================
--- trunk/Thirdparty/boost/tools/boostbook/xsl/source-highlight.xsl	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/boostbook/xsl/source-highlight.xsl	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -29,7 +29,7 @@
   <xsl:variable name="digits" select="'1234567890'"/>
   <xsl:variable name="number-chars" select="'1234567890abcdefABCDEFxX.'"/>
   <xsl:variable name="keywords"
-    select="' asm auto bool break case catch char class const const_cast continue \
default delete do double dynamic_cast else enum explicit export extern false float \
for friend goto if inline int long mutable namespace new operator private protected \
public register reinterpret_cast return short signed sizeof static static_cast struct \
switch template this throw true try typedef typeid typename union unsigned using \
virtual void volatile wchar_t while '"/> +    select="' alignas ailgnof asm auto bool \
break case catch char char16_t char32_t class const const_cast constexpr continue \
decltype default delete do double dynamic_cast else enum explicit export extern false \
float for friend goto if inline int long mutable namespace new noexcept nullptr \
operator private protected public register reinterpret_cast return short signed \
sizeof static static_cast struct switch template this thread_local throw true try \
typedef typeid typename union unsigned using virtual void volatile wchar_t while '"/> \
<xsl:variable name="operators4" select="'%:%:'"/>  <xsl:variable name="operators3" \
select="'&gt;&gt;= &lt;&lt;= -&gt;* ...'"/>  <xsl:variable name="operators2" \
select="'.* :: ## &lt;: :&gt; &lt;% %&gt; %: += -= *= /= %= ^= &amp;= |= &lt;&lt; \
&gt;&gt; == != &lt;= &gt;= &amp;&amp; || ++ -- -&gt;'"/>

Copied: trunk/Thirdparty/boost/tools/build/Jamroot.jam (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/Jamroot.jam) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/Jamroot.jam	                        (rev 0)
+++ trunk/Thirdparty/boost/tools/build/Jamroot.jam	2015-12-10 12:37:00 UTC (rev 7425)
@@ -0,0 +1,47 @@
+
+path-constant SELF : . ;
+
+import path ;
+import package ;
+import os ;
+
+local ext = "" ;
+if [ os.on-windows ]
+{
+    ext = ".exe" ;
+}
+
+
+package.install boost-build-engine boost-build
+  : # properties
+  : # binaries
+    b2$(ext) bjam$(ext)
+  ;
+
+local e1 = [ path.glob-tree $(SELF)/example : * : . .svn ] ;
+local e2 ;
+for e in $(e1)
+{
+    e = [ path.native $(e) ] ;
+    if [ CHECK_IF_FILE $(e) ]
+    {
+        e2 += $(e) ;
+    }    
+}
+
+package.install-data boost-build-core
+  : # Which subdir of $prefix/share
+    boost-build  
+  : # What to install
+    $(SELF)/boost-build.jam
+    $(SELF)/src/build-system.jam
+    [ path.glob-tree $(SELF)/src/build : *.jam *.py ]
+    [ path.glob-tree $(SELF)/src/kernel : *.jam *.py ]
+    [ path.glob-tree $(SELF)/src/util : *.jam *.py ]
+    [ path.glob-tree $(SELF)/src/tools : *.jam *.py *.xml *.xsl *.doxyfile *.hpp ]
+    $(e2)
+  : # What is the root of the directory
+    <install-source-root>.
+  ;
+  
+alias install : boost-build-engine boost-build-core ;

Copied: trunk/Thirdparty/boost/tools/build/boost-build.jam (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/boost-build.jam) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/boost-build.jam	                        (rev \
                0)
+++ trunk/Thirdparty/boost/tools/build/boost-build.jam	2015-12-10 12:37:00 UTC (rev \
7425) @@ -0,0 +1,8 @@
+# Copyright 2001, 2002 Dave Abrahams
+# Copyright 2002 Rene Rivera
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+
+boost-build src/kernel ;

Copied: trunk/Thirdparty/boost/tools/build/bootstrap.bat (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/bootstrap.bat) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/bootstrap.bat	                        (rev 0)
+++ trunk/Thirdparty/boost/tools/build/bootstrap.bat	2015-12-10 12:37:00 UTC (rev \
7425) @@ -0,0 +1,50 @@
+@ECHO OFF
+
+REM Copyright (C) 2009 Vladimir Prus
+REM
+REM Distributed under the Boost Software License, Version 1.0.
+REM (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+ECHO Bootstrapping the build engine
+if exist ".\src\engine\bin.ntx86\bjam.exe" del src\engine\bin.ntx86\bjam.exe
+if exist ".\src\engine\bin.ntx86_64\bjam.exe" del src\engine\bin.ntx86_64\bjam.exe
+
+pushd src\engine
+call .\build.bat %* > ..\..\bootstrap.log
+@ECHO OFF
+popd
+
+if exist ".\src\engine\bin.ntx86\b2.exe" (
+   copy .\src\engine\bin.ntx86\b2.exe . > nul
+   copy .\src\engine\bin.ntx86\bjam.exe . > nul
+   goto :bjam_built)
+
+if exist ".\src\engine\bin.ntx86_64\b2.exe" (
+   copy .\src\engine\bin.ntx86_64\b2.exe . > nul
+   copy .\src\engine\bin.ntx86_64\bjam.exe . > nul
+   goto :bjam_built)
+
+goto :bjam_failure
+
+:bjam_built
+
+ECHO.
+ECHO Bootstrapping is done. To build, run:
+ECHO.
+ECHO     .\b2 --prefix=DIR install
+ECHO.
+
+goto :end
+
+:bjam_failure
+
+ECHO.
+ECHO Failed to bootstrap the build engine
+ECHO Please consult bootstrap.log for furter diagnostics.
+ECHO.
+
+
+goto :end
+
+:end
+exit /b %ERRORLEVEL%

Copied: trunk/Thirdparty/boost/tools/build/bootstrap.sh (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/bootstrap.sh) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/bootstrap.sh	                        (rev 0)
+++ trunk/Thirdparty/boost/tools/build/bootstrap.sh	2015-12-10 12:37:00 UTC (rev \
7425) @@ -0,0 +1,120 @@
+#!/bin/sh
+# Copyright (C) 2005, 2006 Douglas Gregor.
+# Copyright (C) 2006 The Trustees of Indiana University
+# Copyright (C) 2010 Bryce Lelbach 
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# boostinspect:notab - Tabs are required for the Makefile.
+
+B2=""
+TOOLSET=""
+B2_CONFIG=""
+
+for option
+do
+    case $option in
+
+    -help | --help | -h)
+      want_help=yes ;;
+
+    -with-toolset=* | --with-toolset=* )
+      TOOLSET=`expr "x$option" : "x-*with-toolset=\(.*\)"`
+      ;;
+
+    -*)
+      { echo "error: unrecognized option: $option
+Try \`$0 --help' for more information." >&2
+      { (exit 1); exit 1; }; }
+      ;; 
+
+    esac
+done
+
+if test "x$want_help" = xyes; then
+  cat <<EOF
+\`./bootstrap.sh' creates minimal Boost.Build, which can install itself.
+
+Usage: $0 [OPTION]... 
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help                display this help and exit
+  --with-b2=B2              use existing Boost.Build executable (b2)
+                            [automatically built]
+  --with-toolset=TOOLSET    use specific Boost.Build toolset
+                            [automatically detected]
+EOF
+fi
+test -n "$want_help" && exit 0
+
+# TBD: Determine where the script is located
+my_dir="."
+
+# Determine the toolset, if not already decided
+if test "x$TOOLSET" = x; then
+  guessed_toolset=`$my_dir/src/engine/build.sh --guess-toolset`
+  case $guessed_toolset in
+    acc | darwin | gcc | como | mipspro | pathscale | pgi | qcc | vacpp | xlcpp )
+    TOOLSET=$guessed_toolset
+    ;;
+    
+    intel-* )
+    TOOLSET=intel
+    ;;
+    
+    mingw )
+    TOOLSET=gcc
+    ;;
+    
+    clang* )
+    TOOLSET=clang
+    ;;
+
+    sun* )
+    TOOLSET=sun
+    ;;
+    
+    * )
+    # Not supported by Boost.Build
+    ;;
+  esac
+fi
+
+case $TOOLSET in 
+  clang*)
+  TOOLSET=clang
+  ;;
+esac
+
+
+rm -f config.log
+
+# Build b2
+if test "x$B2" = x; then
+  echo -n "Bootstrapping the build engine with toolset $TOOLSET... "
+  pwd=`pwd`
+  (cd "$my_dir/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
+  if [ $? -ne 0 ]; then
+      echo
+      echo "Failed to bootstrap the build engine" 
+      echo "Consult 'bootstrap.log' for more details"
+      exit 1
+  fi
+  cd "$pwd"
+  arch=`cd $my_dir/src/engine && ./bootstrap/jam0 -d0 -f build.jam \
--toolset=$TOOLSET --toolset-root= --show-locate-target && cd ..` +  \
B2="$my_dir/src/engine/$arch/b2" +  echo "engine/$arch/b2"
+  cp "$B2" .
+  cp "$my_dir/src/engine/$arch/bjam" .
+fi
+
+cat << EOF
+
+Bootstrapping is done. To build and install, run:
+
+    ./b2 install --prefix=<DIR>
+
+EOF

Copied: trunk/Thirdparty/boost/tools/build/index.html (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/index.html) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/index.html	                        (rev 0)
+++ trunk/Thirdparty/boost/tools/build/index.html	2015-12-10 12:37:00 UTC (rev 7425)
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<!-- Copyright 2004 Aleksey Gurtovoy -->
+<!-- Copyright 2004, 2005, 2006 Vladimir Prus -->
+<!-- Distributed under the Boost Software License, Version 1.0. -->
+<!-- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) \
--> +
+<html>
+  <head>
+
+    <title>Boost.Build: modern C++ build system</title>
+
+    <link href="website/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+    <link href="website/index.css" rel="stylesheet">
+
+  </head>
+
+  <body bgcolor="#FFFFFF" text="#000000">
+    
+    <div style="text-align: center; margin-top: 10px;">
+      
+      <div style="position: relative; display: inline-block">
+        <img src="website/boost_build.png" width="396"
+             height="60" alt="Boost.Build V2"></img>
+        
+        <div style="padding-top: 10px; width: 100%; text-align: right">
+          <a href="tutorial.html" style="padding-right: 1em">Tutorial</a>
+          <a href="doc/html/index.html" style="padding-right: 1em">Documentation</a> \
<a href="http://github.com/boostorg/build">GitHub</a> +        </div>
+      </div>
+    </div>
+    
+    <div class="container content" style="margin-top: 2em">
+      
+      <div class="row">
+        <div class="col-md-12">
+          <p>Boost.Build makes it easy to build C++ projects, everywhere.
+            
+          <p>
+            You 
+            name you executables and libraries and list their sources. Boost.Build
+            takes care about compiling your sources with right options, creating
+            static and shared libraries, making executables, and other chores \
&mdash; +            whether you're using gcc, msvc, or a dozen more supported C++
+            compilers &mdash; on Windows, OSX, Linux and commercial UNIX systems.
+        </div>
+      </div>
+      
+      <div class="row">
+        
+        <div class="col-md-6">
+          <p>
+            <b>Simple and high level build description</b>. In most
+            cases a name of target and list of sources is all you need.
+            
+          <p>
+            <b>Portability</b>. Most important build properties have symbolic
+            names that work everywhere. Why memorize compiler flags necessary 
+            for multi-threaded 64-bit shared library, if Boost.Build can do it for \
you? +            
+          <p><b>Variant builds</b>. When you build the same project
+            twice with different properties, all produced files are placed
+            in different directories, so you can build with 2 versions of
+            gcc, or both debug and release variants in one invocation.
+            
+        </div>
+        
+        <div class="col-md-6">
+          <p>
+          <b>Global dependencies</b>. No matter what directory you build
+          in, Boost.Build will always check all dependencies in your entire
+          project, preventing inconsistent binaries.  And it's easy to
+          use one Boost.Build project in other, again with full dependency
+          tracking.
+          
+          <p>
+          <b>Usage requirements</b>. A target can specify properties,
+          like include paths and preprocessor defines, that are necessary to use
+          it.  Those properties will be automatically applied whenever the target
+          is used.
+
+          <p>
+          <b>Standalone</b>. Boost.Build's only dependency is a C compiler,
+          so it's easy to setup. You can even include all of Boost.Build in your 
+          project. Boost.Build does not depend on Boost C++ Libraries.
+        </div>        
+      </div> <!-- main content -->
+
+
+      <div class="row">
+        <div class="col-md-12">
+          <p>This index is for off-line use, visit
+          the <a href="http://boost.org/boost-build2">website</a> for most
+          up-to-date content.
+      </div>
+
+    </div>
+        
+  </body>
+</html>
+


Property changes on: trunk/Thirdparty/boost/tools/build/src/engine/build.sh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:eol-style
   + native

Copied: trunk/Thirdparty/boost/tools/build/tutorial.html (from rev 7276, \
sandbox/v140/Thirdparty/boost/tools/build/tutorial.html) \
                ===================================================================
--- trunk/Thirdparty/boost/tools/build/tutorial.html	                        (rev 0)
+++ trunk/Thirdparty/boost/tools/build/tutorial.html	2015-12-10 12:37:00 UTC (rev \
7425) @@ -0,0 +1,1522 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+  <title>Boost.Build tutorial</title>
+
+  <link href="website/bootstrap/css/bootstrap.min.css" rel="stylesheet">
+  <link href="website/index.css" rel="stylesheet">
+
+</head>
+
+<body>
+  
+  <div lang="en" class="container">
+
+    <div class="header">
+      <ul>
+        <li><a href="index.html">About</a>
+        <li><a href="doc/html/index.html">Documentation</a>
+        <li><a href="http://github.com/boostorg/build">GitHub</a>
+      </ul>
+      <span><b>Boost.Build Tutorial</b></span>
+    </div>      
+    
+    <hr class="hrhead">
+    <p>Written by Boris Schäling.</p>
+
+    <div class="toc">
+      <h3>Table of Contents</h3>
+
+      <ul>
+        <li><a href="#introduction">1. Introduction</a></li>
+
+        <li><a href="#buildprocess">2. Build process</a></li>
+
+        <li><a href="#basic_tasks">3. Basic tasks</a></li>
+
+        <li><a href="#project_management">4. Project management</a></li>
+
+        <li><a href="#best_practices">5. Best practices</a></li>
+
+        <li><a href="#rule_reference">6. Rule reference</a></li>
+
+        <li><a href="#feature_reference">7. Feature reference</a></li>
+      </ul>
+    </div>
+
+
+    <hr>
+
+    <h2 id="introduction">Introduction<br><small>Compiler- and
+      platform-independent build system</small></h2>
+
+    <div>
+
+      <p>Boost.Build is a high-level build system which makes it as easy as
+      possible to manage C++ projects. The idea is to specify in
+      configuration files just as much as necessary to build a program. For
+      example it is not required to tell Boost.Build how to use a certain
+      compiler. Boost.Build supports many compilers out of the box and knows
+      how to use them. If you create a configuration file you just need to
+      tell Boost.Build where to find the source files, what the executable
+      should be called and which compiler Boost.Build should use. Boost.Build
+      will then try to find the compiler and automatically build the
+      program.</p>
+
+      <p>As Boost.Build supports many compilers configuration files never
+      contain any compiler-specific options. Configuration files are entirely
+      compiler-independent. Of course it is possible to set options like
+      whether code should be optimized. However these options are written in
+      a language only understood by Boost.Build. Once a compiler is picked to
+      build a program Boost.Build translates options in configuration files
+      to command line options expected by the selected compiler. This makes
+      it possible to write configuration files once and build a program on
+      different platforms with different compilers.</p>
+
+      <p>As nice as it sounds Boost.Build can only be used for C++ and C
+      projects. Boost.Build doesn't know how to use other compilers like a
+      Java compiler. Although Boost.Build is extensible it makes more sense
+      to use a different build system for programs implemented in other
+      programming languages.</p>
+
+      <p>Boost.Build was created to build and install the <a class="link"
+      href="http://www.boost.org/" target="_top">Boost C++ libraries</a>
+      easily with different compilers on different platforms. Although
+      Boost.Build is part of and shipped with the Boost C++ libraries it can
+      be used separately for any C++ or C project. It's even possible to
+      <a class="link" href="http://sourceforge.net/projects/boost/files/"
+      target="_top">download only Boost.Build</a> in case you don't want to
+      use the Boost C++ libraries.</p>
+
+      <p>This article is an introduction to help you using Boost.Build for
+      your own C++ or C projects. It gives you a basic understanding of how
+      Boost.Build works and how you start using it. After reading the article
+      you should not only be able to use Boost.Build for your own projects,
+      it will also be easier to understand the <a class="link" href=
+      "http://www.boost.org/doc/tools/build/doc/html/index.html" target=
+      "_top">Boost.Build documentation</a> as you'll know the big
+      picture.</p>
+    </div>
+    <hr>
+
+    <h2 id="buildprocess">Build process<br>
+      <small>Jamfiles and an interpreter called b2</small>
+    </h2>
+
+    <div>
+
+      <p>The program you use to build a project managed by Boost.Build is
+      called <span class="command"><strong>b2</strong></span>. If you
+      downloaded and built the Boost C++ libraries you have used <span class=
+      "command"><strong>b2</strong></span> already. <span class=
+      "command"><strong>b2</strong></span> looks for configuration files,
+      reads them and builds a project accordingly. It also accepts various
+      command line options which can be useful for example to show all
+      commands executed by <span class="command"><strong>b2</strong></span>
+      to build a project.</p>
+
+      <p>Projects can be large and can consist of many components whose
+      source code is distributed over many directories. Instead of creating
+      one big configuration file for the entire project components typically
+      get their own configuration files. This is no different with
+      Boost.Build: In a large project there will be many configuration files
+      which have to be found and interpreted by <span class=
+      "command"><strong>b2</strong></span>.</p>
+
+      <p>For Boost.Build every directory with a configuration file is a
+      project: If there is a configuration file in a directory something can
+      be built. Whether it's a component in a subdirectory or a software
+      consisting of many components doesn't make a difference for
+      Boost.Build.</p>
+
+      <p>When <span class="command"><strong>b2</strong></span> is started
+      it doesn't run a search for configuration files on the entire file
+      system. It searches for a configuration file in the current working
+      directory only. If it doesn't find a configuration file it doesn't do
+      anything. <span class="command"><strong>b2</strong></span> does not
+      search for configuration files in any other directory if there is no
+      configuration file in the current working directory.</p>
+
+      <p>The configuration file <span class=
+      "command"><strong>b2</strong></span> is looking for is called
+      <code class="filename">Jamfile.jam</code>. Files with the extension
+      <code class="filename">jam</code> are called Jamfiles. If <span class=
+      "command"><strong>b2</strong></span> finds a Jamfile in the current
+      working directory it searches for more Jamfiles in parent directories.
+      <span class="command"><strong>b2</strong></span> climbs up parent
+      directories until it finds a configuration file called <code class=
+      "filename">Jamroot.jam</code>. <code class=
+      "filename">Jamroot.jam</code> is no different from <code class=
+      "filename">Jamfile.jam</code>. It only indicates that <span class=
+      "command"><strong>b2</strong></span> doesn't need to look
+      further.</p>
+
+      <p>The reason why <span class="command"><strong>b2</strong></span>
+      looks for Jamfiles in parent directories is that it makes it possible
+      to group settings. If there are some components which should be built
+      with similar settings they can be stored in a Jamfile in a parent
+      directory which will be automatically used if a component in a
+      subdirectory is built.</p>
+
+      <p>Please note that <span class="command"><strong>b2</strong></span>
+      must find a file called <code class="filename">Jamroot.jam</code>. It
+      is an error if no <code class="filename">Jamroot.jam</code> exists. If
+      <code class="filename">Jamroot.jam</code> is in the current working
+      directory no other file <code class="filename">Jamfile.jam</code> is
+      required. If <code class="filename">Jamroot.jam</code> is in a parent
+      directory a file <code class="filename">Jamfile.jam</code> must exist
+      in the current working directory - otherwise <span class=
+      "command"><strong>b2</strong></span> doesn't do anything.</p>
+
+      <p>If you copy <span class="command"><strong>b2</strong></span> to a
+      directory which contains no Jamfiles and start the program you get an
+      error message. However <span class=
+      "command"><strong>b2</strong></span> doesn't complain that it can't
+      find a Jamfile. It complains about not finding the build system.</p>
+      <pre class="screen">
+Unable to load Boost.Build: could not find "boost-build.jam"
+---------------------------------------------------------------
+Attempted search from C:\Users\Boris\Desktop up to the root
+
+Please consult the documentation at 'http://www.boost.org'.
+</pre>
+
+      <p>The first thing <span class="command"><strong>b2</strong></span>
+      does is not looking for a Jamfile but loading the build system. But
+      what exactly is the build system?</p>
+
+      <p><span class="command"><strong>b2</strong></span> is an
+      interpreter. It doesn't really know how to build anything. What
+      <span class="command"><strong>b2</strong></span> does is interpreting
+      Jamfiles. Boost.Build is really implemented in Jamfiles. And they
+      contain all the logic which makes Boost.Build such a powerful tool. As
+      <span class="command"><strong>b2</strong></span> only does what it
+      reads in Jamfiles it needs to know where to find the Jamfiles
+      Boost.Build is made of.</p>
+
+      <p>When <span class="command"><strong>b2</strong></span> is started
+      it looks for a file <code class="filename">boost-build.jam</code> in
+      the current working directory. If it doesn't find the file it searches
+      all parent directories. This file needs to contain only one line to
+      tell <span class="command"><strong>b2</strong></span> where to find
+      the build system.</p>
+      <pre class="programlisting">
+boost-build C:/boost_1_57_0/tools/build/src ; 
+</pre>
+
+      <p>The path after <code class="code">boost-build</code> must refer to a
+      directory which contains a file called <code class=
+      "filename">bootstrap.jam</code>. This is the file <span class=
+      "command"><strong>b2</strong></span> needs to load the build system.
+      As the Boost C++ libraries ship Boost.Build you can refer to the
+      subdirectory <code class="filename">tools/build</code> of the root
+      directory of the Boost C++ libraries. And you can always use a slash as
+      a path separator - even if you are on Windows.</p>
+
+      <p>Please note that there must be a space between the path and the
+      semicolon at the end of the line. It is an error if the space is
+      missing. You'll learn more about the syntax used in Jamfiles later in
+      this article.</p>
+
+      <p>If <span class="command"><strong>b2</strong></span> finds
+      <code class="filename">boost-build.jam</code> it uses the path within
+      the file to load the build system. When the build system is loaded it
+      also prepares itself to use a certain compiler, linker and maybe other
+      tools required to build a project. Boost.Build refers to these programs
+      as a toolset. If no command line option is used to start <span class=
+      "command"><strong>b2</strong></span> the build system tries to find a
+      toolset it can use automatically. On Windows for example it searches
+      for Visual C++. And if it detects that Visual C++ is installed it uses
+      the toolset msvc.</p>
+      <pre class="screen">
+warning: No toolsets are configured.
+warning: Configuring default toolset "msvc".
+warning: If the default is wrong, your build may not work correctly.
+warning: Use the "toolset=xxxxx" option to override our guess.
+warning: For more configuration options, please consult
+warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
+</pre>
+
+      <p>If you start <span class="command"><strong>b2</strong></span>
+      without specifying which toolset should be used you see a warning.
+      <span class="command"><strong>b2</strong></span> tells you which
+      toolset it detected and decided to use. If you want to suppress the
+      warning you must specify the toolset yourself. For example you tell the
+      build system to use Visual C++ with <span class="command"><strong>b2
+      toolset=msvc</strong></span>. If you want GCC to be used you enter
+      <span class="command"><strong>b2 toolset=gcc</strong></span>.</p>
+
+      <p>As of today there are more than 10 toolsets supported. There is a
+      good chance that Boost.Build will work with the compiler you use out of
+      the box.</p>
+
+      <p>Once the build system has been found, loaded and knows which toolset
+      to use - either because you specified one or the build system detected
+      one automatically - <span class="command"><strong>b2</strong></span>
+      looks for a file <code class="filename">Jamfile.jam</code> in the
+      current working directory. If it doesn't find a Jamfile an error
+      message is printed.</p>
+      <pre class="screen">
+error: error: no Jamfile in current directory found, and no target references \
specified. +</pre>
+
+      <p>If you create an empty file <code class=
+      "filename">Jamfile.jam</code> and start <span class=
+      "command"><strong>b2</strong></span> again another error message is
+      printed.</p>
+      <pre class="screen">
+error: Could not find parent for project at '.'
+error: Did not find Jamfile.jam or Jamroot.jam in any parent directory.
+</pre>
+
+      <p><span class="command"><strong>b2</strong></span> is ultimately
+      looking for a Jamfile called <code class="filename">Jamroot.jam</code>.
+      If it doesn't exist in the current working directory <span class=
+      "command"><strong>b2</strong></span> expects to find it in a parent
+      directory.</p>
+
+      <p>If you create an empty file <code class=
+      "filename">Jamroot.jam</code> and start <span class=
+      "command"><strong>b2</strong></span> the error message is gone.
+      Obviously there is nothing done by Boost.Build. But now you know how
+      <span class="command"><strong>b2</strong></span> proceeds to build a
+      program and what the minimum Boost.Build configuration looks like.</p>
+
+      <p>Please note that if you work on a small project and you need only
+      one configuration file you can simply call it <code class=
+      "filename">Jamroot.jam</code>. You don't need another file called
+      <code class="filename">Jamfile.jam</code>.</p>
+    </div>
+    <hr>
+
+    <h2 id="basic_tasks">Basic tasks<br>
+      <small>Rules and features</small>
+    </h2>
+
+    <div class="sect1">
+
+      <p>If you look at Jamfiles the syntax might remind you of configuration
+      files used by other build systems. Simple Jamfiles can look like plain
+      old configuration files where for example values seem to be assigned to
+      keys. What is important to understand though is that Jamfiles are
+      really script files. There is a programming language used to write
+      Jamfiles. <span class="command"><strong>b2</strong></span> isn't the
+      core component of Boost.Build which knows how to build programs. The
+      logic of Boost.Build is in the Jamfiles which tell <span class=
+      "command"><strong>b2</strong></span> how to build programs.</p>
+
+      <p>Even though Boost.Build is based on a programming language you don't
+      need to think of programming when you create Jamfiles. The syntax of
+      the programming language used by Boost.Build tries to remind you more
+      of creating plain old configuration files. The idea is to have the best
+      of two worlds: A powerful and flexible programming language but a
+      simple syntax you might be familiar with from other build systems.</p>
+
+      <p>This article doesn't introduce you into the programming language
+      Boost.Build is based on. The programming language is proprietary and
+      not really a joy to use. It is no competitor to popular scripting
+      languages like Javascript or Python. The developers of Boost.Build
+      recognize it and work on another version of Boost.Build based on
+      Python. However all of this shouldn't matter to developers who plan to
+      manage their projects with Boost.Build. It helps to understand the
+      syntax of Jamfiles better once one realizes that there is a programming
+      language inside Boost.Build. But it's not required to learn the details
+      of the programming language.</p>
+
+      <p>Let's look at a simple Jamfile which can be used to build an
+      executable <span class="command"><strong>hello</strong></span> from a
+      source file <code class="filename">hello.cpp</code>.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp ; 
+</pre>
+
+      <p>Boost.Build provides a lot of built-in rules and <code class=
+      "code">exe</code> is one of them. While the documentation of
+      Boost.Build refers to <code class="code">exe</code> as a rule you know
+      already that the above Jamfile is actually built using a programming
+      language. As it turns out rules are simply functions. And the Jamfile
+      above contains a function call.</p>
+
+      <p>For the majority of tasks which are typically required to build
+      programs Boost.Build provides predefined rules - or functions if you
+      like. As with functions in other programming languages it is possible
+      to pass parameters. In the Jamfile above the function <code class=
+      "code">exe</code> is called with the two parameters hello and
+      hello.cpp.</p>
+
+      <p>The programming language Boost.Build is based on knows only one data
+      type: Everything is a list of strings. A list can be empty or contain
+      one or more strings. In the Jamfile above the function <code class=
+      "code">exe</code> is called with two parameters each one a list
+      containing one string.</p>
+      <pre class="programlisting">
+exe "hello" : "hello.cpp" ; 
+</pre>
+
+      <p>It is possible to use quotes. It's not necessary though as after all
+      every item in a list has the data type string anyway. Quotes are only
+      used if parameters contain spaces.</p>
+
+      <p>While there is no special delimiter between a rule and the first
+      parameter a colon must be used to separate other parameters. It is also
+      required to end a line with a semicolon just as you are used to from
+      C++.</p>
+
+      <p>Please note that the programming language of Boost.Build requires
+      that there is a space around all tokens. For example there must be a
+      space on the left and on the right of the colon and there must be a
+      space on the left of the semicolon. Without spaces around tokens
+      <span class="command"><strong>b2</strong></span> won't be able to
+      parse Jamfiles correctly.</p>
+
+      <p>If <span class="command"><strong>b2</strong></span> is run in a
+      directory which contains the Jamfile above and a source file
+      <code class="filename">hello.cpp</code>, and if the msvc toolset is
+      used on Windows a subdirectory <code class=
+      "filename">bin\msvc-9.0\debug</code> is created to build an executable
+      <code class="filename">hello.exe</code>.</p>
+      <pre class="screen">
+...found 9 targets...
+...updating 5 targets...
+common.mkdir bin
+common.mkdir bin\msvc-9.0
+common.mkdir bin\msvc-9.0\debug
+compile-c-c++ bin\msvc-9.0\debug\hello.obj
+hello.cpp
+msvc.link bin\msvc-9.0\debug\hello.exe
+msvc.manifest bin\msvc-9.0\debug\hello.exe
+...updated 5 targets...
+</pre>
+
+      <p>As you see it takes only one line in a Jamfile to build an
+      executable from a source file. And if the program is built on Windows
+      there is even the correct file extension <code class=
+      "filename">exe</code> appended.</p>
+
+      <p>The main advantage of Boost.Build is that you specify just as much
+      as necessary for a build system to know how to build a program.
+      Anything Boost.Build can do automatically is done automatically. You
+      don't need to detect the platform a program is built on to decide if a
+      file extension like <code class="filename">exe</code> should be
+      appended or not. And you don't need to specify how a compiler like
+      Visual C++ has actually to be invoked to compile source code.</p>
+
+      <p>Boost.Build supports a lot of toolsets out of the box. As a program
+      can be built using different toolsets Boost.Build uses toolset-specific
+      directories. This way it is possible to build a program with different
+      toolsets without a toolset constantly overwriting files produced by
+      another toolset.</p>
+
+      <p>There are not only toolset-specific directories but also
+      variant-specific directories. A variant is a debug or release version
+      of a program. For each variant another directory is used to build a
+      program - again for the reason not to overwrite files produced by
+      another variant. By default the debug variant is used. That's why the
+      subdirectory <code class="filename">bin\msvc-9.0\debug</code> was
+      created. If you want a release version to be created you can specify
+      the variant on the command line with <span class="command"><strong>b2
+      variant=release</strong></span> or, even simpler, <span class="command">
+      <strong>b2 release </strong></span>.</p>
+      <pre class="screen">
+...found 9 targets...
+...updating 5 targets...
+common.mkdir bin
+common.mkdir bin\msvc-9.0
+common.mkdir bin\msvc-9.0\release
+compile-c-c++ bin\msvc-9.0\release\hello.obj
+hello.cpp
+msvc.link bin\msvc-9.0\release\hello.exe
+msvc.manifest bin\msvc-9.0\release\hello.exe
+...updated 5 targets...
+</pre>
+
+      <p>With the variant set to release the subdirectory <code class=
+      "filename">bin\msvc-9.0\release</code> is used to create the executable
+      <code class="filename">hello.exe</code>.</p>
+
+      <p>Choosing a variant is something which is done so often that it's
+      sufficient to enter <span class="command"><strong>b2
+      release</strong></span>. Boost.Build figures out that release is meant
+      to choose the variant.</p>
+
+      <p>If you don't want to specify the variant on the command line but
+      want to build release versions of <code class=
+      "filename">hello.exe</code> by default the Jamfile has to be
+      changed.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : &lt;variant&gt;release ; 
+</pre>
+
+      <p>The <code class="code">exe</code> rule (or, if you prefer, function)
+      accepts a few more parameters which are optional. The third parameter
+      is a list of requirements. You can think of command line options which
+      are always set and passed to commands run to build an executable.</p>
+
+      <p>In order to force a release version to be built the variant has to
+      be set to release just as it was done before on the command line. The
+      syntax to set the variant in a Jamfile is different though.</p>
+
+      <p>Boost.Build defines features which look like XML tags. One of the
+      features supported by Boost.Build is <code class=
+      "code">&lt;variant&gt;</code>. If a feature should be set to a value it
+      has to be put next to it - without a space in between. Some features
+      are free which means they can be set to any value you want.
+      <code class="code">&lt;variant&gt;</code> is a non-free feature as it
+      can only be set to debug or release. No other value is allowed. If
+      another value is set <code class="code">b2</code> will report an
+      error.</p>
+
+      <p>If you run <code class="code">b2 variant=debug</code> and try to
+      build a debug version of <code class="filename">hello.exe</code> it
+      won't work as the Jamfile contains the requirement that <code class=
+      "filename">hello.exe</code> is built as a release version. If you want
+      to be able to overwrite the feature on the command line you have to
+      pass the feature as the fourth parameter instead of the third.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : : &lt;variant&gt;release ; 
+</pre>
+
+      <p>The fourth parameter contains features which are used by default but
+      which can be overwritten.</p>
+
+      <p>If you want both a debug and a release version of <code class=
+      "filename">hello.exe</code> to be built by default the <code class=
+      "code">&lt;variant&gt;</code> feature needs to be set twice to debug
+      and release.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : : &lt;variant&gt;debug &lt;variant&gt;release ; 
+</pre>
+
+      <p>It is important that <code class="code">&lt;variant&gt;</code> is
+      set twice in the fourth parameter where default values are specified.
+      If it was the third parameter where requirements are specified
+      <span class="command"><strong>b2</strong></span> would report an
+      error. It is possible to set a feature multiple times in the
+      requirements but only if values are not mutually exclusive. As a
+      program can't be a debug and a release version at the same time
+      <code class="code">&lt;variant&gt;</code> must be set in the default
+      values. Only then Boost.Build understands that two versions of
+      <code class="filename">hello.exe</code> should be built.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : &lt;define&gt;WIN32 &lt;define&gt;_WIN32 : \
&lt;variant&gt;debug &lt;variant&gt;release ;  +</pre>
+
+      <p>The above Jamfile is an example for setting a feature multiple times
+      in the requirements. The feature <code class=
+      "code">&lt;define&gt;</code> is used to define preprocessor directives.
+      It is no problem to define several preprocessor directives. Thus there
+      are now two versions of <code class="filename">hello.exe</code> built
+      both with the two directives <code class="code">WIN32</code> and
+      <code class="code">_WIN32</code> defined.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : : &lt;variant&gt;debug &lt;variant&gt;release \
&lt;define&gt;WIN32 &lt;define&gt;_WIN32 ;  +</pre>
+
+      <p>If the definitions are moved to the fourth parameter and you run
+      <span class="command"><strong>b2</strong></span> you get the same two
+      versions of <code class="filename">hello.exe</code> built with the two
+      directives <code class="code">WIN32</code> and <code class=
+      "code">_WIN32</code>. As <code class="code">&lt;define&gt;</code> does
+      not expect mutually exclusive values there is no other set of
+      executables generated. The only difference between this Jamfile and the
+      previous one is that directives passed in the fourth parameter are
+      default values which can be dropped while anything passed as a third
+      parameter is an immutable requirement.</p>
+
+      <p>Here is another example of a feature whose values are mutually
+      exclusive.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp : : &lt;variant&gt;debug &lt;variant&gt;release \
&lt;optimization&gt;speed &lt;optimization&gt;off ;  +</pre>
+
+      <p><span class="command"><strong>b2</strong></span> creates four
+      versions of <code class="filename">hello.exe</code>: A debug version
+      optimized for speed, a debug version with no optimization, a release
+      version optimized for speed and a release version with no optimization.
+      All of these versions are built in seperate directories which are
+      automatically created.</p>
+
+      <p>So far the only rule used was <code class="code">exe</code>. But of
+      course Boost.Build provides many more built-in rules. Another important
+      rule is <code class="code">lib</code>. It is used to build a
+      library.</p>
+      <pre class="programlisting">
+lib world : world.cpp ; 
+</pre>
+
+      <p>The above Jamfile builds a shared library from the source file
+      <code class="filename">world.cpp</code>. On Windows a file <code class=
+      "filename">world.dll</code> is created. The usual file extension is
+      again automatically appended by Boost.Build.</p>
+
+      <p>By default a shared library is built. If you want a static library
+      to be generated you set the <code class="code">&lt;link&gt;</code>
+      feature to static.</p>
+      <pre class="programlisting">
+lib world : world.cpp : &lt;link&gt;static ; 
+</pre>
+
+      <p>Another useful rule is <code class="code">install</code>. After
+      executables and libraries have been built this rule can be used to
+      install them.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp ; 
+install "C:/Program Files/hello" : hello ; 
+</pre>
+
+      <p>The above Jamfile installs the executable <code class=
+      "filename">hello.exe</code> to the directory <code class=
+      "filename">C:\Program Files\hello</code>. The second parameter hello is
+      a reference to the target hello defined in the first line. Please note
+      that the path has to be put in quotes as it contains a space.</p>
+
+      <p>Here concepts known from other build systems shine through: Instead
+      of thinking of function calls every line defines a target. Dependencies
+      are created by referencing other targets. That's how Boost.Build knows
+      in what order it should build targets.</p>
+
+      <p>Typically the rule <code class="code">install</code> is written
+      differently though. Instead of passing the installation directory as
+      the first parameter a feature <code class=
+      "code">&lt;location&gt;</code> is used to set the installation
+      directory in the third parameter.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp ; 
+install install-bin : hello : &lt;location&gt;"C:/Program Files/hello" ; 
+</pre>
+
+      <p>The main reason why it's better to use <code class=
+      "code">&lt;location&gt;</code> is that the first parameter always
+      defines a target. Other rules might refer to a target. That's why it is
+      a good idea to use target names which don't have to be changed later.
+      Imagine a program should be installed to a different directory. It's
+      easier to change the installation directory if the <code class=
+      "code">&lt;location&gt;</code> feature has been used as no other rules
+      which might refer to install-bin have to be updated.</p>
+
+      <p>There is another reason why it makes sense to use a feature.
+      Boost.Build supports conditional properties which make it possible to
+      use different installation directories depending on the platform a
+      program is built on.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp ; 
+install install-bin : hello : &lt;target-os&gt;windows:&lt;location&gt;"C:/Program \
Files/hello" &lt;target-os&gt;linux:&lt;location&gt;/usr/local/bin ;  +</pre>
+
+      <p>The feature <code class="code">&lt;target-os&gt;</code> is another
+      feature with mutually exclusive values. It can be set for example to
+      windows or linux but not to both.</p>
+
+      <p>The feature <code class="code">&lt;location&gt;</code> follows
+      <code class="code">&lt;target-os&gt;</code> only delimited by a colon.
+      Such a construct is called conditional property: Boost.Build selects
+      the installation directory depending on the operating system.</p>
+
+      <p>Of course conditional properties can also be used with other rules.
+      It is for example possible to define different preprocessor directives
+      depending on the variant when building a program or a library.</p>
+
+      <p>Boost.Build provides many more built-in rules. Another useful rule
+      is <code class="code">glob</code> which makes it possible to use
+      wildcards. In a big project with many source files it's then not
+      required to list them all one by one but refer to all of them with
+      <code class="code">glob</code>.</p>
+      <pre class="programlisting">
+exe hello : [ glob *.cpp ] ; 
+</pre>
+
+      <p>The above Jamfile contains a nested function call: The result of the
+      rule <code class="code">glob</code> is passed as the second parameter
+      to <code class="code">exe</code>. Due to requirements of the
+      programming language Boost.Build is based on brackets must be used for
+      nested function calls.</p>
+    </div>
+    <hr>
+
+    <h2 id="project_management">Project management<br>
+      <small>Multiple Jamfiles</small>
+    </h2>
+
+    <div>
+
+      <p>In large projects with many Jamfiles it's necessary to connect
+      Jamfiles somehow. There is typically a <code class=
+      "filename">Jamroot.jam</code> file in the project's root directory and
+      many <code class="filename">Jamfile.jam</code> files in subdirectories.
+      If <span class="command"><strong>b2</strong></span> is run in the
+      root directory developers probably expect that the entire project
+      including all components in subdirectories is built. As <span class=
+      "command"><strong>b2</strong></span> looks for Jamfiles in parent
+      directories but not in subdirectories Jamfiles need to refer to
+      Jamfiles in subdirectories explicitly.</p>
+      <pre class="programlisting">
+build-project hello ; 
+</pre>
+
+      <p>If a Jamfile looks like the sample above it refers to a Jamfile in a
+      subdirectory <code class="filename">hello</code>. <code class=
+      "code">build-project</code> is a rule which expects a path as its sole
+      parameter. The path is then used to lookup a Jamfile.</p>
+      <pre class="programlisting">
+build-project hello ; 
+build-project world ; 
+</pre>
+
+      <p>If you want several projects to be built you must use <code class=
+      "code">build-project</code> multiple times.</p>
+
+      <p>Apart from referring to Jamfiles in subdirectories it makes also
+      sense to group options which should be used when building components in
+      a project.</p>
+      <pre class="programlisting">
+project : default-build release ; 
+build-project hello ; 
+build-project world ; 
+</pre>
+
+      <p>The <code class="code">project</code> rule accepts various
+      parameters to set options for the Jamfile in the current working
+      directory and in subdirectories.</p>
+
+      <p>While other rules like <code class="code">exe</code> and
+      <code class="code">lib</code> expect parameters to be passed in a
+      certain order <code class="code">project</code> uses named arguments.
+      In the sample above the argument's name is default-build. That's why it
+      is possible to pass the value release in a very different
+      parameter.</p>
+      <pre class="programlisting">
+project : : : : : : : : : default-build release ; 
+build-project hello ; 
+build-project world ; 
+</pre>
+
+      <p>It doesn't make sense to pass release as the tenth parameter. But it
+      works as <code class="code">project</code> doesn't care about the
+      order. As the tenth parameter is called default-build it is
+      accepted.</p>
+
+      <p><code class="code">project</code> supports only a few named
+      arguments. Another one is requirements which can be used to set options
+      which can't be overwritten.</p>
+      <pre class="programlisting">
+project : requirements &lt;variant&gt;release ; 
+build-project hello ; 
+build-project world ; 
+</pre>
+
+      <p>The Jamfile above builds only release versions. It is not possible
+      to build a debug version anymore as requirements can not be
+      overwritten. That's the difference to the named argument called
+      default-build which was used in the previous sample: It can be
+      overwritten.</p>
+
+      <p>When <code class="code">build-project</code> is used Boost.Build
+      assumes that the parameter is a reference to a subdirectory. We had
+      seen another type of reference before.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp ; 
+install install-bin : hello : &lt;location&gt;"C:/Program Files/hello" ; 
+</pre>
+
+      <p>In the above Jamfile the <code class="code">install</code> rule
+      refers to the target hello defined in the first line.</p>
+
+      <p>In a large project it might be necessary to refer to targets which
+      are defined in Jamfiles in other directories. It is possible to
+      concatenate a path to a Jamfile and a target with a double slash.</p>
+      <pre class="programlisting">
+install install-bin : subdir//hello : &lt;location&gt;"C:/Program Files/hello" ; 
+</pre>
+
+      <p>Now the <code class="code">install</code> rule refers to a target
+      hello in a Jamfile in the subdirectory <code class=
+      "filename">subdir</code>.</p>
+
+      <p>Let's assume that the executable <span class=
+      "command"><strong>hello</strong></span> depends on a library in another
+      directory <code class="filename">world</code>. The library is also
+      built with Boost.Build using the rule <code class=
+      "code">lib</code>.</p>
+      <pre class="programlisting">
+lib world : world.cpp ; 
+</pre>
+
+      <p>In the Jamfile to build the executable a reference is required to
+      the Jamfile of the library. It's not necessary to refer to the target
+      world directly as all targets in a Jamfile are built by default.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world : : &lt;variant&gt;debug &lt;variant&gt;release ; 
+</pre>
+
+      <p>The above Jamfile assumes that the library and its Jamfile are in a
+      subdirectory <code class="filename">world</code>.</p>
+
+      <p>When the executable is built there are two versions generated - a
+      debug and a release version. The Jamfile of the library however doesn't
+      set the <code class="code">&lt;variant&gt;</code> feature. But
+      Boost.Build assumes that it should build two versions of the library,
+      too. The feature <code class="code">&lt;variant&gt;</code> is said to
+      be propagated.</p>
+
+      <p>Propagating features simplify project management as you don't need
+      to set the same features in various Jamfiles. However it also makes it
+      a bit more complicated to understand how components are built as it all
+      depends on what features are propagated. You can assume that
+      Boost.Build knows what it should do. But of course it doesn't mean that
+      you easily understand what it does.</p>
+
+      <p>Let's look at another example using the feature <code class=
+      "code">&lt;define&gt;</code>.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world : &lt;define&gt;WIN32 : &lt;variant&gt;debug \
&lt;variant&gt;release ;  +</pre>
+
+      <p>The above Jamfile defines a preprocessor directive <code class=
+      "code">WIN32</code> for the program <span class=
+      "command"><strong>hello</strong></span>. But will <code class=
+      "code">WIN32</code> be defined for the library, too?</p>
+
+      <p>It won't as <code class="code">&lt;define&gt;</code> is not a
+      propagating feature. If you wonder how you should know: The only way to
+      find out which features are propagated is to lookup the
+      documentation.</p>
+
+      <p>If you installed the Boost C++ libraries you probably want to link
+      against some of them. You somehow have to add a dependency to the
+      respective Boost C++ library to your project's Jamfile. If you didn't
+      delete the directories you had unzipped the source files of the Boost
+      C++ libraries to you can refer to a target in a Jamfile in the root
+      directory.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world C:/boost_1_39_0//filesystem/ ; 
+</pre>
+
+      <p>Now <span class="command"><strong>hello</strong></span> also depends
+      on the Boost.Filesystem library. As the target filesystem is defined in
+      a Jamfile in the root directory of the Boost C++ libraries the
+      <code class="code">exe</code> rule can refer to it. Not only will the
+      appropriate Boost C++ libraries be linked - an include directory is
+      also passed to the compiler to find the header files. If <code class=
+      "filename">hello.cpp</code> includes <code class=
+      "filename">boost/filesystem.hpp</code> the header file will be
+      found.</p>
+
+      <p>In the above Jamfile the path to the root directory of the Boost C++
+      libraries is hardcoded. Somehow <span class=
+      "command"><strong>b2</strong></span> needs to know where to find the
+      Boost C++ libraries. But it would be better if the path was hardcoded
+      only once in case several components in a project need to link against
+      some Boost C++ libraries.</p>
+      <pre class="programlisting">
+project : requirements &lt;variant&gt;release ; 
+use-project /boost : C:/boost_1_39_0 ; 
+build-project hello ; 
+build-project world ; 
+</pre>
+
+      <p>The <code class="code">use-project</code> rule is used to define an
+      alias to a Jamfile in another directory. Jamfiles in subdirectories use
+      then the alias to refer to a Boost C++ library.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world /boost//filesystem ; 
+</pre>
+
+      <p><span class="command"><strong>b2</strong></span> figures out that
+      <code class="filename">hello.cpp</code> is a source file, <code class=
+      "filename">world</code> a subdirectory and /boost//filesystem a
+      reference to a target filesystem in a Jamfile in <code class=
+      "filename">C:\boost_1_39_0</code>.</p>
+
+      <p>Please note that a reference must start with a slash if it should
+      refer to a project.</p>
+
+      <p>As libraries can be linked differently it is possible to set
+      features relevant to the linker.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world /boost//filesystem/&lt;link&gt;static ; 
+</pre>
+
+      <p>By default libraries are linked dynamically. If libraries should be
+      linked statically the feature <code class="code">&lt;link&gt;</code>
+      has to be set to static.</p>
+
+      <p>Features can be appended with a slash. If more than one feature
+      should be set it is appended with another slash to the previous
+      feature.</p>
+      <pre class="programlisting">
+exe hello : hello.cpp world \
/boost//filesystem/&lt;link&gt;static/&lt;threading&gt;multi ;  +</pre>
+
+      <p><code class="code">&lt;threading&gt;</code> is another feature which
+      can be set to single or multi. If <span class=
+      "command"><strong>hello</strong></span> should be linked against the
+      thread-safe version of Boost.Filesystem the feature can be set
+      accordingly.</p>
+
+      <p>Linking a Boost C++ library by referencing a Jamfile might not
+      always work. If the Boost C++ libraries were installed differently
+      because they weren't built from source for example there won't be any
+      Jamfile to reference.</p>
+      <pre class="programlisting">
+lib filesystem : : &lt;name&gt;libboost_filesystem &lt;search&gt;C:/libs ; 
+exe hello : hello.cpp world filesystem : &lt;include&gt;C:/include ; 
+</pre>
+
+      <p>The <code class="code">lib</code> rule can not only be used to build
+      a library from source. It also has to be used to refer to an existing
+      and pre-built library.</p>
+
+      <p>If <code class="code">lib</code> shouldn't build a library from
+      source the second parameter must be empty. Instead in the third
+      parameter the features <code class="code">&lt;name&gt;</code> and
+      <code class="code">&lt;search&gt;</code> are used to specify the
+      library's name and a location where Boost.Build will find the
+      library.</p>
+
+      <p>It is important to specify the library's name in a
+      platform-independent way. For example for the Jamfile above Boost.Build
+      will try to find a file <code class=
+      "filename">libboost_filesystem.lib</code> on Windows. The usual file
+      extension is again automatically appended.</p>
+
+      <p>If you want to reference a file by specifying its exact name you can
+      use the <code class="code">&lt;file&gt;</code> feature.</p>
+
+      <p>If a system library should be referenced for which you can expect
+      Boost.Build to know where to find it the feature <code class=
+      "code">&lt;search&gt;</code> can be dropped.</p>
+
+      <p>It is also possible to use the <code class="code">project</code>
+      rule to make sure all targets in a project are automatically linked
+      against a library.</p>
+      <pre class="programlisting">
+lib filesystem : : &lt;name&gt;libboost_filesystem &lt;search&gt;C:/libs ; 
+explicit filesystem ; 
+project : requirements &lt;include&gt;C:/include &lt;library&gt;filesystem ; 
+lib world : world.cpp ; 
+</pre>
+
+      <p>A feature called <code class="code">&lt;library&gt;</code> must be
+      used to add a library dependency to a <code class="code">project</code>
+      rule. <code class="code">&lt;library&gt;</code> must refer to a
+      <code class="code">lib</code> rule which uses the already known
+      features <code class="code">&lt;name&gt;</code> and <code class=
+      "code">&lt;search&gt;</code>.</p>
+
+      <p>It is now very important to make the <code class="code">lib</code>
+      rule explicit. This is done by using the <code class=
+      "code">explicit</code> rule. It is important as by default all targets
+      in a Jamfile are built. As the <code class="code">project</code> rule
+      defines requirements for all targets in the Jamfile they are also
+      requirements for the <code class="code">lib</code> rule. Thus the
+      <code class="code">lib</code> rule refers to itself. If the
+      <code class="code">lib</code> rule is made explicit though it's not
+      built and no recursive reference occurs.</p>
+
+      <p>Please note that the order of rules in a Jamfile matters only if a
+      rule refers to a target: Before a target can be referenced it must have
+      been defined.</p>
+    </div>
+    <hr>
+
+    <h2 id="best_practices">Best practices<br>
+      <small>How Boost.Build is used by others</small>
+    </h2>
+
+    <div>      
+
+      <p>As Boost.Build is a high-level build system you benefit most if you
+      keep Jamfiles platform- and compiler-independent. After all the idea is
+      to build your C++ or C projects on any platform with any compiler
+      without being required to modify or maintain several Jamfiles.</p>
+
+      <p>A typical problem you'll run into is that third-party libraries you
+      want to use will be installed in different directories. If you want to
+      build your project on Windows and Unix platforms paths also look very
+      different. Furthermore you might need to link against some system
+      libraries on a platform but not on another.</p>
+
+      <p>Instead of trying to put paths for various platforms in a project's
+      Jamfiles it is better to rely on configuration files on every system
+      for system-specific settings. As it turns out <span class=
+      "command"><strong>b2</strong></span> does indeed look for two more
+      configuration files when it starts.</p>
+
+      <p>The file <code class="filename">site-config.jam</code> should be
+      used to set options for an entire system. As it is machine-dependent
+      <span class="command"><strong>b2</strong></span> expects to find it
+      in <code class="filename">C:\Windows</code> on Windows platforms and in
+      <code class="filename">/etc</code> on Unix systems. As <code class=
+      "filename">site-config.jam</code> is machine-dependent paths to local
+      libraries are no problem.</p>
+
+      <p>Users might not be able to create or change <code class=
+      "filename">site-config.jam</code> though. They would either need to
+      wait for system administrators to update the file or be forced again to
+      add system-specific paths to their own Jamfiles. As neither is a good
+      solution, <span class="command"><strong>b2</strong></span> also looks
+      for a file <code class="filename">user-config.jam</code> in a user's
+      home directory. On Windows it is a subdirectory of <code class=
+      "filename">C:\Users</code>, on Unix a subdirecory of <code class=
+      "filename">/home</code>. As the file <code class=
+      "filename">user-config.jam</code> can be maintained by users it is
+      probably used more often than <code class=
+      "filename">site-config.jam</code>.</p>
+
+      <p>You use <code class="filename">site-config.jam</code> and
+      <code class="filename">user-config.jam</code> just like any other
+      Jamfile. As these configuration files do not belong to a project but to
+      a machine or a user on a machine they are allowed to contain
+      machine-specific options. For example they could contain a <code class=
+      "code">using</code> rule.</p>
+      <pre class="programlisting">
+using msvc ; 
+</pre>
+
+      <p>The <code class="code">using</code> rule above tells <span class=
+      "command"><strong>b2</strong></span> to use the msvc toolset. If you
+      know that there is only Visual C++ installed on a system it makes sense
+      to put this line into a configuration file. Then <span class=
+      "command"><strong>b2</strong></span> doesn't need to guess anymore
+      which toolset to use and won't omit a warning.</p>
+
+      <p>If you define targets in <code class=
+      "filename">site-config.jam</code> or <code class=
+      "filename">user-config.jam</code> and want to refer to these targets in
+      Jamfiles the <code class="code">project</code> rule must be used to set
+      a name.</p>
+      <pre class="programlisting">
+using msvc ; 
+project user-config ; 
+lib xml : : &lt;name&gt;libxml &lt;search&gt;C:/lib : : &lt;include&gt;C:/include ; 
+</pre>
+
+      <p>The <code class="code">lib</code> rule is used to refer to a
+      pre-built library whose basename is libxml and can be found in
+      <code class="filename">C:\lib</code>. A program which uses this XML
+      library probably needs to include header files from this library.
+      That's why in the usage requirements - this is the fifth parameter -
+      the feature <code class="code">&lt;include&gt;</code> is set to
+      <code class="filename">C:\include</code>: Whoever uses this rule will
+      inherit the <code class="code">&lt;include&gt;</code> feature.</p>
+
+      <p>As the <code class="code">project</code> rule has been used to set
+      the name user-config a Jamfile can refer to the XML library via
+      /user-config//xml.</p>
+      <pre class="programlisting">
+exe xmlparser : xmlparser.cpp : &lt;library&gt;/user-config//xml ; 
+</pre>
+
+      <p>In order to build <span class=
+      "command"><strong>xmlparser</strong></span> the program must be linked
+      against the XML library. Even though the location of the library and
+      its header files might vary the Jamfile does not contain any
+      system-specific paths. The Jamfile expects to find the target xml in
+      the project user-config. If this is a configuration file it's no
+      problem to use system-specific paths as after all configuration files
+      are bound to a machine or to a user on a machine.</p>
+
+      <p>As Boost.Build has been created to build and install the Boost C++
+      libraries there is built-in support to use pre-built Boost C++
+      libraries more easily.</p>
+      <pre class="programlisting">
+using msvc ; 
+project user-config ; 
+using boost : 1.39 : &lt;include&gt;C:/include/boost-1_39 &lt;library&gt;C:/lib ; 
+</pre>
+
+      <p>The <code class="code">using</code> rule must be used to refer to a
+      toolset called boost. This toolset is different from toolsets like msvc
+      which you've read about so far: It doesn't contain any programs which
+      will be run later. As support for pre-built Boost C++ libraries has
+      been implemented in a toolset though it's required to use the
+      <code class="code">using</code> rule.</p>
+
+      <p>Just as with other libraries the location of the Boost C++ libraries
+      might vary. Thus it makes sense to put the <code class=
+      "code">using</code> rule into one of the two configuration files.</p>
+
+      <p>It is possible to pass parameters to the <code class=
+      "code">using</code> rule: The first one is the version number, the
+      second a list of options. In the Jamfile above the Boost C++ libraries
+      1.39 are used which can be found in the directories passed as
+      options.</p>
+
+      <p>Once the boost toolset is used it is possible to use Boost C++
+      libraries without defining targets yourself.</p>
+      <pre class="programlisting">
+import boost ; 
+boost.use-project 1.39 ; 
+exe hello : hello.cpp : &lt;library&gt;/boost//thread ; 
+</pre>
+
+      <p>If a program uses a Boost C++ library it can refer to targets in a
+      project called boost. In order to recognize the project boost though
+      the boost module must be imported and the rule <code class=
+      "code">boost.use-project</code> used: Importing the boost module makes
+      the <code class="code">boost.use-project</code> rule available. This
+      rule expects a version number as its sole argument. As it is possible
+      to use the <code class="code">using</code> rule to refer to various
+      versions of the Boost C++ libraries a project can specify which version
+      it wants to use. In the Jamfile above the program <span class=
+      "command"><strong>hello</strong></span> uses Boost.Thread from version
+      1.39.</p>
+    </div>
+    <hr>
+
+    <h2 id="rule_reference">Rule reference<br>
+      <small>Building blocks for Jamfiles</small>
+    </h2>
+
+    <div>
+
+      <p>If you manage a project with Boost.Build and create Jamfiles you use
+      rules all the time. Thus you should know which rules exist and how they
+      are used. The following table gives you an overview about the most
+      important rules.</p>
+
+      <p>There is a star, plus sign or question mark behind some parameters.
+      The star means there can be arbitrary many values, the plus sign there
+      must be at least one value and the question mark there must be zero or
+      exactly one value.</p>
+
+      <table border="0" cellspacing="0" cellpadding="0" id="id369340">
+        <caption>
+          Table&nbsp;1.&nbsp;Rules
+        </caption>
+
+        <tbody>
+          <tr>
+            <th class="col-md-2">Name</th>
+
+            <th>Parameters</th>
+
+            <th>Description</th>
+          </tr>
+
+          <tr>
+            <td>alias</td>
+
+            <td>name : sources * : requirements * : default-build * :
+            usage-requirements *</td>
+
+            <td>Refer to sources or any other targets via a new name.</td>
+          </tr>
+
+          <tr>
+            <td>build-project</td>
+
+            <td>dir</td>
+
+            <td>Refer to a Jamfile in another directory to build a
+            project.</td>
+          </tr>
+
+          <tr>
+            <td>conditional</td>
+
+            <td>condition + : requirements *</td>
+
+            <td>Create conditional requirements without using conditional
+            properties.</td>
+          </tr>
+
+          <tr>
+            <td>exe</td>
+
+            <td>name : sources * : requirements * : default-build * :
+            usage-requirements *</td>
+
+            <td>Build an executable.</td>
+          </tr>
+
+          <tr>
+            <td>explicit</td>
+
+            <td>target-names *</td>
+
+            <td>Make targets explicit.</td>
+          </tr>
+
+          <tr>
+            <td>glob</td>
+
+            <td>wildcards + : excludes *</td>
+
+            <td>Reference files in a directory via wildcards.</td>
+          </tr>
+
+          <tr>
+            <td>glob-tree</td>
+
+            <td>wildcards + : excludes *</td>
+
+            <td>Reference files in a directory and all subdirectories via
+            wildcards.</td>
+          </tr>
+
+          <tr>
+            <td>install</td>
+
+            <td>name-and-dir : sources * : requirements * : default-build
+            *</td>
+
+            <td>Install files to a directory.</td>
+          </tr>
+
+          <tr>
+            <td>lib</td>
+
+            <td>names + : sources * : requirements * : default-build * :
+            usage-requirements *</td>
+
+            <td>Build a library.</td>
+          </tr>
+
+          <tr>
+            <td>project</td>
+
+            <td>id ? : options * : *</td>
+
+            <td>Set project options.</td>
+          </tr>
+
+          <tr>
+            <td>unit-test</td>
+
+            <td>target : source : properties *</td>
+
+            <td>Build and run an executable.</td>
+          </tr>
+
+          <tr>
+            <td>use-project</td>
+
+            <td>id : where</td>
+
+            <td>Reference a Jamfile in another directory to use the project
+            id as a target.</td>
+          </tr>
+
+          <tr>
+            <td>using</td>
+
+            <td>toolset-module : *</td>
+
+            <td>Select a toolset.</td>
+          </tr>
+        </tbody>
+      </table>
+
+      <p>Your Boost.Build version might support more rules than listed above.
+      If you want to find out which rules are supported you should check out
+      the files in the subdirectory <code class="filename">build</code> of
+      your Boost.Build installation.</p>
+    </div>
+    <hr>
+
+    <h2 id="feature_reference">Feature reference<br>
+      <small>Configuration options for the build process</small>
+    </h2>
+
+    <div>
+      
+      <p>Features allow you to specify exactly how binaries are built. As
+      there are many configuration options available the list of features is
+      pretty long. The following table introduces you to the most important
+      features.</p>
+
+      <table border="0" cellspacing="0" cellpadding="0" id="id369624">
+        <caption>
+          Table&nbsp;2.&nbsp;Features
+        </caption>
+
+        <tbody>
+          <tr>
+            <th class="col-md-2">Name</th>
+
+            <th>Values</th>
+
+            <th>Description</th>
+          </tr>
+
+          <tr>
+            <td>&lt;address-model&gt;</td>
+
+            <td>16, 32, 64, 32_64</td>
+
+            <td>Generate 16-, 32- or 64-bit code.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;architecture&gt;</td>
+
+            <td>x86, ia64, sparc, power, mips1, mips2, mips3, mips4, mips32,
+            mips32r2, mips64, parisc, arm, combined, combined-x86-power</td>
+
+            <td>Set processor family to generate code for.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;c++-template-depth&gt;</td>
+
+            <td>1, 2, 3, ...</td>
+
+            <td>Set maximum template depth.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;cflags&gt;</td>
+
+            <td>...</td>
+
+            <td>Pass flags to C compiler.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;cxxflags&gt;</td>
+
+            <td>...</td>
+
+            <td>Pass flags to C++ compiler</td>
+          </tr>
+
+          <tr>
+            <td>&lt;debug-symbols&gt;</td>
+
+            <td>on, off</td>
+
+            <td>Create debug symbols.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;def-file&gt;</td>
+
+            <td>...</td>
+
+            <td>Set path to <code class="filename">def</code> file (specific
+            to Windows DLLs).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;define&gt;</td>
+
+            <td>...</td>
+
+            <td>Define preprocessor directives.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;embed-manifest&gt;</td>
+
+            <td>on, off</td>
+
+            <td>Embed manifest (specific to msvc toolset).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;host-os&gt;</td>
+
+            <td>aix, bsd, cygwin, darwin, freebsd, hpux, iphone, linux,
+            netbsd, openbsd, osf, qnx, qnxnto, sgi, solaris, unix, unixware,
+            windows</td>
+
+            <td>Use in conditional properties if features depend on host
+            operating systems.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;include&gt;</td>
+
+            <td>...</td>
+
+            <td>Set include directories.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;inlining&gt;</td>
+
+            <td>off, on, full</td>
+
+            <td>Inline functions.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;library&gt;</td>
+
+            <td>...</td>
+
+            <td>Link to a library (use in <code class="code">project</code>
+            rule).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;link&gt;</td>
+
+            <td>shared, static</td>
+
+            <td>Link to shared or static version of a library.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;linkflags&gt;</td>
+
+            <td>...</td>
+
+            <td>Pass flags to linker.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;location&gt;</td>
+
+            <td>...</td>
+
+            <td>Set directory (use in <code class="code">install</code>
+            rule).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;name&gt;</td>
+
+            <td>...</td>
+
+            <td>Set basename of a library (use in <code class=
+            "code">lib</code> rule).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;optimization&gt;</td>
+
+            <td>off, speed, space</td>
+
+            <td>Generate optimized code.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;profiling&gt;</td>
+
+            <td>off, on</td>
+
+            <td>Generate profiled code.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;runtime-link&gt;</td>
+
+            <td>shared, static</td>
+
+            <td>Link to single-threaded or thread-safe runtime library.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;search&gt;</td>
+
+            <td>...</td>
+
+            <td>Set directory to search for libraries (use in <code class=
+            "code">lib</code> rule together with <code class=
+            "code">&lt;name&gt;</code>).</td>
+          </tr>
+
+          <tr>
+            <td>&lt;source&gt;</td>
+
+            <td>...</td>
+
+            <td>Set source in requirements parameter of <code class=
+            "code">project</code> rule or in conditional properties.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;target-os&gt;</td>
+
+            <td>aix, bsd, cygwin, darwin, freebsd, hpux, iphone, linux,
+            netbsd, openbsd, osf, qnx, qnxnto, sgi, solaris, unix, unixware,
+            windows</td>
+
+            <td>Use in conditional properties if features depend on target
+            operating systems.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;threading&gt;</td>
+
+            <td>single, multi</td>
+
+            <td>Build singlethreaded or thread-safe version.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;toolset&gt;</td>
+
+            <td>gcc, msvc, intel-linux, intel-win, acc, borland, como-linux,
+            cw, dmc, hp_cxx, sun</td>
+
+            <td>Use in conditional properties if features depend on
+            toolsets.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;undef&gt;</td>
+
+            <td>...</td>
+
+            <td>Undefine preprocessor directives.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;use&gt;</td>
+
+            <td>...</td>
+
+            <td>Take over only usage requirements of a referenced target but
+            don't do anything else.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;variant&gt;</td>
+
+            <td>debug, release, profile</td>
+
+            <td>Build debug, release or profile version.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;warnings&gt;</td>
+
+            <td>on, all, off</td>
+
+            <td>Switch off warnings.</td>
+          </tr>
+
+          <tr>
+            <td>&lt;warnings-as-errors&gt;</td>
+
+            <td>off, on</td>
+
+            <td>Treat warnings as errors.</td>
+          </tr>
+        </tbody>
+      </table>
+
+      <p>For a complete and up-to-date reference of Boost.Build features look
+      up the file <code class="filename">builtin.jam</code> in the
+      subdirectory <code class="filename">tools</code> of your Boost.Build
+      installation. Search for lines starting with <code class=
+      "code">feature.feature</code> - this is the internal rule used to
+      define features.</p>
+    </div>
+
+    <hr id="hrfoot">
+    <p>Copyright Boris Schäling 2009. Distributed under the Boost Software
+      License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+      <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)
 +
+  </div>
+
+
+</body>
+</html>

Modified: trunk/Thirdparty/boost/tools/inspect/apple_macro_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/apple_macro_check.cpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/apple_macro_check.cpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -64,7 +64,7 @@
 
       // Only check files in the boost directory, as we can avoid including the
       // apple test headers elsewhere.
-      path relative( relative_to( full_path, fs::initial_path() ) );
+      path relative( relative_to( full_path, search_root_path() ) );
       if ( relative.empty() || *relative.begin() != "boost") return;
 
       boost::sregex_iterator cur(contents.begin(), contents.end(), \
apple_macro_regex), end;

Modified: trunk/Thirdparty/boost/tools/inspect/ascii_check.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/ascii_check.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/ascii_check.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -35,4 +35,4 @@
   }
 }
 
-#endif // BOOST_TAB_CHECK_HPP
+#endif // BOOST_ASCII_CHECK_HPP

Modified: trunk/Thirdparty/boost/tools/inspect/assert_macro_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/assert_macro_check.cpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/assert_macro_check.cpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -47,8 +47,8 @@
    assert_macro_check::assert_macro_check()
      : m_files_with_errors(0)
      , m_from_boost_root(
-         fs::exists(fs::initial_path() / "boost") &&
-         fs::exists(fs::initial_path() / "libs"))
+         fs::exists(search_root_path() / "boost") &&
+         fs::exists(search_root_path() / "libs"))
    {
      register_signature( ".c" );
      register_signature( ".cpp" );
@@ -70,7 +70,7 @@
       // Check files iff (a) they are in the boost directory, or (b) they
       // are in the src directory under libs.
       if (m_from_boost_root) {
-        path relative( relative_to( full_path, fs::initial_path() ) );
+        path relative( relative_to( full_path, search_root_path() ) );
         path::const_iterator pbeg = relative.begin(), pend = relative.end();
         if (pbeg != std::find(pbeg, pend, "boost") &&
           !(pbeg == std::find(pbeg, pend, "libs") && pend != std::find(pbeg, pend, \
"src")))

Modified: trunk/Thirdparty/boost/tools/inspect/build/msvc/boost_inspect.vcxproj
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/build/msvc/boost_inspect.vcxproj	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/build/msvc/boost_inspect.vcxproj	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -65,6 +65,12 @@
       <SubSystem>Console</SubSystem>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
+    <PostBuildEvent>
+      <Command>"$(TargetDir)\$(TargetName).exe" ../.. -text -brief</Command>
+    </PostBuildEvent>
+    <PostBuildEvent>
+      <Message>Executing test $(TargetName).exe...</Message>
+    </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -95,6 +101,7 @@
     <ClCompile Include="..\..\assert_macro_check.cpp" />
     <ClCompile Include="..\..\copyright_check.cpp" />
     <ClCompile Include="..\..\crlf_check.cpp" />
+    <ClCompile Include="..\..\deprecated_macro_check.cpp" />
     <ClCompile Include="..\..\end_check.cpp" />
     <ClCompile Include="..\..\inspect.cpp" />
     <ClCompile Include="..\..\license_check.cpp" />

Modified: trunk/Thirdparty/boost/tools/inspect/build/msvc/readme.txt
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/build/msvc/readme.txt	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/build/msvc/readme.txt	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -1,8 +1,8 @@
 The provided Microsoft VC++ 10 solution assumes the following commands have been run
 in the root directory:
 
-     bjam --toolset=msvc-10.0express --build-type=complete --with-filesystem stage
-     bjam --toolset=msvc-10.0express --build-type=complete --with-regex stage
+     b2 --toolset=msvc-10.0express --build-type=complete --with-filesystem stage
+     b2 --toolset=msvc-10.0express --build-type=complete --with-regex stage
 	 
 boost-no-inspect
  

Modified: trunk/Thirdparty/boost/tools/inspect/deprecated_macro_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/deprecated_macro_check.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/deprecated_macro_check.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -77,8 +77,8 @@
 	"BOOST_HAS_STATIC_ASSERT",
 	"BOOST_HAS_RVALUE_REFS",
 	"BOOST_HAS_VARIADIC_TMPL",
-	"BOOST_HAS_CHAR_16_T",
-	"BOOST_HAS_CHAR_32_T",
+	"BOOST_HAS_CHAR16_T",
+	"BOOST_HAS_CHAR32_T",
     NULL
     };
 } // unnamed namespace
@@ -91,8 +91,8 @@
    deprecated_macro_check::deprecated_macro_check()
      : m_files_with_errors(0)
      , m_from_boost_root(
-         fs::exists(fs::initial_path() / "boost") &&
-         fs::exists(fs::initial_path() / "libs"))
+         fs::exists(search_root_path() / "boost") &&
+         fs::exists(search_root_path() / "libs"))
    {
      register_signature( ".c" );
      register_signature( ".cpp" );

Modified: trunk/Thirdparty/boost/tools/inspect/doc/inspect.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/doc/inspect.qbk	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/doc/inspect.qbk	2015-12-10 12:37:00 UTC (rev \
7425) @@ -48,8 +48,8 @@
 If the first program argument is -help, a usage message is displayed, showing all \
available program options:  
 [pre
-Usage: inspect \[-cvs\] \[-text\] \[-brief\] \[options...\]
-
+Usage: inspect \[search-root\] \[-cvs\] \[-text\] \[-brief\] \[options...\]
+ search-root default is the current directory
  Options:
   -license
   -copyright
@@ -61,6 +61,7 @@
   -ascii
   -apple_macro
   -assert_macro
+  -deprecated_macro
   -minmax
   -unnamed
  default is all checks on; otherwise options specify desired checks

Modified: trunk/Thirdparty/boost/tools/inspect/inspect.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/inspect.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/inspect.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -59,7 +59,7 @@
 #include "minmax_check.hpp"
 #include "unnamed_namespace_check.hpp"
 
-#include "cvs_iterator.hpp"
+//#include "cvs_iterator.hpp"
 
 #if !defined(INSPECT_USE_BOOST_TEST)
 #define INSPECT_USE_BOOST_TEST 0
@@ -75,6 +75,8 @@
 
 namespace
 {
+  fs::path search_root = fs::initial_path();
+  
   class inspector_element
   {
     typedef boost::shared_ptr< boost::inspect::inspector > inspector_ptr;
@@ -221,10 +223,13 @@
 
   bool visit_predicate( const path & pth )
   {
-    string local( boost::inspect::relative_to( pth, fs::initial_path() ) );
+    string local( boost::inspect::relative_to( pth, search_root_path() ) );
     string leaf( pth.leaf().string() );
+    if (leaf[0] == '.')  // ignore hidden by convention directories such as
+      return false;      //  .htaccess, .git, .svn, .bzr, .DS_Store, etc.
+     
     return
-      // so we can inspect a checkout
+      // so we can inspect a CVS checkout
       leaf != "CVS"
       // don't look at binaries
       && leaf != "bin"
@@ -232,15 +237,6 @@
       // no point in checking doxygen xml output
       && local.find("doc/xml") != 0
       && local.find("doc\\xml") != 0
-      // ignore some web files
-      && leaf != ".htaccess"
-      // ignore svn files:
-      && leaf != ".svn"
-      // ignore other version control files
-      && leaf != ".git"
-      && leaf != ".bzr"
-      // ignore OS X directory info files:
-      && leaf != ".DS_Store"
       // ignore if tag file present
       && !boost::filesystem::exists(pth / boost_no_inspect)
       ;
@@ -330,7 +326,6 @@
 
     for ( DirectoryIterator itr( dir_path ); itr != end_itr; ++itr )
     {
-
       if ( fs::is_directory( *itr ) )
       {
         if ( visit_predicate( *itr ) )
@@ -340,7 +335,7 @@
           visit_all<DirectoryIterator>( cur_lib, *itr, insps );
         }
       }
-      else
+      else if (itr->path().leaf().string()[0] != '.') // ignore if hidden
       {
         ++file_count;
         string content;
@@ -370,7 +365,7 @@
 
   void display_summary_helper( const string & current_library, int err_count )
   {
-    if (display_text == display_format)
+    if (display_format == display_text)
     {
         std::cout << "  " << current_library << " (" << err_count << ")\n";
     }
@@ -389,7 +384,7 @@
 
   void display_summary()
   {
-    if (display_text == display_format)
+    if (display_format == display_text)
     {
       std::cout << "Summary:\n";
     }
@@ -416,7 +411,7 @@
     }
     display_summary_helper( current_library, err_count );
 
-    if (display_text == display_format)
+    if (display_format == display_text)
       std::cout << "\n";
     else
       std::cout << "</blockquote>\n"; 
@@ -453,7 +448,7 @@
 
   void display_details()
   {
-    if (display_text == display_format)
+    if (display_format == display_text)
     {
       // display error messages with group indication
       error_msg current;
@@ -592,7 +587,9 @@
 
   void display_worst_offenders()
   {
-    if (display_text == display_format)
+    if (display_mode == display_brief)
+      return;
+    if (display_format == display_text)
     {
       std::cout << "Worst Offenders:\n";
     }
@@ -612,7 +609,7 @@
                 || itr->error_count == last_error_count);
           ++itr, ++display_count )
     {
-      if (display_text == display_format)
+      if (display_format == display_text)
       {
         std::cout << itr->library << " " << itr->error_count << "\n";
       }
@@ -628,7 +625,7 @@
       last_error_count = itr->error_count;
     }
 
-    if (display_text == display_format)
+    if (display_format == display_text)
       std::cout << "\n";
     else
       std::cout << "</blockquote>\n"; 
@@ -687,7 +684,13 @@
       return display_format ? "\n" : "<br>\n";
     }
 
+//  search_root_path  --------------------------------------------------------//
 
+    path search_root_path()
+    {
+      return search_root;
+    }
+
 //  register_signature  ------------------------------------------------------//
 
     void inspector::register_signature( const string & signature )
@@ -704,7 +707,7 @@
       ++error_count;
       error_msg err_msg;
       err_msg.library = library_name;
-      err_msg.rel_path = relative_to( full_path, fs::initial_path() );
+      err_msg.rel_path = relative_to( full_path, search_root_path() );
       err_msg.msg = msg;
       err_msg.line_number = line_number;
       msgs.push_back( err_msg );
@@ -775,7 +778,7 @@
     // may return an empty string [gps]
     string impute_library( const path & full_dir_path )
     {
-      path relative( relative_to( full_dir_path, fs::initial_path() ) );
+      path relative( relative_to( full_dir_path, search_root_path() ) );
       if ( relative.empty() ) return "boost-root";
       string first( (*relative.begin()).string() );
       string second =  // borland 5.61 requires op=
@@ -809,7 +812,9 @@
   if ( argc > 1 && (std::strcmp( argv[1], "-help" ) == 0
     || std::strcmp( argv[1], "--help" ) == 0 ) )
   {
-    std::clog << "Usage: inspect [-cvs] [-text] [-brief] [options...]\n\n"
+    //std::clog << "Usage: inspect [search-root] [-cvs] [-text] [-brief] \
[options...]\n\n" +    std::clog << "Usage: inspect [search-root] [-text] [-brief] \
[options...]\n\n" +      " search-root default is the current directory (i.e. \
'.')\n\n"  " Options:\n"
       << options() << '\n';
     return 0;
@@ -828,14 +833,20 @@
   bool deprecated_ck = true;
   bool minmax_ck = true;
   bool unnamed_ck = true;
-  bool cvs = false;
+  //bool cvs = false;
 
-  if ( argc > 1 && std::strcmp( argv[1], "-cvs" ) == 0 )
+  if ( argc > 1 && *argv[1] != '-' )
   {
-    cvs = true;
+    search_root = fs::canonical(fs::absolute(argv[1], fs::initial_path()));
     --argc; ++argv;
   }
 
+  //if ( argc > 1 && std::strcmp( argv[1], "-cvs" ) == 0 )
+  //{
+  //  cvs = true;
+  //  --argc; ++argv;
+  //}
+
   if ( argc > 1 && std::strcmp( argv[1], "-text" ) == 0 )
   {
     display_format = display_text;
@@ -907,8 +918,6 @@
   }
 
   string inspector_keys;
-  fs::initial_path();
-  
 
   { // begin reporting block
 
@@ -944,13 +953,13 @@
   if ( unnamed_ck )
       inspectors.push_back( inspector_element( new \
boost::inspect::unnamed_namespace_check ) );  
-  // perform the actual inspection, using the requested type of iteration
-  if ( cvs )
-    visit_all<hack::cvs_iterator>( "boost-root",
-      fs::initial_path(), inspectors );
-  else
-    visit_all<fs::directory_iterator>( "boost-root",
-      fs::initial_path(), inspectors );
+  //// perform the actual inspection, using the requested type of iteration
+  //if ( cvs )
+  //  visit_all<hack::cvs_iterator>( search_root.leaf().string(),
+  //    search_root, inspectors );
+  //else
+    visit_all<fs::directory_iterator>( search_root.leaf().string(),
+      search_root, inspectors );
 
   // close
   for ( inspector_list::iterator itr = inspectors.begin();
@@ -962,17 +971,13 @@
   string run_date ( "n/a" );
   boost::time_string( run_date );
 
-  if (display_text == display_format)
+  if (display_format == display_text)
   {
     std::cout
       <<
         "Boost Inspection Report\n"
         "Run Date: " << run_date  << "\n"
         "\n"
-        "An inspection program <http://www.boost.org/tools/inspect/index.html>\n"
-        "checks each file in the current Boost CVS for various problems,\n"
-        "generating an HTML page as output.\n"
-        "\n"
       ;
 
     std::cout
@@ -1014,7 +1019,7 @@
       ;
     std::cout
       << "<p>The files checked were from "
-      << info( fs::initial_path() )
+      << info( search_root_path() )
       << ".</p>\n";
 
 
@@ -1036,14 +1041,14 @@
         ;
   }
 
-  if (display_text == display_format)
+  if (display_format == display_text)
      std::cout << "\nProblem counts:\n";
   else
     std::cout << "\n<h2>Problem counts</h2>\n<blockquote><p>\n" ;
 
   } // end of block: starts reporting
 
-  if (display_text == display_format)
+  if (display_format == display_text)
     std::cout << "\n" ;
   else
     std::cout << "</blockquote>\n";
@@ -1053,14 +1058,14 @@
   worst_offenders_count();
   std::stable_sort( libs.begin(), libs.end() );
 
-  if ( !libs.empty() )
+  if ( !libs.empty() && display_mode != display_brief)
     display_worst_offenders();
 
   if ( !msgs.empty() )
   {
     display_summary();
 
-    if (display_text == display_format)
+    if (display_format == display_text)
     {
       std::cout << "Details:\n" << inspector_keys;
       std::cout << "\nDirectories with a file named \"" << boost_no_inspect << "\" \
will not be inspected.\n" @@ -1075,7 +1080,7 @@
     display_details();
   }
 
-  if (display_text == display_format)
+  if (display_format == display_text)
   {
     std::cout << "\n\n" ;
   }
@@ -1086,5 +1091,5 @@
       "</html>\n";
   }
 
-  return 0;
+  return error_count ? 1 : 0;
 }

Modified: trunk/Thirdparty/boost/tools/inspect/inspector.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/inspector.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/inspector.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -28,6 +28,8 @@
 
     const char * line_break();
 
+    path search_root_path();
+
     class inspector
     {
     protected:

Modified: trunk/Thirdparty/boost/tools/inspect/link_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/link_check.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/link_check.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -123,7 +123,7 @@
     {
       // keep track of paths already encountered to reduce disk activity
       if ( !fs::is_directory( full_path ) )
-        m_paths[ relative_to( full_path, fs::initial_path() ) ] |= m_present;
+        m_paths[ relative_to( full_path, search_root_path() ) ] |= m_present;
     }
 
 //  inspect ( .htm, .html, .shtml, .css )  -----------------------------------//
@@ -134,7 +134,7 @@
       const string & contents )     // contents of file to be inspected
     {
       if (contents.find( "boostinspect:" "nounlinked" ) != string::npos)
-          m_paths[ relative_to( full_path, fs::initial_path() ) ] |= \
m_nounlinked_errors; +          m_paths[ relative_to( full_path, search_root_path() ) \
] |= m_nounlinked_errors;  
       bool no_link_errors =
           (contents.find( "boostinspect:" "nolink" ) != string::npos);
@@ -438,7 +438,7 @@
 
       // create a m_paths entry if necessary
       std::pair< const string, int > entry(
-        relative_to( target_path, fs::initial_path() ), 0 );
+        relative_to( target_path, search_root_path() ), 0 );
       m_path_map::iterator itr( m_paths.find( entry.first ) );
       if ( itr == m_paths.end() )
       {
@@ -476,7 +476,7 @@
          && itr->first.rfind( "index.htm" ) == string::npos )
        {
          ++m_unlinked_errors;
-         path full_path( fs::initial_path() / path(itr->first) );
+         path full_path( search_root_path() / path(itr->first) );
          error( impute_library( full_path ), full_path, "Unlinked file" );
        }
      }

Modified: trunk/Thirdparty/boost/tools/inspect/link_check.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/link_check.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/link_check.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -30,7 +30,7 @@
       long m_duplicate_bookmark_errors;
 
       typedef std::map< string, int > m_path_map;
-      m_path_map m_paths; // first() is relative initial_path()
+      m_path_map m_paths; // first() is relative to search_root_path()
 
       void do_url( const string & url, const string & library_name,
         const path & full_source_path, bool no_link_errors,

Modified: trunk/Thirdparty/boost/tools/inspect/path_name_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/path_name_check.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/path_name_check.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -82,7 +82,7 @@
       //}
 
       //  the path, including a presumed root, does not exceed the maximum size
-      path const relative_path( relative_to( full_path, filesystem::initial_path() ) \
); +      path const relative_path( relative_to( full_path, search_root_path() ) );
       const unsigned max_relative_path = 207; // ISO 9660:1999 sets this limit
       const string generic_root( "boost_X_XX_X/" );
       if ( relative_path.string().size() >

Modified: trunk/Thirdparty/boost/tools/inspect/tab_check.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/tab_check.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/tab_check.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -20,7 +20,7 @@
     public:
 
       tab_check();
-      virtual const char * name() const { return "*Tab*"; }
+      virtual const char * name() const { return "*Tabs*"; }
       virtual const char * desc() const { return "tabs in file"; }
 
       virtual void inspect(

Modified: trunk/Thirdparty/boost/tools/inspect/time_string.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/time_string.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/inspect/time_string.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -8,7 +8,7 @@
 //
 // ------------------------------------------------------------------
 //
-// $Id: time_string.hpp 47222 2008-07-08 14:29:03Z bemandawes $
+// $Id$
 
 #ifndef BOOST_TIME_STRING_HPP_GP_20060731
 #define BOOST_TIME_STRING_HPP_GP_20060731

Modified: trunk/Thirdparty/boost/tools/inspect/unnamed_namespace_check.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/inspect/unnamed_namespace_check.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/inspect/unnamed_namespace_check.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -15,7 +15,7 @@
 {
 
   boost::regex unnamed_namespace_regex(
-     "\\<namespace\\s(\\?\\?<|\\{)" // trigraph ??< or {
+     "\\<namespace\\s*(\\?\\?<|\\{)" // trigraph ??< or {
   );
 
 } // unnamed namespace (ironical? :-)

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/1_6.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/1_6.qbk	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/1_6.qbk	2015-12-10 12:37:00 UTC (rev \
7425) @@ -1,51 +1,55 @@
 [/
     Copyright 2002,2004,2006 Joel de Guzman, Eric Niebler
-    Copyright 2010-2011 Daniel James
+    Copyright 2010-2013 Daniel James
 
     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)
 ]
 
-[chapter Language Versions
-    [quickbook 1.6]
-    [compatibility-mode 1.5]
-    [id quickbook.versions]
-    [source-mode teletype]
-]
+[section:1_6 Quickbook 1.6]
 
-[section:stable Stable Versions]
+Upgrading a document from an earlier version of quickbook shouldn't be too
+hard. The first thing to do is update the version in the docinfo block.
+For example, if you were updating the Xpressive documentation, the existing
+docinfo block looks like:
 
-Since quickbook 1.3 the `quickbook` attribute in the document block selects
-which version of the language to use. Not all changes to quickbook are
-implemented using a version switch, it's mainly just the changes that change
-the way a document is interpreted or would break existing documentation.
+    [library Boost.Xpressive
+        [quickbook 1.3]
+        ...
+    ]
 
-[heading Quickbook 1.3 and later]
+Change this to:
 
-* Introduced quickbook language versioning.
-* In the documentation info, allow phrase markup in license and purpose
-  attributes.
-* Fully qualified section and headers. Subsection names are concatenated to the
-  ID to avoid clashing. Example: \
`doc_name.sect_name.sub_sect_name.sub_sub_sect_name`. +    [library Boost.Xpressive
+        [quickbook 1.6]
+        [compatibility-mode 1.3]
+        ...
+    ]
 
-[heading Quickbook 1.5 and later]
+The =compatibility-mode= tag ensures that automatically generated links
+won't change. It might turn out that it isn't required, but in Xpressive's
+case if it isn't included it will break a lot of links.
 
-* Ignore template argument separators inside square brackets.
-* Don't separate the final template argument if the `..` separator was
-  used. i.e. never mix `..` and whitespace separators.
-* Statically scope templates and their arguments rather than dynamically
-  scope them.
-* Give table ids, and let you set them.
-* Allow spaces between the `:` character and ids in elements which can
-  have ids.
+Then try building it. You might need to fix some stray square brackets. The
+new version has a stricter parser which will have an error for brackets
+which don't pair up. They might be there by mistake, in which case they
+should probably be deleted, or if they're intentional escaped. For example,
+to write out the half-open range \[a,b), use: `\[a,b)`.
 
-[endsect]
+Next, you might need to reconsider how templates and macros are defined.
+If you `include` a file to use its templates, you'll now need to `import` it
+instead as templates are now scoped by included files. Also, if you define
+templates and macros in your main quickbook file, you might want to put them
+into a separate file and `import` that, which allows the main documentation
+files to concentrate on the structure and contents of the document, making them
+easier to read.
 
-[section:1_6 Quickbook 1.6]
+Now that headings can have ids, it can be a good idea to add ids to existing
+headings. This means that the headings will have more predictable ids which
+don't change when the text of the heading changes. In order to preserve
+links you can use the existing generated id as the heading.
 
-Everything described in here may change depending on the feedback received.
-
 [section:docinfo Includes with docinfo]
 
 In quickbook 1.5 if you include a file which starts with a docinfo block, it's
@@ -246,187 +250,38 @@
 
 [endsect] [/xmlbase]
 
-[section:elements New Elements]
+[section:template_parser Improved template parser]
 
-[section:block `block`]
+There's a new parser for template declarations and parameters which does
+a better job of understanding escaped and bracketed text. Unfortunately
+it does not understand element names so there are some cases where it
+could go wrong. For example:
 
-`block` is a block element that just marks its contents as a block,
-so that they aren't wrapped in paragraph tags. The main use is
-for escaped docbook block tags, such as:
-
-    [template chapter[title]
-    [block'''<chapter><title>'''[title]'''</title>''']
+    [template doesnt_work[]
+    [ordered_list
+        [`code phrase`]
     ]
-
-    [template chapterend
-    [block'''</chapter>''']
     ]
 
-    [chapter An example chapter]
+In this case it will think the `[\`` is a template call and give a parse
+error. To work around this put an escaped space before the code phrase:
 
-    Content
+    [template works[]
+    [ordered_list
+        [\ `code phrase`]
+    ]
+    ]
 
-    [chapterend]
-
-Without the `block` element, the `chapter` and `chapterend` templates
-would be wrapped in paragraph tags.
-
-[note In this example, the template body has to start with a newline so that
-the template will be interpreted in block mode.]
-
 [endsect]
 
-[section:lists `ordered_list` and `itemized_list`]
+[section:elements New Elements]
 
-These are used as an alternative to the normal wiki-style markup for
-lists. They make it easier to nest lists inside other elements, and
-nest elements inside lists. The markup is similar to a single level
-table:
+New elements added in quickbook 1.6:
 
-    [ordered_list [item1][item2]]
+* [link quickbook.ref.block `block`]
+* [link quickbook.ref.list_tags `ordered_list` and `itemized_list`]
+* [link quickbook.ref.role `role`]
 
-is equivalent to:
+[endsect] [/ elements]
 
-    # item1
-    # item2
-
-[endsect]
-
-[section:role `role`]
-
-`role` is a phrase element used to mark up the text in the eventual html
-with an a class. For example:
-
-    [role red Text content]
-
-Will generate the docbook:
-
-    <phrase role="red">Text content</phrase>
-
-Which will generate html along the lines of:
-
-    <span class="red">Text content</span>
-
-And then you can use css to style this however you wish.
-
-[endsect]
-
-[endsect]
-
-[section:listparagraphs Pargraphs in lists]
-
-I'm still refining this, but paragraphs and block elements can now be used
-in lists:
-
-[pre
-* Para 1
-
-  Para 2
-  * Nested Para 1
-
-    Nested Para 2
-
-        Code block
-  Para 3
-]
-
-generates:
-
-* Para 1
-
-  Para 2
-  * Nested Para 1
-
-    Nested Para 2
-
-        Code block
-  Para 3
-
-The docbook markup that this generates is pretty bad, but seems to create okay
-html.
-
-[endsect]
-
 [endsect] [/ Quickbok 1.6]
-
-[section:1_7 Quickbook 1.7]
-
-[section:source_mode Source mode for single entities]
-
-1.7 introduces a new `!` element type for setting the source mode of a single
-entity without changing the source mode otherwise. This can be used for
-code blocks and other elements. For example:
-
-```
-[!c++]
-    void foo() {};
-
-[!python]``\`\`\`\ ``def foo():``\`\`\`\ ``
-```
-
-It can also be used to set the source mode for elements:
-
-```
-[!teletype][table
-    [[code][meaning]]
-    [[`+`][addition]]
-]
-```
-
-When used a section, it's only set for the section element, not the
-whole section.
-
-Currently it does support other syntactic entities such as paragraphs
-and lists. I'm not sure if it would be a good idea.
-
-[endsect]
-
-[section:callouts Callouts in code block]
-
-Currently callouts can only be used in code snippets. 1.7 add
-support in normal code blocks. The same syntax is used as in
-code snippets, the callout descriptions appear immediately
-after the code block.
-
-[endsect]
-
-[section:escaped_docinfo_attributes Escaped docbook in docinfo blocks]
-
-Quickbook docinfo attributes will probably never be as rich as docbook
-attributes so to allow more flexible markup, not supported by quickbook
-escaped docbook can be included in the docinfo block:
-
-```
-[article Some article
-[quickbook 1.7]
-'''<author>
-    <firstname>John</firstname>
-    <surname>Doe</surname>
-    <email>john.doe@example.com</email>
-</author>'''
-]
-```
-
-The escaped docbook is always placed at the end of the docinfo block,
-so it shouldn't be assumed that it will interleave the markup. A mixture
-of quickbook and docbook attributes for the same information will not work
-well.
-
-[endsect] [/escaped_docinfo_attributes]
-
-[section:templates_in_link_values Templates in link values]
-
-There's very premilinary support for calling templates in link values. A lot
-more work needs to be done, including:
-
-* Considering other places where templates could be called (e.g. images are
-  quite tricky, as templates could get confused with attributes, should
-  templates be callable from something like an element's id?).
-* Trimming spaces from the body of the template (which can cause surprising
-  results).
-* Checking that the contents of the template are appropriate for the context.
-  Possibly even using a different grammar.
-
-[endsect] [/templates_in_link_values]
-
-[endsect] [/ Quickbok 1.7]

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/Jamfile.v2	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/Jamfile.v2	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -8,7 +8,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #==============================================================================
 
-project boost/quickbook/doc ;
+project quickbook/doc ;
 
 using boostbook ;
 using quickbook ;
@@ -21,7 +21,11 @@
     :
         quickbook
     :
-        <xsl:param>boost.root=../../../..
+        <format>html:<xsl:param>boost.root=../../../..
+        <format>html:<xsl:param>img.src.path=../../../../doc/html/
+        <format>xhtml:<xsl:param>boost.root=../../../..
+        <format>xhtml:<xsl:param>img.src.path=../../../../doc/html/
+
         #<xsl:param>callout.graphics.path=../../images/callouts//
         <format>pdf:<xsl:param>img.src.path=$(images)/
         <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html


Modified: trunk/Thirdparty/boost/tools/quickbook/doc/block.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/block.qbk	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/block.qbk	2015-12-10 12:37:00 UTC (rev \
7425) @@ -26,6 +26,38 @@
 This is useful when file.xml has been generated by Doxygen and contains your
 reference section.
 
+=xinclude= paths are normally used unchanged in the generated documentation,
+which will not work if you wish them to be relative to the current quickbook
+file. Quickbook can add a =xml:base= attribute to the boostbook documentation
+to specify where =xinclude= files should be found. For example, if you wish
+them to be relative to the current quickbook file:
+
+    [article Article with xincludes
+    [quickbook 1.6]
+    [xmlbase .]
+    ]
+
+    [xinclude file.xml]
+
+Now the xinclude should work if =file.xml= is in the same directory as the
+quickbook file. Although it might not work if you distribute the generated
+files (as their relative directories can change).
+
+Say the article is generated in a sub-directory, by running something like:
+
+    quickbook article.qbk --output-file=output/article.xml
+
+This will generate a boostbook root tag:
+
+    <article id="article_with_xincludes"
+        last-revision="$Date: 2013/08/20 08:26:48 $"
+        xml:base=".."
+        xmlns:xi="http://www.w3.org/2001/XInclude">
+
+Because =xml:base= is set to =..=, the xml processor will know to look in
+the parent directory to find =file.xml=, which it comes across the
+=xi:include= tag.
+
 [endsect] [/xinclude]
 
 [#quickbook.ref.paragraphs]
@@ -190,6 +222,31 @@
             * 2.b.2.b
 
 [endsect] [/mixed_lists]
+
+[#quickbook.ref.list_tags]
+[section:list_tags Explicit list tags]
+
+Sometimes the wiki-style list markup can be tricky to use, especially
+if you wish to include more complicated markup with the list. So in
+quickbook 1.6, an alternative way to mark up lists introduced:
+
+    [ordered_list [item1][item2]]
+
+is equivalent to:
+
+    # item1
+    # item2
+
+And:
+
+    [itemized_list [item1][item2]]
+
+is equivalent to:
+
+    * item1
+    * item2
+
+[endsect] [/list_tags]
 [endsect] [/lists]
 
 [#quickbook.ref.code]
@@ -356,8 +413,23 @@
 [h5 Heading 5]
 [h6 Heading 6]
 
-Headings 1-3 \[h1 h2 and h3\] will automatically have anchors with
-normalized names with
+You can specify an id for a heading:
+
+```
+[h1:heading_id A heading to link to]
+```
+
+To link to it, you'll need to include the enclosing section's id:
+
+```
+[link document_id.section_id.heading_id The link text]
+```
+
+Although you can preceed a heading by an [link quickbook.ref.anchors anchor]
+if you wish to use a location independent link.
+
+If a heading doesn't have an id, one will be automatically generated
+with a normalized name with
 [^name="document_id.section_id.normalized_header_text"] (i.e. valid
 characters are =a-z=, =A-Z=, =0-9= and =_=. All non-valid characters are
 converted to underscore and all upper-case are converted to lower-case.
@@ -370,6 +442,9 @@
 
 to link to them. See __anchor_links__ and __section__ for more info.
 
+[note Specifying heading ids is a quickbook 1.6 feature, earlier
+      versions don't support them.]
+
 [endsect] [/headings]
 
 [#quickbook.ref.generic_heading]
@@ -393,7 +468,7 @@
 ```
 [section A]
 [h2 X]
-[h2 Y]
+[h2:link_id Y]
 [h2 Z]
 [endsect]
 ```
@@ -965,17 +1040,25 @@
 [include someother.qbk]
 ```
 
-The included file will be processed as if it had been cut and pasted
+In quickbook 1.6 and later, if the included file has a
+[link quickbook.ref.docinfo docinfo block] then it will create a nested
+document. This will be processed as a standalone document, although any macros
+or templates from the enclosing file will still be defined.
+
+Otherwise the included file will be processed as if it had been cut and pasted
 into the current document, with the following exceptions:
 
 * The '''__FILENAME__''' predefined macro will reflect the name of the
   file currently being processed.
-* Any macros defined in the included file are scoped to that file.
+* Any macros or templates defined in the included file are scoped to that file,
+  i.e. they are not added to the enclosing file.
 
+[note In quickbook 1.5 and earlier templates weren't scoped in included files.
+If you want to use templates or macros from a file in quickbook 1.6,
+use [link quickbook.ref.import import] instead.]
+
 The [^\[include\]] directive lets you specify a document id to use for the
-included file. When this id is not explicitly specified, the id defaults to
-the filename ("someother", in the example above). You can specify the id
-like this:
+included file. You can specify the id like this:
 
 ```
 [include:someid someother.qbk]
@@ -986,11 +1069,70 @@
 named anchor for that section will be "someid.intro", and you can link to
 it with [^\[link someid.intro The Intro\]].
 
+If the included file has a docinfo block, an id specified in an [^\[include\]]
+directive will overwrite it.
+
+You can also include C, C++ and python source files. This will include any
+quickbook blocks in the file that aren't inside of named code snippets. See
+the [link quickbook.ref.import Import section] for syntax details. For example,
+say you included this file:
+
+    /**
+     * Hello world example
+     */
+
+    // In this comment, the backtick indicates that this is a
+    // quickbook source block that will be included.
+
+    /*`
+    First include the appropriate header: [hello_includes]
+    Then write your main function: [hello_main]
+    */
+
+    // This defines a code snippet, the syntax is
+    // described in the import section. It's available
+    // in the whole of this source file, not just after
+    // its definition.
+
+    //[hello_includes
+    #include <iostream>
+    //]
+
+    //[hello_main
+    int main() {
+        std::cout << "Hello, trivial example" << std::endl;
+    }
+    //]
+
+It will generate:
+
+    First include the appropriate header:
+
+        #include <iostream>
+
+    Then write your main function:
+
+        int main() {
+            std::cout << "Hello, trivial example" << std::endl;
+        }
+
 [endsect] [/include]
 
 [#quickbook.ref.import]
 [section:import Import]
 
+In quickbook 1.6 and later if you wish to use a template, macro or code
+snippet from a file, you need to import it. This will not include any
+of the content from that file, but will pull templates, macros and code
+snippets into the current file's scope.
+
+With quickbook files, this allows you to create template and macro
+libraries. For python (indicated by the `.py` extension), C or
+C++ files this allows you to include code snippets from source files,
+so that your code examples can be kept up to date and fully tested.
+
+[/ Old justification text, might move this into a new section:
+
 When documenting code, you'd surely need to present code from actual source
 files. While it is possible to copy some code and paste them in your QuickBook
 file, doing so is error prone and the extracted code in the documentation tends
@@ -999,6 +1141,7 @@
 languish in the archives without maintenance.
 
 QuickBook's import facility provides a nice solution.
+]
 
 [heading Example]
 
@@ -1132,6 +1275,36 @@
 
 [class_]
 
-See the actual code here: [@boost:/tools/quickbook/test/stub.cpp]
+See the actual code here:
+[@boost:/tools/quickbook/test/stub.cpp tools/quickbook/test/stub.cpp]
 
 [endsect] [/import]
+
+[#quickbook.ref.block]
+[section:block Plain blocks]
+
+`block` is a plain block element, that doesn't wrap its contents
+in any docbook or boostbook tags. This can be useful when using
+escaped docbook block tags, such as:
+
+    [template chapter[title]
+    [block'''<chapter><title>'''[title]'''</title>''']
+    ]
+
+    [template chapterend
+    [block'''</chapter>''']
+    ]
+
+    [chapter An example chapter]
+
+    Content
+
+    [chapterend]
+
+Without the `block` element, the `chapter` and `chapterend` templates
+would be wrapped in paragraph tags.
+
+[note In this example, the template body has to start with a newline so that
+the template will be interpreted in block mode.]
+
+[endsect] [/block]

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/change_log.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/change_log.qbk	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/change_log.qbk	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -296,3 +296,38 @@
   * Convert to use `boost::string_ref`.
   * Clean up the source map implementation (used to get the correct
     location for error messages in things like templates and snippets).
+
+[heading Version 1.6.0 - Boost 1.55]
+
+* Remove nested blocks in lists from 1.6, move to 1.7.
+  (Can still nest block elements in lists though).
+* Don't break out of lists after a nested block element.
+* Check for errors when writing dependency files.
+* Improved markup for lists.
+* Make escaping templates with a punctuation identifier illegal.
+  Escaping templates with an alphanumeric identifier is still fine.
+* Fix detection of code blocks at the start of a file.
+* XML encode the contents of the `__FILENAME__` macro.
+* 1.7 changes:
+  * Make it an error to use an element in the wrong context.
+  * Error if the body of a phrase element doesn't parse.
+  * List markup in nested blocks.
+  * Allow block elements in phrase templates.
+  * Make it an error to put a paragraph break (i.e. a blank line)
+    in a phrase template.
+* Internal changes:
+  * Clean up the id manager implementation.
+
+[heading Version 1.6.1]
+
+* Better URI encoding of links.
+* Extra validation of attribute values.
+* 1.7 changes:
+  * Improved source mode tagging:
+    * Works for lists and paragraphs.
+    * If the source mode is changed inside a tagged element, that change
+      will now persist after the element.
+    * Tagged sections will now use the source mode for the whole section.
+  * Template calls from anchor, role and include elements.
+  * Stricter handling of templates called in attribute values.
+  * Glob support.

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/phrase.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/phrase.qbk	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/phrase.qbk	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -165,6 +165,42 @@
 
 [endsect] [/simple_formatting]
 
+[#quickbook.ref.role]
+[section:role Role]
+
+This generates a docbook phrase with a `role` attribute, which can be used
+to classify the phrase. This can be used to mark text for a use that isn't
+covered elsewhere. The docbook `role` will generate a html class, which can
+be used to style text. And the xsl stylesheets can be customized to treat
+certain roles specially when generating pdfs.
+
+The boostbook css stylesheets, and xsl stylesheets
+contain support for a limited number of colours that can be used with
+`role`. For example if you write:
+
+    [role red Text content]
+
+You'll get red text if you're using the boostbook css (for html) or
+the boostbook xsl for generating pdfs.
+
+The full list of colours that will be available is:
+
+* [role red red]
+* [role green green]
+* [role lime lime]
+* [role blue blue]
+* [role navy navy]
+* [role yellow yellow]
+* [role magenta magenta]
+* [role indigo indigo]
+* [role cyan cyan]
+* [role purple purple]
+* [role gold gold]
+* [role silver silver]
+* [role gray gray]
+
+[endsect] [/role]
+
 [#quickbook.ref.inline_code]
 [section:inline_code Inline code]
 

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/quickbook.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/quickbook.qbk	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/quickbook.qbk	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -11,7 +11,7 @@
     [quickbook 1.6]
     [compatibility-mode 1.5]
     [id quickbook]
-    [version 1.5]
+    [version 1.6]
     [authors [de Guzman, Joel], [Niebler, Eric]]
     [copyright 2002 2004 2006 Joel de Guzman, Eric Niebler]
     [copyright 2010-2011 Daniel James]
@@ -87,8 +87,8 @@
 [include structure.qbk]
 [include phrase.qbk]
 [include block.qbk]
-[include 1_6.qbk]
+[include language_versions.qbk]
 [include install.qbk]
 [include editors.qbk]
 [include faq.qbk]
-[include ref.qbk]
\ No newline at end of file
+[include ref.qbk]

Modified: trunk/Thirdparty/boost/tools/quickbook/doc/structure.qbk
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/doc/structure.qbk	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/doc/structure.qbk	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -82,15 +82,39 @@
 [heading Quickbook specific meta data]
 
 ```
-    [quickbook 1.5]
+    [quickbook 1.6]
 ```
 
 The `quickbook` attribute declares the version of quickbook
 the document is written for.
 In its absence, version 1.1 is assumed. It's recommended that
-you use `[quickbook 1.5]` which is the version described here.
+you use `[quickbook 1.6]` which is the version described here.
 
+[note
+
+The quickbook version also makes some changes to the markup
+that's generated. Most notably, the ids that are automatically
+for headers and sections are different in later versions. To
+minimise disruption, you can use the =compatibility-mode=
+attribute to generate similar markup to the old version:
+
 ```
+[article Article that was original
+         written in quickbook 1.3
+[quickbook 1.6]
+[compatibility-mode 1.3]
+]
+```
+
+This feature shouldn't be used for new documents, just for
+porting old documents to the new version.
+]
+
+Both the =quickbook= and =compatibility-mode= tags can be used
+at the start of the file, before the document info block, and
+also in files that don't have a document info block.
+
+```
     [source-mode teletype]
 ```
 
@@ -144,6 +168,43 @@
 
 [endsect] [/attributes]
 
+[section:nesting Nesting quickbook documents]
+
+Docinfo blocks can only appear at the beginning of a quickbook file, so to
+create a more complicated document you need to use several quickbook files and
+use the [link quickbook.ref.include include tag] to nest them. For example, say
+you wish to create a book with an introduction and a chapter, you first create
+a file for the book:
+
+    [book Simple example
+    [quickbook 1.6]
+    ]
+
+    [include introduction.qbk]
+    [include chapter.qbk]
+
+[note Structuring a document like this was introduced in quickbook 1.6, so the
+`[quickbook 1.6]` docinfo field is required.]
+
+The appropriate document type for an introduction is `preface`, so
+the contents of `introduction.qbk` should be something like:
+
+    [preface Introduction
+    [quickbook 1.6]
+    ]
+
+    Write the introduction to the book here....
+
+And `chapter.qbk`:
+
+    [chapter A chapter
+    [quickbook 1.6]
+    ]
+
+    Chapter contents....
+
+[endsect] [/nesting]
+
 [endsect] [/docinfo]
 
 [#quickbook.ref.section]

Modified: trunk/Thirdparty/boost/tools/quickbook/src/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/Jamfile.v2	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/Jamfile.v2	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -15,8 +15,6 @@
         <toolset>gcc:<cflags>-g0
         <toolset>darwin:<cflags>-g0
         <toolset>msvc:<cflags>/wd4709
-        <toolset>gcc:<define>BOOST_DETAIL_CONTAINER_FWD
-        <toolset>darwin:<define>BOOST_DETAIL_CONTAINER_FWD
     ;
 
 lib shell32 ;
@@ -30,9 +28,13 @@
     dependency_tracker.cpp
     utils.cpp
     files.cpp
-    input_path.cpp
+    native_text.cpp
+    glob.cpp
+    include_paths.cpp
     values.cpp
-    id_manager.cpp
+    document_state.cpp
+    id_generation.cpp
+    id_xml.cpp
     post_process.cpp
     collector.cpp
     template_stack.cpp

Modified: trunk/Thirdparty/boost/tools/quickbook/src/actions.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/actions.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/actions.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -23,16 +23,18 @@
 #include <boost/foreach.hpp>
 #include "quickbook.hpp"
 #include "actions.hpp"
+#include "syntax_highlight.hpp"
 #include "utils.hpp"
 #include "files.hpp"
 #include "markups.hpp"
 #include "state.hpp"
 #include "state_save.hpp"
 #include "grammar.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
 #include "block_tags.hpp"
 #include "phrase_tags.hpp"
-#include "id_manager.hpp"
+#include "document_state.hpp"
+#include "include_paths.hpp"
 
 namespace quickbook
 {
@@ -41,12 +43,12 @@
         {
             // TODO: This works but is a bit of an odd place to put it.
             // Might need to redefine the purpose of this function.
-            if (!state.source_mode_next.empty()) {
-                detail::outwarn(state.source_mode_next.get_file(),
-                    state.source_mode_next.get_position())
+            if (state.source_mode_next) {
+                detail::outwarn(state.source_mode_next_pos.get_file(),
+                    state.source_mode_next_pos.get_position())
                     << "Temporary source mode unsupported here."
                     << std::endl;
-                state.source_mode_next = value();
+                state.source_mode_next = 0;
             }
 
             for(quickbook::state::string_list::iterator
@@ -67,10 +69,58 @@
                 id_category::categories category =
                     id_category::explicit_anchor_id)
         {
-            std::string placeholder = state.ids.add_anchor(id, category);
+            std::string placeholder = state.document.add_anchor(id, category);
             state.anchors.push_back(placeholder);
             return placeholder;
         }
+
+        std::string get_attribute_value(quickbook::state& state,
+                quickbook::value const& value)
+        {
+            std::string x = value.is_encoded() ?
+                value.get_encoded() : detail::to_s(value.get_quickbook());
+
+            if (x.empty()) {
+                detail::outerr(value.get_file(), value.get_position())
+                    << "Empty attribute value."
+                    << std::endl;
+                ++state.error_count;
+                x = "xxx";
+            }
+
+            return x;
+        }
+
+        std::string validate_id(quickbook::state& state,
+                quickbook::value const& id_value)
+        {
+            bool valid = true;
+            std::string id = get_attribute_value(state, id_value);
+
+            // Special case since I use dollar ids for id placeholders.
+            if (id[0] == '$') { valid = false; id[0] = '_'; }
+
+            if (qbk_version_n >= 107u) {
+                char const* allowed_punctuation = "_.-";
+
+                BOOST_FOREACH(char c, id) {
+                    if (!std::isalnum(c) &&
+                            !std::strchr(allowed_punctuation, c))
+                        valid = false;
+                }
+            }
+
+            if (!valid) {
+                detail::outerr(id_value.get_file(), id_value.get_position())
+                    << "Invalid id: "
+                    << (id_value.is_encoded() ? id_value.get_encoded() :
+                        detail::to_s(id_value.get_quickbook()))
+                    << std::endl;
+                ++state.error_count;
+            }
+
+            return id;
+        }
     }
 
     bool quickbook_range::in_range() const {
@@ -189,6 +239,7 @@
         case code_tags::inline_code_block:
         case code_tags::inline_code:
             return code_action(state, v);
+        case template_tags::attribute_template:
         case template_tags::template_:
             return do_template_action(state, v, first.base());
         default:
@@ -198,7 +249,7 @@
 
     void break_action::operator()(parse_iterator first, parse_iterator) const
     {
-        write_anchors(state, phrase);
+        write_anchors(state, state.phrase);
 
         if(*first == '\\')
         {
@@ -216,7 +267,7 @@
             state.warned_about_breaks = true;
         }
             
-        phrase << detail::get_markup(phrase_tags::break_mark).pre;
+        state.phrase << detail::get_markup(phrase_tags::break_mark).pre;
     }
 
     void error_message_action::operator()(parse_iterator first, parse_iterator last) \
const @@ -273,19 +324,23 @@
         values.finish();
     }
 
-    void role_action(quickbook::state& state, value role)
+    void role_action(quickbook::state& state, value role_list)
     {
         write_anchors(state, state.phrase);
 
-        value_consumer values = role;
+        value_consumer values = role_list;
+        value role = values.consume();
+        value phrase = values.consume();
+        values.finish();
+
         state.phrase
             << "<phrase role=\"";
-        detail::print_string(values.consume().get_quickbook(), state.phrase.get());
+        detail::print_string(get_attribute_value(state, role),
+                state.phrase.get());
         state.phrase
             << "\">"
-            << values.consume().get_encoded()
+            << phrase.get_encoded()
             << "</phrase>";
-        values.finish();
     }
 
     void footnote_action(quickbook::state& state, value phrase)
@@ -295,7 +350,7 @@
         value_consumer values = phrase;
         state.phrase
             << "<footnote id=\""
-            << state.ids.add_id("f", id_category::numbered)
+            << state.document.add_id("f", id_category::numbered)
             << "\"><para>"
             << values.consume().get_encoded()
             << "</para></footnote>";
@@ -322,27 +377,18 @@
         while(pos != end && cl::space_p.test(*pos)) ++pos;
 
         if(pos != end) {
-            detail::markup markup = detail::get_markup(block_tags::paragraph);
+            detail::markup markup = state.in_list ?
+                detail::get_markup(block_tags::paragraph_in_list) :
+                detail::get_markup(block_tags::paragraph);
             state.out << markup.pre << str;
             write_anchors(state, state.out);
             state.out << markup.post;
         }
     }
 
-    void list_item_action::operator()() const
+    void explicit_list_action::operator()() const
     {
-        // Be careful as this is sometimes called in the wrong place
-        // for markup such as:
-        //
-        // * A
-        // [endsect]
-        //
-        // This action is called before [endsect] (to end the list item)
-        // and then also after it due to the way the parser works.
-        std::string str;
-        state.phrase.swap(str);
-        state.out << str;
-        write_anchors(state, state.out);
+        state.explicit_list = true;
     }
 
     void phrase_end_action::operator()() const
@@ -358,7 +404,7 @@
             {
                 state.out << "<bridgehead renderas=\"sect" << level << "\"";
                 state.out << " id=\"";
-                state.out << state.ids.add_id("h", id_category::numbered);
+                state.out << state.document.add_id("h", id_category::numbered);
                 state.out << "\">";
                 state.out << "<phrase id=\"" << id << "\"/>";
                 state.out << "<link linkend=\"" << id << "\">";
@@ -390,7 +436,7 @@
 
         if (generic)
         {
-            level = state.ids.section_level() + 1;
+            level = state.document.section_level() + 1;
                                             // We need to use a heading which is one \
greater  // than the current.
             if (level > 6 )                 // The max is h6, clip it if it goes
@@ -405,47 +451,63 @@
 
         if (!element_id.empty())
         {
-            std::string anchor = state.ids.add_id(
-                element_id.get_quickbook(),
+            // Use an explicit id.
+
+            std::string anchor = state.document.add_id(
+                validate_id(state, element_id),
                 id_category::explicit_id);
 
             write_bridgehead(state, level,
                 content.get_encoded(), anchor, self_linked_headers);
         }
-        else if (!generic && state.ids.compatibility_version() < 103) // version 1.2 \
and below +        else if (state.document.compatibility_version() >= 106u)
         {
-            // This generates the old id style if both the interpreting
-            // version and the generation version are less then 103u.
+            // Generate ids for 1.6+
 
-            std::string anchor = state.ids.old_style_id(
-                detail::make_identifier(
-                    state.ids.replace_placeholders_with_unresolved_ids(
-                        content.get_encoded())),
+            std::string anchor = state.document.add_id(
+                detail::make_identifier(content.get_quickbook()),
                 id_category::generated_heading);
 
             write_bridgehead(state, level,
-                content.get_encoded(), anchor, false);
-
+                content.get_encoded(), anchor, self_linked_headers);
         }
         else
         {
-            std::string anchor = state.ids.add_id(
-                detail::make_identifier(
-                    state.ids.compatibility_version() >= 106 ?
-                        content.get_quickbook() :
-                        state.ids.replace_placeholders_with_unresolved_ids(
-                            content.get_encoded())
-                ),
-                id_category::generated_heading);
+            // Generate ids that are compatible with older versions of quickbook.
 
-            write_bridgehead(state, level,
-                content.get_encoded(), anchor, self_linked_headers);
+            // Older versions of quickbook used the generated boostbook, but
+            // we only have an intermediate version which can contain id
+            // placeholders. So to generate the ids they must be replaced
+            // by the ids that the older versions would have used - i.e. the
+            // unresolved ids.
+            //
+            // Note that this doesn't affect the actual boostbook generated for
+            // the content, it's just used to generate this id.
+
+            std::string id = detail::make_identifier(
+                    state.document.replace_placeholders_with_unresolved_ids(
+                        content.get_encoded()));
+
+            if (generic || state.document.compatibility_version() >= 103) {
+                std::string anchor =
+                    state.document.add_id(id, id_category::generated_heading);
+
+                write_bridgehead(state, level,
+                    content.get_encoded(), anchor, self_linked_headers);
+            }
+            else {
+                std::string anchor =
+                    state.document.old_style_id(id, id_category::generated_heading);
+
+                write_bridgehead(state, level,
+                    content.get_encoded(), anchor, false);
+            }
         }
     }
 
     void simple_phrase_action::operator()(char mark) const
     {
-        write_anchors(state, out);
+        write_anchors(state, state.phrase);
 
         int tag =
             mark == '*' ? phrase_tags::bold :
@@ -461,9 +523,9 @@
         value content = values.consume();
         values.finish();
 
-        out << markup.pre;
-        out << content.get_encoded();
-        out << markup.post;
+        state.phrase << markup.pre;
+        state.phrase << content.get_encoded();
+        state.phrase << markup.post;
     }
 
     bool cond_phrase_push::start()
@@ -480,8 +542,7 @@
             state.conditional = find(state.macro, macro.c_str());
 
             if (!state.conditional) {
-                state.phrase.push();
-                state.out.push();
+                state.push_output();
                 state.anchors.swap(anchors);
             }
         }
@@ -493,38 +554,23 @@
     {
         if (saved_conditional && !state.conditional)
         {
-            state.phrase.pop();
-            state.out.pop();
+            state.pop_output();
             state.anchors.swap(anchors);
         }
 
         state.conditional = saved_conditional;
     }
 
-    namespace {
-        int indent_length(std::string const& indent)
-        {
-            int length = 0;
-            for(std::string::const_iterator
-                first = indent.begin(), end = indent.end(); first != end; ++first)
-            {
-                switch(*first) {
-                    case ' ': ++length; break;
-                    // hardcoded tab to 4 for now
-                    case '\t': length = ((length + 4) / 4) * 4; break;
-                    default: BOOST_ASSERT(false);
-                }
-            }
-            
-            return length;
-        }
-    }
-
     void state::start_list(char mark)
     {
-        write_anchors(*this, out);
+        push_tagged_source_mode(source_mode_next);
+        source_mode_next = 0;
+
+        write_anchors(*this, (in_list ? phrase : out));
         assert(mark == '*' || mark == '#');
+        push_output();
         out << ((mark == '#') ? "<orderedlist>\n" : "<itemizedlist>\n");
+        in_list = true;
     }
 
     void state::end_list(char mark)
@@ -532,23 +578,35 @@
         write_anchors(*this, out);
         assert(mark == '*' || mark == '#');
         out << ((mark == '#') ? "\n</orderedlist>" : "\n</itemizedlist>");
+
+        std::string list_output;
+        out.swap(list_output);
+
+        pop_output();
+
+        (in_list ? phrase : out) << list_output;
+
+        pop_tagged_source_mode();
     }
 
     void state::start_list_item()
     {
-        out << "<listitem><simpara>";
-        write_anchors(*this, out);
+        out << "<listitem>";
+        write_anchors(*this, phrase);
     }
 
     void state::end_list_item()
     {
-        write_anchors(*this, out);
-        out << "</simpara></listitem>";
+        write_anchors(*this, phrase);
+        paragraph_action para(*this);
+        para();
+        out << "</listitem>";
     }
 
     namespace
     {
-        bool parse_template(value const&, quickbook::state& state);
+        bool parse_template(value const&, quickbook::state& state,
+                bool is_attribute_template = false);
     }
 
     void state::start_callouts()
@@ -558,8 +616,8 @@
 
     std::string state::add_callout(value v)
     {
-        std::string callout_id1 = ids.add_id("c", id_category::numbered);
-        std::string callout_id2 = ids.add_id("c", id_category::numbered);
+        std::string callout_id1 = document.add_id("c", id_category::numbered);
+        std::string callout_id2 = document.add_id("c", id_category::numbered);
 
         callouts.insert(encoded_value(callout_id1));
         callouts.insert(encoded_value(callout_id2));
@@ -593,7 +651,7 @@
             std::string callout_value;
 
             {
-                template_state state(*this);
+                state_save save(*this, state_save::scope_all);
                 ++template_depth;
 
                 bool r = parse_template(callout_body, *this);
@@ -647,53 +705,53 @@
         value anchor_id = values.consume();
         // Note: anchor_id is never encoded as boostbook. If it
         // is encoded, it's just things like escapes.
-        add_anchor(state, anchor_id.is_encoded() ?
-            anchor_id.get_encoded() : anchor_id.get_quickbook());
+        add_anchor(state, validate_id(state, anchor_id));
         values.finish();
     }
 
     void do_macro_action::operator()(std::string const& str) const
     {
-        write_anchors(state, phrase);
+        write_anchors(state, state.phrase);
 
         if (str == quickbook_get_date)
         {
             char strdate[64];
             strftime(strdate, sizeof(strdate), "%Y-%b-%d", current_time);
-            phrase << strdate;
+            state.phrase << strdate;
         }
         else if (str == quickbook_get_time)
         {
             char strdate[64];
             strftime(strdate, sizeof(strdate), "%I:%M:%S %p", current_time);
-            phrase << strdate;
+            state.phrase << strdate;
         }
         else
         {
-            phrase << str;
+            state.phrase << str;
         }
     }
 
     void raw_char_action::operator()(char ch) const
     {
-        out << ch;
+        state.phrase << ch;
     }
 
     void raw_char_action::operator()(parse_iterator first, parse_iterator last) \
const  {
         while (first != last)
-            out << *first++;
+            state.phrase << *first++;
     }
 
     void source_mode_action(quickbook::state& state, value source_mode)
     {
-        state.source_mode = source_mode_tags::name(source_mode.get_tag());
+        state.change_source_mode(source_mode.get_tag());
     }
 
     void next_source_mode_action(quickbook::state& state, value source_mode)
     {
         value_consumer values = source_mode;
-        state.source_mode_next = values.consume();
+        state.source_mode_next_pos = values.consume();
+        state.source_mode_next = values.consume().get_int();
         values.finish();
     }
 
@@ -709,9 +767,9 @@
             (code_tag == code_tags::inline_code_block && qbk_version_n < 106u);
         bool block = code_tag != code_tags::inline_code;
 
-        std::string source_mode = state.source_mode_next.empty() ?
-            state.source_mode : \
                detail::to_s(state.source_mode_next.get_quickbook());
-        state.source_mode_next = value();
+        source_mode_type source_mode = state.source_mode_next ?
+            state.source_mode_next : state.current_source_mode().source_mode;
+        state.source_mode_next = 0;
 
         if (inline_code) {
             write_anchors(state, state.phrase);
@@ -742,52 +800,50 @@
             boost::swap(state.current_file, saved_file);
 
             // print the code with syntax coloring
-            std::string str = syntax_highlight(first_, last_, state,
-                source_mode, block);
+            //
+            // We must not place a \n after the <programlisting> tag
+            // otherwise PDF output starts code blocks with a blank line:
+            state.phrase << "<programlisting>";
+            syntax_highlight(first_, last_, state, source_mode, block);
+            state.phrase << "</programlisting>\n";
 
             boost::swap(state.current_file, saved_file);
 
-            collector& output = inline_code ? state.phrase : state.out;
+            if (qbk_version_n >= 107u) state.phrase << state.end_callouts();
 
-            // We must not place a \n after the <programlisting> tag
-            // otherwise PDF output starts code blocks with a blank line:
-            //
-            output << "<programlisting>";
-            output << str;
-            output << "</programlisting>\n";
-
-            if (qbk_version_n >= 107u) output << state.end_callouts();
+            if (!inline_code) {
+                state.out << state.phrase.str();
+                state.phrase.clear();
+            }
         }
         else {
             parse_iterator first_(code_value.begin());
             parse_iterator last_(code_value.end());
-            std::string str = syntax_highlight(first_, last_, state,
-                source_mode, block);
 
             state.phrase << "<code>";
-            state.phrase << str;
+            syntax_highlight(first_, last_, state, source_mode, block);
             state.phrase << "</code>";
         }
     }
 
     void plain_char_action::operator()(char ch) const
     {
-        write_anchors(state, phrase);
+        write_anchors(state, state.phrase);
 
-        detail::print_char(ch, phrase.get());
+        detail::print_char(ch, state.phrase.get());
     }
 
     void plain_char_action::operator()(parse_iterator first, parse_iterator last) \
const  {
-        write_anchors(state, phrase);
+        write_anchors(state, state.phrase);
 
         while (first != last)
-            detail::print_char(*first++, phrase.get());
+            detail::print_char(*first++, state.phrase.get());
     }
 
     void escape_unicode_action::operator()(parse_iterator first, parse_iterator \
last) const  {
-        write_anchors(state, phrase);
+        write_anchors(state, state.phrase);
 
         while(first != last && *first == '0') ++first;
 
@@ -799,10 +855,11 @@
         
         if(hex_digits.size() == 2 && *first > '0' && *first <= '7') {
             using namespace std;
-            detail::print_char(strtol(hex_digits.c_str(), 0, 16), phrase.get());
+            detail::print_char(strtol(hex_digits.c_str(), 0, 16),
+                    state.phrase.get());
         }
         else {
-            phrase << "&#x" << hex_digits << ";";
+            state.phrase << "&#x" << hex_digits << ";";
         }
     }
 
@@ -1204,6 +1261,7 @@
         bool parse_template(
             value const& content
           , quickbook::state& state
+          , bool is_attribute_template
         )
         {
             file_ptr saved_current_file = state.current_file;
@@ -1215,9 +1273,11 @@
             parse_iterator last(source.end());
 
             bool r = cl::parse(first, last,
+                    is_attribute_template ?
+                        state.grammar().attribute_template_body :
                     content.get_tag() == template_tags::phrase ?
                         state.grammar().inline_phrase :
-                        state.grammar().block
+                        state.grammar().block_start
                 ).full;
 
             boost::swap(state.current_file, saved_current_file);
@@ -1229,26 +1289,23 @@
     void call_template(quickbook::state& state,
             template_symbol const* symbol,
             std::vector<value> const& args,
-            string_iterator first)
+            string_iterator first,
+            bool is_attribute_template = false)
     {
         bool is_block = symbol->content.get_tag() != template_tags::phrase;
+        assert(!(is_attribute_template && is_block));
 
+        quickbook::paragraph_action paragraph_action(state);
+
+        // Finish off any existing paragraphs.
+        if (is_block) paragraph_action();
+
         // If this template contains already encoded text, then just
         // write it out, without going through any of the rigamarole.
 
         if (symbol->content.is_encoded())
         {
-            if (is_block)
-            {
-                paragraph_action para(state);
-                para();
-                state.out << symbol->content.get_encoded();
-            }
-            else
-            {
-                state.phrase << symbol->content.get_encoded();
-            }
-
+            (is_block ? state.out : state.phrase) << symbol->content.get_encoded();
             return;
         }
 
@@ -1259,11 +1316,11 @@
         // arguments are expanded.
         template_scope const& call_scope = state.templates.top_scope();
 
-        std::string block;
-        std::string phrase;
+        {
+            state_save save(state, state_save::scope_callables);
+            std::string save_block;
+            std::string save_phrase;
 
-        {
-            template_state save(state);
             state.templates.start_template(symbol);
 
             qbk_version_n = symbol->content.get_file()->version();
@@ -1279,7 +1336,7 @@
 
             // Store the current section level so that we can ensure that
             // [section] and [endsect] tags in the template are balanced.
-            state.min_section_level = state.ids.section_level();
+            state.min_section_level = state.document.section_level();
 
             ///////////////////////////////////
             // Prepare the arguments as local templates
@@ -1296,22 +1353,26 @@
             ///////////////////////////////////
             // parse the template body:
 
-            if (!parse_template(symbol->content, state))
+            if (symbol->content.get_file()->version() < 107u) {
+                state.out.swap(save_block);
+                state.phrase.swap(save_phrase);
+            }
+
+            if (!parse_template(symbol->content, state, is_attribute_template))
             {
                 detail::outerr(state.current_file, first)
                     << "Expanding "
                     << (is_block ? "block" : "phrase")
-                    << " template: " << symbol->identifier << std::endl
-                    << std::endl
-                    << "------------------begin------------------" << std::endl
+                    << " template: " << symbol->identifier << "\n\n"
+                    << "------------------begin------------------\n"
                     << symbol->content.get_quickbook()
-                    << "------------------end--------------------" << std::endl
+                    << "------------------end--------------------\n"
                     << std::endl;
                 ++state.error_count;
                 return;
             }
 
-            if (state.ids.section_level() != state.min_section_level)
+            if (state.document.section_level() != state.min_section_level)
             {
                 detail::outerr(state.current_file, first)
                     << "Mismatched sections in template "
@@ -1321,20 +1382,25 @@
                 return;
             }
 
-            state.out.swap(block);
-            state.phrase.swap(phrase);
-        }
+            if (symbol->content.get_file()->version() < 107u) {
+                state.out.swap(save_block);
+                state.phrase.swap(save_phrase);
 
-        if(is_block || !block.empty()) {
-            paragraph_action para(state);
-            para(); // For paragraphs before the template call.
-            state.out << block;
-            state.phrase << phrase;
-            para();
+                if(is_block || !save_block.empty()) {
+                    paragraph_action();
+                    state.out << save_block;
+                    state.phrase << save_phrase;
+                    paragraph_action();
+                }
+                else {
+                    state.phrase << save_phrase;
+                }
+            }
+            else
+            {
+                if (is_block) paragraph_action();
+            }
         }
-        else {
-            state.phrase << phrase;
-        }
     }
 
     void call_code_snippet(quickbook::state& state,
@@ -1359,6 +1425,9 @@
     void do_template_action(quickbook::state& state, value template_list,
             string_iterator first)
     {
+        bool const is_attribute_template =
+            template_list.get_tag() == template_tags::attribute_template;
+
         // Get the arguments
         value_consumer values = template_list;
 
@@ -1421,6 +1490,20 @@
         }
 
         ///////////////////////////////////
+        // Check that attribute templates are phrase templates
+
+        if (is_attribute_template &&
+                symbol->content.get_tag() != template_tags::phrase)
+        {
+            detail::outerr(state.current_file, first)
+                << "Only phrase templates can be used in attribute values."
+                << std::endl;
+
+            ++state.error_count;
+            return;
+        }
+
+        ///////////////////////////////////
         // Initialise the arguments
 
         switch(symbol->content.get_tag())
@@ -1445,7 +1528,7 @@
                 return;
             }
 
-            call_template(state, symbol, args, first);
+            call_template(state, symbol, args, first, is_attribute_template);
             break;
 
         case template_tags::snippet:
@@ -1479,10 +1562,19 @@
         value content = values.consume();
         values.finish();
 
-        // Note: dst is never actually encoded as boostbook, which
-        // is why the result is called with 'print_string' later.
-        std::string dst = dst_value.is_encoded() ?
-            dst_value.get_encoded() : detail::to_s(dst_value.get_quickbook());
+        std::string dst;
+
+        if (link.get_tag() == phrase_tags::link) {
+            dst = validate_id(state, dst_value);
+        }
+        else {
+            dst = get_attribute_value(state, dst_value);
+
+            // TODO: Might be better to have an error for some invalid urls.
+            if (link.get_tag() == phrase_tags::url) {
+                dst = detail::partially_escape_uri(dst);
+            }
+        } 
         
         state.phrase << markup.pre;
         detail::print_string(dst, state.phrase.get());
@@ -1539,8 +1631,9 @@
         value_consumer values = table;
 
         std::string element_id;
-        if(values.check(general_tags::element_id))
-            element_id = detail::to_s(values.consume().get_quickbook());
+        if(values.check(general_tags::element_id)) {
+            element_id = validate_id(state, values.consume());
+        }
 
         value title = values.consume(table_tags::title);
         bool has_title = !title.empty();
@@ -1548,14 +1641,14 @@
         std::string table_id;
 
         if (!element_id.empty()) {
-            table_id = state.ids.add_id(element_id, id_category::explicit_id);
+            table_id = state.document.add_id(element_id, id_category::explicit_id);
         }
         else if (has_title) {
-            if (state.ids.compatibility_version() >= 105) {
-                table_id = \
state.ids.add_id(detail::make_identifier(title.get_quickbook()), \
id_category::generated); +            if (state.document.compatibility_version() >= \
105) { +                table_id = \
state.document.add_id(detail::make_identifier(title.get_quickbook()), \
id_category::generated);  }
             else {
-                table_id = state.ids.add_id("t", id_category::numbered);
+                table_id = state.document.add_id("t", id_category::numbered);
             }
         }
 
@@ -1638,20 +1731,21 @@
         value content = values.consume();
         values.finish();
 
-        std::string full_id = state.ids.begin_section(
-            !element_id.empty() ?
-                element_id.get_quickbook() :
-                detail::make_identifier(content.get_quickbook()),
-            !element_id.empty() ?
-                id_category::explicit_section_id :
-                id_category::generated_section);
+        std::string full_id = state.document.begin_section(
+            element_id.empty() ?
+                detail::make_identifier(content.get_quickbook()) :
+                validate_id(state, element_id),
+            element_id.empty() ?
+                id_category::generated_section :
+                id_category::explicit_section_id,
+            state.current_source_mode());
 
         state.out << "\n<section id=\"" << full_id << "\">\n";
         state.out << "<title>";
 
         write_anchors(state, state.out);
 
-        if (self_linked_headers && state.ids.compatibility_version() >= 103)
+        if (self_linked_headers && state.document.compatibility_version() >= 103)
         {
             state.out << "<link linkend=\"" << full_id << "\">"
                 << content.get_encoded()
@@ -1670,7 +1764,7 @@
     {
         write_anchors(state, state.out);
 
-        if (state.ids.section_level() <= state.min_section_level)
+        if (state.document.section_level() <= state.min_section_level)
         {
             file_position const pos = state.current_file->position_of(first);
 
@@ -1682,7 +1776,7 @@
         }
 
         state.out << "</section>";
-        state.ids.end_section();
+        state.document.end_section();
     }
     
     void element_id_warning_action::operator()(parse_iterator first, parse_iterator) \
const @@ -1765,71 +1859,49 @@
         return result;
     }
 
-    struct path_details {
-        // Will possibly add 'url' and 'glob' to this list later:
-        enum path_type { path };
-
-        std::string value;
-        path_type type;
-
-        path_details(std::string const& value, path_type type) :
-            value(value), type(type)
-        {
-        }
-    };
-
-    path_details check_path(value const& path, quickbook::state& state)
+    xinclude_path calculate_xinclude_path(value const& p, quickbook::state& state)
     {
-        // Paths are encoded for quickbook 1.6+ and also xmlbase
-        // values (technically xmlbase is a 1.6 feature, but that
-        // isn't enforced as it's backwards compatible).
-        //
-        // Counter-intuitively: encoded == plain text here.
+        path_parameter parameter = check_path(p, state);
 
-        std::string path_text = qbk_version_n >= 106u || path.is_encoded() ?
-                path.get_encoded() : detail::to_s(path.get_quickbook());
-
-        if(path_text.find('\\') != std::string::npos)
-        {
-            quickbook::detail::ostream* err;
-
-            if (qbk_version_n >= 106u) {
-                err = &detail::outerr(path.get_file(), path.get_position());
+        switch (parameter.type) {
+            case path_parameter::glob:
+                // TODO: Should know if this is an xinclude or an xmlbase.
+                // Would also help with implementation of 'check_path'.
+                detail::outerr(p.get_file(), p.get_position())
+                    << "Glob used in xinclude/xmlbase."
+                    << std::endl;
                 ++state.error_count;
-            }
-            else {
-                err = &detail::outwarn(path.get_file(), path.get_position());
-            }
+                break;
 
-            *err << "Path isn't portable: '"
-                << path_text
-                << "'"
-                << std::endl;
+            case path_parameter::invalid:
+                // There should have already been an error message in this case.
+                break;
 
-            boost::replace(path_text, '\\', '/');
-        }
+            case path_parameter::path:
+            {
+                fs::path path = detail::generic_to_path(parameter.value);
+                fs::path full_path = path;
 
-        return path_details(path_text, path_details::path);
-    }
+                // If the path is relative
+                if (!path.has_root_directory())
+                {
+                    // Resolve the path from the current file
+                    full_path = state.current_file->path.parent_path() / path;
 
-    xinclude_path calculate_xinclude_path(value const& p, quickbook::state& state)
-    {
-        path_details details = check_path(p, state);
+                    // Then calculate relative to the current xinclude_base.
+                    path = path_difference(state.xinclude_base, full_path);
+                }
 
-        fs::path path = detail::generic_to_path(details.value);
-        fs::path full_path = path;
+                return xinclude_path(full_path,
+                        detail::escape_uri(detail::path_to_generic(path)));
+            }
 
-        // If the path is relative
-        if (!path.has_root_directory())
-        {
-            // Resolve the path from the current file
-            full_path = state.current_file->path.parent_path() / path;
-
-            // Then calculate relative to the current xinclude_base.
-            path = path_difference(state.xinclude_base, full_path);
+            default:
+                assert(false);
         }
 
-        return xinclude_path(full_path, \
detail::escape_uri(detail::path_to_generic(path))); +        // If we didn't find a \
path, just use this: +        return \
xinclude_path(state.current_file->path.parent_path(), "");  }
 
     void xinclude_action(quickbook::state& state, value xinclude)
@@ -1845,77 +1917,8 @@
         state.out << "\" />\n";
     }
 
-    namespace
-    {
-        struct include_search_return
-        {
-            include_search_return(fs::path const& x, fs::path const& y)
-                : filename(x), filename_relative(y) {}
-
-            fs::path filename;
-            fs::path filename_relative;
-
-            bool operator < (include_search_return const & other) const
-            {
-                if (filename_relative < other.filename_relative) return true;
-                else if (other.filename_relative < filename_relative) return false;
-                else return filename < other.filename;
-            }
-        };
-
-        std::set<include_search_return> include_search(path_details const& details,
-                quickbook::state& state, string_iterator pos)
-        {
-            std::set<include_search_return> result;
-
-            fs::path path = detail::generic_to_path(details.value);
-
-            // If the path is relative, try and resolve it.
-            if (!path.has_root_directory() && !path.has_root_name())
-            {
-                fs::path local_path =
-                    state.current_file->path.parent_path() / path;
-
-                // See if it can be found locally first.
-                if (state.dependencies.add_dependency(local_path))
-                {
-                    result.insert(include_search_return(
-                        local_path,
-                        state.filename_relative.parent_path() / path));
-                    return result;
-                }
-
-                BOOST_FOREACH(fs::path full, include_path)
-                {
-                    full /= path;
-
-                    if (state.dependencies.add_dependency(full))
-                    {
-                        result.insert(include_search_return(full, path));
-                        return result;
-                    }
-                }
-            }
-            else
-            {
-                if (state.dependencies.add_dependency(path)) {
-                    result.insert(include_search_return(path, path));
-                    return result;
-                }
-            }
-
-            detail::outerr(state.current_file, pos)
-                << "Unable to find file: "
-                << details.value
-                << std::endl;
-            ++state.error_count;
-
-            return result;
-        }
-    }
-    
     void load_quickbook(quickbook::state& state,
-            include_search_return const& paths,
+            quickbook_path const& path,
             value::tag_type load_type,
             value const& include_doc_id = value())
     {
@@ -1933,18 +1936,17 @@
             //
             // For old versions of quickbook, templates aren't scoped by the
             // file.
-            file_state save(state,
-                load_type == block_tags::import ? file_state::scope_output :
-                qbk_version_n >= 106u ? file_state::scope_callables :
-                file_state::scope_macros);
+            state_save save(state,
+                load_type == block_tags::import ? state_save::scope_output :
+                qbk_version_n >= 106u ? state_save::scope_callables :
+                state_save::scope_macros);
 
-            state.current_file = load(paths.filename); // Throws load_error
-            state.filename_relative = paths.filename_relative;
+            state.current_file = load(path.file_path); // Throws load_error
+            state.current_path = path;
             state.imported = (load_type == block_tags::import);
 
             // update the __FILENAME__ macro
-            *boost::spirit::classic::find(state.macro, "__FILENAME__")
-                = detail::path_to_generic(state.filename_relative);
+            state.update_filename_macro();
         
             // parse the file
             quickbook::parse_file(state, include_doc_id, true);
@@ -1954,12 +1956,11 @@
         }
 
         // restore the __FILENAME__ macro
-        *boost::spirit::classic::find(state.macro, "__FILENAME__")
-            = detail::path_to_generic(state.filename_relative);
+        state.update_filename_macro();
     }
 
     void load_source_file(quickbook::state& state,
-            include_search_return const& paths,
+            quickbook_path const& path,
             value::tag_type load_type,
             string_iterator first,
             value const& include_doc_id = value())
@@ -1967,11 +1968,11 @@
         assert(load_type == block_tags::include ||
             load_type == block_tags::import);
 
-        std::string ext = paths.filename.extension().generic_string();
+        std::string ext = path.file_path.extension().generic_string();
         std::vector<template_symbol> storage;
         // Throws load_error
         state.error_count +=
-            load_snippets(paths.filename, storage, ext, load_type);
+            load_snippets(path.file_path, storage, ext, load_type);
 
         if (load_type == block_tags::include)
         {
@@ -2016,41 +2017,42 @@
 
         value_consumer values = include;
         value include_doc_id = values.optional_consume(general_tags::include_id);
-        path_details details = check_path(values.consume(), state);
+        path_parameter parameter = check_path(values.consume(), state);
         values.finish();
 
-        std::set<include_search_return> search = include_search(details, state, \
                first);
-        std::set<include_search_return>::iterator i = search.begin();
-        std::set<include_search_return>::iterator e = search.end();
+        std::set<quickbook_path> search =
+            include_search(parameter, state, first);
+        std::set<quickbook_path>::iterator i = search.begin();
+        std::set<quickbook_path>::iterator e = search.end();
         for (; i != e; ++i)
         {
-            include_search_return const & paths = *i;
+            quickbook_path const & path = *i;
             try {
                 if (qbk_version_n >= 106)
                 {
                     if (state.imported && include.get_tag() == block_tags::include)
                         return;
 
-                    std::string ext = paths.filename.extension().generic_string();
+                    std::string ext = path.file_path.extension().generic_string();
 
                     if (ext == ".qbk" || ext == ".quickbook")
                     {
-                        load_quickbook(state, paths, include.get_tag(), \
include_doc_id); +                        load_quickbook(state, path, \
include.get_tag(), include_doc_id);  }
                     else
                     {
-                        load_source_file(state, paths, include.get_tag(), first, \
include_doc_id); +                        load_source_file(state, path, \
include.get_tag(), first, include_doc_id);  }
                 }
                 else
                 {
                     if (include.get_tag() == block_tags::include)
                     {
-                        load_quickbook(state, paths, include.get_tag(), \
include_doc_id); +                        load_quickbook(state, path, \
include.get_tag(), include_doc_id);  }
                     else
                     {
-                        load_source_file(state, paths, include.get_tag(), first, \
include_doc_id); +                        load_source_file(state, path, \
include.get_tag(), first, include_doc_id);  }
                 }
             }
@@ -2059,7 +2061,7 @@
 
                 detail::outerr(state.current_file, first)
                     << "Loading file "
-                    << paths.filename
+                    << path.file_path
                     << ": "
                     << e.what()
                     << std::endl;
@@ -2069,8 +2071,7 @@
 
     bool to_value_scoped_action::start(value::tag_type t)
     {
-        state.out.push();
-        state.phrase.push();
+        state.push_output();
         state.anchors.swap(saved_anchors);
         tag = t;
 
@@ -2101,8 +2102,7 @@
     
     void to_value_scoped_action::cleanup()
     {
-        state.phrase.pop();
-        state.out.pop();
+        state.pop_output();
         state.anchors.swap(saved_anchors);
     }
 }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/actions.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/actions.hpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/actions.hpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -46,12 +46,6 @@
     int load_snippets(fs::path const& file, std::vector<template_symbol>& storage,
         std::string const& extension, value::tag_type load_type);
 
-    std::string syntax_highlight(
-        parse_iterator first, parse_iterator last,
-        quickbook::state& state,
-        std::string const& source_mode,
-        bool is_block);
-
     struct xinclude_path {
         xinclude_path(fs::path const& path, std::string const& uri) :
             path(path), uri(uri) {}
@@ -119,12 +113,12 @@
         quickbook::state& state;
     };
 
-    struct list_item_action
+    struct explicit_list_action
     {
         //  implicit paragraphs
         //  doesn't output the paragraph if it's only whitespace.
 
-        list_item_action(
+        explicit_list_action(
             quickbook::state& state)
         : state(state) {}
 
@@ -149,15 +143,11 @@
     {
         //  Handles simple text formats
 
-        simple_phrase_action(
-            collector& out
-          , quickbook::state& state)
-        : out(out)
-        , state(state) {}
+        simple_phrase_action(quickbook::state& state)
+        : state(state) {}
 
         void operator()(char) const;
 
-        collector& out;
         quickbook::state& state;
     };
 
@@ -178,12 +168,9 @@
     {
         // Handles macro substitutions
 
-        do_macro_action(collector& phrase, quickbook::state& state)
-            : phrase(phrase)
-            , state(state) {}
+        do_macro_action(quickbook::state& state) : state(state) {}
 
         void operator()(std::string const& str) const;
-        collector& phrase;
         quickbook::state& state;
     };
 
@@ -191,13 +178,12 @@
     {
         // Prints a space
 
-        raw_char_action(collector& out)
-            : out(out) {}
+        raw_char_action(quickbook::state& state) : state(state) {}
 
         void operator()(char ch) const;
         void operator()(parse_iterator first, parse_iterator last) const;
 
-        collector& out;
+        quickbook::state& state;
     };
 
     struct plain_char_action
@@ -205,36 +191,29 @@
         // Prints a single plain char.
         // Converts '<' to "&lt;"... etc See utils.hpp
 
-        plain_char_action(collector& phrase, quickbook::state& state)
-        : phrase(phrase)
-        , state(state) {}
+        plain_char_action(quickbook::state& state) : state(state) {}
 
         void operator()(char ch) const;
         void operator()(parse_iterator first, parse_iterator last) const;
 
-        collector& phrase;
         quickbook::state& state;
     };
     
     struct escape_unicode_action
     {
-        escape_unicode_action(collector& phrase, quickbook::state& state)
-        : phrase(phrase)
-        , state(state) {}
+        escape_unicode_action(quickbook::state& state) : state(state) {}
+
         void operator()(parse_iterator first, parse_iterator last) const;
 
-        collector& phrase;
         quickbook::state& state;
     };
 
     struct break_action
     {
-        break_action(collector& phrase, quickbook::state& state)
-        : phrase(phrase), state(state) {}
+        break_action(quickbook::state& state) : state(state) {}
 
         void operator()(parse_iterator f, parse_iterator) const;
 
-        collector& phrase;
         quickbook::state& state;
     };
 
@@ -265,6 +244,101 @@
         std::vector<std::string> saved_anchors;
         value::tag_type tag;
     };
+
+    // member_action
+    //
+    // Action for calling a member function taking two parse iterators.
+
+    template <typename T>
+    struct member_action
+    {
+        typedef void(T::*member_function)(parse_iterator, parse_iterator);
+
+        T& l;
+        member_function mf;
+
+        member_action(T& l, member_function mf) : l(l), mf(mf) {}
+
+        void operator()(parse_iterator first, parse_iterator last) const {
+            (l.*mf)(first, last);
+        }
+    };
+
+    // member_action1
+    //
+    // Action for calling a member function taking two parse iterators and a value.
+
+    template <typename T, typename Arg1>
+    struct member_action1
+    {
+        typedef void(T::*member_function)(parse_iterator, parse_iterator, Arg1);
+
+        T& l;
+        member_function mf;
+
+        member_action1(T& l, member_function mf) : l(l), mf(mf) {}
+
+        struct impl
+        {
+            member_action1 a;
+            Arg1 value;
+
+            impl(member_action1& a, Arg1 value) :
+                a(a), value(value)
+            {}
+
+            void operator()(parse_iterator first, parse_iterator last) const {
+                (a.l.*a.mf)(first, last, value);
+            }
+        };
+
+        impl operator()(Arg1 a1) {
+            return impl(*this, a1);
+        }
+    };
+
+    // member_action_value
+    //
+    // Action for calling a unary member function.
+
+    template <typename T, typename Value>
+    struct member_action_value
+    {
+        typedef void(T::*member_function)(Value);
+
+        T& l;
+        member_function mf;
+
+        member_action_value(T& l, member_function mf) : l(l), mf(mf) {}
+
+        void operator()(Value v) const {
+            (l.*mf)(v);
+        }
+    };
+
+    // member_action_value
+    //
+    // Action for calling a unary member function with a fixed value.
+
+    template <typename T, typename Value>
+    struct member_action_fixed_value
+    {
+        typedef void(T::*member_function)(Value);
+
+        T& l;
+        member_function mf;
+        Value v;
+
+        member_action_fixed_value(T& l, member_function mf, Value v) : l(l), mf(mf), \
v(v) {} +
+        void operator()() const {
+            (l.*mf)(v);
+        }
+
+        void operator()(parse_iterator first, parse_iterator last) const {
+            (l.*mf)(v);
+        }
+    };
 }
 
 #endif // BOOST_SPIRIT_QUICKBOOK_ACTIONS_HPP

Modified: trunk/Thirdparty/boost/tools/quickbook/src/block_element_grammar.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/block_element_grammar.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/block_element_grammar.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -35,7 +35,7 @@
                         xinclude, include, include_filename,
                         template_, template_id, template_formal_arg,
                         template_body, identifier, import,
-                        element_id, element_id_1_5, element_id_1_6,
+                        element_id,
                         same_line;
     };
 
@@ -47,27 +47,25 @@
         // Actions
         error_action error(state);
         element_id_warning_action element_id_warning(state);
-        raw_char_action raw_char(state.phrase);
+        raw_char_action raw_char(state);
+        explicit_list_action explicit_list(state);
         scoped_parser<to_value_scoped_action> to_value(state);
 
         local.element_id =
             !(  ':'
-            >>  (   !(qbk_ver(105u) >> space)
+            >>  (   qbk_ver(107u)
+                >>  to_value(general_tags::element_id) [attribute_value_1_7]
+                |   qbk_ver(0, 107u)
+                >>  !(qbk_ver(105u) >> space)
                 >>  (+(cl::alnum_p | '_'))      [state.values.entry(ph::arg1, \
ph::arg2, general_tags::element_id)]  |   cl::eps_p                   \
[element_id_warning]  )
             )
             ;
         
-        local.element_id_1_5 =
-                !(qbk_ver(105u) >> local.element_id);
-
-        local.element_id_1_6 =
-                !(qbk_ver(106u) >> local.element_id);
-
         elements.add
-            ("section", element_info(element_info::block, &local.begin_section, \
                block_tags::begin_section))
-            ("endsect", element_info(element_info::block, &local.end_section, \
block_tags::end_section)) +            ("section", \
element_info(element_info::section_block, &local.begin_section, \
block_tags::begin_section)) +            ("endsect", \
element_info(element_info::section_block, &local.end_section, \
block_tags::end_section))  ;
 
         local.begin_section =
@@ -83,7 +81,7 @@
 
         local.heading
             =   space
-            >>  local.element_id_1_6
+            >>  !(qbk_ver(106u) >> local.element_id)
             >>  space
             >>  local.inner_phrase
             ;
@@ -222,7 +220,7 @@
 
         local.table =
                 local.same_line
-            >>  local.element_id_1_5
+            >>  !(qbk_ver(105u) >> local.element_id)
             >>  local.same_line
             >>  local.table_title
             >>  *local.table_row
@@ -261,7 +259,11 @@
             ("itemized_list", element_info(element_info::nested_block, &local.list, \
block_tags::itemized_list, 106))  ;
 
-        local.list = *local.cell;
+        local.list =
+            *(  cl::eps_p                       [explicit_list]
+            >>  local.cell
+            )
+            ;
 
         local.cell =
                 space
@@ -304,13 +306,15 @@
         local.include_filename =
                 qbk_ver(0, 106u)
             >>  (*(cl::anychar_p - phrase_end)) [state.values.entry(ph::arg1, \
                ph::arg2)]
-            |   qbk_ver(106u)
+            |   qbk_ver(106u, 107u)
             >>  to_value()
                 [   *(  raw_escape
                     |   (cl::anychar_p - phrase_end)
                                                 [raw_char]
                     )
                 ]
+            |   qbk_ver(107u)
+            >>  to_value() [ attribute_value_1_7 ]
             ;
 
         local.inner_block =

Modified: trunk/Thirdparty/boost/tools/quickbook/src/block_tags.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/block_tags.hpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/block_tags.hpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -22,7 +22,7 @@
         (macro_definition)(template_definition)
         (variable_list)(table)
         (xinclude)(import)(include)
-        (paragraph)
+        (paragraph)(paragraph_in_list)
         (ordered_list)(itemized_list)
         (hr)
     )

Modified: trunk/Thirdparty/boost/tools/quickbook/src/code_snippet.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/code_snippet.cpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/code_snippet.cpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -18,7 +18,7 @@
 #include "state.hpp"
 #include "values.hpp"
 #include "files.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
 
 namespace quickbook
 {

Modified: trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -7,8 +7,9 @@
 =============================================================================*/
 
 #include "dependency_tracker.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
 #include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/fstream.hpp>
 #include <boost/foreach.hpp>
 
 namespace quickbook
@@ -90,7 +91,7 @@
     static std::string get_path(fs::path const& path,
             dependency_tracker::flags f)
     {
-        std::string generic = detail::path_to_generic(path);
+        std::string generic = quickbook::detail::path_to_generic(path);
 
         if (f & dependency_tracker::escaped) {
             generic = escaped_path(generic);
@@ -99,26 +100,85 @@
         return generic;
     }
 
+    dependency_tracker::dependency_tracker() :
+        dependencies(), glob_dependencies(),
+        last_glob(glob_dependencies.end()) {}
+
     bool dependency_tracker::add_dependency(fs::path const& f) {
         bool found = fs::exists(fs::status(f));
         dependencies[normalize_path(f)] |= found;
         return found;
     }
 
+    void dependency_tracker::add_glob(fs::path const& f) {
+        std::pair<glob_list::iterator, bool> r = glob_dependencies.insert(
+                std::make_pair(normalize_path(f), glob_list::mapped_type()));
+        last_glob = r.first;
+    }
+
+    void dependency_tracker::add_glob_match(fs::path const& f) {
+        assert(last_glob != glob_dependencies.end());
+        last_glob->second.insert(normalize_path(f));
+    }
+
+    void dependency_tracker::write_dependencies(fs::path const& file_out,
+            flags f)
+    {
+        fs::ofstream out(file_out);
+
+        if (out.fail()) {
+            throw std::runtime_error(
+                "Error opening dependency file " +
+                quickbook::detail::path_to_generic(file_out));
+        }
+
+        out.exceptions(std::ios::badbit);
+        write_dependencies(out, f);
+    }
+
     void dependency_tracker::write_dependencies(std::ostream& out,
             flags f)
     {
-        BOOST_FOREACH(dependency_list::value_type const& d, dependencies)
-        {
-            if (f & checked) {
+        if (f & checked) {
+            BOOST_FOREACH(dependency_list::value_type const& d, dependencies)
+            {
                 out << (d.second ? "+ " : "- ")
                     << get_path(d.first, f) << std::endl;
             }
-            else {
+
+            BOOST_FOREACH(glob_list::value_type const& g, glob_dependencies)
+            {
+                out << "g "
+                    << get_path(g.first, f) << std::endl;
+
+                BOOST_FOREACH(fs::path const& p, g.second)
+                {
+                    out << "+ " << get_path(p, f) << std::endl;
+                }
+            }
+        }
+        else {
+            std::set<std::string> paths;
+
+            BOOST_FOREACH(dependency_list::value_type const& d, dependencies)
+            {
                 if (d.second) {
-                    out << get_path(d.first, f) << std::endl;
+                    paths.insert(get_path(d.first, f));
                 }
             }
+
+            BOOST_FOREACH(glob_list::value_type const& g, glob_dependencies)
+            {
+                BOOST_FOREACH(fs::path const& p, g.second)
+                {
+                    paths.insert(get_path(p, f));
+                }
+            }
+
+            BOOST_FOREACH(std::string const& p, paths)
+            {
+                out << p << std::endl;
+            }
         }
     }
 }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.hpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/dependency_tracker.hpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -10,6 +10,7 @@
 #define QUICKBOOK_DEPENDENCY_TRACKER_HPP
 
 #include <map>
+#include <set>
 #include <iosfwd>
 #include <boost/filesystem/path.hpp>
 
@@ -21,7 +22,11 @@
     private:
 
         typedef std::map<fs::path, bool> dependency_list;
+        typedef std::map<fs::path, std::set<fs::path> > glob_list;
+
         dependency_list dependencies;
+        glob_list glob_dependencies;
+        glob_list::iterator last_glob;
 
     public:
 
@@ -31,10 +36,16 @@
             escaped = 2
         };
 
+        dependency_tracker();
+
         // Call this before loading any file so that it will be included in the
         // list of dependencies. Returns true if file exists.
         bool add_dependency(fs::path const&);
 
+        void add_glob(fs::path const&);
+        void add_glob_match(fs::path const&);
+
+        void write_dependencies(fs::path const&, flags = default_);
         void write_dependencies(std::ostream&, flags = default_);
     };
 }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/doc_info_actions.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/doc_info_actions.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/doc_info_actions.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -16,11 +16,11 @@
 #include "quickbook.hpp"
 #include "utils.hpp"
 #include "files.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
 #include "state.hpp"
 #include "actions.hpp"
 #include "doc_info_tags.hpp"
-#include "id_manager.hpp"
+#include "document_state.hpp"
 
 namespace quickbook
 {
@@ -208,12 +208,15 @@
 
         unsigned new_version = get_version(state, use_doc_info, qbk_version);
 
-        if (new_version != qbk_version_n && new_version >= 106)
+        if (new_version != qbk_version_n)
         {
-            detail::outwarn(state.current_file->path)
-                << "Quickbook " << (new_version / 100) << "." << (new_version % 100)
-                << " is still under development and is "
-                "likely to change in the future." << std::endl;
+            if (new_version >= 107u)
+            {
+                detail::outwarn(state.current_file->path)
+                    << "Quickbook " << (new_version / 100) << "." << (new_version % \
100) +                    << " is still under development and is "
+                    "likely to change in the future." << std::endl;
+            }
         }
 
         if (new_version) {
@@ -236,20 +239,20 @@
 
         if (!compatibility_version) {
             compatibility_version = use_doc_info ?
-                qbk_version_n : state.ids.compatibility_version();
+                qbk_version_n : state.document.compatibility_version();
         }
 
         // Start file, finish here if not generating document info.
 
         if (!use_doc_info)
         {
-            state.ids.start_file(compatibility_version, include_doc_id_, id_,
+            state.document.start_file(compatibility_version, include_doc_id_, id_,
                     doc_title);
             return "";
         }
 
         std::string id_placeholder =
-            state.ids.start_file_with_docinfo(
+            state.document.start_file_with_docinfo(
                 compatibility_version, include_doc_id_, id_, doc_title);
 
         // Make sure we really did have a document info block.
@@ -460,7 +463,7 @@
         if (!license.empty())
         {
             tmp << "    <legalnotice id=\""
-                << state.ids.add_id("legal", id_category::generated)
+                << state.document.add_id("legal", id_category::generated)
                 << "\">\n"
                 << "      <para>\n"
                 << "        " << doc_info_output(license, 103) << "\n"
@@ -541,18 +544,18 @@
         // *after* everything else.
 
         // Close any open sections.
-        if (!doc_type.empty() && state.ids.section_level() > 1) {
+        if (!doc_type.empty() && state.document.section_level() > 1) {
             detail::outwarn(state.current_file->path)
                 << "Missing [endsect] detected at end of file."
                 << std::endl;
 
-            while(state.ids.section_level() > 1) {
+            while(state.document.section_level() > 1) {
                 state.out << "</section>";
-                state.ids.end_section();
+                state.document.end_section();
             }
         }
 
-        state.ids.end_file();
+        state.document.end_file();
         if (!doc_type.empty()) state.out << "\n</" << doc_type << ">\n\n";
     }
 

Modified: trunk/Thirdparty/boost/tools/quickbook/src/doc_info_grammar.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/doc_info_grammar.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/doc_info_grammar.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -11,7 +11,6 @@
 #include <map>
 #include <boost/foreach.hpp>
 #include <boost/spirit/include/classic_core.hpp>
-#include <boost/spirit/include/classic_actor.hpp>
 #include <boost/spirit/include/classic_loops.hpp>
 #include <boost/spirit/include/classic_symbols.hpp>
 #include <boost/spirit/include/classic_chset.hpp>
@@ -118,16 +117,23 @@
 
         // Actions
         error_action error(state);
-        plain_char_action plain_char(state.phrase, state);
-        do_macro_action do_macro(state.phrase, state);
+        plain_char_action plain_char(state);
+        do_macro_action do_macro(state);
         scoped_parser<to_value_scoped_action> to_value(state);
+        member_action_value<quickbook::state, source_mode_type> change_source_mode(
+            state, &state::change_source_mode);
+        member_action_fixed_value<quickbook::state, source_mode_type> \
default_source_mode( +            state, &state::change_source_mode, \
source_mode_tags::cpp);  
         doc_info_details =
-                space                       [ph::var(local.source_mode_unset) = \
                true]
-            >>  *(  local.doc_attribute
-                >>  space
+                cl::eps_p                   [ph::var(local.source_mode_unset) = \
true] +            >>  *(  space
+                >>  local.doc_attribute
                 )
-            >>  !local.doc_info_block
+            >>  !(  space
+                >>  local.doc_info_block
+                )
+            >>  *eol
             ;
 
         local.doc_info_block =
@@ -146,7 +152,7 @@
                 ]
             >>  space
             >>  !(qbk_ver(106u) >> cl::eps_p(ph::var(local.source_mode_unset))
-                                            [cl::assign_a(state.source_mode, "c++")]
+                                            [default_source_mode]
                 )
             >>  (   *(  (  local.doc_info_attribute
                         |  local.doc_info_escaped_attributes
@@ -155,7 +161,7 @@
                     )
                 )                           [state.values.sort()]
             >>  (   ']'
-                >>  (+eol | cl::end_p)
+                >>  (eol | cl::end_p)
                 |   cl::eps_p               [error]
                 )
             ;
@@ -219,12 +225,8 @@
 
         local.attribute_rules[doc_attributes::compatibility_mode] = \
&local.doc_compatibility_mode;  
-        local.doc_source_mode =
-                (
-                   cl::str_p("c++")
-                |  "python"
-                |  "teletype"
-                )                           [cl::assign_a(state.source_mode)]
+        local.doc_source_mode = source_modes
+                                            [change_source_mode]
                                             [ph::var(local.source_mode_unset) = \
false]  ;
 

Modified: trunk/Thirdparty/boost/tools/quickbook/src/files.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/files.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/files.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -15,6 +15,7 @@
 #include <boost/foreach.hpp>
 #include <fstream>
 #include <iterator>
+#include <vector>
 
 namespace quickbook
 {

Modified: trunk/Thirdparty/boost/tools/quickbook/src/fwd.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/fwd.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/fwd.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -20,11 +20,12 @@
     struct state;
     struct quickbook_grammar;
     struct collector;
-    struct id_manager;
+    struct document_state;
     struct section_info;
     struct file;
     struct template_symbol;
     typedef boost::intrusive_ptr<file> file_ptr;
+    typedef unsigned source_mode_type;
 
     typedef boost::string_ref::const_iterator string_iterator;
     typedef lookback_iterator<string_iterator> parse_iterator;

Modified: trunk/Thirdparty/boost/tools/quickbook/src/grammar.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/grammar.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/grammar.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -17,8 +17,10 @@
         : impl_(new impl(s))
         , command_line_macro(impl_->command_line, "command_line_macro")
         , inline_phrase(impl_->inline_phrase, "inline_phrase")
-        , phrase(impl_->phrase_start, "phrase")
-        , block(impl_->block_start, "block")
+        , phrase_start(impl_->phrase_start, "phrase")
+        , block_start(impl_->block_start, "block")
+        , attribute_template_body(impl_->attribute_template_body,
+            "attribute_template_body")
         , doc_info(impl_->doc_info_details, "doc_info")
     {
     }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/grammar.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/grammar.hpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/grammar.hpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -58,8 +58,9 @@
     public:
         grammar command_line_macro;
         grammar inline_phrase;
-        grammar phrase;
-        grammar block;
+        grammar phrase_start;
+        grammar block_start;
+        grammar attribute_template_body;
         grammar doc_info;
 
         quickbook_grammar(quickbook::state&);

Modified: trunk/Thirdparty/boost/tools/quickbook/src/grammar_impl.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/grammar_impl.hpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/grammar_impl.hpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -20,26 +20,81 @@
 {
     namespace cl = boost::spirit::classic;
 
+    // Information about a square bracket element (e.g. [* word]).
+    //
+    // TODO: The naming is a bit confused as element is also sometimes used for
+    // syntactic/implicit elements (such as lists and horizontal rules). Maybe
+    // should use entity as a more general name instead of element. Or it might
+    // be better to use 'tag' for square bracket elements, although that is
+    // currently used for the type of entities.
     struct element_info
     {
+        // Types of elements.
+        //
+        // Used to determine:
+        //
+        //  - where they can be used.
+        //  - whether they end a paragraph
+        //  - how following newlines are interpreted by the grammar.
+        //  - and possibly other things.....
         enum type_enum {
+            // Used when there's no element.
             nothing = 0,
-            block = 1,
+
+            // A section tag. These can't be nested.
+            section_block = 1,
+
+            // Block elements that can be used in conditional phrases and lists,
+            // but not nested. (TODO: not a good name).
             conditional_or_block = 2,
+
+            // Block elements that can be nested in other elements.            
             nested_block = 4,
+            
+            // Phrase elements.
             phrase = 8,
+
+            // Depending on the context this can be a block or phrase.
+            //
+            // Currently this is only used for elements that don't actually
+            // generate output (e.g. anchors, source mode tags). The main
+            // reason is so that lists can be preceeded by the element, e.g.
+            //
+            // [#anchor]
+            // * list item.
+            //
+            // If the anchor was considered to be a phrase element, then the
+            // list wouldn't be recognised.
             maybe_block = 16
         };
 
+        // Masks to determine which context elements can be used in (in_*), and
+        // whether they are consided to be a block element (is_*).
         enum context {
+            // At the top level we allow everything.
+            in_top_level = phrase | maybe_block | nested_block |
+                conditional_or_block | section_block,
+
+            // In conditional phrases and list blocks we everything but section
+            // elements.
+            in_conditional = phrase | maybe_block | nested_block |
+                conditional_or_block,
+            in_list_block = phrase | maybe_block | nested_block |
+                conditional_or_block,
+
+            // In nested blocks we allow a more limited range of elements.
+            in_nested_block = phrase | maybe_block | nested_block,
+
+            // In a phrase we only allow phrase elements, ('maybe_block'
+            // elements are treated as phrase elements in this context)
             in_phrase = phrase | maybe_block,
-            in_nested_block = phrase | maybe_block | nested_block,
-            in_conditional = phrase | maybe_block | nested_block | \
                conditional_or_block,
-            in_block = phrase | maybe_block | nested_block | conditional_or_block | \
                block,
-            only_nested_block = nested_block,
-            only_block = nested_block | conditional_or_block | block,
-            only_list_block = nested_block | conditional_or_block,
-            only_contextual_block = maybe_block | nested_block | \
conditional_or_block | block +
+            // At the start of a block these are all block elements.
+            is_contextual_block = maybe_block | nested_block |
+                conditional_or_block | section_block,
+
+            // These are all block elements in all other contexts.
+            is_block = nested_block | conditional_or_block | section_block,
         };
 
         element_info()
@@ -74,6 +129,7 @@
         cl::rule<scanner> inside_preformatted;
         cl::rule<scanner> inside_paragraph;
         cl::rule<scanner> command_line;
+        cl::rule<scanner> attribute_template_body;
         cl::rule<scanner> attribute_value_1_7;
         cl::rule<scanner> escape;
         cl::rule<scanner> raw_escape;
@@ -91,6 +147,9 @@
 
         // Element Symbols       
         cl::symbols<element_info> elements;
+
+        // Source mode
+        cl::symbols<source_mode_type> source_modes;
         
         // Doc Info
         cl::rule<scanner> doc_info_details;

Modified: trunk/Thirdparty/boost/tools/quickbook/src/main_grammar.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/main_grammar.cpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/main_grammar.cpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -17,7 +17,7 @@
 #include "phrase_tags.hpp"
 #include "parsers.hpp"
 #include "scoped.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
 #include <boost/spirit/include/classic_core.hpp>
 #include <boost/spirit/include/classic_chset.hpp>
 #include <boost/spirit/include/classic_if.hpp>
@@ -33,8 +33,15 @@
     namespace cl = boost::spirit::classic;
 
     struct list_stack_item {
-        bool root; // Is this the root of the context
-                   // (e.g. top, template, table cell etc.)
+        // Is this the root of the context
+        // (e.g. top, template, table cell etc.)
+        enum list_item_type {
+            syntactic_list,   // In a list marked up '*' or '#'
+            top_level,        // At the top level of a parse
+                              // (might be a template body)
+            nested_block      // Nested in a block element.
+        } type;
+
         unsigned int indent;  // Indent of list marker
                               // (or paragraph if not in a list)
         unsigned int indent2; // Indent of paragraph
@@ -46,11 +53,11 @@
         //   * List item
         //     |indent2 
 
-        list_stack_item() :
-            root(true), indent(0), indent2(0), mark('\0') {}
+        list_stack_item(list_item_type r) :
+            type(r), indent(0), indent2(0), mark('\0') {}
 
         list_stack_item(char mark, unsigned int indent, unsigned int indent2) :
-            root(false), indent(indent), indent2(indent2), mark(mark)
+            type(syntactic_list), indent(indent), indent2(indent2), mark(mark)
         {}
 
     };
@@ -61,27 +68,13 @@
         };
     };
 
-    template <typename T>
-    struct member_action
-    {
-        typedef void(T::*member_function)(parse_iterator, parse_iterator);
-
-        T& l;
-        member_function mf;
-
-        member_action(T& l, member_function mf) : l(l), mf(mf) {}
-
-        void operator()(parse_iterator first, parse_iterator last) const {
-            (l.*mf)(first, last);
-        }
-    };
-
     struct main_grammar_local
     {
         ////////////////////////////////////////////////////////////////////////
         // Local actions
 
         void start_blocks_impl(parse_iterator first, parse_iterator last);
+        void start_nested_blocks_impl(parse_iterator first, parse_iterator last);
         void end_blocks_impl(parse_iterator first, parse_iterator last);
         void check_indentation_impl(parse_iterator first, parse_iterator last);
         void check_code_block_impl(parse_iterator first, parse_iterator last);
@@ -90,46 +83,15 @@
                 string_iterator last);
         void clear_stack();
 
-        struct in_list_impl {
-            main_grammar_local& l;
-
-            in_list_impl(main_grammar_local& l) :
-                l(l) {}
-
-            bool operator()() const {
-                return !l.list_stack.top().root;
-            }
-        };
-
-        struct set_no_eols_scoped : scoped_action_base
-        {
-            set_no_eols_scoped(main_grammar_local& l)
-                : l(l) {}
-
-            bool start() {
-                saved_no_eols = l.no_eols;
-                l.no_eols = false;
-
-                return true;
-            }
-
-            void cleanup() {
-                l.no_eols = saved_no_eols;
-            }
-
-            main_grammar_local& l;
-            bool saved_no_eols;
-        };
-
         ////////////////////////////////////////////////////////////////////////
         // Local members
 
         cl::rule<scanner>
-                        top_level, indent_check,
-                        paragraph_separator,
+                        template_phrase, top_level, indent_check,
+                        paragraph_separator, inside_paragraph,
                         code, code_line, blank_line, hr,
                         inline_code, skip_inline_code,
-                        template_,
+                        template_, attribute_template, template_body,
                         code_block, skip_code_block, macro,
                         template_args,
                         template_args_1_4, template_arg_1_4,
@@ -143,36 +105,29 @@
                         skip_escape
                         ;
 
-        struct simple_markup_closure
-            : cl::closure<simple_markup_closure, char>
+        struct block_context_closure : cl::closure<block_context_closure,
+            element_info::context>
         {
-            member1 mark;
+            // Mask used to determine whether or not an element is a block
+            // element.
+            member1 is_block_mask;
         };
 
-        struct block_item_closure : cl::closure<block_item_closure, bool>
-        {
-            member1 still_in_block;
-        };
+        cl::rule<scanner> simple_markup, simple_markup_end;
 
-        struct context_closure : cl::closure<context_closure, element_info::context>
-        {
-            member1 context;
-        };
+        cl::rule<scanner> paragraph;
+        cl::rule<scanner> list;
+        cl::rule<scanner, block_context_closure::context_t> syntactic_block_item;
+        cl::rule<scanner> common;
+        cl::rule<scanner> element;
 
-        cl::rule<scanner, simple_markup_closure::context_t> simple_markup;
-        cl::rule<scanner> simple_markup_end;
-
-        cl::rule<scanner, block_item_closure::context_t> paragraph;
-        cl::rule<scanner, context_closure::context_t> paragraph_item;
-        cl::rule<scanner, block_item_closure::context_t> list;
-        cl::rule<scanner, context_closure::context_t> list_item;
-        cl::rule<scanner, context_closure::context_t> common;
-        cl::rule<scanner, context_closure::context_t> element;
-
         // state
         std::stack<list_stack_item> list_stack;
         unsigned int list_indent;
         bool no_eols;
+        element_info::context context;
+        char mark; // Simple markup's deliminator
+        bool still_in_block; // Inside a syntatic block
 
         // transitory state
         block_types::values block_type;
@@ -189,31 +144,36 @@
             : list_stack()
             , list_indent(0)
             , no_eols(true)
+            , context(element_info::in_top_level)
+            , mark('\0')
             , state_(state)
             {}
     };
 
     struct process_element_impl : scoped_action_base {
-        process_element_impl(main_grammar_local& l)
-            : l(l) {}
+        process_element_impl(main_grammar_local& l) :
+            l(l), pushed_source_mode_(false), element_context_error_(false) {}
 
         bool start()
         {
-            if (!(l.info.type & l.element.context()) ||
-                    qbk_version_n < l.info.qbk_version)
+            // This element doesn't exist in the current language version.
+            if (qbk_version_n < l.info.qbk_version)
                 return false;
 
+            // The element is not allowed in this context.
+            if (!(l.info.type & l.context))
+            {
+                if (qbk_version_n < 107u) {
+                    return false;
+                }
+                else {
+                    element_context_error_ = true;
+                }
+            }
+
             info_ = l.info;
 
-            if (!l.list_stack.empty() && !l.list_stack.top().root &&
-                    info_.type == element_info::block)
-            {
-                // If in a list and the element is a block, end the list.
-                list_item_action list_item(l.state_);
-                list_item();
-                l.clear_stack();
-            }
-            else if (info_.type != element_info::phrase &&
+            if (info_.type != element_info::phrase &&
                     info_.type != element_info::maybe_block)
             {
                 paragraph_action para(l.state_);
@@ -222,12 +182,12 @@
 
             assert(l.state_.values.builder.empty());
 
-            if (!l.state_.source_mode_next.empty() &&
+            if (l.state_.source_mode_next &&
                 info_.type != element_info::maybe_block)
             {
-                l.state_.source_mode.swap(saved_source_mode_);
-                l.state_.source_mode = \
                detail::to_s(l.state_.source_mode_next.get_quickbook());
-                l.state_.source_mode_next = value();
+                l.state_.push_tagged_source_mode(l.state_.source_mode_next);
+                pushed_source_mode_ = true;
+                l.state_.source_mode_next = 0;
             }
 
             return true;
@@ -236,45 +196,61 @@
         template <typename ResultT, typename ScannerT>
         bool result(ResultT result, ScannerT const& scan)
         {
-            if (result || info_.type & element_info::in_phrase)
-                return result;
-
-            error_action error(l.state_);
-            error(scan.first, scan.first);
-            return true;
+            if (element_context_error_) {
+                error_message_action error(l.state_,
+                        "Element not allowed in this context.");
+                error(scan.first, scan.first);
+                return true;
+            }
+            else if (result) {
+                return true;
+            }
+            else if (qbk_version_n < 107u &&
+                    info_.type & element_info::in_phrase) {
+                // Old versions of quickbook had a soft fail
+                // for unparsed phrase elements.
+                return false;
+            }
+            else {
+                // Parse error in body.
+                error_action error(l.state_);
+                error(scan.first, scan.first);
+                return true;
+            }
         }
 
         void success(parse_iterator, parse_iterator) { l.element_type = info_.type; \
}  void failure() { l.element_type = element_info::nothing; }
 
         void cleanup() {
-            if (!saved_source_mode_.empty())
-                l.state_.source_mode.swap(saved_source_mode_);
+            if (pushed_source_mode_)
+                l.state_.pop_tagged_source_mode();
         }
 
         main_grammar_local& l;
         element_info info_;
-        std::string saved_source_mode_;
+        bool pushed_source_mode_;
+        bool element_context_error_;
     };
 
-    struct set_no_eols_scoped : scoped_action_base
+    struct scoped_paragraph : scoped_action_base
     {
-        set_no_eols_scoped(main_grammar_local& l)
-            : l(l) {}
+        scoped_paragraph(quickbook::state& state) :
+            state(state), pushed(false) {}
 
         bool start() {
-            saved_no_eols = l.no_eols;
-            l.no_eols = false;
-
+            state.push_tagged_source_mode(state.source_mode_next);
+            pushed = true;
+            state.source_mode_next = 0;
             return true;
         }
 
         void cleanup() {
-            l.no_eols = saved_no_eols;
+            if (pushed) state.pop_tagged_source_mode();
         }
 
-        main_grammar_local& l;
-        bool saved_no_eols;
+        quickbook::state& state;
+        bool pushed;
     };
 
     struct in_list_impl {
@@ -284,10 +260,44 @@
             l(l) {}
 
         bool operator()() const {
-            return !l.list_stack.top().root;
+            return !l.list_stack.empty() &&
+                l.list_stack.top().type == list_stack_item::syntactic_list;
         }
     };
 
+    template <typename T, typename M>
+    struct set_scoped_value_impl : scoped_action_base
+    {
+        typedef M T::*member_ptr;
+
+        set_scoped_value_impl(T& l, member_ptr ptr)
+            : l(l), ptr(ptr), saved_value() {}
+
+        bool start(M const& value) {
+            saved_value = l.*ptr;
+            l.*ptr = value;
+
+            return true;
+        }
+
+        void cleanup() {
+            l.*ptr = saved_value;
+        }
+
+        T& l;
+        member_ptr ptr;
+        M saved_value;
+    };
+
+    template <typename T, typename M>
+    struct set_scoped_value : scoped_parser<set_scoped_value_impl<T, M> >
+    {
+        typedef set_scoped_value_impl<T, M> impl;
+
+        set_scoped_value(T& l, typename impl::member_ptr ptr) :
+            scoped_parser<impl>(impl(l, ptr)) {}
+    };
+
     ////////////////////////////////////////////////////////////////////////////
     // Local grammar
 
@@ -297,35 +307,44 @@
             new main_grammar_local(state));
 
         // Global Actions
-        element_action element(state);
-        paragraph_action paragraph(state);
-        list_item_action list_item(state);
+        quickbook::element_action element_action(state);
+        quickbook::paragraph_action paragraph_action(state);
 
         phrase_end_action end_phrase(state);
-        raw_char_action raw_char(state.phrase);
-        plain_char_action plain_char(state.phrase, state);
-        escape_unicode_action escape_unicode(state.phrase, state);
+        raw_char_action raw_char(state);
+        plain_char_action plain_char(state);
+        escape_unicode_action escape_unicode(state);
 
-        simple_phrase_action simple_markup(state.phrase, state);
+        simple_phrase_action simple_markup(state);
 
-        break_action break_(state.phrase, state);
-        do_macro_action do_macro(state.phrase, state);
+        break_action break_(state);
+        do_macro_action do_macro(state);
 
         error_action error(state);
         element_id_warning_action element_id_warning(state);
 
         scoped_parser<to_value_scoped_action> to_value(state);
+        scoped_parser<scoped_paragraph> scope_paragraph(state);
 
         // Local Actions
         scoped_parser<process_element_impl> process_element(local);
-        scoped_parser<set_no_eols_scoped> scoped_no_eols(local);
         in_list_impl in_list(local);
+
+        set_scoped_value<main_grammar_local, bool> scoped_no_eols(
+                local, &main_grammar_local::no_eols);
+        set_scoped_value<main_grammar_local, element_info::context> scoped_context(
+                local, &main_grammar_local::context);
+        set_scoped_value<main_grammar_local, bool> scoped_still_in_block(
+                local, &main_grammar_local::still_in_block);
+
         member_action<main_grammar_local> check_indentation(local,
             &main_grammar_local::check_indentation_impl);
         member_action<main_grammar_local> check_code_block(local,
             &main_grammar_local::check_code_block_impl);
         member_action<main_grammar_local> start_blocks(local,
             &main_grammar_local::start_blocks_impl);
+        member_action<main_grammar_local> start_nested_blocks(local,
+            &main_grammar_local::start_nested_blocks_impl);
         member_action<main_grammar_local> end_blocks(local,
             &main_grammar_local::end_blocks_impl);
 
@@ -340,9 +359,9 @@
         // brackets.
         nested_phrase =
             state.values.save()
-            [   *( ~cl::eps_p(']')
-                >>  local.common(element_info::in_phrase)
-                )
+            [
+                scoped_context(element_info::in_phrase)
+                [*(~cl::eps_p(']') >> local.common)]
             ]
             ;
 
@@ -350,9 +369,9 @@
         // by a paragraph end.
         paragraph_phrase =
             state.values.save()
-            [   *( ~cl::eps_p(phrase_end)
-                >>  local.common(element_info::in_phrase)
-                )
+            [
+                scoped_context(element_info::in_phrase)
+                [*(~cl::eps_p(phrase_end) >> local.common)]
             ]
             ;
 
@@ -360,9 +379,9 @@
         // elements.
         extended_phrase =
             state.values.save()
-            [   *( ~cl::eps_p(phrase_end)
-                >>  local.common(element_info::in_conditional)
-                )
+            [
+                scoped_context(element_info::in_conditional)
+                [*(~cl::eps_p(phrase_end) >> local.common)]
             ]
             ;
 
@@ -372,30 +391,67 @@
         // is part of the paragraph that contains it.
         inline_phrase =
             state.values.save()
-            [   *local.common(element_info::in_phrase)
+            [   qbk_ver(107u)
+            >>  local.template_phrase
+            |   qbk_ver(0, 107u)
+            >>  scoped_context(element_info::in_phrase)
+                [*local.common]
             ]
             ;
 
         table_title_phrase =
             state.values.save()
-            [   *( ~cl::eps_p(space >> (']' | '[' >> space >> '['))
-                >>  local.common(element_info::in_phrase)
-                )
+            [
+                scoped_context(element_info::in_phrase)
+                [   *( ~cl::eps_p(space >> (']' | '[' >> space >> '['))
+                    >>  local.common
+                    )
+                ]
             ]
             ;
 
         inside_preformatted =
-            scoped_no_eols()
+            scoped_no_eols(false)
             [   paragraph_phrase
             ]
             ;
 
+        // Phrase templates can contain block tags, but can't contain
+        // syntatic blocks.
+        local.template_phrase =
+                scoped_context(element_info::in_top_level)
+                [   *(  (local.paragraph_separator >> space >> cl::anychar_p)
+                                        [error("Paragraph in phrase template.")]
+                    |   local.common
+                    )
+                ]
+            ;
+
         // Top level blocks
         block_start =
-                (*eol)                          [start_blocks]
-            >>  (*local.top_level)              [end_blocks]
+                (*eol)                  [start_blocks]
+            >>  (   *(  local.top_level
+                    >>  !(  qbk_ver(106u)
+                        >>  cl::ch_p(']')
+                        >>  cl::eps_p   [error("Mismatched close bracket")]
+                        )
+                    )
+                )                       [end_blocks]
             ;
 
+        // Blocks contains within an element, e.g. a table cell or a footnote.
+        inside_paragraph =
+            state.values.save()
+            [   cl::eps_p               [start_nested_blocks]
+            >>  (   qbk_ver(107u)
+                >>  (*eol)
+                >>  (*local.top_level)
+                |   qbk_ver(0, 107u)
+                >>  local.inside_paragraph
+                )                       [end_blocks]
+            ]
+            ;
+
         local.top_level =
                 cl::eps_p(local.indent_check)
             >>  (   cl::eps_p(ph::var(local.block_type) == block_types::code)
@@ -418,42 +474,59 @@
             ;
 
         local.paragraph =
-                cl::eps_p                       [local.paragraph.still_in_block = \
                true]
-            >>  local.paragraph_item(element_info::only_contextual_block)
-            >>  *(  cl::eps_p(local.paragraph.still_in_block)
-                >>  local.paragraph_item(element_info::only_block)
-                )
-            >>  cl::eps_p                       [paragraph]
+                                                // Usually superfluous call
+                                                // for paragraphs in lists.
+            cl::eps_p                           [paragraph_action]
+        >>  scope_paragraph()
+            [
+                scoped_context(element_info::in_top_level)
+                [   scoped_still_in_block(true)
+                    [   \
local.syntactic_block_item(element_info::is_contextual_block) +                    >> \
*(  cl::eps_p(ph::var(local.still_in_block)) +                        >>  \
local.syntactic_block_item(element_info::is_block) +                        )
+                    ]
+                ]
+            ]                                   [paragraph_action]
             ;
 
-        local.paragraph_item =
-                local.element(local.paragraph_item.context)
-            >>  !eol                            [local.paragraph.still_in_block = \
                false]
-            |   local.paragraph_separator       [local.paragraph.still_in_block = \
                false]
-            |   local.common(element_info::in_phrase)
-            ;
-
         local.list =
                 *cl::blank_p
             >>  (cl::ch_p('*') | '#')
-            >>  (*cl::blank_p)                  [local.list.still_in_block = true]
-            >>  *(  cl::eps_p(local.list.still_in_block)
-                >>  (   qbk_ver(106u) >> local.list_item(element_info::only_block)
-                    |   qbk_ver(0, 106u) >> \
local.list_item(element_info::only_list_block) +            >>  (*cl::blank_p)
+            >>  scoped_context(element_info::in_list_block)
+                [   scoped_still_in_block(true)
+                    [   *(  cl::eps_p(ph::var(local.still_in_block))
+                        >>  local.syntactic_block_item(element_info::is_block)
+                        )
+                    ]
+                ]
+            ;
+
+        local.syntactic_block_item =
+                local.paragraph_separator       [ph::var(local.still_in_block) = \
false] +            |   (cl::eps_p(~cl::ch_p(']')) | qbk_ver(0, 107u))
+                                                [ph::var(local.element_type) = \
element_info::nothing] +            >>  local.common
+
+                // If the element is a block, then a newline will end the
+                // current syntactic block.
+                //
+                // Note that we don't do this for lists in 1.6, as it causes
+                // the list block to end. The support for nested syntactic
+                // blocks in 1.7 will fix that. Although it does mean the
+                // following line will need to be indented. TODO: Flag that
+                // the indentation check shouldn't be made?
+            >>  !(  cl::eps_p(in_list) >> qbk_ver(106u, 107u)
+                |   cl::eps_p
+                    (
+                        \
ph::static_cast_<int>(local.syntactic_block_item.is_block_mask) & +                   \
ph::static_cast_<int>(ph::var(local.element_type))  )
+                >>  eol                         [ph::var(local.still_in_block) = \
false]  )
-                // TODO: This is sometimes called in the wrong place. Currently
-                // harmless.
-            >>  cl::eps_p                       [list_item]
             ;
 
-        local.list_item =
-                local.element(local.list_item.context)
-            >>  !eol                            [local.list.still_in_block = false]
-            |   local.paragraph_separator       [local.list.still_in_block = false]
-            |   local.common(element_info::in_phrase)
-            ;
-
         local.paragraph_separator =
                 cl::eol_p
             >>  cl::eps_p
@@ -467,14 +540,13 @@
             ;
 
         // Blocks contains within an element, e.g. a table cell or a footnote.
-        inside_paragraph =
-            state.values.save()
-            [   *(  local.paragraph_separator   [paragraph]
-                >>  *eol
+        local.inside_paragraph =
+            scoped_context(element_info::in_nested_block)
+            [   *(  local.paragraph_separator   [paragraph_action]
                 |   ~cl::eps_p(']')
-                >>  local.common(element_info::in_nested_block)
+                >>  local.common
                 )
-            ]                                   [paragraph]
+            ]                                   [paragraph_action]
             ;
 
         local.hr =
@@ -486,7 +558,7 @@
                     >>  *(line_comment | (cl::anychar_p - (cl::eol_p | "[/")))
                     )
                 >>  *eol
-                ]                               [element]
+                ]                               [element_action]
             ;
 
         local.element
@@ -501,7 +573,7 @@
                     [   cl::lazy_p(*ph::var(local.info.rule))
                     >>  space
                     >>  ']'
-                    ]                           [element]
+                    ]                           [element_action]
                 ]
             ;
 
@@ -510,7 +582,7 @@
             [(  local.code_line
                 >> *(*local.blank_line >> local.code_line)
             )                                   [state.values.entry(ph::arg1, \
                ph::arg2)]
-            ]                                   [element]
+            ]                                   [element_action]
             >> *eol
             ;
 
@@ -529,7 +601,7 @@
 
         local.common =
                 local.macro
-            |   local.element(local.common.context)
+            |   local.element
             |   local.template_
             |   local.break_
             |   local.code_block
@@ -544,6 +616,8 @@
 
         skip_entity =
                 '['
+                // For escaped templates:
+            >>  !(space >> cl::ch_p('`') >> (cl::alpha_p | '_'))
             >>  *(~cl::eps_p(']') >> skip_entity)
             >>  !cl::ch_p(']')
             |   local.skip_code_block
@@ -579,17 +653,45 @@
             (   '['
             >>  space
             >>  state.values.list(template_tags::template_)
-                [   !cl::str_p("`")             [state.values.entry(ph::arg1, \
                ph::arg2, template_tags::escape)]
-                >>  (   cl::eps_p(cl::punct_p)
-                    >>  state.templates.scope   [state.values.entry(ph::arg1, \
                ph::arg2, template_tags::identifier)]
-                    |   state.templates.scope   [state.values.entry(ph::arg1, \
ph::arg2, template_tags::identifier)] +                [   local.template_body
+                >>  ']'
+                ]
+            )                                   [element_action]
+            ;
+
+        local.attribute_template =
+            (   '['
+            >>  space
+            >>  state.values.list(template_tags::attribute_template)
+                [   local.template_body
+                >>  ']'
+                ]
+            )                                   [element_action]
+            ;
+
+        local.template_body =
+                    (   cl::str_p('`')
+                    >>  cl::eps_p(cl::punct_p)
+                    >>  state.templates.scope
+                            [state.values.entry(ph::arg1, ph::arg2, \
template_tags::escape)] +                            [state.values.entry(ph::arg1, \
ph::arg2, template_tags::identifier)] +                    >>  !qbk_ver(106u)
+                            [error("Templates with punctuation names can't be \
escaped in quickbook 1.6+")] +                    |   cl::str_p('`')
+                    >>  state.templates.scope
+                            [state.values.entry(ph::arg1, ph::arg2, \
template_tags::escape)] +                            [state.values.entry(ph::arg1, \
ph::arg2, template_tags::identifier)] +
+                    |   cl::eps_p(cl::punct_p)
+                    >>  state.templates.scope
+                            [state.values.entry(ph::arg1, ph::arg2, \
template_tags::identifier)] +
+                    |   state.templates.scope
+                            [state.values.entry(ph::arg1, ph::arg2, \
template_tags::identifier)]  >>  cl::eps_p(hard_space)
                     )
                 >>  space
                 >>  !local.template_args
-                >>  ']'
-                ]
-            )                                   [element]
             ;
 
         local.template_args =
@@ -669,7 +771,7 @@
                 ) >> cl::eps_p('`')
             )                                   [state.values.entry(ph::arg1, \
ph::arg2)]  >>  '`'
-            ]                                   [element]
+            ]                                   [element_action]
             ;
 
         local.skip_inline_code =
@@ -727,7 +829,7 @@
                             >>  !(*cl::blank_p >> cl::eol_p)
                         )                   [state.values.entry(ph::arg1, ph::arg2)]
                     >>  (*cl::space_p >> "```")
-                    ]                       [element]
+                    ]                       [element_action]
                 |   cl::eps_p               [error("Unfinished code block")]
                 >>  *cl::anychar_p
                 )
@@ -743,18 +845,18 @@
                             >>  !(*cl::blank_p >> cl::eol_p)
                         )                   [state.values.entry(ph::arg1, ph::arg2)]
                     >>  (*cl::space_p >> "``")
-                    ]                       [element]
+                    ]                       [element_action]
                 |   cl::eps_p               [error("Unfinished code block")]
                 >>  *cl::anychar_p
                 )
             ;
 
         local.simple_markup =
-                cl::chset<>("*/_=")             [local.simple_markup.mark = \
ph::arg1] +                cl::chset<>("*/_=")             [ph::var(local.mark) = \
                ph::arg1]
             >>  cl::eps_p(cl::graph_p)          // graph_p must follow first mark
             >>  lookback
                 [   cl::anychar_p               // skip back over the markup
-                >>  ~cl::eps_p(cl::f_ch_p(local.simple_markup.mark))
+                >>  ~cl::eps_p(cl::ch_p(boost::ref(local.mark)))
                                                 // first mark not be preceeded by
                                                 // the same character.
                 >>  (cl::space_p | cl::punct_p | cl::end_p)
@@ -768,15 +870,15 @@
                     [
                         cl::eps_p((state.macro & macro_identifier) >> \
local.simple_markup_end)  >>  state.macro       [do_macro]
-                    |   ~cl::eps_p(cl::f_ch_p(local.simple_markup.mark))
+                    |   ~cl::eps_p(cl::ch_p(boost::ref(local.mark)))
                     >>  +(  ~cl::eps_p
-                            (   lookback [~cl::f_ch_p(local.simple_markup.mark)]
+                            (   lookback [~cl::ch_p(boost::ref(local.mark))]
                             >>  local.simple_markup_end
                             )
                         >>  cl::anychar_p   [plain_char]
                         )
                     ]
-                >>  cl::f_ch_p(local.simple_markup.mark)
+                >>  cl::ch_p(boost::ref(local.mark))
                                                 [simple_markup]
                 ]
             ;
@@ -784,8 +886,8 @@
         local.simple_markup_end
             =   (   lookback[cl::graph_p]       // final mark must be preceeded by
                                                 // graph_p
-                >>  cl::f_ch_p(local.simple_markup.mark)
-                >>  ~cl::eps_p(cl::f_ch_p(local.simple_markup.mark))
+                >>  cl::ch_p(boost::ref(local.mark))
+                >>  ~cl::eps_p(cl::ch_p(boost::ref(local.mark)))
                                                 // final mark not be followed by
                                                 // the same character.
                 >>  (cl::space_p | cl::punct_p | cl::end_p)
@@ -811,7 +913,7 @@
                 [   (*(cl::anychar_p - "'''"))  [state.values.entry(ph::arg1, \
ph::arg2, phrase_tags::escape)]  >>  (   cl::str_p("'''")
                     |   cl::eps_p               [error("Unclosed boostbook \
                escape.")]
-                    )                           [element]
+                    )                           [element_action]
                 ]
             ;
 
@@ -842,11 +944,12 @@
             >>  (*(cl::anychar_p - "'''"))
             >>  (   cl::str_p("'''")
                 |   cl::eps_p                   [error("Unclosed boostbook \
                escape.")]
-                )                               [element]
+                )
             ;
 
-        attribute_value_1_7 =
-            *(  ~cl::eps_p(']' | cl::space_p | comment)
+        attribute_template_body =
+            space
+        >>  *(  ~cl::eps_p(space >> cl::end_p | comment)
             >>  (   cl::eps_p
                     (   cl::ch_p('[')
                     >>  space
@@ -857,15 +960,40 @@
                         )
                     )                           [error("Elements not allowed in \
attribute values.")]  >>  local.square_brackets
-                |   local.template_
+                |   local.attribute_template
                 |   cl::eps_p(cl::ch_p('['))    [error("Unmatched template in \
attribute value.")]  >>  local.square_brackets
                 |   raw_escape
                 |   cl::anychar_p               [raw_char]
                 )
             )
+        >>  space
             ;
 
+
+        attribute_value_1_7 =
+            state.values.save() [
+                +(  ~cl::eps_p(']' | cl::space_p | comment)
+                >>  (   cl::eps_p
+                        (   cl::ch_p('[')
+                        >>  space
+                        >>  (   cl::eps_p(cl::punct_p)
+                            >>  elements
+                            |   elements
+                            >>  (cl::eps_p - (cl::alnum_p | '_'))
+                            )
+                        )                       [error("Elements not allowed in \
attribute values.")] +                    >>  local.square_brackets
+                    |   local.attribute_template
+                    |   cl::eps_p(cl::ch_p('['))[error("Unmatched template in \
attribute value.")] +                    >>  local.square_brackets
+                    |   raw_escape
+                    |   cl::anychar_p           [raw_char]
+                    )
+                )
+            ]
+            ;
+
         //
         // Command line
         //
@@ -882,7 +1010,7 @@
                 >>  *cl::space_p
                 )
             >>  cl::end_p
-            ]                                   [element]
+            ]                                   [element_action]
             ;
 
         local.command_line_macro_identifier =
@@ -965,9 +1093,23 @@
 
     void main_grammar_local::start_blocks_impl(parse_iterator, parse_iterator)
     {
-        list_stack.push(list_stack_item());
+        list_stack.push(list_stack_item(list_stack_item::top_level));
     }
 
+    void main_grammar_local::start_nested_blocks_impl(parse_iterator, \
parse_iterator) +    {
+        // If this nested block is part of a list, then tell the
+        // output state.
+        //
+        // TODO: This is a bit dodgy, it would be better if this
+        // was handled when the output state is pushed (currently
+        // in to_value_scoped_action).
+        state_.in_list = state_.explicit_list;
+        state_.explicit_list = false;
+
+        list_stack.push(list_stack_item(list_stack_item::nested_block));
+    }
+
     void main_grammar_local::end_blocks_impl(parse_iterator, parse_iterator)
     {
         clear_stack();
@@ -1004,10 +1146,16 @@
             unsigned int new_indent = indent_length(first, last);
 
             if (new_indent > list_stack.top().indent2) {
-                block_type = block_types::code;
+                if (list_stack.top().type != list_stack_item::nested_block) {
+                    block_type = block_types::code;
+                }
+                else {
+                    block_type = block_types::paragraph;
+                }
             }
             else {
-                while (!list_stack.top().root && new_indent < \
list_stack.top().indent) +                while (list_stack.top().type == \
list_stack_item::syntactic_list +                        && new_indent < \
list_stack.top().indent)  {
                     state_.end_list_item();
                     state_.end_list(list_stack.top().mark);
@@ -1015,7 +1163,8 @@
                     list_indent = list_stack.top().indent;
                 }
 
-                if (!list_stack.top().root && new_indent == list_stack.top().indent)
+                if (list_stack.top().type == list_stack_item::syntactic_list
+                        && new_indent == list_stack.top().indent)
                 {
                     // If the paragraph is aligned with the list item's marker,
                     // then end the current list item if that's aligned (or to
@@ -1038,7 +1187,7 @@
                     list_stack_item save = list_stack.top();
                     list_stack.pop();
 
-                    assert(list_stack.top().root ?
+                    assert(list_stack.top().type != list_stack_item::syntactic_list \
?  new_indent >= list_stack.top().indent :
                         new_indent > list_stack.top().indent);
 
@@ -1054,14 +1203,24 @@
 
                 block_type = block_types::paragraph;
             }
+
+            if (qbk_version_n == 106u &&
+                    list_stack.top().type == list_stack_item::syntactic_list) {
+                detail::outerr(state_.current_file, first)
+                    << "Nested blocks in lists won't be supported in "
+                    << "quickbook 1.6"
+                    << std::endl;
+                ++state_.error_count;
+            }
         }
         else {
             clear_stack();
 
-            if (last == first)
+            if (list_stack.top().type != list_stack_item::nested_block &&
+                    last != first)
+                block_type = block_types::code;
+            else
                 block_type = block_types::paragraph;
-            else
-                block_type = block_types::code;
         }
     }
 
@@ -1072,12 +1231,14 @@
         unsigned int new_indent2 = indent_length(first, last);
         char mark = *mark_pos;
 
-        if (list_stack.top().root && new_indent > 0) {
+        if (list_stack.top().type == list_stack_item::top_level &&
+                new_indent > 0) {
             block_type = block_types::code;
             return;
         }
 
-        if (list_stack.top().root || new_indent > list_indent) {
+        if (list_stack.top().type != list_stack_item::syntactic_list ||
+                new_indent > list_indent) {
             list_stack.push(list_stack_item(mark, new_indent, new_indent2));
             state_.start_list(mark);
         }
@@ -1087,7 +1248,8 @@
         else {
             // This should never reach root, since the first list
             // has indentation 0.
-            while(!list_stack.top().root && new_indent < list_stack.top().indent)
+            while(list_stack.top().type == list_stack_item::syntactic_list &&
+                    new_indent < list_stack.top().indent)
             {
                 state_.end_list_item();
                 state_.end_list(list_stack.top().mark);
@@ -1114,7 +1276,7 @@
 
     void main_grammar_local::clear_stack()
     {
-        while (!list_stack.top().root) {
+        while (list_stack.top().type == list_stack_item::syntactic_list) {
             state_.end_list_item();
             state_.end_list(list_stack.top().mark);
             list_stack.pop();

Modified: trunk/Thirdparty/boost/tools/quickbook/src/markups.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/markups.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/markups.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -26,6 +26,7 @@
         {
             markup init_markups[] = {
                 { block_tags::paragraph, "<para>\n", "</para>\n" },
+                { block_tags::paragraph_in_list, "<simpara>\n", "</simpara>\n" },
                 { block_tags::blurb, "<sidebar role=\"blurb\">\n", "</sidebar>\n" },
                 { block_tags::blockquote, "<blockquote>", "</blockquote>" },
                 { block_tags::preformatted, "<programlisting>", "</programlisting>" \
},

Modified: trunk/Thirdparty/boost/tools/quickbook/src/phrase_element_grammar.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/phrase_element_grammar.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/phrase_element_grammar.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -19,6 +19,7 @@
 #include <boost/spirit/include/classic_if.hpp>
 #include <boost/spirit/include/phoenix1_primitives.hpp>
 #include <boost/spirit/include/phoenix1_casts.hpp>
+#include <boost/foreach.hpp>
 
 namespace quickbook
 {
@@ -38,7 +39,7 @@
             new phrase_element_grammar_local);
 
         error_action error(state);
-        raw_char_action raw_char(state.phrase);
+        raw_char_action raw_char(state);
         scoped_parser<cond_phrase_push> scoped_cond_phrase(state);
         scoped_parser<to_value_scoped_action> to_value(state);
 
@@ -146,13 +147,15 @@
                 blank
             >>  (   qbk_ver(0, 106u)
                 >>  (*(cl::anychar_p - phrase_end)) [state.values.entry(ph::arg1, \
                ph::arg2)]
-                |   qbk_ver(106u)
+                |   qbk_ver(106u, 107u)
                 >>  to_value()
                     [   *(  raw_escape
                         |   (cl::anychar_p - phrase_end)
                                                     [raw_char]
                         )
                     ]
+                |   qbk_ver(107u)
+                >>  to_value() [attribute_value_1_7]
                 )
             ;
 
@@ -171,16 +174,14 @@
             ;
 
         local.source_mode =
-            (   cl::str_p("c++")
-            |   "python"
-            |   "teletype"
-            )                                       [state.values.entry(ph::arg1, \
ph::arg2)]; +                cl::eps_p                           \
[state.values.entry(ph::arg1, ph::arg2)] +            >>  source_modes                \
[state.values.entry(ph::arg1)];  
-        elements.add
-            ("c++", element_info(element_info::phrase, &local.empty, \
                source_mode_tags::cpp))
-            ("python", element_info(element_info::phrase, &local.empty, \
                source_mode_tags::python))
-            ("teletype", element_info(element_info::phrase, &local.empty, \
                source_mode_tags::teletype))
-            ;
+        BOOST_FOREACH(int tag, source_mode_tags::tags()) {
+            source_modes.add(source_mode_tags::name(tag), tag);
+            elements.add(source_mode_tags::name(tag),
+                element_info(element_info::phrase, &local.empty, tag));
+        }
 
         elements.add
             ("role", element_info(element_info::phrase, &local.role, \
phrase_tags::role, 106u)) @@ -188,7 +189,11 @@
 
         local.role
             =   space
-            >>  (+(cl::alnum_p | '_'))              [state.values.entry(ph::arg1, \
ph::arg2)] +            >>  (   qbk_ver(0, 107u)
+                >>  (+(cl::alnum_p | '_'))          [state.values.entry(ph::arg1, \
ph::arg2)] +                |   qbk_ver(107u)
+                >>  to_value() [attribute_value_1_7]
+                )
             >>  hard_space
             >>  local.inner_phrase
             ;

Modified: trunk/Thirdparty/boost/tools/quickbook/src/quickbook.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/quickbook.cpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/quickbook.cpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -14,8 +14,8 @@
 #include "post_process.hpp"
 #include "utils.hpp"
 #include "files.hpp"
-#include "input_path.hpp"
-#include "id_manager.hpp"
+#include "native_text.hpp"
+#include "document_state.hpp"
 #include <boost/program_options.hpp>
 #include <boost/filesystem/path.hpp>
 #include <boost/filesystem/operations.hpp>
@@ -40,7 +40,7 @@
 #pragma warning(disable:4355)
 #endif
 
-#define QUICKBOOK_VERSION "Quickbook Version 1.5.9"
+#define QUICKBOOK_VERSION "Quickbook Version 1.6.1"
 
 namespace quickbook
 {
@@ -99,7 +99,7 @@
             parse_iterator pos = info.stop;
             std::string doc_type = pre(state, pos, include_doc_id, nested_file);
 
-            info = cl::parse(info.hit ? info.stop : first, last, \
state.grammar().block); +            info = cl::parse(info.hit ? info.stop : first, \
last, state.grammar().block_start);  
             post(state, doc_type);
 
@@ -138,12 +138,12 @@
       , parse_document_options const& options_)
     {
         string_stream buffer;
-        id_manager ids;
+        document_state output;
 
         int result = 0;
 
         try {
-            quickbook::state state(filein_, options_.xinclude_base, buffer, ids);
+            quickbook::state state(filein_, options_.xinclude_base, buffer, output);
             set_macros(state);
 
             if (state.error_count == 0) {
@@ -162,15 +162,14 @@
 
             if (!options_.deps_out.empty())
             {
-                fs::ofstream out(options_.deps_out);
-                state.dependencies.write_dependencies(out,
+                state.dependencies.write_dependencies(options_.deps_out,
                         options_.deps_out_flags);
             }
 
             if (!options_.locations_out.empty())
             {
                 fs::ofstream out(options_.locations_out);
-                state.dependencies.write_dependencies(out,
+                state.dependencies.write_dependencies(options_.locations_out,
                         dependency_tracker::checked);
             }
         }
@@ -178,10 +177,14 @@
             detail::outerr(filein_) << e.what() << std::endl;
             result = 1;
         }
+        catch (std::runtime_error& e) {
+            detail::outerr() << e.what() << std::endl;
+            result = 1;
+        }
 
         if (!fileout_.empty() && result == 0)
         {
-            std::string stage2 = ids.replace_placeholders(buffer.str());
+            std::string stage2 = output.replace_placeholders(buffer.str());
 
             fs::ofstream fileout(fileout_);
 
@@ -252,7 +255,7 @@
         using boost::program_options::notify;
         using boost::program_options::positional_options_description;
         
-        using quickbook::detail::input_string;
+        using quickbook::detail::command_line_string;
 
         // First thing, the filesystem should record the current working directory.
         fs::initial_path<fs::path>();
@@ -280,27 +283,27 @@
             ("no-self-linked-headers", "stop headers linking to themselves")
             ("indent", PO_VALUE<int>(), "indent spaces")
             ("linewidth", PO_VALUE<int>(), "line width")
-            ("input-file", PO_VALUE<input_string>(), "input file")
-            ("output-file", PO_VALUE<input_string>(), "output file")
-            ("output-deps", PO_VALUE<input_string>(), "output dependency file")
+            ("input-file", PO_VALUE<command_line_string>(), "input file")
+            ("output-file", PO_VALUE<command_line_string>(), "output file")
+            ("output-deps", PO_VALUE<command_line_string>(), "output dependency \
file")  ("debug", "debug mode (for developers)")
             ("ms-errors", "use Microsoft Visual Studio style error & warn message \
                format")
-            ("include-path,I", PO_VALUE< std::vector<input_string> >(), "include \
                path")
-            ("define,D", PO_VALUE< std::vector<input_string> >(), "define macro")
-            ("image-location", PO_VALUE<input_string>(), "image location")
+            ("include-path,I", PO_VALUE< std::vector<command_line_string> >(), \
"include path") +            ("define,D", PO_VALUE< std::vector<command_line_string> \
>(), "define macro") +            ("image-location", PO_VALUE<command_line_string>(), \
> "image location")
         ;
 
         hidden.add_options()
             ("expect-errors",
                 "Succeed if the input file contains a correctly handled "
                 "error, fail otherwise.")
-            ("xinclude-base", PO_VALUE<input_string>(),
+            ("xinclude-base", PO_VALUE<command_line_string>(),
                 "Generate xincludes as if generating for this target "
                 "directory.")
-            ("output-deps-format", PO_VALUE<input_string>(),
+            ("output-deps-format", PO_VALUE<command_line_string>(),
              "Comma separated list of formatting options for output-deps, "
              "options are: escaped, checked")
-            ("output-checked-locations", PO_VALUE<input_string>(),
+            ("output-checked-locations", PO_VALUE<command_line_string>(),
              "Writes a file listing all the file locations that were "
              "checked, starting with '+' if they were found, or '-' "
              "if they weren't.\n"
@@ -418,24 +421,24 @@
         if (vm.count("include-path"))
         {
             boost::transform(
-                vm["include-path"].as<std::vector<input_string> >(),
+                vm["include-path"].as<std::vector<command_line_string> >(),
                 std::back_inserter(quickbook::include_path),
-                quickbook::detail::input_to_path);
+                quickbook::detail::command_line_to_path);
         }
 
         quickbook::preset_defines.clear();
         if (vm.count("define"))
         {
             boost::transform(
-                vm["define"].as<std::vector<input_string> >(),
+                vm["define"].as<std::vector<command_line_string> >(),
                 std::back_inserter(quickbook::preset_defines),
-                quickbook::detail::input_to_utf8);
+                quickbook::detail::command_line_to_utf8);
         }
 
         if (vm.count("input-file"))
         {
-            fs::path filein = quickbook::detail::input_to_path(
-                vm["input-file"].as<input_string>());
+            fs::path filein = quickbook::detail::command_line_to_path(
+                vm["input-file"].as<command_line_string>());
             fs::path fileout;
 
             bool default_output = true;
@@ -443,16 +446,16 @@
             if (vm.count("output-deps"))
             {
                 parse_document_options.deps_out =
-                    quickbook::detail::input_to_path(
-                        vm["output-deps"].as<input_string>());
+                    quickbook::detail::command_line_to_path(
+                        vm["output-deps"].as<command_line_string>());
                 default_output = false;
             }
 
             if (vm.count("output-deps-format"))
             {
                 std::string format_flags =
-                    quickbook::detail::input_to_utf8(
-                        vm["output-deps-format"].as<input_string>());
+                    quickbook::detail::command_line_to_utf8(
+                        vm["output-deps-format"].as<command_line_string>());
 
                 std::vector<std::string> flag_names;
                 boost::algorithm::split(flag_names, format_flags,
@@ -485,15 +488,15 @@
             if (vm.count("output-checked-locations"))
             {
                 parse_document_options.locations_out =
-                    quickbook::detail::input_to_path(
-                        vm["output-checked-locations"].as<input_string>());
+                    quickbook::detail::command_line_to_path(
+                        vm["output-checked-locations"].as<command_line_string>());
                 default_output = false;
             }
 
             if (vm.count("output-file"))
             {
-                fileout = quickbook::detail::input_to_path(
-                    vm["output-file"].as<input_string>());
+                fileout = quickbook::detail::command_line_to_path(
+                    vm["output-file"].as<command_line_string>());
             }
             else if (default_output)
             {
@@ -504,8 +507,8 @@
             if (vm.count("xinclude-base"))
             {
                 parse_document_options.xinclude_base =
-                    quickbook::detail::input_to_path(
-                        vm["xinclude-base"].as<input_string>());
+                    quickbook::detail::command_line_to_path(
+                        vm["xinclude-base"].as<command_line_string>());
             }
             else
             {
@@ -525,8 +528,8 @@
 
             if (vm.count("image-location"))
             {
-                quickbook::image_location = quickbook::detail::input_to_path(
-                    vm["image-location"].as<input_string>());
+                quickbook::image_location = quickbook::detail::command_line_to_path(
+                    vm["image-location"].as<command_line_string>());
             }
             else
             {

Modified: trunk/Thirdparty/boost/tools/quickbook/src/state.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/state.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/state.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -10,9 +10,13 @@
 =============================================================================*/
 #include "state.hpp"
 #include "state_save.hpp"
+#include "document_state.hpp"
 #include "quickbook.hpp"
 #include "grammar.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
+#include "utils.hpp"
+#include "phrase_tags.hpp"
+#include <boost/foreach.hpp>
 
 #if (defined(BOOST_MSVC) && (BOOST_MSVC <= 1310))
 #pragma warning(disable:4355)
@@ -26,9 +30,10 @@
     unsigned qbk_version_n = 0; // qbk_major_version * 100 + qbk_minor_version
 
     state::state(fs::path const& filein_, fs::path const& xinclude_base_,
-            string_stream& out_, id_manager& ids)
+            string_stream& out_, document_state& document)
         : grammar_()
 
+        , order_pos(0)
         , xinclude_base(xinclude_base_)
 
         , templates()
@@ -36,30 +41,37 @@
         , anchors()
         , warned_about_breaks(false)
         , conditional(true)
-        , ids(ids)
+        , document(document)
         , callouts()
         , callout_depth(0)
+        , dependencies()
+        , explicit_list(false)
 
         , imported(false)
         , macro()
-        , source_mode("c++")
+        , source_mode()
         , source_mode_next()
+        , source_mode_next_pos()
         , current_file(0)
-        , filename_relative(filein_.filename())
+        , current_path(filein_, 0, filein_.filename())
 
         , template_depth(0)
         , min_section_level(1)
 
+        , in_list(false)
+        , in_list_save()
         , out(out_)
         , phrase()
+
         , values(&current_file)
     {
         // add the predefined macros
         macro.add
             ("__DATE__", std::string(quickbook_get_date))
             ("__TIME__", std::string(quickbook_get_time))
-            ("__FILENAME__", detail::path_to_generic(filename_relative))
+            ("__FILENAME__", std::string())
         ;
+        update_filename_macro();
 
         boost::scoped_ptr<quickbook_grammar> g(
             new quickbook_grammar(*this));
@@ -70,52 +82,100 @@
         return *grammar_;
     }
 
-    file_state::file_state(quickbook::state& state, scope_flags scope)
+    void state::update_filename_macro() {
+        *boost::spirit::classic::find(macro, "__FILENAME__")
+            = detail::encode_string(
+                    detail::path_to_generic(current_path.abstract_file_path));
+    }
+    
+    unsigned state::get_new_order_pos() {
+        return ++order_pos;
+    }
+
+    void state::push_output() {
+        out.push();
+        phrase.push();
+        in_list_save.push(in_list);
+    }
+
+    void state::pop_output() {
+        phrase.pop();
+        out.pop();
+        in_list = in_list_save.top();
+        in_list_save.pop();
+    }
+
+    source_mode_info state::tagged_source_mode() const {
+        source_mode_info result;
+
+        BOOST_FOREACH(source_mode_info const& s, tagged_source_mode_stack) {
+            result.update(s);
+        }
+
+        return result;
+    }
+
+    source_mode_info state::current_source_mode() const {
+        source_mode_info result = source_mode;
+
+        result.update(document.section_source_mode());
+
+        BOOST_FOREACH(source_mode_info const& s, tagged_source_mode_stack) {
+            result.update(s);
+        }
+
+        return result;
+    }
+
+    void state::change_source_mode(source_mode_type s) {
+        source_mode = source_mode_info(s, get_new_order_pos());
+    }
+
+    void state::push_tagged_source_mode(source_mode_type s) {
+        tagged_source_mode_stack.push_back(
+            source_mode_info(s, s ? get_new_order_pos() : 0));
+    }
+
+    void state::pop_tagged_source_mode() {
+        assert(!tagged_source_mode_stack.empty());
+        tagged_source_mode_stack.pop_back();
+    }
+
+    state_save::state_save(quickbook::state& state, scope_flags scope)
         : state(state)
         , scope(scope)
         , qbk_version(qbk_version_n)
         , imported(state.imported)
         , current_file(state.current_file)
-        , filename_relative(state.filename_relative)
+        , current_path(state.current_path)
         , xinclude_base(state.xinclude_base)
         , source_mode(state.source_mode)
         , macro()
+        , template_depth(state.template_depth)
+        , min_section_level(state.min_section_level)
     {
         if (scope & scope_macros) macro = state.macro;
         if (scope & scope_templates) state.templates.push();
         if (scope & scope_output) {
-            state.out.push();
-            state.phrase.push();
+            state.push_output();
         }
         state.values.builder.save();
     }
 
-    file_state::~file_state()
+    state_save::~state_save()
     {
         state.values.builder.restore();
         boost::swap(qbk_version_n, qbk_version);
         boost::swap(state.imported, imported);
         boost::swap(state.current_file, current_file);
-        boost::swap(state.filename_relative, filename_relative);
+        boost::swap(state.current_path, current_path);
         boost::swap(state.xinclude_base, xinclude_base);
         boost::swap(state.source_mode, source_mode);
         if (scope & scope_output) {
-            state.out.pop();
-            state.phrase.pop();
+            state.pop_output();
         }
         if (scope & scope_templates) state.templates.pop();
         if (scope & scope_macros) state.macro = macro;
-    }
-
-    template_state::template_state(quickbook::state& state)
-        : file_state(state, file_state::scope_all)
-        , template_depth(state.template_depth)
-        , min_section_level(state.min_section_level)
-    {
-    }
-
-    template_state::~template_state()
-    {
         boost::swap(state.template_depth, template_depth);
         boost::swap(state.min_section_level, min_section_level);
     }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/state.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/state.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/state.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -18,6 +18,8 @@
 #include "template_stack.hpp"
 #include "symbols.hpp"
 #include "dependency_tracker.hpp"
+#include "syntax_highlight.hpp"
+#include "include_paths.hpp"
 
 namespace quickbook
 {
@@ -27,7 +29,7 @@
     struct state
     {
         state(fs::path const& filein_, fs::path const& xinclude_base, string_stream& \
                out_,
-                id_manager&);
+                document_state&);
 
     private:
         boost::scoped_ptr<quickbook_grammar> grammar_;
@@ -42,34 +44,42 @@
         static int const max_template_depth = 100;
 
     // global state
+        unsigned                order_pos;
         fs::path                xinclude_base;
         template_stack          templates;
         int                     error_count;
         string_list             anchors;
         bool                    warned_about_breaks;
         bool                    conditional;
-        id_manager&             ids;
+        document_state&         document;
         value_builder           callouts;           // callouts are global as
         int                     callout_depth;      // they don't nest.
         dependency_tracker      dependencies;
+        bool                    explicit_list;      // set when using a list
 
     // state saved for files and templates.
         bool                    imported;
         string_symbols          macro;
-        std::string             source_mode;
-        value                   source_mode_next;
+        source_mode_info        source_mode;
+        source_mode_type        source_mode_next;
+        value                   source_mode_next_pos;
+        std::vector<source_mode_info>
+                                tagged_source_mode_stack;
         file_ptr                current_file;
-        fs::path                filename_relative;  // for the __FILENAME__ macro.
-                                                    // (relative to the original \
                file
-                                                    //  or include path).
+        quickbook_path          current_path;
 
     // state saved for templates.
         int                     template_depth;
         int                     min_section_level;
 
     // output state - scoped by templates and grammar
+        bool                    in_list;        // generating a list
+        std::stack<bool>        in_list_save;   // save the in_list state
+                                                // TODO: Something better...
         collector               out;            // main output stream
         collector               phrase;         // phrase output stream
+
+    // values state - scoped by everything.
         value_parser            values;         // parsed values
 
         quickbook_grammar& grammar() const;
@@ -78,6 +88,13 @@
     // actions
     ///////////////////////////////////////////////////////////////////////////
 
+        void update_filename_macro();
+
+        unsigned get_new_order_pos();
+
+        void push_output();
+        void pop_output();
+
         void start_list(char mark);
         void end_list(char mark);
         void start_list_item();
@@ -86,6 +103,12 @@
         void start_callouts();
         std::string add_callout(value);
         std::string end_callouts();
+
+        source_mode_info current_source_mode() const;
+        source_mode_info tagged_source_mode() const;
+        void change_source_mode(source_mode_type);
+        void push_tagged_source_mode(source_mode_type);
+        void pop_tagged_source_mode();
     };
 
     extern unsigned qbk_version_n; // qbk_major_version * 100 + qbk_minor_version

Modified: trunk/Thirdparty/boost/tools/quickbook/src/state_save.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/state_save.hpp	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/state_save.hpp	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -18,7 +18,7 @@
     //
     // Defined in state.cpp
 
-    struct file_state
+    struct state_save
     {
         enum scope_flags {
             scope_none = 0,
@@ -29,8 +29,8 @@
             scope_all = scope_callables + scope_output
         };
 
-        explicit file_state(quickbook::state&, scope_flags);
-        ~file_state();
+        explicit state_save(quickbook::state&, scope_flags);
+        ~state_save();
 
         quickbook::state& state;
         scope_flags scope;
@@ -38,22 +38,15 @@
         bool imported;
         std::string doc_type;
         file_ptr current_file;
-        fs::path filename_relative;
+        quickbook_path current_path;
         fs::path xinclude_base;
-        std::string source_mode;
+        source_mode_info source_mode;
         string_symbols macro;
-    private:
-        file_state(file_state const&);
-        file_state& operator=(file_state const&);
-    };
-
-    struct template_state : file_state
-    {
-        explicit template_state(quickbook::state&);
-        ~template_state();
-
         int template_depth;
         int min_section_level;
+    private:
+        state_save(state_save const&);
+        state_save& operator=(state_save const&);
     };
 }
 

Modified: trunk/Thirdparty/boost/tools/quickbook/src/syntax_highlight.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/syntax_highlight.cpp	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/syntax_highlight.cpp	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -13,81 +13,22 @@
 #include <boost/spirit/include/classic_symbols.hpp>
 #include <boost/spirit/include/classic_loops.hpp>
 #include "grammar.hpp"
-#include "grammar_impl.hpp" // Just for context stuff. Should move?
 #include "state.hpp"
 #include "actions.hpp"
+#include "syntax_highlight.hpp"
 #include "utils.hpp"
 #include "files.hpp"
-#include "input_path.hpp"
+#include "native_text.hpp"
+#include "phrase_tags.hpp"
 
 namespace quickbook
 {    
     namespace cl = boost::spirit::classic;
 
-    template <typename T, typename Value>
-    struct member_action_value
-    {
-        typedef void(T::*member_function)(Value);
-
-        T& l;
-        member_function mf;
-
-        member_action_value(T& l, member_function mf) : l(l), mf(mf) {}
-
-        void operator()(Value v) const {
-            (l.*mf)(v);
-        }
-    };
-
-    template <typename T>
-    struct member_action
-    {
-        typedef void(T::*member_function)(parse_iterator, parse_iterator);
-
-        T& l;
-        member_function mf;
-
-        member_action(T& l, member_function mf) : l(l), mf(mf) {}
-
-        void operator()(parse_iterator first, parse_iterator last) const {
-            (l.*mf)(first, last);
-        }
-    };
-
-    template <typename T, typename Arg1>
-    struct member_action1
-    {
-        typedef void(T::*member_function)(parse_iterator, parse_iterator, Arg1);
-
-        T& l;
-        member_function mf;
-
-        member_action1(T& l, member_function mf) : l(l), mf(mf) {}
-
-        struct impl
-        {
-            member_action1 a;
-            Arg1 value;
-
-            impl(member_action1& a, Arg1 value) :
-                a(a), value(value)
-            {}
-
-            void operator()(parse_iterator first, parse_iterator last) const {
-                (a.l.*a.mf)(first, last, value);
-            }
-        };
-
-        impl operator()(Arg1 a1) {
-            return impl(*this, a1);
-        }
-    };
-
     // Syntax Highlight Actions
 
     struct syntax_highlight_actions
     {
-        quickbook::collector out;
         quickbook::state& state;
         do_macro_action do_macro_impl;
 
@@ -96,8 +37,8 @@
         boost::string_ref marked_text;
 
         syntax_highlight_actions(quickbook::state& state, bool is_block) :
-            out(), state(state),
-            do_macro_impl(out, state),
+            state(state),
+            do_macro_impl(state),
             support_callouts(is_block && (qbk_version_n >= 107u ||
                 state.current_file->is_code_snippets)),
             marked_text()
@@ -119,26 +60,26 @@
     void syntax_highlight_actions::span(parse_iterator first,
             parse_iterator last, char const* name)
     {
-        out << "<phrase role=\"" << name << "\">";
+        state.phrase << "<phrase role=\"" << name << "\">";
         while (first != last)
-            detail::print_char(*first++, out.get());
-        out << "</phrase>";
+            detail::print_char(*first++, state.phrase.get());
+        state.phrase << "</phrase>";
     }
 
     void syntax_highlight_actions::span_start(parse_iterator first,
             parse_iterator last, char const* name)
     {
-        out << "<phrase role=\"" << name << "\">";
+        state.phrase << "<phrase role=\"" << name << "\">";
         while (first != last)
-            detail::print_char(*first++, out.get());
+            detail::print_char(*first++, state.phrase.get());
     }
 
     void syntax_highlight_actions::span_end(parse_iterator first,
             parse_iterator last)
     {
         while (first != last)
-            detail::print_char(*first++, out.get());
-        out << "</phrase>";
+            detail::print_char(*first++, state.phrase.get());
+        state.phrase << "</phrase>";
     }
 
     void syntax_highlight_actions::unexpected_char(parse_iterator first,
@@ -152,30 +93,32 @@
             << "\n";
 
         // print out an unexpected character
-        out << "<phrase role=\"error\">";
+        state.phrase << "<phrase role=\"error\">";
         while (first != last)
-            detail::print_char(*first++, out.get());
-        out << "</phrase>";
+            detail::print_char(*first++, state.phrase.get());
+        state.phrase << "</phrase>";
     }
 
     void syntax_highlight_actions::plain_char(parse_iterator first,
             parse_iterator last)
     {
         while (first != last)
-            detail::print_char(*first++, out.get());
+            detail::print_char(*first++, state.phrase.get());
     }
 
     void syntax_highlight_actions::pre_escape_back(parse_iterator,
             parse_iterator)
     {
-        state.phrase.push(); // save the stream
+        state.push_output(); // save the stream
     }
 
     void syntax_highlight_actions::post_escape_back(parse_iterator,
             parse_iterator)
     {
-        out << state.phrase.str();
-        state.phrase.pop(); // restore the stream
+        std::string tmp;
+        state.phrase.swap(tmp);
+        state.pop_output(); // restore the stream
+        state.phrase << tmp;
     }
 
     void syntax_highlight_actions::do_macro(std::string const& v)
@@ -191,7 +134,7 @@
 
     void syntax_highlight_actions::callout(parse_iterator, parse_iterator)
     {
-        out << state.add_callout(qbk_value(state.current_file,
+        state.phrase << state.add_callout(qbk_value(state.current_file,
             marked_text.begin(), marked_text.end()));
         marked_text.clear();
     }
@@ -318,7 +261,7 @@
                         (
                             (
                                 (+(cl::anychar_p - "``") >> cl::eps_p("``"))
-                                & g.phrase
+                                & g.phrase_start
                             )
                             >>  cl::str_p("``")
                         )
@@ -473,7 +416,7 @@
                         (
                             (
                                 (+(cl::anychar_p - "``") >> cl::eps_p("``"))
-                                & g.phrase
+                                & g.phrase_start
                             )
                             >>  cl::str_p("``")
                         )
@@ -595,7 +538,7 @@
                         (
                             (
                                 (+(cl::anychar_p - "``") >> cl::eps_p("``"))
-                                & g.phrase
+                                & g.phrase_start
                             )
                             >>  cl::str_p("``")
                         )
@@ -619,39 +562,35 @@
         syntax_highlight_actions& actions;
     };
 
-    std::string syntax_highlight(
+    void syntax_highlight(
         parse_iterator first,
         parse_iterator last,
         quickbook::state& state,
-        std::string const& source_mode,
+        source_mode_type source_mode,
         bool is_block)
     {
         syntax_highlight_actions syn_actions(state, is_block);
 
         // print the code with syntax coloring
-        if (source_mode == "c++")
+        switch(source_mode)
         {
-            cpp_highlight cpp_p(syn_actions);
-            boost::spirit::classic::parse(first, last, cpp_p);
+            case source_mode_tags::cpp: {
+                cpp_highlight cpp_p(syn_actions);
+                boost::spirit::classic::parse(first, last, cpp_p);
+                break;
+            }
+            case source_mode_tags::python: {
+                python_highlight python_p(syn_actions);
+                boost::spirit::classic::parse(first, last, python_p);
+                break;
+            }
+            case source_mode_tags::teletype: {
+                teletype_highlight teletype_p(syn_actions);
+                boost::spirit::classic::parse(first, last, teletype_p);
+                break;
+            }
+            default:
+                BOOST_ASSERT(0);
         }
-        else if (source_mode == "python")
-        {
-            python_highlight python_p(syn_actions);
-            boost::spirit::classic::parse(first, last, python_p);
-        }
-        else if (source_mode == "teletype")
-        {
-            teletype_highlight teletype_p(syn_actions);
-            boost::spirit::classic::parse(first, last, teletype_p);
-        }
-        else
-        {
-            BOOST_ASSERT(0);
-        }
-
-        std::string str;
-        syn_actions.out.swap(str);
-        
-        return str;
     }
 }

Modified: trunk/Thirdparty/boost/tools/quickbook/src/template_tags.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/template_tags.hpp	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/template_tags.hpp	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -15,6 +15,7 @@
 {
     QUICKBOOK_VALUE_TAGS(template_tags, 0x100,
         (template_)
+        (attribute_template)
         (escape)
         (identifier)
         (block)

Modified: trunk/Thirdparty/boost/tools/quickbook/src/utils.cpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/utils.cpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/utils.cpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -15,6 +15,27 @@
 
 namespace quickbook { namespace detail
 {
+    std::string encode_string(boost::string_ref str)
+    {
+        std::string result;
+        result.reserve(str.size());
+
+        for (boost::string_ref::const_iterator it = str.begin();
+            it != str.end(); ++it)
+        {
+            switch (*it)
+            {
+                case '<': result += "&lt;";    break;
+                case '>': result += "&gt;";    break;
+                case '&': result += "&amp;";   break;
+                case '"': result += "&quot;";  break;
+                default:  result += *it;       break;
+            }
+        }
+
+        return result;
+    }
+
     void print_char(char ch, std::ostream& out)
     {
         switch (ch)
@@ -29,7 +50,7 @@
         }
     }
 
-    void print_string(boost::string_ref const& str, std::ostream& out)
+    void print_string(boost::string_ref str, std::ostream& out)
     {
         for (boost::string_ref::const_iterator cur = str.begin();
             cur != str.end(); ++cur)
@@ -45,21 +66,45 @@
         return static_cast<char>(std::tolower(static_cast<unsigned char>(ch)));
     }
 
-    std::string escape_uri(std::string uri)
+    static std::string escape_uri_impl(std::string& uri_param, char const* mark)
     {
+        // Extra capital characters for validating percent escapes.
+        static char const hex[] = "0123456789abcdefABCDEF";
+
+        std::string uri;
+        uri.swap(uri_param);
+
         for (std::string::size_type n = 0; n < uri.size(); ++n)
         {
-            static char const mark[] = "-_.!~*'()?\\/";
-            if((!std::isalnum(static_cast<unsigned char>(uri[n])) || 127 < \
                static_cast<unsigned char>(uri[n]))
-              && 0 == std::strchr(mark, uri[n]))
+            if (static_cast<unsigned char>(uri[n]) > 127 ||
+                    (!std::isalnum(static_cast<unsigned char>(uri[n])) &&
+                     !std::strchr(mark, uri[n])) ||
+                    (uri[n] == '%' && !(n + 2 < uri.size() &&
+                                        std::strchr(hex, uri[n+1]) &&
+                                        std::strchr(hex, uri[n+2]))))
             {
-                static char const hex[] = "0123456789abcdef";
                 char escape[] = { hex[uri[n] / 16], hex[uri[n] % 16] };
                 uri.insert(n + 1, escape, 2);
                 uri[n] = '%';
                 n += 2;
             }
+            else if (uri[n] == '%')
+            {
+                n += 2;
+            }
         }
+
         return uri;
     }
+
+    std::string escape_uri(std::string uri_param)
+    {
+        // TODO: I don't understand this choice of characters.....
+        return escape_uri_impl(uri_param, "-_.!~*'()?\\/");
+    }
+
+    std::string partially_escape_uri(std::string uri_param)
+    {
+        return escape_uri_impl(uri_param, "-_.!~*'()?\\/:&=#%+");
+    }
 }}

Modified: trunk/Thirdparty/boost/tools/quickbook/src/utils.hpp
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/src/utils.hpp	2015-12-10 12:19:06 UTC (rev \
                7424)
+++ trunk/Thirdparty/boost/tools/quickbook/src/utils.hpp	2015-12-10 12:37:00 UTC (rev \
7425) @@ -17,8 +17,9 @@
 #include <boost/utility/string_ref.hpp>
 
 namespace quickbook { namespace detail {
+    std::string encode_string(boost::string_ref);
     void print_char(char ch, std::ostream& out);
-    void print_string(boost::string_ref const& str, std::ostream& out);
+    void print_string(boost::string_ref str, std::ostream& out);
     char filter_identifier_char(char ch);
 
     template <typename Range>
@@ -33,11 +34,18 @@
         return out_name;
     }
 
+    // URI escape string
     std::string escape_uri(std::string uri);
-    inline std::string escape_uri(boost::string_ref const& uri) {
+    inline std::string escape_uri(boost::string_ref uri) {
         return escape_uri(std::string(uri.begin(), uri.end()));
     }
 
+    // URI escape string, leaving characters generally used in URIs.
+    std::string partially_escape_uri(std::string uri);
+    inline std::string partially_escape_uri(boost::string_ref uri) {
+        return escape_uri(std::string(uri.begin(), uri.end()));
+    }
+
     inline std::string to_s(boost::string_ref x) {
         return std::string(x.begin(), x.end());
     }

Modified: trunk/Thirdparty/boost/tools/quickbook/test/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/Jamfile.v2	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/Jamfile.v2	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project test
+project quickbook/test
     : requirements
         <toolset>msvc:<debug-symbols>off
     ;
@@ -24,6 +24,7 @@
 test-suite quickbook.test :
     [ quickbook-test anchor-1_1 ]
     [ quickbook-test anchor-1_6 ]
+    [ quickbook-test anchor-1_7 ]
     [ quickbook-test blocks-1_5 ]
     [ quickbook-test callouts-1_5 ]
     [ quickbook-test callouts-1_7 ]
@@ -52,6 +53,7 @@
     [ quickbook-test heading-1_3 ]
     [ quickbook-test heading-1_5 ]
     [ quickbook-test heading-1_6 ]
+    [ quickbook-test heading-1_7 ]
     [ quickbook-error-test heading_unclosed-1_4-fail ]
     [ quickbook-test hr-1_5 ]
     [ quickbook-test hr-1_6 ]
@@ -63,33 +65,48 @@
     [ quickbook-error-test include-1_1-fail ]
     [ quickbook-test include-1_5 ]
     [ quickbook-test include-1_6 ]
+    [ quickbook-test include-1_7 ]
     [ quickbook-test include2-1_6 ]
     [ quickbook-error-test include_win_path-1_6-fail ]
+    [ quickbook-error-test include_invalid_path1-1_7-fail ]
+    [ quickbook-error-test include_invalid_path2-1_7-fail ]
+    [ quickbook-error-test include_invalid_path3-1_7-fail ]
+    [ quickbook-error-test include_unicode_glob-1_7-fail ]
     [ quickbook-test link-1_1 ]
     [ quickbook-test link-1_6 ]
     [ quickbook-test link-1_7 ]
+    [ quickbook-error-test link-1_7-fail ]
+    [ quickbook-error-test link-1_7-fail2 ]
     [ quickbook-test list_test-1_5 ]
     [ quickbook-test list_test-1_6 ]
+    [ quickbook-error-test list_test-1_6-fail ]
+    [ quickbook-test list_test-1_7 ]
+    [ quickbook-error-test list_test-1_7-fail1 ]
     [ quickbook-test macro-1_5 ]
     [ quickbook-test macro-1_6 ]
     [ quickbook-error-test mismatched_brackets-1_1-fail ]
     [ quickbook-test mismatched_brackets1-1_1 ]
     [ quickbook-test mismatched_brackets2-1_1 ]
+    [ quickbook-test mismatched_brackets3-1_1 ]
     [ quickbook-test newline-1_1 ]
     [ quickbook-test para_test-1_5 ]
     [ quickbook-error-test post_process-fail ]
     [ quickbook-test preformatted-1_1 ]
     [ quickbook-test preformatted-1_6 ]
     [ quickbook-test role-1_6 ]
+    [ quickbook-test role-1_7 ]
+    [ quickbook-error-test role-1_7-fail ]
     [ quickbook-test section-1_4 ]
     [ quickbook-test section-1_5-unclosed ]
     [ quickbook-test section-1_5 ]
+    [ quickbook-test section-1_7 ]
     [ quickbook-test simple_markup-1_5 ]
     [ quickbook-test source_mode-1_7 ]
     [ quickbook-test svg-1_1 ]
     [ quickbook-test table-1_3 ]
     [ quickbook-test table-1_5 ]
     [ quickbook-test table-1_6 ]
+    [ quickbook-test table-1_7 ]
     [ quickbook-error-test template_arguments1-1_1-fail ]
     [ quickbook-error-test template_arguments2-1_1-fail ]
     [ quickbook-error-test template_arguments3-1_1-fail ]
@@ -100,6 +117,11 @@
     [ quickbook-test templates-1_3 ]
     [ quickbook-test templates-1_4 ]
     [ quickbook-test templates-1_5 ]
+    [ quickbook-test templates-1_6 ]
+    [ quickbook-error-test templates-1_6-fail1 ]
+    [ quickbook-test templates-1_7 ]
+    [ quickbook-error-test templates-1_7-fail1 ]
+    [ quickbook-error-test templates-1_7-fail2 ]
     [ quickbook-test unicode_escape-1_5 ]
     [ quickbook-test unmatched_element-1_5 ]
     [ quickbook-test unmatched_element-1_6 ]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/command-line/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/command-line/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/command-line/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -7,7 +7,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project quickook/tests/command-line ;
+project quickbook/tests/command-line ;
 
 import quickbook-testing : quickbook-test quickbook-fail-test quickbook-error-test ;
 
@@ -25,4 +25,4 @@
         output_nested_in_file :
         basic-1_6.quickbook :
         <testing.arg>--output-file=basic-1_6.quickbook/basic.xml ]
-    ;
\ No newline at end of file
+    ;

Modified: trunk/Thirdparty/boost/tools/quickbook/test/doc-info/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/doc-info/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/doc-info/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project quickook/tests/doc-info ;
+project quickbook/tests/doc-info ;
 
 import quickbook-testing : quickbook-test quickbook-error-test ;
 

Modified: trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.gold	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.gold	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -5,28 +5,36 @@
   <title>1.6 Elements</title>
   <orderedlist>
     <listitem>
-      <para>
+      <simpara>
         item1
-      </para>
+      </simpara>
     </listitem>
     <listitem>
-      <para>
+      <simpara>
         item2
-      </para>
+      </simpara>
     </listitem>
   </orderedlist>
   <itemizedlist>
     <listitem>
-      <para>
+      <simpara>
         item1
-      </para>
+      </simpara>
     </listitem>
     <listitem>
-      <para>
+      <simpara>
         item2
-      </para>
+      </simpara>
     </listitem>
   </itemizedlist>
+  <orderedlist>
+    <listitem>
+      <simpara>
+        Check that <emphasis role="bold">bold text</emphasis> isn't confused with
+        a list.
+      </simpara>
+    </listitem>
+  </orderedlist>
   <simplesect><title>A <emphasis \
role="bold">simplesect</emphasis>!</title></simplesect>  
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/elements-1_6.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -8,6 +8,14 @@
 
 [itemized_list [item1][item2]]
 
+[ordered_list
+    [
+        Check that
+        *bold text*
+        isn't confused with a list.
+    ]
+]
+
 [block'''<simplesect><title>'''A *simplesect*!'''</title>''']
 
-[block'''</simplesect>''']
\ No newline at end of file
+[block'''</simplesect>''']

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project test/includes
+project quickbook/test/includes
     : requirements
         <toolset>msvc:<debug-symbols>off
     ;
@@ -16,7 +16,9 @@
 test-suite quickbook.test :
     [ quickbook-test import-basic-1.6 ]
     [ quickbook-test filename ]
+    [ quickbook-test filename-1_7 ]
     [ quickbook-test filename-path : : : <quickbook-test-include>sub ]
+    [ quickbook-test filename_path-1_7 : : : <quickbook-test-include>sub ]
     [ quickbook-test doc-title1-1.5 ]
     [ quickbook-test doc-title1a-1.5 ]
     [ quickbook-test section ]
@@ -41,4 +43,6 @@
     [ quickbook-test source_mode-1_6 ]
     [ quickbook-test nested_compatibility-1_5 ]
     [ quickbook-test nested_compatibility-1_6 ]
+    [ quickbook-test template_include-1_7 ]
+    [ quickbook-test glob-1_7 ]
     ;

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_5.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_5.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_5.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -13,6 +13,11 @@
       <bridgehead renderas="sect1" \
                id="include_in_section_include_1.container.inner.h0">
         <phrase id="include_in_section_include_1.container.inner.test2"/><link \
linkend="include_in_section_include_1.container.inner.test2">Test2</link>  \
</bridgehead> +      <bridgehead renderas="sect4" \
id="include_in_section_include_1.container.inner.h1"> +        <phrase \
id="include_in_section_include_1.container.inner.simple_include"/><link +        \
linkend="include_in_section_include_1.container.inner.simple_include">Simple +        \
include</link> +      </bridgehead>
     </section>
     <bridgehead renderas="sect1" id="section_include.container.h0">
       <phrase id="section_include.container.test1"/><link \
linkend="section_include.container.test1">Test1</link> @@ -22,6 +27,11 @@
       <bridgehead renderas="sect1" id="section_include.container.inner.h0">
         <phrase id="section_include.container.inner.test2"/><link \
linkend="section_include.container.inner.test2">Test2</link>  </bridgehead>
+      <bridgehead renderas="sect4" \
id="include_in_section_include_2.container.inner.h0"> +        <phrase \
id="include_in_section_include_2.container.inner.simple_include"/><link +        \
linkend="include_in_section_include_2.container.inner.simple_include">Simple +        \
include</link> +      </bridgehead>
     </section>
   </section>
   <bridgehead renderas="sect1" id="include_in_section_include_1.h0">
@@ -32,6 +42,10 @@
     <bridgehead renderas="sect1" id="include_in_section_include_1.inner.h0">
       <phrase id="include_in_section_include_1.inner.test2"/><link \
linkend="include_in_section_include_1.inner.test2">Test2</link>  </bridgehead>
+    <bridgehead renderas="sect3" id="include_in_section_include_1.inner.h1">
+      <phrase id="include_in_section_include_1.inner.simple_include"/><link \
linkend="include_in_section_include_1.inner.simple_include">Simple +      \
include</link> +    </bridgehead>
   </section>
   <bridgehead renderas="sect1" id="section_include.h0">
     <phrase id="section_include.test1"/><link \
linkend="section_include.test1">Test1</link> @@ -41,6 +55,10 @@
     <bridgehead renderas="sect1" id="section_include.inner.h0">
       <phrase id="section_include.inner.test2"/><link \
linkend="section_include.inner.test2">Test2</link>  </bridgehead>
+    <bridgehead renderas="sect3" id="include_in_section_include_2.inner.h0">
+      <phrase id="include_in_section_include_2.inner.simple_include"/><link \
linkend="include_in_section_include_2.inner.simple_include">Simple +      \
include</link> +    </bridgehead>
   </section>
   <section id="include_in_section_1_5.container2">
     <title><link linkend="include_in_section_1_5.container2">Container2</link></title>
 @@ -52,6 +70,11 @@
       <bridgehead renderas="sect1" \
                id="include_in_section_include_1.container2.inner.h0">
         <phrase id="include_in_section_include_1.container2.inner.test2"/><link \
linkend="include_in_section_include_1.container2.inner.test2">Test2</link>  \
</bridgehead> +      <bridgehead renderas="sect4" \
id="include_in_section_include_1.container2.inner.h1"> +        <phrase \
id="include_in_section_include_1.container2.inner.simple_include"/><link +        \
linkend="include_in_section_include_1.container2.inner.simple_include">Simple +       \
include</link> +      </bridgehead>
     </section>
     <bridgehead renderas="sect1" id="section_include.container2.h0">
       <phrase id="section_include.container2.test1"/><link \
linkend="section_include.container2.test1">Test1</link> @@ -61,6 +84,11 @@
       <bridgehead renderas="sect1" id="section_include.container2.inner.h0">
         <phrase id="section_include.container2.inner.test2"/><link \
linkend="section_include.container2.inner.test2">Test2</link>  </bridgehead>
+      <bridgehead renderas="sect4" \
id="include_in_section_include_2.container2.inner.h0"> +        <phrase \
id="include_in_section_include_2.container2.inner.simple_include"/><link +        \
linkend="include_in_section_include_2.container2.inner.simple_include">Simple +       \
include</link> +      </bridgehead>
     </section>
   </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_6.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_6.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-1_6.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -16,6 +16,10 @@
         <bridgehead renderas="sect1" id="include_in_section_include_1.inner.h0">
           <phrase id="include_in_section_include_1.inner.test2"/><link \
linkend="include_in_section_include_1.inner.test2">Test2</link>  </bridgehead>
+        <bridgehead renderas="sect3" id="include_in_section_include_1.inner.h1">
+          <phrase id="include_in_section_include_1.inner.simple_include"/><link \
linkend="include_in_section_include_1.inner.simple_include">Simple +          \
include</link> +        </bridgehead>
       </section>
     </article>
     <article id="section_include" last-revision="DEBUG MODE Date: 2000/12/20 \
12:00:00 $" @@ -29,6 +33,10 @@
         <bridgehead renderas="sect1" id="section_include.inner.h0">
           <phrase id="section_include.inner.test2"/><link \
linkend="section_include.inner.test2">Test2</link>  </bridgehead>
+        <bridgehead renderas="sect3" id="section_include.inner.h1">
+          <phrase id="section_include.inner.simple_include"/><link \
linkend="section_include.inner.simple_include">Simple +          include</link>
+        </bridgehead>
       </section>
     </article>
   </section>
@@ -43,6 +51,10 @@
       <bridgehead renderas="sect1" id="include_in_section_include_1_0.inner.h0">
         <phrase id="include_in_section_include_1_0.inner.test2"/><link \
linkend="include_in_section_include_1_0.inner.test2">Test2</link>  </bridgehead>
+      <bridgehead renderas="sect3" id="include_in_section_include_1_0.inner.h1">
+        <phrase id="include_in_section_include_1_0.inner.simple_include"/><link \
linkend="include_in_section_include_1_0.inner.simple_include">Simple +        \
include</link> +      </bridgehead>
     </section>
   </article>
   <article id="section_include0" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 \
$" @@ -56,6 +68,10 @@
       <bridgehead renderas="sect1" id="section_include0.inner.h0">
         <phrase id="section_include0.inner.test2"/><link \
linkend="section_include0.inner.test2">Test2</link>  </bridgehead>
+      <bridgehead renderas="sect3" id="section_include0.inner.h1">
+        <phrase id="section_include0.inner.simple_include"/><link \
linkend="section_include0.inner.simple_include">Simple +        include</link>
+      </bridgehead>
     </section>
   </article>
   <section id="include_in_section_1_6.container2">
@@ -71,6 +87,10 @@
         <bridgehead renderas="sect1" id="include_in_section_include_1_1.inner.h0">
           <phrase id="include_in_section_include_1_1.inner.test2"/><link \
linkend="include_in_section_include_1_1.inner.test2">Test2</link>  </bridgehead>
+        <bridgehead renderas="sect3" id="include_in_section_include_1_1.inner.h1">
+          <phrase id="include_in_section_include_1_1.inner.simple_include"/><link
+          linkend="include_in_section_include_1_1.inner.simple_include">Simple \
include</link> +        </bridgehead>
       </section>
     </article>
     <article id="section_include1" last-revision="DEBUG MODE Date: 2000/12/20 \
12:00:00 $" @@ -84,6 +104,10 @@
         <bridgehead renderas="sect1" id="section_include1.inner.h0">
           <phrase id="section_include1.inner.test2"/><link \
linkend="section_include1.inner.test2">Test2</link>  </bridgehead>
+        <bridgehead renderas="sect3" id="section_include1.inner.h1">
+          <phrase id="section_include1.inner.simple_include"/><link \
linkend="section_include1.inner.simple_include">Simple +          include</link>
+        </bridgehead>
       </section>
     </article>
   </section>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc1.quickbook
 ===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc1.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc1.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -8,4 +8,6 @@
 
 [h1 Test2]
 
-[endsect]
\ No newline at end of file
+[include include-id-inc1.quickbook]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc2.quickbook
 ===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc2.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/in_section-inc2.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -9,4 +9,6 @@
 
 [h1 Test2]
 
-[endsect]
\ No newline at end of file
+[include include-id-inc1.quickbook]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -4,4 +4,6 @@
  xmlns:xi="http://www.w3.org/2001/XInclude">
   <title>Souce Mode Include</title>
 <programlisting>void main() {}</programlisting>
+<programlisting>void main() {}
+</programlisting>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.quickbook
 ===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_5.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,3 +1,4 @@
 [article Souce Mode Include [source-mode teletype][quickbook 1.5]]
 
-[include source_mode-inc1.quickbook]
\ No newline at end of file
+[include source_mode-inc1.quickbook]
+[include source_mode-inc2.quickbook]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -8,4 +8,6 @@
     <title>Source include with no source-mode</title>
 <programlisting><phrase role="keyword">void</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> <phrase \
role="special">{}</phrase></programlisting>  </article>
+<programlisting>void main() {}
+</programlisting>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.quickbook
 ===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/include/source_mode-1_6.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -1,4 +1,5 @@
 [source-mode teletype][quickbook 1.6]
 [article Souce Mode Include]
 
-[include source_mode-inc1.quickbook]
\ No newline at end of file
+[include source_mode-inc1.quickbook]
+[include source_mode-inc2.quickbook]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.gold	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.gold	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -31,4 +31,15 @@
       as well.
     </para>
   </section>
+  <section id="link_tests.escaping_links">
+    <title>Escaping links</title>
+    <itemizedlist>
+      <listitem>
+        <simpara>
+          <ulink url="http://svn.boost.org/trac/boost/query?status=closed&amp;milestone=Boost+1.34.1">Boost
 +          Trac</ulink>
+        </simpara>
+      </listitem>
+    </itemizedlist>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_1.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -39,3 +39,10 @@
 as well.
 
 [endsect]
+
+[section Escaping links]
+
+* [@http://svn.boost.org/trac/boost/query?status=closed&milestone=Boost+1.34.1
+  Boost Trac]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.gold	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.gold	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -35,4 +35,15 @@
       as well.
     </para>
   </section>
+  <section id="link_tests.escaping_links">
+    <title><link linkend="link_tests.escaping_links">Escaping links</link></title>
+    <itemizedlist>
+      <listitem>
+        <simpara>
+          <ulink url="http://svn.boost.org/trac/boost/query?status=closed&amp;milestone=Boost+1.34.1">Boost
 +          Trac</ulink>
+        </simpara>
+      </listitem>
+    </itemizedlist>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_6.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -43,3 +43,10 @@
 as well.
 
 [endsect]
+
+[section Escaping links]
+
+* [@http://svn.boost.org/trac/boost/query?status=closed&milestone=Boost+1.34.1
+  Boost Trac]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.gold	2015-12-10 12:19:06 UTC \
                (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.gold	2015-12-10 12:37:00 UTC \
(rev 7425) @@ -21,9 +21,6 @@
     <para>
       <link linkend="link">description</link>
     </para>
-    <para>
-      <link linkend="link[Hello]">description</link>
-    </para>
   </section>
   <section id="link_tests.side_by_side_links">
     <title><link linkend="link_tests.side_by_side_links">Side-by-side \
links</link></title> @@ -40,5 +37,20 @@
     <para>
       <link linkend="blah.x2">Templated link?</link>
     </para>
+    <para>
+      <link linkend="something-one-two">something-one-two</link> <link \
linkend="something-one-two">something-one-two</link> +      <link \
linkend="something-one-two">something-one-two</link> +    </para>
   </section>
+  <section id="link_tests.escaping_links">
+    <title><link linkend="link_tests.escaping_links">Escaping links</link></title>
+    <itemizedlist>
+      <listitem>
+        <simpara>
+          <ulink url="http://svn.boost.org/trac/boost/query?status=closed&amp;milestone=Boost+1.34.1">Boost
 +          Trac</ulink>
+        </simpara>
+      </listitem>
+    </itemizedlist>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/link-1_7.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -28,9 +28,6 @@
 
 [link link[/ comment]description]
 
-[link link\[Hello\] description]
-
-
 [endsect]
 
 [section Side-by-side links]
@@ -49,4 +46,16 @@
 [template thing[]x]
 [link blah.[thing]2 Templated link?]
 
+[template link_in_template[x y] [link something-[x]-[y]]]
+[link_in_template one two]
+[link_in_template one..two]
+[link_in_template one .. two ]
+
 [endsect]
+
+[section Escaping links]
+
+* [@http://svn.boost.org/trac/boost/query?status=closed&milestone=Boost+1.34.1
+  Boost Trac]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -310,42 +310,53 @@
       </simpara>
     </listitem>
     <listitem>
+      <informaltable frame="all">
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry>
+                <para>
+                  Heading
+                </para>
+              </entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>
+                <para>
+                  Cell
+                </para>
+              </entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
       <simpara>
-        <informaltable frame="all">
-          <tgroup cols="1">
-            <thead>
-              <row>
-                <entry>
-                  <para>
-                    Heading
-                  </para>
-                </entry>
-              </row>
-            </thead>
-            <tbody>
-              <row>
-                <entry>
-                  <para>
-                    Cell
-                  </para>
-                </entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </informaltable>
+        Some text.
       </simpara>
     </listitem>
     <listitem>
       <simpara>
-        <bridgehead renderas="sect2" id="list_test.h0">
-          <phrase id="list_test.the_heading_for_a_list_item"/><link \
                linkend="list_test.the_heading_for_a_list_item">The
-          heading for a list item</link>
-        </bridgehead>
-        <para>
-          The content of the list item.
-        </para>
+        [section Doesn't expand] Blah, blah. [endsect]
       </simpara>
     </listitem>
+    <listitem>
+      <simpara>
+        Paragraph cheat 1.
+      </simpara>
+      <simpara>
+        Paragraph cheat 2.
+      </simpara>
+    </listitem>
+    <listitem>
+      <simpara>
+        Paragraph cheat 3.
+      </simpara>
+      <simpara>
+        Paragraph cheat 4.
+      </simpara>
+    </listitem>
   </itemizedlist>
   <para>
     Don't end list with comment 1:
@@ -426,101 +437,14 @@
     <itemizedlist>
       <listitem>
         <simpara>
-          One
+          One [section Nested section]
         </simpara>
       </listitem>
-    </itemizedlist>
-    <section id="list_test.list_immediately_following_mark0.nested_section">
-      <title><link linkend="list_test.list_immediately_following_mark0.nested_section">Nested
                
-      section</link></title>
-      <itemizedlist>
-        <listitem>
-          <simpara>
-            Two
-          </simpara>
-        </listitem>
-      </itemizedlist>
-    </section>
-  </section>
-  <section id="list_test.paragraphs_in_list_items">
-    <title><link linkend="list_test.paragraphs_in_list_items">Paragraphs in list
-    items</link></title>
-    <itemizedlist>
       <listitem>
         <simpara>
-          A1
-          <para>
-            A2
-          </para>
+          Two [endsect]
         </simpara>
       </listitem>
-      <listitem>
-        <simpara>
-          B1
-          <itemizedlist>
-            <listitem>
-              <simpara>
-                C1
-                <para>
-                  C2
-                </para>
-              </simpara>
-            </listitem>
-          </itemizedlist>
-          <para>
-            B2
-          </para>
-        </simpara>
-      </listitem>
-      <listitem>
-        <simpara>
-          D1
-          <itemizedlist>
-            <listitem>
-              <simpara>
-                E1
-                <para>
-                  E2
-                </para>
-                <para>
-                  E3
-                </para>
-              </simpara>
-            </listitem>
-          </itemizedlist>
-          <para>
-            D2
-          </para>
-        </simpara>
-      </listitem>
     </itemizedlist>
   </section>
-  <section id="list_test.indented_code_blocks_in_lists">
-    <title><link linkend="list_test.indented_code_blocks_in_lists">Indented code
-    blocks in lists</link></title>
-    <itemizedlist>
-      <listitem>
-        <simpara>
-          A
-<programlisting><phrase role="identifier">B</phrase>
-</programlisting>
-          <para>
-            C
-          </para>
-        </simpara>
-      </listitem>
-      <listitem>
-        <simpara>
-          D
-<programlisting><phrase role="identifier">E</phrase>
-</programlisting>
-        </simpara>
-      </listitem>
-      <listitem>
-        <simpara>
-          F
-        </simpara>
-      </listitem>
-    </itemizedlist>
-  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/list_test-1_6.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -74,9 +74,17 @@
 *   ["Quoted]
 *   [footnote Footnote]
 *   [table [[Heading]][[Cell]]]
-*   [heading The heading for a list item]
+    Some text.
+*   [section Doesn't expand]
+    Blah, blah.
+    [endsect]
 
-    The content of the list item.
+* Paragraph cheat 1.
+  [block]
+  Paragraph cheat 2.
+* Paragraph cheat 3.
+  [block]
+  Paragraph cheat 4.
 
 Don't end list with comment 1:
 
@@ -108,40 +116,5 @@
 [section Nested section]
 * Two
 [endsect]
-[endsect]
 
-[section Paragraphs in list items]
-
-* A1
-
-  A2
-
-* B1
-  * C1
-
-   C2
-
-  B2
-
-* D1
-    * E1
-
-     E2
-
-    E3
-
-   D2
-
 [endsect]
-
-[section Indented code blocks in lists]
-
-* A
-
-    B
-  C
-* D
-
-    E
-* F
-[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/python/output-deps.py
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/python/output-deps.py	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/python/output-deps.py	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -24,6 +24,10 @@
             deps_gold = 'include_path_deps.txt',
             locations_gold = 'include_path_locs.txt',
             input_path = ['sub1', 'sub2'])
+    failures += run_quickbook(quickbook_command, 'include_glob.qbk',
+            deps_gold = 'include_glob_deps.txt',
+            locations_gold = 'include_glob_locs.txt',
+            input_path = ['sub1', 'sub2'])
 
     if failures == 0:
         print "Success"
@@ -123,23 +127,35 @@
     return dependencies
 
 def load_locations(filename, adjust_paths = False):
-    line_matcher = re.compile("^([+-]) (.*)$")
+    line_matcher = re.compile("^([+-g]) (.*)$")
     dependencies = {}
     f = open(filename, 'r')
+    glob = None
+    globs = {}
     for line in f:
         if line[0] == '#': continue
         m = line_matcher.match(line)
-        if not m:
-            raise Exception("Invalid dependency file: %1s" % filename)
-        found = m.group(1) == '+'
+
         path = m.group(2)
         if adjust_paths:
             path = os.path.realpath(path)
-        if path in dependencies:
-            raise Exception("Duplicate path (%1s) in %2s" % (path, filename))
-        dependencies[path] = found
-    return dependencies
 
+        if not m:
+            raise Exception("Invalid dependency file: %1s" % filename)
+        if m.group(1) == 'g':
+            globs[path] = []
+            glob = path
+        elif glob:
+            if m.group(1) != '+':
+                raise Exception("Negative match in glob.")
+            globs[glob].append(path)
+        else:
+            found = m.group(1) == '+'
+            if path in dependencies:
+                raise Exception("Duplicate path (%1s) in %2s" % (path, filename))
+            dependencies[path] = found
+    return { 'dependencies': dependencies, 'globs': globs }
+
 def temp_filename(extension):
     file = tempfile.mkstemp(suffix = extension)
     os.close(file[0])

Modified: trunk/Thirdparty/boost/tools/quickbook/test/snippets/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/snippets/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/snippets/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project quickook/tests/snippets ;
+project quickbook/test/snippets ;
 
 import quickbook-testing : quickbook-test quickbook-error-test ;
 

Modified: trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -26,13 +26,38 @@
   <itemizedlist>
     <listitem>
       <simpara>
-        Sadly this doesn't work.
+        <code><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase +        role="special">()</phrase> <phrase \
role="special">{}</phrase></code>  </simpara>
     </listitem>
     <listitem>
       <simpara>
+        <code><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase +        role="special">()</phrase> <phrase \
role="special">{}</phrase></code> +      </simpara>
+    </listitem>
+    <listitem>
+      <simpara>
         <code>int main() {}</code>
       </simpara>
     </listitem>
   </itemizedlist>
+  <para>
+    <code><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase +    role="special">()</phrase> <phrase \
role="special">{}</phrase></code> and <code><phrase +    role="keyword">int</phrase> \
<phrase role="identifier">main</phrase><phrase role="special">()</phrase> +    \
<phrase role="special">{}</phrase></code> should both be C++ highlighted. <code>int + \
main() {}</code> shouldn't be, but <code><phrase role="keyword">int</phrase> +    \
<phrase role="identifier">main</phrase><phrase role="special">()</phrase> <phrase +   \
role="special">{}</phrase></code> should. +  </para>
+  <para>
+    <code><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase +    role="special">()</phrase> <phrase \
role="special">{}</phrase></code>. Not highlighted: +    <code>int main() {}</code>.
+  </para>
+  <section id="source_mode_test.cpp">
+    <title><link linkend="source_mode_test.cpp">C++ section</link></title>
+<programlisting><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> <phrase \
role="special">{}</phrase></programlisting> +  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/source_mode-1_7.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -8,5 +8,17 @@
 [!c++]`int main() {}` but `plain text`.
 
 [!c++]
-* Sadly this doesn't work.
 * `int main() {}`
+* `int main() {}`
+* [teletype] `int main() {}` [/ shouldn't be highlighted]
+
+[!c++]
+`int main() {}` and `int main() {}` should both be C++ highlighted.
+[!teletype]`int main() {}` shouldn't be, but `int main() {}` should.
+
+[!c++] `int main() {}`. Not highlighted: `int main() {}`.
+
+[!c++]
+[section:cpp C++ section]
+``int main() {}``
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -167,25 +167,26 @@
         </simpara>
       </listitem>
       <listitem>
-        <simpara>
-          <para/>
-        </simpara>
+        <para/>
       </listitem>
       <listitem>
-        <simpara>
 <programlisting><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> <phrase \
                role="special">{}</phrase></programlisting>
-        </simpara>
       </listitem>
       <listitem>
         <simpara>
-          <para>
-            Paragraphs 1
-          </para>
-          <para>
-            Paragraphs 2
-          </para>
+          Paragraphs 1
         </simpara>
+        <simpara>
+          Paragraphs 2
+        </simpara>
       </listitem>
     </itemizedlist>
   </section>
+  <section id="templates.escaped_templates">
+    <title><link linkend="templates.escaped_templates">Escaped \
templates</link></title> +    <para>
+      <thingbob>Not real boostbook</thingbob> <thingbob>Also not real \
boostbook</thingbob> +      <thingbob>More fake boostbook</thingbob> <thingbob>Final \
fake boostbook</thingbob> +    </para>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_3.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -198,3 +198,19 @@
 * [paragraphs]
 
 [endsect]
+
+[/----------------------------------- Escaped templates ]
+
+[section Escaped templates]
+
+[template raw_markup <thingbob>Not real boostbook</thingbob>]
+[template | <thingbob>Also not real boostbook</thingbob>]
+[template escaped1 [|] [`|]]
+[template escaped2 [x] [`x]]
+
+[`raw_markup]
+[`|]
+[escaped1 <thingbob>More fake boostbook</thingbob>]
+[escaped2 <thingbob>Final fake boostbook</thingbob>]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -18,4 +18,11 @@
   <para>
     {1-2-3} {1-2-3} {1-2-3 4} {1 2-3-4} {[1-2-3}
   </para>
+  <section id="template_1_4.escaped_templates">
+    <title><link linkend="template_1_4.escaped_templates">Escaped \
templates</link></title> +    <para>
+      <thingbob>Not real boostbook</thingbob> <thingbob>Also not real \
boostbook</thingbob> +      <thingbob>More fake boostbook</thingbob> <thingbob>Final \
fake boostbook</thingbob> +    </para>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_4.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -34,4 +34,20 @@
 [ternary 1 2 3]    [/ {1-2-3} ]
 [ternary 1..2 3 4] [/ {1-2-3 4} ]
 [ternary 1 2..3 4] [/ {1 2-3-4} ]
-[ternary [1..2..3] [/ {(1-2-3} (but with a square bracket) ]
\ No newline at end of file
+[ternary [1..2..3] [/ {(1-2-3} (but with a square bracket) ]
+
+[/----------------------------------- Escaped templates ]
+
+[section Escaped templates]
+
+[template raw_markup <thingbob>Not real boostbook</thingbob>]
+[template | <thingbob>Also not real boostbook</thingbob>]
+[template escaped1 [|] [`|]]
+[template escaped2 [x] [`x]]
+
+[`raw_markup]
+[`|]
+[escaped1 <thingbob>More fake boostbook</thingbob>]
+[escaped2 <thingbob>Final fake boostbook</thingbob>]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.gold
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.gold	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.gold	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -3,40 +3,237 @@
 <article id="template_1_5" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 $"
  xmlns:xi="http://www.w3.org/2001/XInclude">
   <title>Template 1.5</title>
-  <para>
-    static scoping
-  </para>
-  <para>
-    [a]
-  </para>
-  <para>
-    new
-  </para>
-  <para>
-    foo foo
-  </para>
-  <para>
-    {1-2} {1-2} {1-2 3 4} {1 2-3 4} {1 2 3-4} {1..2-3} {1..2-3}
-  </para>
-  <para>
-    { {1 2-3}-4} { {1 2-3}-4} { {1-2 3}-4}
-  </para>
-  <para>
-    {[1-2] 3} {[1-2] 3} {[1-2}
-  </para>
-  <para>
-    {1-2-3} {1-2-3}
-  </para>
-  <para>
-    Some <emphasis role="bold">text</emphasis>
-  </para>
-  <para>
-    A &lt;emphasis&gt;paragraph&lt;/emphasis&gt;.
-  </para>
-  <para>
-    Some *text* A <emphasis>paragraph</emphasis>.
-  </para>
-  <para>
-    <index type="things"><title>Things</title></index>
-  </para>
+  <section id="template_1_5.templates">
+    <title><link linkend="template_1_5.templates">Templates</link></title>
+    <para>
+      nullary_arg
+    </para>
+    <para>
+      foo baz
+    </para>
+    <para>
+      foo baz
+    </para>
+    <para>
+      This is a complete paragraph. kalamazoo kalamazoo kalamazoo kalamazoo \
kalamazoo +      kalamazoo kalamazoo kalamazoo kalamazoo.... blah blah blah......
+    </para>
+    <para>
+      <hey>baz</hey>
+    </para>
+    <para>
+      This is a complete paragraph. madagascar madagascar madagascar madagascar \
madagascar +      madagascar madagascar madagascar madagascar.... blah blah \
blah...... +    </para>
+    <para>
+      zoom peanut zoom
+    </para>
+    <para>
+      exactly xanadu
+    </para>
+    <para>
+      wx
+    </para>
+    <para>
+      wxyz wxyz trail
+    </para>
+<programlisting><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> +<phrase \
role="special">{</phrase> +    <phrase role="identifier">std</phrase><phrase \
role="special">::</phrase><phrase role="identifier">cout</phrase> <phrase \
role="special">&lt;&lt;</phrase> &quot;Hello, World&quot; <phrase \
role="special">&lt;&lt;</phrase> <phrase role="identifier">std</phrase><phrase \
role="special">::</phrase><phrase role="identifier">endl</phrase><phrase \
role="special">;</phrase> +<phrase role="special">}</phrase>
+</programlisting>
+    <para>
+      x<superscript>2</superscript>
+    </para>
+    <para>
+      &alpha;<superscript>2</superscript>
+    </para>
+    <para>
+      x<superscript>2</superscript>
+    </para>
+    <para>
+      got a banana?
+    </para>
+    <para>
+      .0 00
+    </para>
+    <para>
+      [fool]
+    </para>
+  </section>
+  <section id="template_1_5.empty_templates">
+    <title><link linkend="template_1_5.empty_templates">Empty \
Templates</link></title> +  </section>
+  <section id="template_1_5.nested_templates">
+    <title><link linkend="template_1_5.nested_templates">Nested \
Templates</link></title> +    <para>
+      Pre
+    </para>
+    <para>
+      Start block template.
+    </para>
+    <para>
+      Start block template.
+    </para>
+    <para>
+      Hello!
+    </para>
+    <para>
+      End block template.
+    </para>
+    <para>
+      End block template.
+    </para>
+    <para>
+      Post
+    </para>
+    <para>
+      Pre
+    </para>
+    <para>
+      Start block template.
+    </para>
+    <para>
+      Start phrase template. Hello! End phrase template.
+    </para>
+    <para>
+      End block template.
+    </para>
+    <para>
+      Post
+    </para>
+    <para>
+      Pre
+    </para>
+    <para>
+      Start phrase template.
+    </para>
+    <para>
+      Start block template.
+    </para>
+    <para>
+      Hello!
+    </para>
+    <para>
+      End block template.
+    </para>
+    <para>
+      End phrase template.
+    </para>
+    <para>
+      Post
+    </para>
+    <para>
+      Pre Start phrase template. Start phrase template. Hello! End phrase template.
+      End phrase template. Post
+    </para>
+  </section>
+  <section id="template_1_5.block_markup">
+    <title><link linkend="template_1_5.block_markup">Block Markup</link></title>
+    <itemizedlist>
+      <listitem>
+        <simpara>
+          a
+        </simpara>
+      </listitem>
+      <listitem>
+        <simpara>
+          b
+        </simpara>
+      </listitem>
+    </itemizedlist>
+    <para/>
+<programlisting><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> <phrase \
role="special">{}</phrase></programlisting> +    <para>
+      Paragraphs 1
+    </para>
+    <para>
+      Paragraphs 2
+    </para>
+    <itemizedlist>
+      <listitem>
+        <simpara>
+          <itemizedlist>
+            <listitem>
+              <simpara>
+                a
+              </simpara>
+            </listitem>
+            <listitem>
+              <simpara>
+                b
+              </simpara>
+            </listitem>
+          </itemizedlist>
+        </simpara>
+      </listitem>
+      <listitem>
+        <para/>
+      </listitem>
+      <listitem>
+<programlisting><phrase role="keyword">int</phrase> <phrase \
role="identifier">main</phrase><phrase role="special">()</phrase> <phrase \
role="special">{}</phrase></programlisting> +      </listitem>
+      <listitem>
+        <simpara>
+          Paragraphs 1
+        </simpara>
+        <simpara>
+          Paragraphs 2
+        </simpara>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section id="template_1_5.static_scoping">
+    <title><link linkend="template_1_5.static_scoping">Static Scoping</link></title>
+    <para>
+      static scoping
+    </para>
+    <para>
+      [a]
+    </para>
+    <para>
+      new
+    </para>
+    <para>
+      foo foo
+    </para>
+  </section>
+  <section id="template_1_5.template_arguments">
+    <title><link linkend="template_1_5.template_arguments">Template \
Arguments</link></title> +    <para>
+      {1-2} {1-2} {1-2 3 4} {1 2-3 4} {1 2 3-4} {1..2-3} {1..2-3}
+    </para>
+    <para>
+      { {1 2-3}-4} { {1 2-3}-4} { {1-2 3}-4}
+    </para>
+    <para>
+      {[1-2] 3} {[1-2] 3} {[1-2}
+    </para>
+    <para>
+      {1-2-3} {1-2-3}
+    </para>
+  </section>
+  <section id="template_1_5.block_and_phrase_templates">
+    <title><link linkend="template_1_5.block_and_phrase_templates">Block and phrase
+    templates</link></title>
+    <para>
+      Some <emphasis role="bold">text</emphasis>
+    </para>
+    <para>
+      A &lt;emphasis&gt;paragraph&lt;/emphasis&gt;.
+    </para>
+    <para>
+      Some *text* A <emphasis>paragraph</emphasis>.
+    </para>
+    <para>
+      <index type="things"><title>Things</title></index>
+    </para>
+  </section>
+  <section id="template_1_5.escaped_templates">
+    <title><link linkend="template_1_5.escaped_templates">Escaped \
templates</link></title> +    <para>
+      <thingbob>Not real boostbook</thingbob> <thingbob>Also not real \
boostbook</thingbob> +      <thingbob>More fake boostbook</thingbob> <thingbob>Final \
fake boostbook</thingbob> +    </para>
+  </section>
 </article>

Modified: trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.quickbook
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.quickbook	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/templates-1_5.quickbook	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -2,12 +2,211 @@
     [quickbook 1.5]
 ]
 
-[/ 1.5 uses static scoping ]
+[section Templates]
 
+[/-------------------------------- nullary arg ]
+
+[template foo0 nullary_arg]
+
+[foo0]
+
+[/-------------------------------- unary arg, phrase syle ]
+
+[template foo1[bar] foo [bar]]
+
+[foo1 baz]
+
+[/-------------------------------- unary arg, block syle ]
+
+[template foo2[bar]
+foo [bar]
+]
+
+[foo2 baz]
+
+[template foo3[bar]
+This is a complete paragraph. [bar] [bar] [bar] [bar] [bar]
+[bar] [bar] [bar] [bar].... blah blah blah......
+]
+
+[foo3 kalamazoo]
+
+[/-------------------------------- unary arg, using punctuation ]
+
+[template ![bar] '''<hey>'''[bar]'''</hey>''']
+
+[!baz]
+
+[/-------------------------------- recursive templates ]
+
+[template foo4[bar]
+[foo3 [bar]]
+]
+
+[foo3 madagascar]
+
+[template foo5[x] zoom [x]]
+[template foo6[x] [x] zoom]
+
+[foo6[foo5 peanut]]
+
+[template kinda_weird[x y] [x] [y]]
+
+[kinda_weird exactly..xanadu]
+
+
+[/-------------------------------- space delimitted args ]
+
+[template simple1[a b] [a][b]]
+
+[simple1 w x]
+
+[template simple2[a b c d] [a][b][c][d]]
+
+[simple2 w x y z][simple2 w x y z trail]
+
+[/-------------------------------- John's templates ]
+
+[template code[x]
+    int main()
+    {
+        std::cout << ``[x]`` << std::endl;
+    }
+]
+
+[code "Hello\, World"]
+
+[template alpha '''&alpha;''']
+[template pow[a b] [a]'''<superscript>'''[b]'''</superscript>''' ]
+[template super[text]'''<superscript>'''[text]'''</superscript>''' ]
+
+[pow x 2]
+
+[pow [alpha] 2]
+
+x[super 2]
+
+[/-------------------------------- Some more ]
+
+[template banana got a banana?]
+[template plantation[bananarama] [bananarama]]
+
+[plantation [banana]]
+
+[/-------------------------------- Not a bug (there was a syntax error here) ]
+
+[template join1[a b] [b][a]]
+[template join2[a b] [a][b]]
+[template test[x] [join1 [join2 0 [x]]...0]]
+[test 0]
+
+[/-------------------------------- Mismatched template ]
+
+[template foo 1]
+[fool]
+
+[template blah 10]
+
+[endsect]
+
+[section Empty Templates]
+
+[template empty1]
+[template empty2 ]
+[template empty3 [/comment]]
+[template empty4 [/comment]
+
+]
+[template empty5
+]
+[template empty6
+
+]
+[template empty7
+[/comment]
+]
+[template empty8
+
+[/comment]
+]
+[template empty_arg1[x]]
+[template empty_arg2[x y]]
+
+[empty1]
+[empty2]
+[empty3]
+[empty4]
+[empty5]
+[empty6]
+[empty7]
+[empty8]
+[empty_arg1 1]
+[empty_arg2 1 2]
+
+[endsect]
+
+[/----------------------------------- Nested templates ]
+
+[section Nested Templates]
+
+[template block[content]
+
+Start block template.
+
+[content]
+
+End block template.
+]
+
+[template phrase[content] Start phrase template. [content] End phrase template.]
+
+Pre [block [block Hello!]] Post
+
+Pre [block [phrase Hello!]] Post
+
+Pre [phrase [block Hello!]] Post
+
+Pre [phrase [phrase Hello!]] Post
+
+[endsect]
+
+[/----------------------------------- Block Markup ]
+
+[section Block Markup]
+
+[template list
+* a
+* b]
+
+[template horizontal
+----]
+
+[template codeblock
+    int main() {}]
+
+[template paragraphs
+Paragraphs 1
+
+Paragraphs 2
+]
+
+[list][horizontal][codeblock][paragraphs]
+
+* [list]
+* [horizontal]
+* [codeblock]
+* [paragraphs]
+
+[endsect]
+
+[/----------------------------------- 1.5+ use static scoping ]
+
+[section Static Scoping]
+
 [template x static scoping]
-[template foo1[] [x]]
-[template foo2[x] [foo1]]
-[foo2 dynamic scoping]
+[template static_test1[] [x]]
+[template static_test2[x] [static_test1]]
+[static_test2 dynamic scoping]
 
 [/ This should be '[a]' because [a] isn't matched. ]
 [template test1[] [a]]
@@ -17,8 +216,8 @@
 [/ In 1.5 template arguments are scoped at the point they are defined]
 
 [template y new]
-[template foo3[a y] [a]]
-[foo3 [y] old]
+[template static_test3[a y] [a]]
+[static_test3 [y] old]
 
 [/ From https://svn.boost.org/trac/boost/ticket/2034 ]
 
@@ -27,8 +226,12 @@
 [template echo_twice[x] [echo [same [x]]..[same [x]]]]
 [echo_twice foo]
 
-[/ 1.5 template arguments]
+[endsect]
 
+[/----------------------------------- 1.5+ template arguments ]
+
+[section Template Arguments]
+
 [template binary[x y] {[x]-[y]}]
 [binary 1..2]     [/ {1-2} ]
 [binary 1 2]      [/ {1-2} ]
@@ -50,18 +253,22 @@
 [ternary 1..2..3]  [/ {1-2-3} ]
 [ternary 1 2 3]    [/ {1-2-3} ]
 
-[/ Block vs. phrase templates ]
+[endsect]
 
-[template phrase[] Some *text*]
-[template block[]
+[/----------------------------------- Block and phrases ]
 
+[section Block and phrase templates]
+
+[template phrase_template[] Some *text*]
+[template block_template[]
+
 A <emphasis>paragraph</emphasis>.
 ]
 
-[phrase]
-[block]
-[`phrase]
-[`block]
+[phrase_template]
+[block_template]
+[`phrase_template]
+[`block_template]
 
 [/ Trailing newline shouldn't be included]
 
@@ -69,4 +276,22 @@
 '''<index type="'''[type]'''"><title>'''[title]'''</title></index>'''
 ]
 
-[named_index things Things]
\ No newline at end of file
+[named_index things Things]
+
+[endsect]
+
+[/----------------------------------- Escaped templates ]
+
+[section Escaped templates]
+
+[template raw_markup <thingbob>Not real boostbook</thingbob>]
+[template | <thingbob>Also not real boostbook</thingbob>]
+[template escaped1 [|] [`|]]
+[template escaped2 [x] [`x]]
+
+[`raw_markup]
+[`|]
+[escaped1 <thingbob>More fake boostbook</thingbob>]
+[escaped2 <thingbob>Final fake boostbook</thingbob>]
+
+[endsect]

Modified: trunk/Thirdparty/boost/tools/quickbook/test/unit/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/unit/Jamfile.v2	2015-12-10 12:19:06 \
                UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/unit/Jamfile.v2	2015-12-10 12:37:00 \
UTC (rev 7425) @@ -8,7 +8,7 @@
 
 import testing ;
 
-project quickbook-unit-tests
+project quickbook/test/unit-tests
     : requirements
         <include>../../src
         <warnings>all
@@ -23,6 +23,7 @@
 run values_test.cpp ../../src/values.cpp ../../src/files.cpp ;
 run post_process_test.cpp ../../src/post_process.cpp ;
 run source_map_test.cpp ../../src/files.cpp ;
+run glob_test.cpp ../../src/glob.cpp ;
 
 # Copied from spirit
 run symbols_tests.cpp ;

Modified: trunk/Thirdparty/boost/tools/quickbook/test/utf16be_bom-1_5-fail.quickbook
===================================================================
(Binary files differ)

Modified: trunk/Thirdparty/boost/tools/quickbook/test/utf16le_bom-1_5-fail.quickbook
===================================================================
(Binary files differ)

Modified: trunk/Thirdparty/boost/tools/quickbook/test/versions/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/versions/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/versions/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project test/versions
+project quickbook/test/versions
     : requirements
         <toolset>msvc:<debug-symbols>off
     ;

Modified: trunk/Thirdparty/boost/tools/quickbook/test/xinclude/Jamfile.v2
===================================================================
--- trunk/Thirdparty/boost/tools/quickbook/test/xinclude/Jamfile.v2	2015-12-10 \
                12:19:06 UTC (rev 7424)
+++ trunk/Thirdparty/boost/tools/quickbook/test/xinclude/Jamfile.v2	2015-12-10 \
12:37:00 UTC (rev 7425) @@ -6,7 +6,7 @@
 #   http://www.boost.org/LICENSE_1_0.txt)
 #
 
-project test/xinclude
+project quickbook/test/xinclude
     : requirements
         <toolset>msvc:<debug-symbols>off
     ;

_______________________________________________
fdo-commits mailing list
fdo-commits@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic