aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/variable.cxx
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/variable.cxx
parent450c907b2a10c43748b8c15df20d92ff782269c7 (diff)
Fix $process.run() to properly handle proces_path_ex
Diffstat (limited to 'libbuild2/variable.cxx')
-rw-r--r--libbuild2/variable.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/libbuild2/variable.cxx b/libbuild2/variable.cxx
index e0502ef..9009fdc 100644
--- a/libbuild2/variable.cxx
+++ b/libbuild2/variable.cxx
@@ -1083,7 +1083,7 @@ namespace build2
const string& k ((i++)->value);
- // NOTE: see also build::script::parser::parse_program().
+ // NOTE: see also find_end() below.
//
if (k == "name")
{
@@ -1107,6 +1107,19 @@ namespace build2
return pp;
}
+ names::iterator value_traits<process_path_ex>::
+ find_end (names& ns)
+ {
+ 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;
+ }
+
+ return i;
+ }
+
static void
process_path_ex_assign (value& v, names&& ns, const variable* var)
{