kinman 02/04/03 18:34:01
Modified: jasper2/src/share/org/apache/jasper/compiler
CommandLineCompiler.java JspReader.java Parser.java
Log:
- Handle quoted string "%\>" in scripting elements.
Revision Changes Path
1.2 +4 -4
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/CommandLineCompiler.java
Index: CommandLineCompiler.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/CommandLineCompiler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CommandLineCompiler.java 28 Mar 2002 18:46:15 -0000 1.1
+++ CommandLineCompiler.java 4 Apr 2002 02:34:01 -0000 1.2
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/CommandLineCompiler.java,v
1.1 2002/03/28 18:46:15 kinman Exp $
- * $Revision: 1.1 $
- * $Date: 2002/03/28 18:46:15 $
+ * $Header:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/CommandLineCompiler.java,v
1.2 2002/04/04 02:34:01 kinman Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/04/04 02:34:01 $
*
* The Apache Software License, Version 1.1
*
@@ -189,7 +189,7 @@
return modifiedClassName.toString();
}
- private static final String mangleChar(char ch) {
+ public static final String mangleChar(char ch) {
if(ch == File.separatorChar) {
ch = '/';
1.2 +37 -0
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JspReader.java 28 Mar 2002 18:46:16 -0000 1.1
+++ JspReader.java 4 Apr 2002 02:34:01 -0000 1.2
@@ -280,6 +280,43 @@
return caw.toCharArray();
}
+ /**
+ * Get the text for a scripting element from the stream. It handles
+ * the escape string "%\>".
+ *
+ * @param start The starting postion to read
+ * @param stop The ending (exclusive) postion to read
+ * @return The resultant text
+ */
+ char[] getScriptingText(Mark start, Mark stop) throws JasperException {
+ Mark oldstart = mark();
+ reset(start);
+ CharArrayWriter caw = new CharArrayWriter();
+ while (!stop.equals(mark())) {
+ int c = nextChar();
+ caw.write(c);
+ if (c == '%') {
+ if (stop.equals(mark()))
+ break;
+ int c2 = nextChar();
+ if (stop.equals(mark())) {
+ caw.write(c2);
+ break;
+ }
+ int c3 = nextChar();
+ if (c2 == '\\' && c3 == '>') {
+ caw.write('>');
+ } else {
+ caw.write(c2);
+ caw.write(c3);
+ }
+ }
+ }
+ caw.close();
+ reset(oldstart);
+ return caw.toCharArray();
+ }
+
public int peekChar() {
return current.stream[current.cursor];
}
1.2 +6 -6
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Parser.java 28 Mar 2002 18:46:16 -0000 1.1
+++ Parser.java 4 Apr 2002 02:34:01 -0000 1.2
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v
1.1 2002/03/28 18:46:16 kinman Exp $
- * $Revision: 1.1 $
- * $Date: 2002/03/28 18:46:16 $
+ * $Header:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Parser.java,v
1.2 2002/04/04 02:34:01 kinman Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/04/04 02:34:01 $
*
* ====================================================================
*
@@ -246,7 +246,7 @@
err.jspError(start, "jsp.error.unterminated", "<%!");
}
- new Node.Declaration(reader.getText(start, stop), start, parent);
+ new Node.Declaration(reader.getScriptingText(start, stop), start, parent);
}
/*
@@ -259,7 +259,7 @@
err.jspError(start, "jsp.error.unterminated", "<%=");
}
- new Node.Expression(reader.getText(start, stop), start, parent);
+ new Node.Expression(reader.getScriptingText(start, stop), start, parent);
}
/*
@@ -272,7 +272,7 @@
err.jspError(start, "jsp.error.unterminated", "<%");
}
- new Node.Scriptlet(reader.getText(start, stop), start, parent);
+ new Node.Scriptlet(reader.getScriptingText(start, stop), start, parent);
}
/**
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>