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: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to