You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/06/19 18:36:14 UTC
svn commit: r548790 -
/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
Author: almaw
Date: Tue Jun 19 09:36:13 2007
New Revision: 548790
URL: http://svn.apache.org/viewvc?view=rev&rev=548790
Log:
WICKET-501 - Back up to search for whether we're a regexp or not.
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=548790&r1=548789&r2=548790
==============================================================================
--- 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 09:36:13 2007
@@ -46,7 +46,7 @@
private final static int MULTILINE_COMMENT = 6;
/** Inside a regular expression */
- private final static int POSSIBLE_REG_EXP = 7;
+ private final static int REG_EXP = 7;
/**
* Removes javascript comments and whitespaces from specified string.
@@ -91,8 +91,25 @@
}
else if (c == '/')
{
- // Might also be a standard divide operator, though.
- state = POSSIBLE_REG_EXP;
+ // This might be a divide operator, or it might be a regular expression.
+ // Work out if it's a regular expression by finding the previous non-whitespace char, which
+ // will be either '=' or '('. If it's not, it's just a divide operator.
+ int idx = i - 1;
+ while (idx > 0)
+ {
+ char tmp = original.charAt(idx);
+ if (Character.isWhitespace(tmp))
+ {
+ idx--;
+ continue;
+ }
+ if (tmp == '=' || tmp == '(')
+ {
+ state = REG_EXP;
+ break;
+ }
+ break;
+ }
}
else if (Character.isWhitespace(c) && Character.isWhitespace(next))
{
@@ -151,13 +168,9 @@
continue;
}
- if (state == POSSIBLE_REG_EXP)
+ if (state == REG_EXP)
{
if (c == '/' && prev != '\\')
- {
- state = REGULAR_TEXT;
- }
- if (c == '\r' || c == '\n')
{
state = REGULAR_TEXT;
}