Resolve macros in dictionary values

refs #7311
This commit is contained in:
Michael Friedrich 2015-02-11 15:58:59 +01:00
parent 2cd5f3516d
commit 0d18b96c39
1 changed files with 13 additions and 0 deletions

View File

@ -59,6 +59,19 @@ Value MacroProcessor::ResolveMacros(const Value& str, const ResolverList& resolv
}
result = resultArr;
} else if (str.IsObjectType<Dictionary>()) {
Dictionary::Ptr resultDict = new Dictionary();
Dictionary::Ptr dict = str;
ObjectLock olock(dict);
BOOST_FOREACH(const Dictionary::Pair& kv, dict) {
/* Note: don't escape macros here. */
resultDict->Set(kv.first, InternalResolveMacros(kv.second, resolvers, cr, missingMacro,
EscapeCallback(), resolvedMacros, useResolvedMacros));
}
result = resultDict;
} else if (str.IsObjectType<Function>()) {
result = EvaluateFunction(str, resolvers, cr, missingMacro, escapeFn, resolvedMacros, useResolvedMacros, 0);
} else {