Author: almaw
Date: Tue Jun 19 08:50:24 2007
New Revision: 548773

URL: http://svn.apache.org/viewvc?view=rev&rev=548773
Log:
WICKET-501 - JavaScript comment stripping doesn't handle regexps

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java?view=diff&rev=548773&r1=548772&r2=548773
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
 Tue Jun 19 08:50:24 2007
@@ -44,6 +44,9 @@
                
        /** Inside a multi line comment */
        private final static int MULTILINE_COMMENT = 6;
+       
+       /** Inside a regular expression */
+       private final static int REG_EXP = 7;
 
        /**
         * Removes javascript comments and whitespaces from specified string.
@@ -86,6 +89,10 @@
                                        ++i;
                                        continue;
                                }
+                               else if (c == '/')
+                               {
+                                       state = REG_EXP;
+                               }
                                else if (Character.isWhitespace(c) && 
Character.isWhitespace(next))
                                {
                                        // ignore all whitespace characters 
after this one
@@ -136,6 +143,16 @@
                        if (state == STRING_DOUBLE_QUOTES)
                        {
                                if (c == '"' && prev != '\\')
+                               {
+                                       state = REGULAR_TEXT;
+                               }
+                               result.append(c);
+                               continue;
+                       }
+                       
+                       if (state == REG_EXP)
+                       {
+                               if (c == '/' && prev != '\\')
                                {
                                        state = REGULAR_TEXT;
                                }


Reply via email to