[squeak-dev] Unicode issues in 4.1

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Thu Mar 25 21:27:58 UTC 2010


There seem to be several issues related to Character rendering since
(Unicode leadingChar = 0) change.

1) #scanMultiCharactersCombiningFrom:to:in:rightX:stopConditions:kern:
looks like broken
- it seems to miss-handle some #cr stopConditions
- it does not have support for kerning pairs (unlike cousins
#scanMultiCharactersFrom:to:in:rightX:stopConditions:kern:...)
- it is strange that this message has to be redefined in every
subclass (unlike cousins again)
 consequently, composing/displaying/selecting seems to each have their
own behavior

A good example is to evaluate this in a workspace:

'abc_' , (String with: 1105 asCharacter) , 'def_' , String cr , 'ghi_'

2) String does not render the same whether Wide or Byte

(StringHolder new contents: 'abc_') openLabel: 'Byte'.
(StringHolder new contents: 'abc_' asWideString) openLabel: 'Wide'.

3) There used to be a change of run detected at leadingChar change,
but with all characters having 0 as leadingChar, this does not happen
anymore.
This changes the font selection.


These are good candidates for bugfix before 4.1 goes final.
For 1) I have a brutal workaround: do not honour Composing... (invert
commented code in #scanSelector)
I wish we find a better solution...


Nicolas



More information about the Squeak-dev mailing list