This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.scripting.sightly.compiler-1.0.10 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler.git
commit 5c2cb2188fb912387ed93a4833b512ec37f8b4a5 Author: Radu Cotescu <[email protected]> AuthorDate: Tue Jun 6 14:16:04 2017 +0000 SLING-6866 - HTL doesn't allow to overwrite the context for data-sly-text git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/compiler@1797789 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/scripting/sightly/impl/plugin/TextPlugin.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TextPlugin.java b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TextPlugin.java index a2c03fb..f7dda86 100644 --- a/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TextPlugin.java +++ b/src/main/java/org/apache/sling/scripting/sightly/impl/plugin/TextPlugin.java @@ -18,8 +18,11 @@ ******************************************************************************/ package org.apache.sling.scripting.sightly.impl.plugin; +import org.apache.sling.scripting.sightly.compiler.RuntimeFunction; import org.apache.sling.scripting.sightly.compiler.commands.OutputVariable; +import org.apache.sling.scripting.sightly.compiler.expression.ExpressionNode; import org.apache.sling.scripting.sightly.compiler.expression.MarkupContext; +import org.apache.sling.scripting.sightly.compiler.expression.nodes.RuntimeCall; import org.apache.sling.scripting.sightly.impl.compiler.Patterns; import org.apache.sling.scripting.sightly.compiler.commands.VariableBinding; import org.apache.sling.scripting.sightly.impl.compiler.PushStream; @@ -45,7 +48,7 @@ public class TextPlugin extends AbstractPlugin { public void beforeChildren(PushStream stream) { String variable = compilerContext.generateVariable("textContent"); stream.write(new VariableBinding.Start(variable, - compilerContext.adjustToContext(expression, MarkupContext.TEXT, ExpressionContext.TEXT).getRoot())); + adjustContext(compilerContext, expression, MarkupContext.TEXT, ExpressionContext.TEXT).getRoot())); stream.write(new OutputVariable(variable)); stream.write(VariableBinding.END); Patterns.beginStreamIgnore(stream); @@ -57,4 +60,16 @@ public class TextPlugin extends AbstractPlugin { } }; } + + private Expression adjustContext(CompilerContext compilerContext, Expression expression, MarkupContext markupContext, + ExpressionContext expressionContext) { + ExpressionNode root = expression.getRoot(); + if (root instanceof RuntimeCall) { + RuntimeCall runtimeCall = (RuntimeCall) root; + if (runtimeCall.getFunctionName().equals(RuntimeFunction.XSS)) { + return expression; + } + } + return compilerContext.adjustToContext(expression, markupContext, expressionContext); + } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
