$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r50018 - in sandbox/tools/auto_index: . build example/type_traits/doc example/type_traits/doc/html example/type_traits/doc/html/boost_typetraits example/type_traits/doc/html/boost_typetraits/category example/type_traits/doc/html/boost_typetraits/reference example/type_traits/doc/html/index src
From: john_at_[hidden]
Date: 2008-11-29 12:20:06
Author: johnmaddock
Date: 2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
New Revision: 50018
URL: http://svn.boost.org/trac/boost/changeset/50018
Log:
Added Boost.Build integration and rebuilt type_traits as proof-of-concept.
Fixed a few bugs in the source.
Added:
   sandbox/tools/auto_index/auto-index.jam   (contents, props changed)
Binary files modified: 
   sandbox/tools/auto_index/example/type_traits/doc/type_traits.pdf
Text files modified: 
   sandbox/tools/auto_index/build/Jamfile.v2                                                                      |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/Jamfile.v2                                                    |     7 ++                                      
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/background.html                         |    22 ++++----                                
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/category/transform.html                 |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/intrinsics.html                         |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_const.html                |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_cv.html                   |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_pointer.html              |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_reference.html            |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_volatile.html             |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/decay.html                    |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/function_traits.html          |     4                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html       |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_signed.html              |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html            |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/promote.html                  |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html       |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_const.html             |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_cv.html                |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_extent.html            |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html           |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_reference.html         |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html          |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/index.html                                               |     4                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/index/s10.html                                           |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/index/s11.html                                           |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/index/s12.html                                           |     2                                         
   sandbox/tools/auto_index/example/type_traits/doc/html/index/s13.html                                           |     2                                         
   sandbox/tools/auto_index/src/auto_index.cpp                                                                    |    95 +++++++++++++++++++++++++++++++-------- 
   30 files changed, 120 insertions(+), 62 deletions(-)
Added: sandbox/tools/auto_index/auto-index.jam
==============================================================================
--- (empty file)
+++ sandbox/tools/auto_index/auto-index.jam	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -0,0 +1,186 @@
+
+import feature ;
+import generators ;
+import "class" ;
+import toolset ;
+import targets ;
+import "class" : new ;
+import project ;
+
+feature.feature auto-index : off "on" ;
+feature.feature auto-index-internal : off "on" ;
+feature.feature auto-index-verbose : off "on" ;
+feature.feature auto-index-no-duplicates : off "on" ;
+feature.feature auto-index-script : : free ;
+
+toolset.flags auto-index.auto-index FLAGS <auto-index-internal>on : --internal-index ;
+toolset.flags auto-index.auto-index SCRIPT <auto-index-script> ;
+toolset.flags auto-index.auto-index FLAGS <auto-index-verbose>on : --verbose ;
+toolset.flags auto-index.auto-index FLAGS <auto-index-no-duplicates>on : --no-duplicates ;
+
+# <auto-index-binary> shell command to run AutoIndex
+# <auto-index-binary-dependencies> targets to build AutoIndex from sources.
+feature.feature <auto-index-binary> : : free ;
+feature.feature <auto-index-binary-dependencies> : : free dependency ;
+
+class auto-index-generator : generator
+{
+    import common modules path targets build-system ;
+    rule run ( project name ? : property-set : sources * )
+    {
+        # AutoIndex invocation command and dependencies.
+        local auto-index-binary = [ modules.peek auto-index : .command ] ;
+        local auto-index-binary-dependencies ;
+
+        if $(auto-index-binary)
+        {
+            # Use user-supplied command.
+            auto-index-binary = [ common.get-invocation-command auto-index : auto-index : $(auto-index-binary) ] ;
+        }
+        else
+        {
+            # Search for AutoIndex sources in sensible places, like
+            #   $(BOOST_ROOT)/tools/auto_index
+            #   $(BOOST_BUILD_PATH)/../../auto_index
+
+            # And build auto-index executable from sources.
+
+            local boost-root = [ modules.peek : BOOST_ROOT ] ;
+            local boost-build-path = [ build-system.location ] ;
+            local boost-build-path2 = [ modules.peek : BOOST_BUILD_PATH ] ;
+
+            local auto-index-dir ;
+
+            if $(boost-root)
+            {
+                auto-index-dir += [ path.join $(boost-root) tools ] ;
+            }
+
+            if $(boost-build-path)
+            {
+                auto-index-dir += $(boost-build-path)/../.. ;
+            }
+            if $(boost-build-path2)
+            {
+                auto-index-dir += $(boost-build-path2)/.. ;
+            }
+
+            #ECHO $(auto-index-dir) ;
+            auto-index-dir = [ path.glob $(auto-index-dir) : auto_index ] ;
+            #ECHO $(auto-index-dir) ;
+
+            # If the AutoIndex source directory was found, mark its main target
+            # as a dependency for the current project. Otherwise, try to find
+            # 'auto-index' in user's PATH
+            if $(auto-index-dir)
+            {
+                auto-index-dir = [ path.make $(auto-index-dir[1]) ] ;
+                auto-index-dir = $(auto-index-dir)/build ;
+                
+                #ECHO $(auto-index-dir) ;
+
+                # Get the main-target in AutoIndex directory.
+                local auto-index-main-target = [ targets.resolve-reference $(auto-index-dir) : $(project) ] ;
+                
+                #ECHO $(auto-index-main-target) ;
+
+                # The first element are actual targets, the second are
+                # properties found in target-id. We do not care about these
+                # since we have passed the id ourselves.
+                auto-index-main-target =
+                    [ $(auto-index-main-target[1]).main-target auto_index ] ;
+
+                #ECHO $(auto-index-main-target) ;
+
+                auto-index-binary-dependencies =
+                    [ $(auto-index-main-target).generate [ $(property-set).propagated ] ] ;
+
+                # Ignore usage-requirements returned as first element.
+                auto-index-binary-dependencies = $(auto-index-binary-dependencies[2-]) ;
+
+                # Some toolsets generate extra targets (e.g. RSP). We must mark
+                # all targets as dependencies for the project, but we will only
+                # use the EXE target for auto-index-to-boostbook translation.
+                for local target in $(auto-index-binary-dependencies)
+                {
+                    if [ $(target).type ] = EXE
+                    {
+                        auto-index-binary = 
+                            [ path.native 
+                                [ path.join
+                                    [ $(target).path ]
+                                    [ $(target).name ]
+                                ]
+                            ] ;
+                    }
+                }
+            }
+            else
+            {
+                ECHO "AutoIndex warning: The path to the auto-index executable was" ;
+                ECHO "  not provided. Additionally, couldn't find AutoIndex" ;
+                ECHO "  sources searching in" ;
+                ECHO "    * BOOST_ROOT/tools/auto-index" ;
+                ECHO "    * BOOST_BUILD_PATH/../../auto-index" ;
+                ECHO "  Will now try to find a precompiled executable by searching" ;
+                ECHO "  the PATH for 'auto-index'." ;
+                ECHO "  To disable this warning in the future, or to completely" ;
+                ECHO "  avoid compilation of auto-index, you can explicitly set the" ;
+                ECHO "  path to a auto-index executable command in user-config.jam" ;
+                ECHO "  or site-config.jam with the call" ;
+                ECHO "    using auto-index : /path/to/auto-index ;" ;
+
+                # As a last resort, search for 'auto-index' command in path. Note
+                # that even if the 'auto-index' command is not found,
+                # get-invocation-command will still return 'auto-index' and might
+                # generate an error while generating the virtual-target.
+
+                auto-index-binary = [ common.get-invocation-command auto-index : auto-index ] ;
+            }
+        }
+
+        # Add $(auto-index-binary-dependencies) as a dependency of the current
+        # project and set it as the <auto-index-binary> feature for the
+        # auto-index-to-boostbook rule, below.
+        property-set = [ $(property-set).add-raw
+            <dependency>$(auto-index-binary-dependencies)
+            <auto-index-binary>$(auto-index-binary)
+            <auto-index-binary-dependencies>$(auto-index-binary-dependencies)
+        ] ;
+        
+        #ECHO "binary = " $(auto-index-binary) ;
+        #ECHO "dependencies = " $(auto-index-binary-dependencies) ;
+
+        if [ $(property-set).get <auto-index> ] = "on"
+        {
+            return [ generator.run $(project) $(name) : $(property-set) : $(sources) ] ;
+        }
+        else
+        {
+            return [ generators.construct $(project) $(name) : DOCBOOK : $(property-set)
+              : $(sources) ] ;
+        }        
+    }
+}
+
+toolset.flags auto-index.auto-index AI-COMMAND      <auto-index-binary> ;
+toolset.flags auto-index.auto-index AI-DEPENDENCIES <auto-index-binary-dependencies> ;
+
+generators.register [ class.new auto-index-generator auto-index.auto-index : DOCBOOK : DOCBOOK(%.modified) ] ;
+generators.override auto-index.auto-index : boostbook.boostbook-to-docbook ;
+
+rule auto-index ( target : source : properties * )
+{
+    # Signal dependency of auto-index sources on <auto-index-binary-dependencies>
+    # upon invocation of auto-index-to-boostbook.
+    #ECHO "AI-COMMAND= " $(AI-COMMAND) ;
+    DEPENDS $(target) : [ on $(target) return $(AI-DEPENDENCIES) ] ;
+    DEPENDS $(target) : [ on $(target) return $(SCRIPT) ] ;
+}
+
+actions auto-index
+{
+    $(AI-COMMAND) $(FLAGS) script=$(SCRIPT) in=$(>) out=$(<)
+}
+
+
Modified: sandbox/tools/auto_index/build/Jamfile.v2
==============================================================================
--- sandbox/tools/auto_index/build/Jamfile.v2	(original)
+++ sandbox/tools/auto_index/build/Jamfile.v2	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -2,6 +2,7 @@
 
 exe auto_index : ../src/auto_index.cpp ../src/tiny_xml.cpp /boost/regex /boost/filesystem 
 : <define>BOOST_ALL_NO_LIB=1 <link>static
+: release
 ;
 
 install dist : auto_index ;
@@ -9,3 +10,4 @@
 
 
 
+
Modified: sandbox/tools/auto_index/example/type_traits/doc/Jamfile.v2
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/Jamfile.v2	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/Jamfile.v2	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -4,6 +4,7 @@
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 using quickbook ;
+import auto-index ;
 
 path-constant boost-images : html/images ;
 
@@ -12,6 +13,10 @@
     :
         type_traits
     :
+        <auto-index>on
+        <format>pdf:<auto-index-internal>off
+        <format>html:<auto-index-internal>on
+        <auto-index-script>index.idx
         # Path for links to Boost:
         #<xsl:param>boost.root=../../../..
         # Path for libraries index:
@@ -68,5 +73,3 @@
 
 
 
-
-
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/background.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/background.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -56,7 +56,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id473418"></a>
+<a name="id473484"></a>
       <a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
     </h5>
 <p>
@@ -84,7 +84,7 @@
       given.
     </p>
 <a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id473527"></a>
+<a name="id473588"></a>
       <a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
     </h5>
 <p>
@@ -174,7 +174,7 @@
       in the default template.
     </p>
 <a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id490308"></a>
+<a name="id490298"></a>
       <a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
@@ -247,7 +247,7 @@
       otherwise it will call the "slow but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id541873"></a>
+<a name="id541859"></a>
       <a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
     </h5>
 <p>
@@ -280,7 +280,7 @@
       </li>
 </ul></div>
 <div class="table">
-<a name="id541949"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy<const
+<a name="id541939"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy<const
     T*, T*>` (times in micro-seconds)</b></p>
 <div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy<const
     T*, T*>` (times in micro-seconds)">
@@ -379,7 +379,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id542113"></a>
+<a name="id542102"></a>
       <a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
     </h5>
 <p>
@@ -416,7 +416,7 @@
       to hold non-reference types, references, and constant references:
     </p>
 <div class="table">
-<a name="id542458"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
+<a name="id542445"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
 <div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
 <colgroup>
 <col>
@@ -481,7 +481,7 @@
       adds a reference to its type, unless it is already a reference.
     </p>
 <div class="table">
-<a name="id542583"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
+<a name="id542572"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
     type</b></p>
 <div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor
     type">
@@ -598,7 +598,7 @@
       easier to maintain and easier to understand.
     </p>
 <a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id543171"></a>
+<a name="id543158"></a>
       <a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -611,7 +611,7 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id543195"></a>
+<a name="id543196"></a>
       <a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
@@ -619,7 +619,7 @@
       comments when preparing this article.
     </p>
 <a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id543226"></a>
+<a name="id543227"></a>
       <a class="link" href="background.html#boost_typetraits.background.references">References</a>
     </h5>
 <div class="orderedlist"><ol type="1">
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/category/transform.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/category/transform.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -91,7 +91,7 @@
 <span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
 </pre>
 <a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id546647"></a>
+<a name="id546661"></a>
         <a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/intrinsics.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/intrinsics.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -71,7 +71,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id548706"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
+<a name="id548718"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_const.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_const.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id553590"></a><p class="title"><b>Table 1.5. Examples</b></p>
+<a name="id553606"></a><p class="title"><b>Table 1.5. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_cv.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_cv.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id554174"></a><p class="title"><b>Table 1.6. Examples</b></p>
+<a name="id554189"></a><p class="title"><b>Table 1.6. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_pointer.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_pointer.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -56,7 +56,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id554822"></a><p class="title"><b>Table 1.7. Examples</b></p>
+<a name="id554838"></a><p class="title"><b>Table 1.7. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_reference.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_reference.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id555406"></a><p class="title"><b>Table 1.8. Examples</b></p>
+<a name="id555422"></a><p class="title"><b>Table 1.8. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_volatile.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/add_volatile.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id555981"></a><p class="title"><b>Table 1.9. Examples</b></p>
+<a name="id555996"></a><p class="title"><b>Table 1.9. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/decay.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/decay.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -48,7 +48,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id557536"></a><p class="title"><b>Table 1.10. Examples</b></p>
+<a name="id557553"></a><p class="title"><b>Table 1.10. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id559320"></a><p class="title"><b>Table 1.11. Examples</b></p>
+<a name="id559337"></a><p class="title"><b>Table 1.11. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/function_traits.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/function_traits.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -59,7 +59,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id559808"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
+<a name="id559824"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
 <div class="table-contents"><table class="table" summary="Function Traits Members">
 <colgroup>
 <col>
@@ -122,7 +122,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id560089"></a><p class="title"><b>Table 1.13. Examples</b></p>
+<a name="id560105"></a><p class="title"><b>Table 1.13. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id565687"></a><p class="title"><b>Table 1.14. Examples</b></p>
+<a name="id565705"></a><p class="title"><b>Table 1.14. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_signed.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_signed.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id586321"></a><p class="title"><b>Table 1.15. Examples</b></p>
+<a name="id586339"></a><p class="title"><b>Table 1.15. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id586967"></a><p class="title"><b>Table 1.16. Examples</b></p>
+<a name="id586986"></a><p class="title"><b>Table 1.16. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/promote.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/promote.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -51,7 +51,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id587675"></a><p class="title"><b>Table 1.17. Examples</b></p>
+<a name="id587693"></a><p class="title"><b>Table 1.17. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id589121"></a><p class="title"><b>Table 1.18. Examples</b></p>
+<a name="id589138"></a><p class="title"><b>Table 1.18. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_const.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_const.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id589848"></a><p class="title"><b>Table 1.19. Examples</b></p>
+<a name="id589865"></a><p class="title"><b>Table 1.19. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_cv.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_cv.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id590556"></a><p class="title"><b>Table 1.20. Examples</b></p>
+<a name="id590573"></a><p class="title"><b>Table 1.20. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_extent.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_extent.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -54,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id591265"></a><p class="title"><b>Table 1.21. Examples</b></p>
+<a name="id591282"></a><p class="title"><b>Table 1.21. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id592006"></a><p class="title"><b>Table 1.22. Examples</b></p>
+<a name="id592023"></a><p class="title"><b>Table 1.22. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_reference.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_reference.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id592690"></a><p class="title"><b>Table 1.23. Examples</b></p>
+<a name="id592708"></a><p class="title"><b>Table 1.23. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -53,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
       </p>
 <div class="table">
-<a name="id593301"></a><p class="title"><b>Table 1.24. Examples</b></p>
+<a name="id593319"></a><p class="title"><b>Table 1.24. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/index.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/index.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/index.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -30,7 +30,7 @@
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek</p></div>
 <div><div class="legalnotice">
-<a name="id473793"></a><p>
+<a name="id477828"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -165,7 +165,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 28, 2008 at 11:41:38 +0000</small></p></td>
+<td align="left"><p><small>Last revised: November 28, 2008 at 12:41:45 +0000</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/index/s10.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/index/s10.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/index/s10.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id594086"></a>Class Index</h2></div></div></div>
+<a name="id594103"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s10.html#idx_id_0">A</a> <a class="link" href="s10.html#idx_id_1">D</a> <a class="link" href="s10.html#idx_id_2">E</a> <a class="link" href="s10.html#idx_id_3">F</a> <a class="link" href="s10.html#idx_id_4">H</a> <a class="link" href="s10.html#idx_id_5">I</a> <a class="link" href="s10.html#idx_id_6">M</a> <a class="link" href="s10.html#idx_id_7">P</a> <a class="link" href="s10.html#idx_id_8">R</a> <a class="link" href="s10.html#idx_id_9">T</a> </p>
 <div class="variablelist"><dl>
 <dt>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/index/s11.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/index/s11.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/index/s11.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id598390"></a>Typedef Index</h2></div></div></div>
+<a name="id598408"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s11.html#idx_id_10">F</a> <a class="link" href="s11.html#idx_id_11">R</a> <a class="link" href="s11.html#idx_id_12">T</a> </p>
 <div class="variablelist"><dl>
 <dt>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/index/s12.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/index/s12.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/index/s12.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id599476"></a>Macro Index</h2></div></div></div>
+<a name="id599493"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s12.html#idx_id_13">B</a> </p>
 <div class="variablelist"><dl>
 <dt>
Modified: sandbox/tools/auto_index/example/type_traits/doc/html/index/s13.html
==============================================================================
--- sandbox/tools/auto_index/example/type_traits/doc/html/index/s13.html	(original)
+++ sandbox/tools/auto_index/example/type_traits/doc/html/index/s13.html	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -23,7 +23,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id599861"></a>Index</h2></div></div></div>
+<a name="id599878"></a>Index</h2></div></div></div>
 <p><a class="link" href="s13.html#idx_id_14">A</a> <a class="link" href="s13.html#idx_id_15">B</a> <a class="link" href="s13.html#idx_id_16">C</a> <a class="link" href="s13.html#idx_id_17">D</a> <a class="link" href="s13.html#idx_id_18">E</a> <a class="link" href="s13.html#idx_id_19">F</a> <a class="link" href="s13.html#idx_id_20">G</a> <a class="link" href="s13.html#idx_id_21">H</a> <a class="link" href="s13.html#idx_id_22">I</a> <a class="link" href="s13.html#idx_id_23">M</a> <a class="link" href="s13.html#idx_id_24">O</a> <a class="link" href="s13.html#idx_id_25">P</a> <a class="link" href="s13.html#idx_id_26">R</a> <a class="link" href="s13.html#idx_id_27">S</a> <a class="link" href="s13.html#idx_id_28">T</a> <a class="link" href="s13.html#idx_id_29">U</a> </p>
 <div class="variablelist"><dl>
 <dt>
Modified: sandbox/tools/auto_index/example/type_traits/doc/type_traits.pdf
==============================================================================
Binary files. No diff available.
Modified: sandbox/tools/auto_index/src/auto_index.cpp
==============================================================================
--- sandbox/tools/auto_index/src/auto_index.cpp	(original)
+++ sandbox/tools/auto_index/src/auto_index.cpp	2008-11-29 12:20:03 EST (Sat, 29 Nov 2008)
@@ -79,6 +79,7 @@
 std::multiset<index_info> index_terms;
 std::set<std::pair<std::string, std::string> > found_terms;
 bool no_duplicates = false;
+bool verbose = false;
 
 struct index_entry;
 typedef boost::shared_ptr<index_entry> index_entry_ptr;
@@ -209,11 +210,14 @@
       // not this tag itself:
       //
       title.prev->title = get_consolidated_content(node);
-      std::cout << "Indexing section: " << title.prev->title << std::endl;
+      if(verbose)
+         std::cout << "Indexing section: " << title.prev->title << std::endl;
    }
    else if(node->name == "index")
    {
       indexes.push_back(node);
+      if(parent_node->name == "para")
+         parent_node->name = "";
    }
 
    //
@@ -345,6 +349,8 @@
 
 void scan_file(const char* file)
 {
+   if(verbose)
+      std::cout << "Scanning file... " << file << std::endl;
    static const boost::regex class_e(
          // possibly leading whitespace:   
          "^[[:space:]]*" 
@@ -371,6 +377,8 @@
    std::ifstream is(file);
    load_file(text, is);
    {
+      if(verbose)
+         std::cout << "Scanning for class names... " << std::endl;
       boost::sregex_token_iterator i(text.begin(), text.end(), class_e, 5), j;
       while(i != j)
       {
@@ -380,7 +388,8 @@
          info.category = "class_name";
          if(index_terms.count(info) == 0)
          {
-            std::cout << "Indexing class " << info.term << std::endl;
+            if(verbose)
+               std::cout << "Indexing class " << info.term << std::endl;
             index_terms.insert(info);
          }
          ++i;
@@ -391,8 +400,10 @@
    // Now typedefs:
    //
    {
+      if(verbose)
+         std::cout << "Scanning for typedef names... " << std::endl;
       static const boost::regex typedef_exp(
-         "typedef.+?(\\w+)\\s*;");
+         "typedef[^;{}#]+?(\\w+)\\s*;");
       boost::sregex_token_iterator i(text.begin(), text.end(), typedef_exp, 1), j;
       while(i != j)
       {
@@ -402,7 +413,8 @@
          info.category = "typedef_name";
          if(index_terms.count(info) == 0)
          {
-            std::cout << "Indexing typedef " << info.term << std::endl;
+            if(verbose)
+               std::cout << "Indexing typedef " << info.term << std::endl;
             index_terms.insert(info);
          }
          ++i;
@@ -413,6 +425,8 @@
    // Now macros:
    //
    {
+      if(verbose)
+         std::cout << "Scanning for macro names... " << std::endl;
       static const boost::regex e(
          "^\\s*#\\s*define\\s+(\\w+)"
          );
@@ -425,7 +439,8 @@
          info.category = "macro_name";
          if(index_terms.count(info) == 0)
          {
-            std::cout << "Indexing macro " << info.term << std::endl;
+            if(verbose)
+               std::cout << "Indexing macro " << info.term << std::endl;
             index_terms.insert(info);
          }
          ++i;
@@ -435,6 +450,8 @@
    // Now functions:
    //
    {
+      if(verbose)
+         std::cout << "Scanning for function names... " << std::endl;
       static const boost::regex e(
          "\\w+\\s+(\\w+)\\s*\\([^\\)]*\\)\\s*\\{"
          );
@@ -447,7 +464,8 @@
          info.category = "function_name";
          if(index_terms.count(info) == 0)
          {
-            std::cout << "Indexing function " << info.term << std::endl;
+            if(verbose)
+               std::cout << "Indexing function " << info.term << std::endl;
             index_terms.insert(info);
          }
          ++i;
@@ -506,13 +524,13 @@
       "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")"
       "(?:"
          "[[:space:]]+"
-         "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")"
+         "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)*\")"
          "(?:"
             "[[:space:]]+"
-            "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")"
+            "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)*\")"
             "(?:"
                "[[:space:]]+"
-               "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")"
+               "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)*\")"
             ")?"
          ")?"
       ")?"
@@ -522,19 +540,24 @@
       "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")\\s+"
       "([^\"[:space:]]+|\"(?:[^\"\\\\]|\\\\.)+\")"
       );
+   if(verbose)
+      std::cout << "Processing script " << script << std::endl;
    boost::smatch what;
    std::string line;
    std::ifstream is(script);
    if(is.bad())
    {
-      std::cerr << "Could not open script " << script << std::endl;
-      return;
+      throw std::runtime_error("Could not open script file");
    }
    while(std::getline(is, line).good())
    {
       if(regex_match(line, what, scan_parser))
       {
          std::string f = unquote(what[1].str());
+         boost::filesystem::path base(script);
+         base.remove_filename();
+         base /= f;
+         f = base.file_string();
          scan_file(f.c_str());
       }
       else if(regex_match(line, what, scan_dir_parser))
@@ -542,6 +565,12 @@
          std::string d = unquote(what[1].str());
          std::string m = unquote(what[2].str());
          bool r = unquote(what[3].str()) == "true";
+         boost::filesystem::path base(script);
+         base.remove_filename();
+         base /= d;
+         d = base.directory_string();
+         if(verbose)
+            std::cout << "Scanning directory " << d << std::endl;
          scan_dir(d, m, r);
       }
       else if(regex_match(line, what, rewrite_parser))
@@ -577,8 +606,10 @@
             info.search_text = boost::regex(s, boost::regex::icase|boost::regex::perl);
          else
             info.search_text = boost::regex("\\<" + what.str(1) + "\\>", boost::regex::icase|boost::regex::perl);
-         if(what[3].matched)
-            info.search_id = unquote(what.str(3));
+
+         s = unquote(what.str(3));
+         if(s.size())
+            info.search_id = s;
          if(what[4].matched)
             info.category = unquote(what.str(4));
          index_terms.insert(info);
@@ -613,11 +644,7 @@
       }
 
       boost::tiny_xml::element_ptr navbar(new boost::tiny_xml::element());
-      navbar->name = "simplelist";
-      boost::tiny_xml::attribute attr;
-      attr.name = "type";
-      attr.value = "horiz";
-      navbar->attributes.push_back(attr);
+      navbar->name = "para";
       node->elements.push_back(navbar);
 
       char last_c = 0;
@@ -639,8 +666,9 @@
                listentry.reset(new boost::tiny_xml::element());
                listentry->name = "varlistentry";
                boost::tiny_xml::attribute id;
-               id.name = "ID";
+               id.name = "id";
                id.value = id_name;
+               listentry->attributes.push_back(id);
                boost::tiny_xml::element_ptr term(new boost::tiny_xml::element());
                term->name = "term";
                term->content.assign(&last_c, 1);
@@ -652,8 +680,10 @@
                sublist->name = "variablelist";
                listitem->elements.push_back(sublist);
                listentry->elements.push_back(listitem);
+
                boost::tiny_xml::element_ptr nav(new boost::tiny_xml::element());
-               nav->name = "member";
+               nav->name = "";
+               nav->content = " ";
                boost::tiny_xml::element_ptr navlink(new boost::tiny_xml::element());
                navlink->name = "link";
                navlink->content = term->content;
@@ -661,7 +691,7 @@
                navid.name = "linkend";
                navid.value = id_name;
                navlink->attributes.push_back(navid);
-               nav->elements.push_back(navlink);
+               navbar->elements.push_back(navlink);
                navbar->elements.push_back(nav);
             }
             boost::tiny_xml::element_ptr subentry(new boost::tiny_xml::element());
@@ -731,6 +761,8 @@
 
 int main(int argc, char* argv[])
 {
+   try{
+
    if(argc < 2)
       return help();
 
@@ -763,6 +795,15 @@
       {
          internal_indexes = true;
       }
+      else if(std::strcmp(argv[i], "--verbose") == 0)
+      {
+         verbose = true;
+      }
+      else
+      {
+         std::cerr << "Unrecognosed option " << argv[i] << std::endl;
+         return 1;
+      }
    }
 
    if(infile.empty())
@@ -800,5 +841,17 @@
    os << header << std::endl;
    boost::tiny_xml::write(*xml, os);
 
+   }
+   catch(const std::exception& e)
+   {
+      std::cerr << e.what() << std::endl;
+      return 1;
+   }
+   catch(const std::string& s)
+   {
+      std::cerr << s << std::endl;
+      return 1;
+   }
+
    return 0;
 }