[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [putty]PuTTY Bidi - final points

Nadim Shaikli <shaikli at yahoo dot com> writes:
>  2. We have 2 display issues which are a mystery,
>     a. There are instances in which 2 glyphs need to be combined and
>        shown as one.  Namely LAM (0x0644) and ALEF (0x0627) get combined
>        and replaced by LAA (0xFEFB) along with various permutations.
>        In other words, assume LAM is L and ALEF is A and LAA is K
>        you would expect to visually see this,
>          LAxyz LAmnopq
>        changed to,
>          Kxyz Kmnopq
>        Again, the two glyphs need to be combined to constitute a single
>        character - we term this 'combining'.  What is happening now is
>        that a space shows up that we can't seem to remove (due to line
>        length, etc), so we end up with,
>          K xyz K mnopq

This isn't surprising at all.  You're replacing two single-width
glyphs in positions n and n+1 with just one single-width glyph in
position n, but as far as PuTTY's internals are concerned the next
character is still at position n+2.  You need to work out a way of
dealing with this, moving the following word so that it starts to
display at n+1 even though the terminal emulator should still believe
it starts at n+2.

It would be good if you then preserved the word's visual length by
sticking some tatweel in to make up the space there.  (Note for
non-Arabic-speaking folk: tatweel is a meaningless mark that can be
used to stretch Arabic words.)

>     b. There are various instances where composing characters need to be
>        shown (composing characters are not specific to Arabic either).
>        These are glyphs that piggy-back on the proceeding character such
>        as (0x064B or 0x064E, etc).  PuTTY currently seems to simply
>        pass them over - ie. they don't show up.
>        http://www.unicode.org/charts/PDF/U0600.pdf

Yes.  PuTTY doesn't currently support Unicode combining characters.


(Sorrry if this is rushed or garbled.  No time to go into the other
things at the moment.)