Author: cbrisson
Date: Sat Nov 6 20:33:17 2010
New Revision: 1032135
URL: http://svn.apache.org/viewvc?rev=1032135&view=rev
Log:
merge Jarkko patch from trunk into engine-2.x for VELOCITY-785
Added:
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity785TestCase.java
- copied unchanged from r1032134,
velocity/engine/trunk/src/test/org/apache/velocity/test/issues/Velocity785TestCase.java
Modified:
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/
(props changed)
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Stop.java
(props changed)
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/test/java/
(props changed)
Propchange: velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 6 20:33:17 2010
@@ -1,2 +1,3 @@
/velocity/engine/branches/2.0_Exp/src/java:958513,991637-995742
/velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java:958513
+/velocity/engine/trunk/src/java:1032134
Propchange:
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Stop.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 6 20:33:17 2010
@@ -1 +1,2 @@
/velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/directive/Stop.java:958513
+/velocity/engine/trunk/src/java/org/apache/velocity/runtime/directive/Stop.java:1032134
Modified:
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
URL:
http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java?rev=1032135&r1=1032134&r2=1032135&view=diff
==============================================================================
---
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
(original)
+++
velocity/engine/branches/2.0_Exp/velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ASTStringLiteral.java
Sat Nov 6 20:33:17 2010
@@ -118,7 +118,7 @@ public class ASTStringLiteral extends Si
{
// replace double-double quotes like "" with a single double quote
"
// replace double single quotes '' with a single quote '
- image = replaceQuotes(image);
+ image = replaceQuotes(image, img.charAt(0));
}
/**
@@ -219,15 +219,21 @@ public class ASTStringLiteral extends Si
}
/**
- * Replaces double double-quotes with a single double quote ("" to ")
- * Replaces double single quotes with a single quote ('' to ')
+ * Replaces double double-quotes with a single double quote ("" to ").
+ * Replaces double single quotes with a single quote ('' to ').
+ *
+ * @param s StringLiteral without the surrounding quotes
+ * @param literalQuoteChar char that starts the StringLiteral (" or ')
*/
- private String replaceQuotes(String s)
+ private String replaceQuotes(String s, char literalQuoteChar)
{
- if( s.indexOf("\"") == -1 && s.indexOf("'") == -1 )
+ if( (literalQuoteChar == '"' && s.indexOf("\"") == -1) ||
+ (literalQuoteChar == '\'' && s.indexOf("'") == -1) )
+ {
return s;
+ }
- StrBuilder result = new StrBuilder();
+ StrBuilder result = new StrBuilder(s.length());
char prev = ' ';
for(int i = 0, is = s.length(); i < is; i++)
{
@@ -237,7 +243,11 @@ public class ASTStringLiteral extends Si
if( i + 1 < is )
{
char next = s.charAt(i + 1);
- if( (next == '"' && c == '"') || (next == '\'' && c == '\'') )
+ // '""' -> "", "''" -> ''
+ // thus it is not necessary to double quotes if
the "surrounding" quotes
+ // of the StringLiteral are different. See
VELOCITY-785
+ if( (literalQuoteChar == '"' && (next == '"' && c == '"')) ||
+ (literalQuoteChar == '\'' && (next == '\''
&& c == '\'')) )
{
i++;
}
Propchange: velocity/engine/branches/2.0_Exp/velocity-engine-core/src/test/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Nov 6 20:33:17 2010
@@ -1,3 +1,4 @@
/velocity/engine/branches/2.0_Exp/src/test:991639-992140
/velocity/engine/branches/2.0_Exp/velocity-engine-core/src/test/java:958513,991637-995742
+/velocity/engine/trunk/src/test:1032134
/velocity/engine/trunk/velocity-engine-core/src/test/java:992133