kinman 2002/07/18 13:18:10 Modified: jasper2/src/share/org/apache/jasper/compiler JspReader.java Parser.java Log: - Fixed 10713. Modified on patch by [EMAIL PROTECTED] (Henner Zeller) Revision Changes Path 1.7 +33 -2 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspReader.java Index: JspReader.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/JspReader.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- JspReader.java 16 Jul 2002 19:30:51 -0000 1.6 +++ JspReader.java 18 Jul 2002 20:18:10 -0000 1.7 @@ -393,14 +393,45 @@ * otherwise. */ public Mark skipUntil(String limit) throws JasperException { + Mark ret = null; + int limlen = limit.length(); + int ch; + + skip: + for (ret = mark(), ch = nextChar() ; ch != -1 ; + ret = mark(), ch = nextChar()) { + if (ch == limit.charAt(0)) { + for (int i = 1 ; i < limlen ; i++) { + if (peekChar() == limit.charAt(i)) + nextChar(); + else + continue skip; + } + return ret; + } + } + return null; + } + + /** + * Skip until the given string is matched in the stream, but ignoring + * chars initially escaped by a '\'. + * When returned, the context is positioned past the end of the match. + * @param s The String to match. + * @return A non-null <code>Mark</code> instance (positioned immediately + * before the search string) if found, <strong>null</strong> + * otherwise. + */ + public Mark skipUntilIgnoreEsc(String limit) throws JasperException { Mark ret = null; int limlen = limit.length(); int ch; + int prev = 'x'; // Doesn't matter skip: for (ret = mark(), ch = nextChar() ; ch != -1 ; - ret = mark(), ch = nextChar()) { - if (ch == limit.charAt(0)) { + ret = mark(), prev = ch, ch = nextChar()) { + if (ch == limit.charAt(0) && prev != '\\') { for (int i = 1 ; i < limlen ; i++) { if (peekChar() == limit.charAt(i)) nextChar(); 1.10 +4 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java Index: Parser.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Parser.java 17 Jul 2002 20:06:59 -0000 1.9 +++ Parser.java 18 Jul 2002 20:18:10 -0000 1.10 @@ -224,7 +224,7 @@ */ private String parseAttributeValue(String watch) throws JasperException { Mark start = reader.mark(); - Mark stop = reader.skipUntil(watch); + Mark stop = reader.skipUntilIgnoreEsc(watch); if (stop == null) { err.jspError(start, "jsp.error.attribute.unterminated", watch); }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>