aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/build/script
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-06-03 14:38:39 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-06-03 16:47:34 +0300
commitf50d0d58c8eb659e803282e19cf15398e3a8e373 (patch)
treead9d6a434661cb08a89b8871601d4dc55235a8ae /libbuild2/build/script
parent450c907b2a10c43748b8c15df20d92ff782269c7 (diff)
Fix $process.run() to properly handle proces_path_ex
Diffstat (limited to 'libbuild2/build/script')
-rw-r--r--libbuild2/build/script/parser.cxx12
1 files changed, 3 insertions, 9 deletions
diff --git a/libbuild2/build/script/parser.cxx b/libbuild2/build/script/parser.cxx
index 2a0555e..c4c4b03 100644
--- a/libbuild2/build/script/parser.cxx
+++ b/libbuild2/build/script/parser.cxx
@@ -475,18 +475,12 @@ namespace build2
{
// Find the end of the value.
//
- auto b (ns.begin ()), i (b), e (ns.end ());
- for (i += i->pair ? 2 : 1; i != e && i->pair; i += 2)
- {
- if (!i->simple () ||
- (i->value != "name" && i->value != "checksum"))
- break;
- }
+ auto b (ns.begin ());
+ auto i (value_traits<process_path_ex>::find_end (ns));
if (b->pair || i != b + 1) // First is a pair or pairs after.
{
- pp_ns.insert (pp_ns.end (),
- make_move_iterator (b), make_move_iterator (i));
+ pp_ns = names (make_move_iterator (b), make_move_iterator (i));
ns.erase (b, i);