[richfaces-svn-commits] JBoss Rich Faces SVN: r9152 - trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Jun 20 15:31:34 EDT 2008


Author: nbelaevski
Date: 2008-06-20 15:31:34 -0400 (Fri, 20 Jun 2008)
New Revision: 9152

Modified:
   trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
Log:
RendererUtils.escapeJavaScript() method updated

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java	2008-06-20 19:31:02 UTC (rev 9151)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/RendererUtils.java	2008-06-20 19:31:34 UTC (rev 9152)
@@ -949,16 +949,34 @@
 	
 	public String escapeJavaScript(Object o) {
 		if (o != null) {
+			StringBuilder result = new StringBuilder();
 			JSEncoder encoder = new JSEncoder();
-			StringBuilder result = new StringBuilder();
-			String string = o.toString();
-			int length = string.length();
+
+			char chars[] = o.toString().toCharArray();
+            int start = 0;
+            int end = chars.length;
+			for (int x = start; x < end; x++) {
+                char c = chars[x];
+                
+                if (encoder.compile(c)) {
+                    continue;
+                }
+                
+                if (start != x) {
+                	result.append(chars, start, x - start );
+                }
+                
+                result.append(encoder.encode(c));
+                start = x + 1;
+                
+                continue;
+            }
 			
-			for (int i = 0; i < length; i++) {
-				result.append(encoder.encode(string.charAt(i)));
-			}
-
-			return result.toString();
+            if (start != end) {
+            	result.append(chars, start, end - start);
+            }
+			
+            return result.toString();
 		} else {
 			return null;
 		}




More information about the richfaces-svn-commits mailing list