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]>.

Reply via email to