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

Michael Koch konqueror@gmx.de
Thu Nov 27 08:20:04 2003


On Fri, Nov 28, 2003 at 01:06:43AM +0900, Ito Kazumitsu wrote:
> Hi,
> 
> Browsing GNU Classpath's CVS log, I found:
> 
> 2003-10-02  Michael Koch  <konqueror@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.


Grrr! I thought its the same. All I found int the docs indicated this.
Can you please commit/provide a patch that fixes this ?


Michael