morten      01/10/18 03:29:08

  Modified:    java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
                        Template.java VariableBase.java WithParam.java
                        XSLTC.java
               java/src/org/apache/xalan/xsltc/compiler/util Util.java
  Log:
  Added/checked proper escaping of 
template/variable/parameter/attribute-set/etc.
  names. Occurances of the characters '.' and '-' are replaced by '$dot$' and
  '$dash$' respectively in method/variable names. The characters are both
  replaced by an underbar ('_') in the translet class name.
  PR:           2399
  Obtained from:        n/a
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.7       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java
  
  Index: CallTemplate.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/CallTemplate.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- CallTemplate.java 2001/10/18 09:43:44     1.6
  +++ CallTemplate.java 2001/10/18 10:29:07     1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: CallTemplate.java,v 1.6 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: CallTemplate.java,v 1.7 2001/10/18 10:29:07 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -131,7 +131,7 @@
   
        final String className = stylesheet.getClassName();
        // Generate a valid Java method name
  -     String methodName = EscapeString.escape(_name.toString());
  +     String methodName = Util.escape(_name.toString());
   
        il.append(classGen.loadTranslet());
        il.append(methodGen.loadDOM());
  
  
  
  1.12      +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java
  
  Index: Template.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Template.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Template.java     2001/10/18 09:43:44     1.11
  +++ Template.java     2001/10/18 10:29:07     1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Template.java,v 1.11 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: Template.java,v 1.12 2001/10/18 10:29:07 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -314,7 +314,7 @@
   
        if (_compiled && isNamed()){
   
  -         String methodName = EscapeString.escape(_name.toString());
  +         String methodName = Util.escape(_name.toString());
   
            il.append(classGen.loadTranslet());
            il.append(methodGen.loadDOM());
  
  
  
  1.9       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java
  
  Index: VariableBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/VariableBase.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- VariableBase.java 2001/10/18 09:43:44     1.8
  +++ VariableBase.java 2001/10/18 10:29:07     1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: VariableBase.java,v 1.8 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: VariableBase.java,v 1.9 2001/10/18 10:29:07 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -207,7 +207,7 @@
       public void setName(QName name) {
        _name = name;
        _name.clearDefaultNamespace();
  -     _variable = EscapeString.escape(name.getLocalPart());
  +     _variable = Util.escape(name.getLocalPart());
       }
   
       /**
  
  
  
  1.8       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java
  
  Index: WithParam.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/WithParam.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- WithParam.java    2001/10/18 09:43:44     1.7
  +++ WithParam.java    2001/10/18 10:29:07     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: WithParam.java,v 1.7 2001/10/18 09:43:44 morten Exp $
  + * @(#)$Id: WithParam.java,v 1.8 2001/10/18 10:29:07 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -159,7 +159,7 @@
        final InstructionList il = methodGen.getInstructionList();
   
        // Make name acceptable for use as field name in class
  -     String name = EscapeString.escape(_name.getLocalPart());
  +     String name = Util.escape(_name.getLocalPart());
   
        // Load reference to the translet (method is in AbstractTranslet)
        il.append(classGen.loadTranslet());
  
  
  
  1.26      +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XSLTC.java
  
  Index: XSLTC.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/XSLTC.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- XSLTC.java        2001/10/16 10:58:59     1.25
  +++ XSLTC.java        2001/10/18 10:29:07     1.26
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: XSLTC.java,v 1.25 2001/10/16 10:58:59 morten Exp $
  + * @(#)$Id: XSLTC.java,v 1.26 2001/10/18 10:29:07 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -452,7 +452,7 @@
       public void setClassName(String className) {
        final String base  = Util.baseName(className);
        final String noext = Util.noExtName(base); 
  -     final String name  = Util.toJavaName(noext);
  +     String name  = Util.toJavaName(noext);
        if (_packageName == null)
            _className = name;
        else
  
  
  
  1.2       +38 -7     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/Util.java
  
  Index: Util.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/Util.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Util.java 2001/04/17 18:52:22     1.1
  +++ Util.java 2001/10/18 10:29:08     1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Util.java,v 1.1 2001/04/17 18:52:22 sboag Exp $
  + * @(#)$Id: Util.java,v 1.2 2001/10/18 10:29:08 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -136,12 +136,9 @@
       }
   
       public static void println(char ch) {
  -     /*
  -       //    if (Parser.debug()) {
  -       if (false) {
  -       System.out.println(ch);
  -       }
  -     */
  +     if (false) {
  +         System.out.println(ch);
  +     }
       }
   
       public static void TRACE1() {
  @@ -155,5 +152,39 @@
       public static void TRACE3() {
        System.out.println("TRACE3");
       }
  +
  +    /**
  +     * Replace a certain character in a string with a new substring.
  +     */
  +    public 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;
  +    }
  +
  +    /**
  +     * Replace occurances of '.' with '$dot$' and '-' with '$dash$'
  +     */
  +    public static String escape(String input) {
  +     input = replace(input, '.', "$dot$");
  +     input = replace(input, '-', "$dash$");
  +     return input;
  +    }
  +
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to