$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r61382 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/graph boost/integer boost/interprocess boost/intrusive boost/iostreams boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/array/doc libs/array/test libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/math/doc/sf_and_dist libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/range libs/regex libs/regex/doc libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave libs/wave/test/testwave libs/wave/test/testwave/testfiles more people status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/release tools/wave wiki
From: hartmut.kaiser_at_[hidden]
Date: 2010-04-18 16:44:56
Author: hkaiser
Date: 2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
New Revision: 61382
URL: http://svn.boost.org/trac/boost/changeset/61382
Log:
Wave: fixing regression test failures
Properties modified: 
   branches/release/   (props changed)
   branches/release/CMakeLists.txt   (props changed)
   branches/release/INSTALL   (props changed)
   branches/release/Jamroot   (props changed)
   branches/release/LICENSE_1_0.txt   (props changed)
   branches/release/boost/   (props changed)
   branches/release/boost-build.jam   (props changed)
   branches/release/boost.css   (props changed)
   branches/release/boost.png   (props changed)
   branches/release/boost/algorithm/string/   (props changed)
   branches/release/boost/archive/   (props changed)
   branches/release/boost/array.hpp   (props changed)
   branches/release/boost/bimap/   (props changed)
   branches/release/boost/config/   (props changed)
   branches/release/boost/detail/   (props changed)
   branches/release/boost/filesystem/   (props changed)
   branches/release/boost/functional/hash/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/graph/   (props changed)
   branches/release/boost/integer/   (props changed)
   branches/release/boost/interprocess/   (props changed)
   branches/release/boost/intrusive/   (props changed)
   branches/release/boost/iostreams/   (props changed)
   branches/release/boost/math/   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/program_options/   (props changed)
   branches/release/boost/property_tree/   (props changed)
   branches/release/boost/python/   (props changed)
   branches/release/boost/range/   (props changed)
   branches/release/boost/regex/   (props changed)
   branches/release/boost/serialization/   (props changed)
   branches/release/boost/serialization/factory.hpp   (props changed)
   branches/release/boost/signals/   (props changed)
   branches/release/boost/signals2/   (props changed)
   branches/release/boost/spirit/   (props changed)
   branches/release/boost/spirit/home/   (props changed)
   branches/release/boost/spirit/home/karma/   (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp   (props changed)
   branches/release/boost/statechart/   (props changed)
   branches/release/boost/system/   (props changed)
   branches/release/boost/thread/   (props changed)
   branches/release/boost/thread.hpp   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/unordered/   (props changed)
   branches/release/boost/utility/   (props changed)
   branches/release/boost/utility/value_init.hpp   (props changed)
   branches/release/boost/uuid/   (props changed)
   branches/release/boost/variant/   (props changed)
   branches/release/boost/version.hpp   (props changed)
   branches/release/boost/wave/   (props changed)
   branches/release/bootstrap.bat   (props changed)
   branches/release/bootstrap.sh   (props changed)
   branches/release/doc/   (props changed)
   branches/release/index.htm   (props changed)
   branches/release/index.html   (props changed)
   branches/release/libs/   (props changed)
   branches/release/libs/array/doc/array.xml   (props changed)
   branches/release/libs/array/test/array0.cpp   (props changed)
   branches/release/libs/bimap/   (props changed)
   branches/release/libs/config/   (props changed)
   branches/release/libs/filesystem/   (props changed)
   branches/release/libs/functional/hash/   (props changed)
   branches/release/libs/fusion/   (props changed)
   branches/release/libs/graph_parallel/   (props changed)
   branches/release/libs/integer/   (props changed)
   branches/release/libs/interprocess/   (props changed)
   branches/release/libs/intrusive/   (props changed)
   branches/release/libs/iostreams/   (props changed)
   branches/release/libs/libraries.htm   (props changed)
   branches/release/libs/maintainers.txt   (props changed)
   branches/release/libs/math/   (props changed)
   branches/release/libs/math/doc/sf_and_dist/   (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html   (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst   (props changed)
   branches/release/libs/numeric/ublas/   (props changed)
   branches/release/libs/numeric/ublas/doc/   (props changed)
   branches/release/libs/program_options/   (props changed)
   branches/release/libs/property_tree/   (props changed)
   branches/release/libs/python/   (props changed)
   branches/release/libs/range/   (props changed)
   branches/release/libs/regex/   (props changed)
   branches/release/libs/regex/doc/   (props changed)
   branches/release/libs/serialization/   (props changed)
   branches/release/libs/signals/   (props changed)
   branches/release/libs/signals2/   (props changed)
   branches/release/libs/spirit/   (props changed)
   branches/release/libs/spirit/classic/example/   (props changed)
   branches/release/libs/spirit/doc/   (props changed)
   branches/release/libs/spirit/example/   (props changed)
   branches/release/libs/spirit/phoenix/   (props changed)
   branches/release/libs/spirit/test/   (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp   (props changed)
   branches/release/libs/statechart/   (props changed)
   branches/release/libs/static_assert/   (props changed)
   branches/release/libs/system/   (props changed)
   branches/release/libs/thread/   (props changed)
   branches/release/libs/timer/   (props changed)
   branches/release/libs/tr1/   (props changed)
   branches/release/libs/type_traits/   (props changed)
   branches/release/libs/unordered/   (props changed)
   branches/release/libs/utility/   (props changed)
   branches/release/libs/utility/swap.html   (props changed)
   branches/release/libs/utility/swap/test/std_bitset.cpp   (props changed)
   branches/release/libs/utility/value_init.htm   (props changed)
   branches/release/libs/utility/value_init_test.cpp   (props changed)
   branches/release/libs/uuid/   (props changed)
   branches/release/libs/wave/   (props changed)
   branches/release/more/   (props changed)
   branches/release/people/   (props changed)
   branches/release/rst.css   (props changed)
   branches/release/status/   (props changed)
   branches/release/status/Jamfile.v2   (props changed)
   branches/release/tools/   (props changed)
   branches/release/tools/bcp/   (props changed)
   branches/release/tools/boostbook/   (props changed)
   branches/release/tools/build/v2/   (props changed)
   branches/release/tools/inspect/   (props changed)
   branches/release/tools/quickbook/   (props changed)
   branches/release/tools/regression/   (props changed)
   branches/release/tools/release/   (props changed)
   branches/release/tools/wave/   (props changed)
   branches/release/wiki/   (props changed)
Text files modified: 
   branches/release/libs/wave/test/testwave/testfiles/t_2_019.cpp |     2                                         
   branches/release/libs/wave/test/testwave/testfiles/t_6_063.cpp |     2                                         
   branches/release/libs/wave/test/testwave/testfiles/t_6_067.cpp |     2                                         
   branches/release/libs/wave/test/testwave/testwave_app.cpp      |    54 +++++++++++++++++++++++++++++++++++++-- 
   branches/release/libs/wave/test/testwave/testwave_app.hpp      |     1                                         
   5 files changed, 55 insertions(+), 6 deletions(-)
Modified: branches/release/libs/wave/test/testwave/testfiles/t_2_019.cpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testfiles/t_2_019.cpp	(original)
+++ branches/release/libs/wave/test/testwave/testfiles/t_2_019.cpp	2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
@@ -28,7 +28,7 @@
 
 //H 10: t_2_019.cpp(13): #include "t_2_019_001.hpp"
 //H 04: "t_2_019_001.hpp"
-//H 05: t_2_019_001.hpp ($B(t_2_019_001.hpp))
+//H 05: $S(t_2_019_001.hpp) ($B(t_2_019_001.hpp))
 //H 10: t_2_019_001.hpp(10): #pragma
 //H 20: t_2_019_001.hpp(10): #pragma: $B(t_2_019_001.hpp)
 //H 06: 
Modified: branches/release/libs/wave/test/testwave/testfiles/t_6_063.cpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testfiles/t_6_063.cpp	(original)
+++ branches/release/libs/wave/test/testwave/testfiles/t_6_063.cpp	2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
@@ -24,7 +24,7 @@
 
 //H 10: t_6_063.cpp(20): #include "t_6_063.hpp"
 //H 04: "t_6_063.hpp"
-//H 05: t_6_063.hpp ($B(t_6_063.hpp))
+//H 05: $S(t_6_063.hpp) ($B(t_6_063.hpp))
 //H 18: boost::wave::preprocess_exception
 
 /*-
Modified: branches/release/libs/wave/test/testwave/testfiles/t_6_067.cpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testfiles/t_6_067.cpp	(original)
+++ branches/release/libs/wave/test/testwave/testfiles/t_6_067.cpp	2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
@@ -24,7 +24,7 @@
 
 //H 10: t_6_067.cpp(20): #include "t_6_067.hpp"
 //H 04: "t_6_067.hpp"
-//H 05: t_6_067.hpp ($B(t_6_067.hpp))
+//H 05: $S(t_6_067.hpp) ($B(t_6_067.hpp))
 //H 18: boost::wave::lexing_exception
 
 /*-
Modified: branches/release/libs/wave/test/testwave/testwave_app.cpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testwave_app.cpp	(original)
+++ branches/release/libs/wave/test/testwave/testwave_app.cpp	2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
@@ -188,7 +188,7 @@
                 break;
 
             case 'P':       // insert full path
-            case 'B':       // same as 'P', but forward slashs on Windows
+            case 'B':       // same as 'P', but forward slashes on Windows
                 {
                     fs::path fullpath (
                         fs::complete(
@@ -229,8 +229,56 @@
                                 boost::wave::util::native_file_string(fullpath));
                         }
                         else {
-                            full_result += 
-                                escape_lit(fullpath.string());
+                            full_result += escape_lit(fullpath.string());
+                        }
+                        pos1 = expected.find_first_of ("$", pos = pos1 + 2);
+                    }
+                }
+                break;
+
+            case 'R':       // insert relative file name
+            case 'S':       // same as 'R', but forward slashes on Windows 
+                {
+                    fs::path relpath;
+                    boost::wave::util::as_relative_to(
+                        boost::wave::util::create_path(filename), 
+                        boost::wave::util::current_path(),
+                        relpath);
+
+                    if ('(' == expected[pos1+2]) {
+                    // the $R(basename) syntax is used
+                        std::size_t p = expected.find_first_of(")", pos1+1);
+                        if (std::string::npos == p) {
+                            std::cerr 
+                                << "testwave: unmatched parenthesis in $R"
+                                    " directive" << std::endl;
+                            return false;
+                        }
+                        std::string base = expected.substr(pos1+3, p-pos1-3);
+                        relpath = boost::wave::util::branch_path(relpath) / 
+                            boost::wave::util::create_path(base);
+                        full_result += expected.substr(pos, pos1-pos);
+                        if ('R' == expected[pos1+1]) {
+                            full_result += escape_lit(
+                                boost::wave::util::native_file_string(
+                                    boost::wave::util::normalize(relpath)));
+                        }
+                        else {
+                            full_result += escape_lit(
+                                boost::wave::util::normalize(relpath).string());
+                        }
+                        pos1 = expected.find_first_of ("$", 
+                            pos = pos1 + 4 + base.size());
+                    }
+                    else {
+                    // the $R is used on its own
+                        full_result += expected.substr(pos, pos1-pos);
+                        if ('R' == expected[pos1+1]) {
+                            full_result += escape_lit(
+                                boost::wave::util::native_file_string(relpath));
+                        }
+                        else {
+                            full_result += escape_lit(relpath.string());
                         }
                         pos1 = expected.find_first_of ("$", pos = pos1 + 2);
                     }
Modified: branches/release/libs/wave/test/testwave/testwave_app.hpp
==============================================================================
--- branches/release/libs/wave/test/testwave/testwave_app.hpp	(original)
+++ branches/release/libs/wave/test/testwave/testwave_app.hpp	2010-04-18 16:44:55 EDT (Sun, 18 Apr 2010)
@@ -98,6 +98,7 @@
     //      $E: to the result of preprocessing the given expression
     //      $F: to the passed full filepath 
     //      $P: to the full path
+    //      $R: to the relative path
     //      $V: to the current Boost version number
     bool got_expected_result(std::string const& filename, 
         std::string const& result, std::string& expected);