You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/12/10 11:15:12 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java
morten 01/12/10 02:15:12
Modified: java/src/org/apache/xalan/xsltc/runtime
AbstractTranslet.java
Log:
A fix for global parameters whose names contain dots or dashes.
PR: bugzilla 5328
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.31 +29 -2 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
Index: AbstractTranslet.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- AbstractTranslet.java 2001/11/27 15:20:56 1.30
+++ AbstractTranslet.java 2001/12/10 10:15:12 1.31
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: AbstractTranslet.java,v 1.30 2001/11/27 15:20:56 morten Exp $
+ * @(#)$Id: AbstractTranslet.java,v 1.31 2001/12/10 10:15:12 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -157,10 +157,37 @@
}
/**
+ * Replace a certain character in a string with a new substring.
+ */
+ private static String replace(String base, char c, String str) {
+ final int len = base.length() - 1;
+ int pos;
+ while ((pos = base.indexOf(c)) > -1) {
+ if (pos == 0) {
+ final String after = base.substring(1);
+ base = str + after;
+ }
+ else if (pos == len) {
+ final String before = base.substring(0, pos);
+ base = before + str;
+ }
+ else {
+ final String before = base.substring(0, pos);
+ final String after = base.substring(pos+1);
+ base = before + str + after;
+ }
+ }
+ return base;
+ }
+
+ /**
* Add a new global parameter if not already in the current frame.
*/
public final Object addParameter(String name, Object value) {
- return addParameter(name, value, false);
+ String parName = new String(name);
+ parName = replace(parName, '.', "$dot$");
+ parName = replace(parName, '-', "$dash$");
+ return addParameter(parName, value, false);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org