2016-01-06 10:09 GMT+01:00 Sven Van Caekenberghe <[email protected]>:

> Hallo Nicolai,
>
> > On 06 Jan 2016, at 09:58, Nicolai Hess <[email protected]> wrote:
> >
> >
> > see issues 17302/17242/17227
> > String>>findString:startindAt:caseSensitive appears to be failing for
> extended charsets
> > String>>compare:caseSensitive seems to be failing for extended charset
> comparisons
> > String>>beginsWithEmpty:caseSensitive: has test failure for some cases
> >
> > the problem is, the standard character set used for building the
> CaseInsensitiveOrder map
> > only maps characters from the set of ascii characters but it is used in
> the findString/compare/beginsWith-methods for all byte characters.
> >
> > Any objections if we fill this map like it is suggested in case 17242 ?
> >
> > CaseInsensitiveOrder := AsciiOrder copy.
> >     (0 to: 255) do:[ :v |
> >             | char upper |
> >             char := v asCharacter.
> >             upper := char asUppercase.
> >             upper isOctetCharacter
> >                 ifFalse: [ upper := char ].
> >             CaseInsensitiveOrder at: char asciiValue + 1 put:
> (CaseInsensitiveOrder at: upper asciiValue + 1) ].
> >
> > (the check for #isOctectCharacter is needed because for some entries the
> correspondending
> > uppercase character is not within this character set).
> >
> > This would solve all three issues.
> >
> >
> > nicolai
>
> That looks like a beautiful fix that makes perfect sense.
> If all tests are green, I see no reason not to do it.
>

Thanks for you feedback.



> Thanks and well done (again),
>

:)


>
> Sven
>
>
>

Reply via email to