<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Georgia">I suppose an example would have helped here. So
      I tried rolling my own:<br>
      <br>
      StringHolder new contents: 'jhdgkjh dfkhg kfg kdjh gkjdhfg kjdfh
      gkjdfhg jkdhf gkjdh fgkjhd fgkjh dfkgjdkjfgh kdjhf gkjdhf gkjdh
      fgkjdhf gkjdh fgkjdh fgkjdh fgkjdhf gkjdh fgkjdhg kjd fhg'
      asWideString; openLabel: 'foo'<br>
      <br>
      Then I fiddled with the window and tried to see where the code did
      or did not go. It basically didn't go anywhere that seemed related
      to your question because:<br>
      <br>
          scanner := (theText string isOctetString <br>
                              ifTrue:[CompositionScanner new] <br>
                              ifFalse:[MultiCompositionScanner new]).<br>
      <br>
      detects that my WideString isn't really all that wide and simply
      uses CompositionScanner. (This is from TextComposer
      composeBlahBlah). Even though it uses a plain scanner here, it
      does use a Multi* scanner when trying to figure out where to
      highlight.<br>
      <br>
      Maybe that's why you weren't seeing what you expected. I'll try
      again with some really wide chars.<br>
      <br>
      Cheers,<br>
      Bob<br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 9/25/13 10:01 PM, tim Rowledge
      wrote:<br>
    </div>
    <blockquote
      cite="mid:9E204B19-C407-4E0D-8A3E-DA886703CE2A@rowledge.org"
      type="cite">
      <pre wrap="">
On 24-09-2013, at 2:21 PM, Nicolas Cellier <a class="moz-txt-link-rfc2396E" href="mailto:nicolas.cellier.aka.nice@gmail.com">&lt;nicolas.cellier.aka.nice@gmail.com&gt;</a> wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">
2013/9/21 tim Rowledge <a class="moz-txt-link-rfc2396E" href="mailto:tim@rowledge.org">&lt;tim@rowledge.org&gt;</a>

a) There are {language}environment classes and encoding classes. There is #isBreakableAt:in: implemented in both but seemingly unused in the encoding classes because it is just plain broken there. Should it be removed from the encoders? In the language environment classes it is implemented to return true for space and cr by default, but space, cr &amp; lf in Latin1 and Latin2. Is that as expected?

 
>From what I understand:
- no need to answer true for space, cr, lf since these are already handled in the CharacterScanner stopConditions, so default answer should be ^false (unless one of these is removed from stopConditions, I thought I saw that, but cannot remember...)
- whether it should be in EncodedCharSet or LanguageEnvironment, I don't know…
</pre>
      </blockquote>
      <pre wrap="">
I'm a bit puzzled by what's going on here, now that I'm looking into it. The Multi* classes actually *do* have stopConditions *without* space, and don't have methods to handle #space. And yet I can't find anything going wrong… this is odd.

With Nicolas' changes to the implementations of #isBreakableAt:in: it seems like we shouldn't be getting any use of registerBreakableIndex (and in fact I'm running code where it isn't even in the scan methods to be called!) and so MultiCompositionScanner&gt;crossedX ought to be getting a bit annoyed by now. The only bit of its code getting run is the last 4 lines and 'breakableIndex'/'lineHeightAtBreak'/'baselineAtBreak' are all nil. This surely ought to be breaking the TextLine 'line' but so far… nothing. Even changing the width of windows to force recomposing doesn't seem to upset things. Why isn't it breaking!

tim
--
tim Rowledge; <a class="moz-txt-link-abbreviated" href="mailto:tim@rowledge.org">tim@rowledge.org</a>; <a class="moz-txt-link-freetext" href="http://www.rowledge.org/tim">http://www.rowledge.org/tim</a>
Compatible: Gracefully accepts erroneous data from any source.




</pre>
    </blockquote>
    <br>
  </body>
</html>