You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by la...@apache.org on 2002/01/31 05:00:09 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/jasper/compiler TagGeneratorBase.java
larryi 02/01/30 20:00:09
Modified: src/share/org/apache/jasper/compiler TagGeneratorBase.java
Log:
Fix for bug 1657.
Port code from Tomcat 4.x for handling special characters in tag names.
Revision Changes Path
1.7 +29 -0 jakarta-tomcat/src/share/org/apache/jasper/compiler/TagGeneratorBase.java
Index: TagGeneratorBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/TagGeneratorBase.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TagGeneratorBase.java 24 Mar 2001 06:49:29 -0000 1.6
+++ TagGeneratorBase.java 31 Jan 2002 04:00:09 -0000 1.7
@@ -115,7 +115,36 @@
return (TagVariableData) tagHandlerStack.peek();
}
+ private String substitute(String name, char from, String to) {
+ StringBuffer s = new StringBuffer();
+ int begin = 0;
+ int last = name.length();
+ int end;
+ while (true) {
+ end = name.indexOf(from, begin);
+ if (end < 0)
+ end = last;
+ s.append(name.substring(begin, end));
+ if (end == last)
+ break;
+ s.append(to);
+ begin = end + 1;
+ }
+ return (s.toString());
+ }
+
protected String getTagVarName(String prefix, String shortTagName) {
+ if (prefix.indexOf('-') >= 0)
+ prefix = substitute(prefix, '-', "$1");
+ if (prefix.indexOf('.') >= 0)
+ prefix = substitute(prefix, '.', "$2");
+
+ if (shortTagName.indexOf('-') >= 0)
+ shortTagName = substitute(shortTagName, '-', "$1");
+ if (shortTagName.indexOf('.') >= 0)
+ shortTagName = substitute(shortTagName, '.', "$2");
+ if (shortTagName.indexOf(':') >= 0)
+ shortTagName = substitute(shortTagName, ':', "$3");
// Fix: Can probably remove the synchronization now when no vars or method is static
synchronized (tagVarNumbers) {
String tag = prefix+":"+shortTagName;
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>