morten      01/10/18 02:43:44

  Modified:    java/src/org/apache/xalan/xsltc/compiler CallTemplate.java
                        DecimalFormatting.java Param.java SymbolTable.java
                        Template.java Variable.java VariableBase.java
                        WithParam.java
               java/src/org/apache/xalan/xsltc/compiler/util ErrorMsg.java
  Log:
  Cleaned up the compiler's symbol table. Added support for detecting multiple
  defined decimal formatting symbols.
  PR:           bugzilla 3872
  Obtained from:        n/a
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.6       +16 -19    
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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- CallTemplate.java 2001/08/27 09:07:19     1.5
  +++ CallTemplate.java 2001/10/18 09:43:44     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: CallTemplate.java,v 1.5 2001/08/27 09:07:19 morten Exp $
  + * @(#)$Id: CallTemplate.java,v 1.6 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -117,23 +117,21 @@
        final ConstantPoolGen cpg = classGen.getConstantPool();
        final InstructionList il = methodGen.getInstructionList();
   
  -     // Push a new parameter frame
  -     if (stylesheet.hasLocalParams() || hasContents()) {
  -         il.append(classGen.loadTranslet()); // push param frame
  -         il.append(new INVOKEVIRTUAL(cpg.addMethodref(TRANSLET_CLASS, 
  -                                                      PUSH_PARAM_FRAME,
  -                                                      PUSH_PARAM_FRAME_SIG)
  -                                     ));
   
  -         // translate with-params
  +     if (stylesheet.hasLocalParams() || hasContents()) {
  +         // Push parameter frame
  +         final int push = cpg.addMethodref(TRANSLET_CLASS, 
  +                                           PUSH_PARAM_FRAME,
  +                                           PUSH_PARAM_FRAME_SIG);
  +         il.append(classGen.loadTranslet());
  +         il.append(new INVOKEVIRTUAL(push));
  +         // Translate with-params
            translateContents(classGen, methodGen);
        }
   
        final String className = stylesheet.getClassName();
        // Generate a valid Java method name
  -     String methodName = _name.toString();
  -     methodName = methodName.replace('.', '$');
  -     methodName = methodName.replace('-', '$');
  +     String methodName = EscapeString.escape(_name.toString());
   
        il.append(classGen.loadTranslet());
        il.append(methodGen.loadDOM());
  @@ -150,14 +148,13 @@
                                                     +")V")));
        
   
  -     // Pop parameter frame
        if (stylesheet.hasLocalParams() || hasContents()) {
  -         il.append(classGen.loadTranslet()); // pop param frame
  -         il.append(new INVOKEVIRTUAL(cpg.addMethodref(TRANSLET_CLASS,
  -                                                      POP_PARAM_FRAME,
  -                                                      POP_PARAM_FRAME_SIG)
  -                                     ));
  -         
  +         // Pop parameter frame
  +         final int pop = cpg.addMethodref(TRANSLET_CLASS,
  +                                          POP_PARAM_FRAME,
  +                                          POP_PARAM_FRAME_SIG);
  +         il.append(classGen.loadTranslet());
  +         il.append(new INVOKEVIRTUAL(pop));
        }
       }
   } 
  
  
  
  1.5       +22 -2     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java
  
  Index: DecimalFormatting.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/DecimalFormatting.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DecimalFormatting.java    2001/06/06 10:44:52     1.4
  +++ DecimalFormatting.java    2001/10/18 09:43:44     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DecimalFormatting.java,v 1.4 2001/06/06 10:44:52 morten Exp $
  + * @(#)$Id: DecimalFormatting.java,v 1.5 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -84,11 +84,31 @@
       private static final String DFS_CLASS = "java.text.DecimalFormatSymbols";
       private static final String DFS_SIG   = 
"Ljava/text/DecimalFormatSymbols;";
   
  +    private String _name = null;
  +
  +    /**
  +     * No type check needed for the <xsl:decimal-formatting/> element
  +     */
       public Type typeCheck(SymbolTable stable) throws TypeCheckError {
        return Type.Void;
       }
   
       /**
  +     * Parse the name of the <xsl:decimal-formatting/> element
  +     */
  +    public void parseContents(Parser parser) {
  +     // Get the name of these decimal formatting symbols
  +     if ((_name = getAttribute("name")) == null) _name = EMPTYSTRING;
  +
  +     // Check if a set of symbols has already been registered under this name
  +     SymbolTable stable = parser.getSymbolTable();
  +     if (stable.getDecimalFormatting(_name) != null)
  +         reportWarning(this, parser, ErrorMsg.DFSREDEF_ERR,_name.toString());
  +     else
  +         stable.addDecimalFormatting(_name, this);
  +    }
  +
  +    /**
        * This method is called when the constructor is compiled in
        * Stylesheet.compileConstructor() and not as the syntax tree is 
traversed.
        */
  @@ -102,7 +122,7 @@
   
        // Push the format name on the stack for call to addDecimalFormat()
        il.append(classGen.loadTranslet());
  -     il.append(new PUSH(cpg, getAttribute("name")));
  +     il.append(new PUSH(cpg, _name));
   
        // Manufacture a DecimalFormatSymbols on the stack
        // for call to addDecimalFormat()
  
  
  
  1.17      +3 -32     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java
  
  Index: Param.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Param.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- Param.java        2001/09/25 16:20:39     1.16
  +++ Param.java        2001/10/18 09:43:44     1.17
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Param.java,v 1.16 2001/09/25 16:20:39 morten Exp $
  + * @(#)$Id: Param.java,v 1.17 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -100,42 +100,13 @@
       }
   
       /**
  -     * Returns the parameter's type. This is needed by ParameterRef to
  -     * determine the type of the parameter
  -     */
  -    public Type getType() {
  -     return _type;
  -    }
  -
  -    /**
        * Parse the contents of the <xsl:param> element. This method must read
        * the 'name' (required) and 'select' (optional) attributes.
        */
       public void parseContents(Parser parser) {
  -     // Parse attributes name and select (if present)
  -     final String name = getAttribute("name");
  -
  -     if (name.length() > 0) {
  -         setName(parser.getQName(name));
  -     }
  -        else {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  -        }
  -
  -     // Check whether variable/param of the same name is already in scope
  -     if (parser.lookupVariable(_name) != null) {
  -         ErrorMsg msg = new ErrorMsg(ErrorMsg.VARREDEF_ERR, _name, this);
  -         parser.reportError(Constants.ERROR, msg);
  -     }
  -     
  -     select = getAttribute("select");
  -     if (select.length() > 0) {
  -         _select = getParser().parseExpression(this, "select", null);
  -     }
  -
   
  -     // Children must be parsed first -> static scoping
  -     parseChildren(parser);
  +     // Parse 'name' and 'select' attributes plus parameter contents
  +     super.parseContents(parser);
   
        // Add a ref to this param to its enclosing construct
        final SyntaxTreeNode parent = getParent();
  
  
  
  1.5       +55 -21    
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/SymbolTable.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SymbolTable.java  2001/06/19 10:44:11     1.4
  +++ SymbolTable.java  2001/10/18 09:43:44     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: SymbolTable.java,v 1.4 2001/06/19 10:44:11 morten Exp $
  + * @(#)$Id: SymbolTable.java,v 1.5 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -58,6 +58,7 @@
    *
    * @author Jacek Ambroziak
    * @author Santiago Pericas-Geertsen
  + * @author Morten Jorgensen
    *
    */
   
  @@ -71,17 +72,28 @@
   import org.apache.xalan.xsltc.compiler.util.*;
   
   final class SymbolTable {
  -    private final Hashtable _templates   = new Hashtable();
  +
  +    // These hashtables are used for all stylesheets
       private final Hashtable _stylesheets = new Hashtable();
       private final Hashtable _primops     = new Hashtable();
  -    private final Hashtable _variables   = new Hashtable();
  -    private final Hashtable _atsets      = new Hashtable();
  -    private final Hashtable _namespaces  = new Hashtable();
  -    private final Hashtable _prefixes    = new Hashtable();
  -    private final Hashtable _aliases     = new Hashtable();
  -    private final Hashtable _excludedURI = new Hashtable();
   
  -    private int nsCounter = 0;
  +    // These hashtables are used for some stylesheets
  +    private Hashtable _variables = null;
  +    private Hashtable _templates = null;
  +    private Hashtable _attributeSets = null;
  +    private Hashtable _aliases = null;
  +    private Hashtable _excludedURI = null;
  +    private Hashtable _decimalFormats = null;
  +
  +    public DecimalFormatting getDecimalFormatting(String name) {
  +     if (_decimalFormats == null) return null;
  +     return((DecimalFormatting)_decimalFormats.get(name));
  +    }
  +
  +    public void addDecimalFormatting(String name, DecimalFormatting symbols) 
{
  +     if (_decimalFormats == null) _decimalFormats = new Hashtable();
  +     _decimalFormats.put(name, symbols);
  +    }
   
       public Stylesheet addStylesheet(QName name, Stylesheet node) {
        return (Stylesheet)_stylesheets.put(name, node);
  @@ -94,47 +106,56 @@
       public Template addTemplate(Template template) {
        final QName name = template.getName();
        name.clearDefaultNamespace();
  +     if (_templates == null) _templates = new Hashtable();
        return (Template)_templates.put(name, template);
       }
        
       public Template lookupTemplate(QName name) {
  +     if (_templates == null) return null;
        name.clearDefaultNamespace();
        return (Template)_templates.get(name);
       }
   
       public Variable addVariable(Variable variable) {
  +     if (_variables == null) _variables = new Hashtable();
        final String name = variable.getName().getStringRep();
        return (Variable)_variables.put(name, variable);
       }
        
       public Param addParam(Param parameter) {
  +     if (_variables == null) _variables = new Hashtable();
        final String name = parameter.getName().getStringRep();
        return (Param)_variables.put(name, parameter);
       }
        
       public Variable lookupVariable(QName qname) {
  +     if (_variables == null) return null;
        final String name = qname.getStringRep();
        final Object obj = _variables.get(name);
        return obj instanceof Variable ? (Variable)obj : null;
       }
   
       public Param lookupParam(QName qname) {
  +     if (_variables == null) return null;
        final String name = qname.getStringRep();
        final Object obj = _variables.get(name);
        return obj instanceof Param ? (Param)obj : null;
       }
        
       public SyntaxTreeNode lookupName(QName qname) {
  +     if (_variables == null) return null;
        final String name = qname.getStringRep();
        return (SyntaxTreeNode)_variables.get(name);
       }
   
       public AttributeSet addAttributeSet(AttributeSet atts) {
  -     return (AttributeSet)_atsets.put(atts.getName(), atts);
  +     if (_attributeSets == null) _attributeSets = new Hashtable();
  +     return (AttributeSet)_attributeSets.put(atts.getName(), atts);
       }
   
       public AttributeSet lookupAttributeSet(QName name) {
  -     return (AttributeSet)_atsets.get(name);
  +     if (_attributeSets == null) return null;
  +     return (AttributeSet)_attributeSets.get(name);
       }
   
       /**
  @@ -162,30 +183,31 @@
        * This is used for xsl:attribute elements that have a "namespace"
        * attribute that is currently not defined using xmlns:
        */
  +    private int _nsCounter = 0;
  +
       public String generateNamespacePrefix() {
  -     final String prefix = new String("ns"+(nsCounter++));
  -     return(prefix);
  +     return(new String("ns"+(_nsCounter++)));
       }
   
       /**
        * Use a namespace prefix to lookup a namespace URI
        */
       private SyntaxTreeNode _current = null;
  +
       public void setCurrentNode(SyntaxTreeNode node) {
        _current = node;
       }
   
       public String lookupNamespace(String prefix) {
  -     if (_current != null)
  -         return(_current.lookupNamespace(prefix));
  -     else
  -         return(Constants.EMPTYSTRING);
  +     if (_current == null) return(Constants.EMPTYSTRING);
  +     return(_current.lookupNamespace(prefix));
       }
   
       /**
        * Adds an alias for a namespace prefix
        */ 
       public void addPrefixAlias(String prefix, String alias) {
  +     if (_aliases == null) _aliases = new Hashtable();
        _aliases.put(prefix,alias);
       }
   
  @@ -193,14 +215,22 @@
        * Retrieves any alias for a given namespace prefix
        */ 
       public String lookupPrefixAlias(String prefix) {
  +     if (_aliases == null) return null;
        return (String)_aliases.get(prefix);
       }
   
       /**
  -     *
  +     * Register a namespace URI so that it will not be declared in the output
  +     * unless it is actually referenced in the output.
        */
       public void excludeURI(String uri) {
  +     // The null-namespace cannot be excluded
        if (uri == null) return;
  +
  +     // Create new hashtable of exlcuded URIs if none exists
  +     if (_excludedURI == null) _excludedURI = new Hashtable();
  +
  +     // Register the namespace URI
        Integer refcnt = (Integer)_excludedURI.get(uri);
        if (refcnt == null)
            refcnt = new Integer(1);
  @@ -210,7 +240,8 @@
       }
   
       /**
  -     *
  +     * Exclude a series of namespaces given by a list of whitespace
  +     * separated namespace prefixes.
        */
       public void excludeNamespaces(String prefixes) {
        if (prefixes != null) {
  @@ -228,10 +259,11 @@
       }
   
       /**
  -     *
  +     * Check if a namespace should not be declared in the output (unless 
used)
        */
       public boolean isExcludedNamespace(String uri) {
        if (uri == null) return false;
  +     if (_excludedURI == null) return false;
        final Integer refcnt = (Integer)_excludedURI.get(uri);
        if (refcnt == null) return false;
        if (refcnt.intValue() > 0) return true;
  @@ -239,9 +271,10 @@
       }
   
       /**
  -     *
  +     * Turn of namespace declaration exclusion
        */
       public void unExcludeNamespaces(String prefixes) {
  +     if (_excludedURI == null) return;
        if (prefixes != null) {
            StringTokenizer tokens = new StringTokenizer(prefixes);
            while (tokens.hasMoreTokens()) {
  @@ -257,5 +290,6 @@
            }
        }       
       }
  +
   }
   
  
  
  
  1.11      +2 -4      
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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Template.java     2001/08/27 09:07:19     1.10
  +++ Template.java     2001/10/18 09:43:44     1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Template.java,v 1.10 2001/08/27 09:07:19 morten Exp $
  + * @(#)$Id: Template.java,v 1.11 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -314,9 +314,7 @@
   
        if (_compiled && isNamed()){
   
  -         String methodName = _name.toString();
  -         methodName = methodName.replace('.', '$');
  -         methodName = methodName.replace('-', '$');
  +         String methodName = EscapeString.escape(_name.toString());
   
            il.append(classGen.loadTranslet());
            il.append(methodGen.loadDOM());
  
  
  
  1.20      +3 -22     
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java
  
  Index: Variable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Variable.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Variable.java     2001/09/25 16:20:39     1.19
  +++ Variable.java     2001/10/18 09:43:44     1.20
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Variable.java,v 1.19 2001/09/25 16:20:39 morten Exp $
  + * @(#)$Id: Variable.java,v 1.20 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -107,28 +107,9 @@
        * Parse the contents of the variable
        */
       public void parseContents(Parser parser) {
  -     // parse attributes name and select (if present)
  -     final String name = getAttribute("name");
  -     if (name.length() > 0) {
  -         setName(parser.getQName(name));
  -     }
  -        else {
  -         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  -     }
  -
  -     // check whether variable/param of the same name is already in scope
  -     if (parser.lookupVariable(_name) != null) {
  -         reportError(this, parser, ErrorMsg.VARREDEF_ERR, _name.toString());
  -     }
  -
  -     select = getAttribute("select");
  -     if (select.length() > 0) {
  -         _select = getParser().parseExpression(this, "select", null);
  -     }
  -
   
  -     // Children must be parsed first -> static scoping
  -     parseChildren(parser);
  +     // Parse 'name' and 'select' attributes plus parameter contents
  +     super.parseContents(parser);
   
        // Add a ref to this var to its enclosing construct
        SyntaxTreeNode parent = getParent();
  
  
  
  1.8       +30 -29    
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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- VariableBase.java 2001/09/25 15:57:22     1.7
  +++ VariableBase.java 2001/10/18 09:43:44     1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: VariableBase.java,v 1.7 2001/09/25 15:57:22 morten Exp $
  + * @(#)$Id: VariableBase.java,v 1.8 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -85,7 +85,6 @@
       protected Instruction _loadInstruction; // Instruction to load JVM 
variable
       protected Expression  _select;          // Reference to variable 
expression
       protected String      select;           // Textual repr. of variable 
expr.
  -    protected int         _stackIndex = -1; // Stack index relative to base 
ptr.
   
       // References to this variable (when local)
       protected Vector      _refs = new Vector(2); 
  @@ -202,39 +201,13 @@
        return _variable;
       }
   
  -    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;
  -    }
  -
       /**
        * Set the name of the variable or paremeter. Escape all special chars.
        */
       public void setName(QName name) {
        _name = name;
        _name.clearDefaultNamespace();
  -
  -     String prefix = name.getPrefix();
  -     String local = name.getLocalPart();
  -     local = replace(local, '.', "$dot$");
  -     local = replace(local, '-', "$dash$");
  -     _variable = local;
  +     _variable = EscapeString.escape(name.getLocalPart());
       }
   
       /**
  @@ -242,6 +215,34 @@
        */
       public boolean isLocal() {
        return _isLocal;
  +    }
  +
  +    /**
  +     * Parse the contents of the <xsl:decimal-format> element.
  +     */
  +    public void parseContents(Parser parser) {
  +     // Get the 'name attribute
  +     String name = getAttribute("name");
  +     if (name == null) name = EMPTYSTRING;
  +
  +     if (name.length() > 0)
  +         setName(parser.getQName(name));
  +        else
  +         reportError(this, parser, ErrorMsg.NREQATTR_ERR, "name");
  +
  +     // Check whether variable/param of the same name is already in scope
  +     if (parser.lookupVariable(_name) != null) {
  +         ErrorMsg msg = new ErrorMsg(ErrorMsg.VARREDEF_ERR, _name, this);
  +         parser.reportError(Constants.ERROR, msg);
  +     }
  +     
  +     select = getAttribute("select");
  +     if (select.length() > 0) {
  +         _select = getParser().parseExpression(this, "select", null);
  +     }
  +
  +     // Children must be parsed first -> static scoping
  +     parseChildren(parser);
       }
   
       /**
  
  
  
  1.7       +2 -9      
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WithParam.java    2001/09/20 14:55:42     1.6
  +++ WithParam.java    2001/10/18 09:43:44     1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: WithParam.java,v 1.6 2001/09/20 14:55:42 morten Exp $
  + * @(#)$Id: WithParam.java,v 1.7 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -149,13 +149,6 @@
        }
       }
   
  -    private String escapeName(QName qname) {
  -     String local = qname.getLocalPart();
  -     local = Variable.replace(local, '.', "$dot$");
  -     local = Variable.replace(local, '-', "$dash$");
  -     return(local);
  -    }
  -
       /**
        * This code generates a sequence of bytecodes that call the
        * addParameter() method in AbstractTranslet. The method call will add
  @@ -166,7 +159,7 @@
        final InstructionList il = methodGen.getInstructionList();
   
        // Make name acceptable for use as field name in class
  -     String name = escapeName(_name);
  +     String name = EscapeString.escape(_name.getLocalPart());
   
        // Load reference to the translet (method is in AbstractTranslet)
        il.append(classGen.loadTranslet());
  
  
  
  1.5       +4 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/ErrorMsg.java
  
  Index: ErrorMsg.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/util/ErrorMsg.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ErrorMsg.java     2001/08/27 09:07:21     1.4
  +++ ErrorMsg.java     2001/10/18 09:43:44     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: ErrorMsg.java,v 1.4 2001/08/27 09:07:21 morten Exp $
  + * @(#)$Id: ErrorMsg.java,v 1.5 2001/10/18 09:43:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -100,6 +100,7 @@
       public static final int ILL_ATTR_ERR = 20;
       public static final int CIRCULAR_INC = 21;
       public static final int TREESORT_ERR = 22;
  +    public static final int DFSREDEF_ERR = 23;
   
       static final String messages_d[] = { 
        "More than one stylesheet defined in the same file.",
  @@ -126,7 +127,8 @@
        "Circular import/include. Stylesheet ''{0}'' already loaded.",
        "Applying <xsl:sort> to a result tree is not supported (<xsl:sort> "+
        "elements are ignored). You can, and should, sort the nodes when "+
  -     "creating the result tree."
  +     "creating the result tree.",
  +     "Decimal formatting ''{0}'' is already defined."
       };
   
       public ErrorMsg(int code) {
  
  
  

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

Reply via email to