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 and well done (again), Sven
