aboutsummaryrefslogtreecommitdiff
path: root/build2/test/script/script.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-10-26 21:22:10 +0300
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:36 +0200
commit023d8d8b040d5fce821080b016b4ce25eb67550d (patch)
tree9524aa8cb18bcca33ec89f4cd4ef2b87fb3a65e8 /build2/test/script/script.cxx
parent5daf46f700217521e8ba90c4be0e0369105544df (diff)
Add support of merge redirect to testscript parser
Diffstat (limited to 'build2/test/script/script.cxx')
-rw-r--r--build2/test/script/script.cxx17
1 files changed, 12 insertions, 5 deletions
diff --git a/build2/test/script/script.cxx b/build2/test/script/script.cxx
index ac11546..8de023f 100644
--- a/build2/test/script/script.cxx
+++ b/build2/test/script/script.cxx
@@ -43,9 +43,10 @@ namespace build2
switch (r.type)
{
- case redirect_type::none: assert (false); break;
- case redirect_type::pass: o << '+'; break;
- case redirect_type::null: o << '-'; break;
+ case redirect_type::none: assert (false); break;
+ case redirect_type::pass: o << '+'; break;
+ case redirect_type::null: o << '-'; break;
+ case redirect_type::merge: o << '&' << r.fd; break;
case redirect_type::here_string:
{
@@ -140,7 +141,8 @@ namespace build2
{
case redirect_type::none:
case redirect_type::pass:
- case redirect_type::null: break;
+ case redirect_type::null:
+ case redirect_type::merge: break;
case redirect_type::here_string: new (&str) string (); break;
case redirect_type::here_document: new (&doc) doc_type (); break;
@@ -158,6 +160,8 @@ namespace build2
case redirect_type::pass:
case redirect_type::null: break;
+ case redirect_type::merge: fd = r.fd; break;
+
case redirect_type::here_string:
{
new (&str) string (move (r.str));
@@ -186,6 +190,8 @@ namespace build2
case redirect_type::pass:
case redirect_type::null: break;
+ case redirect_type::merge: fd = r.fd; break;
+
case redirect_type::here_string: new (&str) string (r.str); break;
case redirect_type::here_document: new (&doc) doc_type (r.doc); break;
case redirect_type::file:
@@ -203,7 +209,8 @@ namespace build2
{
case redirect_type::none:
case redirect_type::pass:
- case redirect_type::null: break;
+ case redirect_type::null:
+ case redirect_type::merge: break;
case redirect_type::here_string: str.~string (); break;
case redirect_type::here_document: doc.~doc_type (); break;