* Allow lists in package bindings, e.g.,

("srcs", [Relative("foo/bar.c"), Relative("foo/baz.h")])

  The result is an environment variable that contains the path names of the
  inputs separated by spaces (so this is not safe for values containing
  spaces).
This commit is contained in:
Eelco Dolstra 2003-08-18 16:32:55 +00:00
parent ebbb6ce578
commit 31e4aa6439
1 changed files with 12 additions and 0 deletions

View File

@ -169,6 +169,18 @@ static string processBinding(EvalState & state, Expr e, FState & fs)
if (ATmatch(e, "True")) return "1";
if (ATmatch(e, "False")) return "";
ATermList l;
if (ATmatch(e, "[<list>]", &l)) {
string s;
bool first = true;
while (!ATisEmpty(l)) {
if (!first) s = s + " "; else first = false;
s += processBinding(state, evalExpr(state, ATgetFirst(l)), fs);
l = ATgetNext(l);
}
return s;
}
throw badTerm("invalid package binding", e);
}