Author: bago Date: Thu Mar 31 11:07:54 2011 New Revision: 1087252 URL: http://svn.apache.org/viewvc?rev=1087252&view=rev Log: Fix backslash parsing inside quoted text (JSIEVE-74). Patch contributed by Vishal Mahajan: thank you.
Modified: james/jsieve/trunk/main/src/main/jjtree/sieve/sieve.jjt james/jsieve/trunk/main/src/test/java/org/apache/jsieve/HeaderTest.java james/jsieve/trunk/main/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java Modified: james/jsieve/trunk/main/src/main/jjtree/sieve/sieve.jjt URL: http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/main/jjtree/sieve/sieve.jjt?rev=1087252&r1=1087251&r2=1087252&view=diff ============================================================================== --- james/jsieve/trunk/main/src/main/jjtree/sieve/sieve.jjt (original) +++ james/jsieve/trunk/main/src/main/jjtree/sieve/sieve.jjt Thu Mar 31 11:07:54 2011 @@ -121,10 +121,14 @@ TOKEN : /* LITERALS */ // note that newlines and other characters are all allowed strings < QUOTED_STRING: "\"" - (~["\""]|"\\\"")* + (~["\"","\\"]|<ESCAPED_CHAR>)* "\"" > | + <#ESCAPED_CHAR: + ("\\" ("\\"|"\"")) + > +| // multi-line = "text:" *(SP / HTAB) (hash-comment / CRLF) // *(multi-line-literal / multi-line-dotstuff) // "." CRLF Modified: james/jsieve/trunk/main/src/test/java/org/apache/jsieve/HeaderTest.java URL: http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/test/java/org/apache/jsieve/HeaderTest.java?rev=1087252&r1=1087251&r2=1087252&view=diff ============================================================================== --- james/jsieve/trunk/main/src/test/java/org/apache/jsieve/HeaderTest.java (original) +++ james/jsieve/trunk/main/src/test/java/org/apache/jsieve/HeaderTest.java Thu Mar 31 11:07:54 2011 @@ -329,11 +329,11 @@ public class HeaderTest extends TestCase */ public void testSpecialCharsEscapingInMatch() { boolean isTestPassed = false; - String script = "if header :matches \"X-Caffeine\" \"my,\\\\,?,\\?,\\\\?,*,\\*,\\\\*,pattern\" {throwTestException;}"; + String script = "if header :matches \"X-Caffeine\" \"my,\\\\,?,\\\\?,*,\\\\*,pattern\" {throwTestException;}"; try { SieveMailAdapter mail = (SieveMailAdapter) JUnitUtils.createMail(); mail.getMessage().addHeader("X-Caffeine", - "my,\\,x,x,?,foo,bar,*,pattern"); + "my,\\,x,?,foo,*,pattern"); JUnitUtils.interpret(mail, script); } catch (MessagingException e) { } catch (ThrowTestException.TestException e) { @@ -349,11 +349,11 @@ public class HeaderTest extends TestCase */ public void testSpecialCharsEscapingInMatchFalse() { boolean isTestPassed = false; - String script = "if header :matches \"X-Caffeine\" \"my,?,\\?,\\\\?,*,\\*,\\\\*,pattern\" {throwTestException;}"; + String script = "if header :matches \"X-Caffeine\" \"my,?,\\\\?,*,\\\\*,pattern\" {throwTestException;}"; try { SieveMailAdapter mail = (SieveMailAdapter) JUnitUtils.createMail(); mail.getMessage().addHeader("X-Caffeine", - "my,x,x,q,foo,bar,*,pattern"); + "my,x,q,foo,*,pattern"); JUnitUtils.interpret(mail, script); isTestPassed = true; } catch (MessagingException e) { Modified: james/jsieve/trunk/main/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java URL: http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java?rev=1087252&r1=1087251&r2=1087252&view=diff ============================================================================== --- james/jsieve/trunk/main/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java (original) +++ james/jsieve/trunk/main/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java Thu Mar 31 11:07:54 2011 @@ -100,7 +100,7 @@ public class SieveParserVisitorImplQuote public void testVisitASTstringObjectMultiSlashQuoted() throws Exception { - node = stringNode("\"v\\\\al\\\\u\\e\\\\\""); + node = stringNode("\"v\\\\al\\\\ue\\\\\""); visitor.visit(node, data); assertEquals("Data value added after quotes stripped", 1, data.size()); assertEquals("Data value added after quotes stripped", "v\\al\\ue\\", --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org