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