craigmcc 01/07/23 15:04:00 Modified: jasper/src/share/org/apache/jasper/compiler JspUtil.java Log: Fix an as-yet-unfiled bug related to escaping of '\' characters in runtime expressions (which was recently patched in response to Bugzilla #2602. The previous patch caused this code: <%= "\u9b5a" %> to create the (incorrect) Java code: out.print("\\9b5a"); in the generated servlet. Now, backslash escaping occurs *only* outside the context of a Java string literal, which is assumed to be correctly escaped according to the requirements of the Java language. TODO: Make sure that this does not break the fix for %\> quoting. Revision Changes Path 1.11 +6 -4 jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspUtil.java Index: JspUtil.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspUtil.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- JspUtil.java 2001/07/18 23:53:49 1.10 +++ JspUtil.java 2001/07/23 22:04:00 1.11 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspUtil.java,v 1.10 2001/07/18 23:53:49 horwat Exp $ - * $Revision: 1.10 $ - * $Date: 2001/07/18 23:53:49 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspUtil.java,v 1.11 2001/07/23 22:04:00 craigmcc Exp $ + * $Revision: 1.11 $ + * $Date: 2001/07/23 22:04:00 $ * * ==================================================================== * @@ -122,9 +122,11 @@ public static char[] escapeQuotes (char []chars) { CharArrayWriter caw = new CharArrayWriter(); + boolean inJavaString = false; for (int i = 0; i < chars.length; i++) { + if (chars[i] == '"') inJavaString = !inJavaString; // escape out the escape character - if (chars[i] == '\\') caw.write('\\'); + if (!inJavaString && (chars[i] == '\\')) caw.write('\\'); caw.write(chars[i]); } return caw.toCharArray();