[squeak-dev] Unicode fonts and MultiCompositionScaner

Andrey Larionov anlarionov at gmail.com
Thu Apr 16 23:45:57 UTC 2009


Thanks, try it tomorow. Also i have no my own image, so nothing to
loose :) Newbie

On Fri, Apr 17, 2009 at 03:28, Nicolas Cellier
<nicolas.cellier.aka.nice at gmail.com> wrote:
> That's the limit of operating in vivo: you need another display
> mechanism while debugging...
> Changing the surface is easier: Andrey, you can try the changeSets (at
> your own risk) to be loaded in right order !
> Be prepared to loose some images...
>
> Nicolas
>
> 2009/4/17 Igor Stasenko <siguctua at gmail.com>:
>> 2009/4/17 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
>>> A possible solution:
>>> Make stopConditions an object with inst vars 'stops crossedX endOfRun'.
>>> Then replace (stops at: CrossedX) with: (stops crossedX) in
>>> CharacterScanner and friends.
>>> Default initialization would be crossedX := #crossedX. endOfRun := #endOfRun.
>>> It only costs and indirection when executing (stops at: asciiValue + 1).
>>> (Remember this part has to be fast).
>>>
>>> By the way, did you notice the mess between inst var stopConditions
>>> and argument stops?
>>> This is http://bugs.squeak.org/view.php?id=6450
>>>
>>
>> IMO the character scanner is too complicated for displaying a plain
>> text paragraph. It tries to be everything at once, like when you can
>> use it to draw characters over a spline path..
>> My feelings, that this part of output (which needs to be fast and
>> simple) is heavily over-engineered.
>>
>> I would really love to see somebody to wipe this stuff out.
>>
>>>
>>> 2009/4/17 Eliot Miranda <eliot.miranda at gmail.com>:
>>>>
>>>>
>>>> On Thu, Apr 16, 2009 at 2:52 PM, 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?
>>>>
>>>> Of course  I was only trying to answer what they were used for. not
>>>> suggesting they should continue to be used that way.
>>>>>
>>>>> 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.
>>>>> >>
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>>
>
>
>
>



More information about the Squeak-dev mailing list