You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2006/09/20 20:16:35 UTC

svn commit: r448284 - in /myfaces/tomahawk/trunk/core/src: main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java

Author: mmarinschek
Date: Wed Sep 20 11:16:34 2006
New Revision: 448284

URL: http://svn.apache.org/viewvc?view=rev&rev=448284
Log:
fix for TOMAHAWK-676: ReducedHTMLParser not handling escaped characters in attribute values, thanks to Peter Mahoney

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java
    myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java?view=diff&rev=448284&r1=448283&r2=448284
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParser.java Wed Sep 20 11:16:34 2006
@@ -291,6 +291,12 @@
             }
             else
             {
+            	if (escaping)
+            	{
+                    stringBuf.append('\\');
+                    escaping = false;            		
+            	}
+
                 stringBuf.append(c);
             }
         }

Modified: myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java?view=diff&rev=448284&r1=448283&r2=448284
==============================================================================
--- myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java (original)
+++ myfaces/tomahawk/trunk/core/src/test/java/org/apache/myfaces/renderkit/html/util/ReducedHTMLParserTest.java Wed Sep 20 11:16:34 2006
@@ -274,6 +274,28 @@
         assertEquals("String correctly parsed", "don't quote me", str1);
     }
 
+    public void testConsumeStringEscapedNonQuote()
+    {
+        char quoteMark = '"';
+
+        // build literal sequence 'don\'t quote me' not-in-the-string
+        StringBuffer buf = new StringBuffer();
+        buf.append(quoteMark);
+        buf.append("don\\'t quote me");
+        buf.append(quoteMark);
+        buf.append(" not-in-the-string");
+
+        CallbackListener listener = new ParseCallbackListener();
+        ReducedHTMLParser parser = new ReducedHTMLParser(buf, listener);
+
+        // Note that the consumeString method always expects the leading quote to
+        // have been consumed already..
+
+        parser.consumeMatch("\"");
+        String str1 = parser.consumeString('"');
+        assertEquals("String correctly parsed", "don\\'t quote me", str1);
+    }
+    
     public void testConsumeStringEscapedEscape()
     {
         char quoteMark = '\'';