[kaffe] java/text/SimpleDateFormat.java (compileFormat)

Ito Kazumitsu kaz at maczuka.gcd.org
Thu Nov 27 08:13:02 PST 2003


Hi,

Browsing GNU Classpath's CVS log, I found:

2003-10-02  Michael Koch  <konqueror at gmx.de>

        * java/text/SimpleDateFormat.java
        (compileFormat): Character.isLetter(char) allows too much characters.
        Replace it with Character.isLowerCase(char) ||
        Character.isUpperCase(char).

I think this change has something to do with the bug report:
http://www.kaffe.org/pipermail/kaffe/2003-August/043742.html
http://www.kaffe.org/pipermail/kaffe/2003-August/043743.html,

where I suggested to use

   (thisChar >= 'A' && thisChar <= 'Z') || (thisChar >= 'a' && thisChar <= 'z')

instead of

   Character.isLetter(thisChar)

Why do we use "Character.isLowerCase(char) || Character.isUpperCase(char)"
when the API doc clearly says, "Within date and time pattern strings,
unquoted letters from 'A' to 'Z' and from 'a' to 'z' are interpreted
as pattern letters representing the components of a date or time string"?

I am afraid "Character.isLowerCase(char) || Character.isUpperCase(char)"
also allows too many characters,  including Greek or Slavic alphabet
or even Japanese Zenkaku alphabet.




More information about the kaffe mailing list