From f16fe2af8d59fef156c29077a240a832d3e60ef2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 10 Jun 2010 10:29:50 +0000 Subject: * builtins.toXML: propagate the string context. This is a regression from the old ATerm-based evaluator. --- src/libexpr/eval.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/libexpr/eval.cc') diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index f95df5e4d6fb..eb1d8d432c69 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -902,12 +902,18 @@ string EvalState::forceString(Value & v) } -string EvalState::forceString(Value & v, PathSet & context) +void copyContext(const Value & v, PathSet & context) { - string s = forceString(v); if (v.string.context) for (const char * * p = v.string.context; *p; ++p) context.insert(*p); +} + + +string EvalState::forceString(Value & v, PathSet & context) +{ + string s = forceString(v); + copyContext(v, context); return s; } @@ -938,9 +944,7 @@ string EvalState::coerceToString(Value & v, PathSet & context, string s; if (v.type == tString) { - if (v.string.context) - for (const char * * p = v.string.context; *p; ++p) - context.insert(*p); + copyContext(v, context); return v.string.s; } -- cgit 1.4.1