tmiller     2002/06/05 13:23:14

  Modified:    java/src/org/apache/xalan/xsltc/runtime BasisLibrary.java
  Log:
  bug fix 9179, leading zero in localized formatting
  
  Revision  Changes    Path
  1.39      +26 -1     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java
  
  Index: BasisLibrary.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- BasisLibrary.java 5 Jun 2002 18:00:36 -0000       1.38
  +++ BasisLibrary.java 5 Jun 2002 20:23:14 -0000       1.39
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: BasisLibrary.java,v 1.38 2002/06/05 18:00:36 tmiller Exp $
  + * @(#)$Id: BasisLibrary.java,v 1.39 2002/06/05 20:23:14 tmiller Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -890,6 +890,31 @@
        try {
            StringBuffer result = new StringBuffer();
            formatter.applyLocalizedPattern(pattern);
  +
  +         //------------------------------------------------------
  +         // bug fix # 9179 - make sure localized pattern contains
  +         //   a leading zero before decimal, handle cases where  
  +         //   decimal is in position zero, and >= to 1. 
  +         //   localized pattern is ###.### convert to ###0.###
  +         //   localized pattern is .###    convert to 0.###
  +         //------------------------------------------------------
  +         String localizedPattern = formatter.toPattern();
  +         int index = localizedPattern.indexOf('.');
  +         if ( index >= 1  && localizedPattern.charAt(index-1) != '0' ) {
  +             //insert a zero before the decimal point in the pattern
  +             StringBuffer newpattern = new StringBuffer();
  +             newpattern.append(localizedPattern.substring(0, index));
  +                newpattern.append("0");
  +                newpattern.append(localizedPattern.substring(index));
  +             formatter.applyLocalizedPattern(newpattern.toString());
  +         } else if (index == 0) {
  +                // insert a zero before decimal point in pattern
  +                StringBuffer newpattern = new StringBuffer();
  +                newpattern.append("0");
  +                newpattern.append(localizedPattern);
  +             formatter.applyLocalizedPattern(newpattern.toString());
  +            }
  +
            formatter.format(number, result, _fieldPosition);
            return(result.toString());
        }
  
  
  

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

Reply via email to