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

Re: Arabic in PuTTY



--- Simon Tatham <anakin at pobox dot com> wrote:
> This weekend, I checked in one of the remaining pieces of work
> required before the Arabic support in PuTTY is considered
> releasable. Specifically:
> 
>  - the cursor position is now mapped through the bidi transformation
>  - highlighting of selections is mapped through the bidi
>    transformation
>  - mouse clicks are mapped (backwards) through the bidi
>    transformation before being processed.

I verify that all of the above functions properly.
 
> This means that when the cursor looks as if it's on a particular
> letter, it really is on that letter; and you can select pieces of
> right-to-left text by clicking on where the words look as if they
> are.

Yup, all seems to work well in my preliminary tests.

> As far as I'm concerned, the Arabic support in PuTTY is now ready in
> feature terms to be included in trunk releases. (I've put out two
> branch-based releases without it since checking it in, because I
> didn't think it was stable enough yet.) I don't know whether it yet
> does everything an Arabic speaker would require, but it at least
> isn't being _gratuitously_ confusing to non-Arabic-speakers, so it
> shouldn't need to be left out of the next release.

Its pretty damn close to being very usable and should most certainly
be included in future releases.  I'm sure there are minor bugs and
oddities, etc but those will be squashed with usage.
 
> There is still stability work to do. In particular, somebody needs
> to go through minibidi.c and review the array bounds checking,
> because it currently isn't very good. For example, around line 205
> of the current code, in do_shape(), line[i+1].wc and line[i-1].wc
> are both referenced without stopping to check whether i is at the
> beginning or end of the array. I could go through and fix these
> myself, but it would help if somebody who actually understood bidi
> and shaping did it, because they'd know what was _supposed_ to
> happen in those cases!

Noted.
 
> Also, I should let you know that PuTTY now supports combining
> characters, which was on the list as being important for Arabic
> support.
>
> Next on the list is support for ligatures. As I understand it, the
> current plan is to support them by using the new combining character
> support to squash the lam and alif characters into the same
> character cell, so that selecting and copying just that character
> cell gets you both characters. Is that correct? I think I can now
> see how to do this reasonably easily, but I wanted to check with you
> before going ahead.

Yup, that's the idea - as it stands now the lam+alef produces the LAA
ligature but there is that pesky space that needs to be absorbed for
it to look 100% correct.
 
> So what I'd like from you, if possible, would be:
> 
>  - Check the new bidi functionality (PuTTY development snapshot
>    code) and verify that the cursor position and selection do what
>    you expect.

Looks good to me.
 
>  - Check the new combining character support (also in the snapshots)
>    and let me know if there's any problem with that.

I'm guessing here you mean diacritics (ie. what is termed harakat in
arabic) such as fatha (U+064E) or damma (U+064F) or shadda (U+0651),
right ?  Well, looks like there might be an issue with these.  I
randomly picked a file to open which I knew has harakat/diacritics
and it keeps failing on me (less, vim, etc).  Anytime I try to open
with the development PuTTY code I get,

  'Assertion Failed'
  File:..\.\terminal.c
  Line 4420
  Expression: 0 <= p && p < width

Hope that helps.  The file I attempt to open is (v-1.8),
  http://cvs.arabeyes.org/viewcvs/translate/gnome/desktop/dasher.po
search for 'Speak' or 'translator_credits'.

I can view it fine (well without crashes although the harakat are not
visible) in older development versions (like 2004-11-19:r4819).

>  - Consider doing a robustness review of minibidi.c. Alternatively,
>    I could go through it and point out the potential problems and
>    then you could suggest what solutions were appropriate.

Will do and will try to get more people inspecting it as well.
 
>  - Let me know whether the plan for ligatures is correct, so I can
>    go ahead with it.

Sounds good to me.

BTW: I was using version 2004-12-01:r4937

Arabeyes folk, do please test and report back ASAP (this is the least
we can do) !!

Regards,

 - Nadim



		
__________________________________ 
Do you Yahoo!? 
All your favorites on one personal page – Try My Yahoo!
http://my.yahoo.com