diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-06-03 14:38:39 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2020-06-03 16:47:34 +0300 |
commit | f50d0d58c8eb659e803282e19cf15398e3a8e373 (patch) | |
tree | ad9d6a434661cb08a89b8871601d4dc55235a8ae /libbuild2/variable.cxx | |
parent | 450c907b2a10c43748b8c15df20d92ff782269c7 (diff) |
Fix $process.run() to properly handle proces_path_ex
Diffstat (limited to 'libbuild2/variable.cxx')
-rw-r--r-- | libbuild2/variable.cxx | 15 |
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) { |