[squeak-dev] Unicode fonts and MultiCompositionScaner

Andrey Larionov anlarionov at gmail.com
Thu Apr 16 21:57:46 UTC 2009


> On Fri, Apr 17, 2009 at 01:09, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> 257 was the code THE scan characters primitive answered when it reached the end of the input string.
> 258 was the code it returned when the next character to be output would have crOssed over the right-hand margin.
If we talking about ranges from 1 to 256 yes, but if characters have
zero based index, then 256, 257

On Fri, Apr 17, 2009 at 01:52, Andrey Larionov <anlarionov at gmail.com> wrote:
> Sorry for hestiating, but since Unicode is come and Character ranges
> are enlarged, should we review this hardcodes?
>
> On Fri, Apr 17, 2009 at 01:09, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>>
>>
>> On Thu, Apr 16, 2009 at 1:05 PM, Andrey Larionov <anlarionov at gmail.com>
>> wrote:
>>>
>>> Investigating reasons of fail FontTest tests i found bug in
>>> MultiCompositionScaner (or it maybe some related class). Looks like
>>> what Character value: 257 had a special meaning in squeak.
>>
>> 257 was the code THE scan characters primitive answered when it reached the
>> end of the input string.
>> 258 was the code it returned when the next character to be output would have
>> crOssed over the right-hand margin.
>> Alas none of this is documented in the blue book.  You have to extract it
>> from e.g. the Xerox V2.0 sources.
>> Here's the defines from an ancient VM of mine:
>> /* TextConstants pool variables initialised in Text */
>> #define CrossedX 258
>> #define EndOfRun 257
>>
>>>
>>> If not use
>>> StrikeFont everything is well, but if you choose FreeType font the
>>> doing something
>>> (Character value: 257) asString asTextMorph openInWorld
>>> creates an endles loop in composer. It founds character falls in
>>> crossedX method (this character is stopCondition) and then remove
>>> character from composition and starts again.
>>>
>>
>>
>>
>>
>>
>



More information about the Squeak-dev mailing list