Mostafa Vahedi wrote:
I know many may disagree with this suggestion but suggestion does not hurt.

1. Use the well-maintained library FriBiDi 
(http://fribidi.freedesktop.org/wiki/) for our BiDi algorithm (in my opinion 
Bidi.cpp has [somehow] reinvented FriBiDi library)

I think you're right about the fact that Bidi.cpp is a reimplementation of the bidi algorithm --- it was probably written before FriBiDi existed, or at least before it was widely accepted.

I'm open to this suggestion --- after 1.5.0 (or even after 1.5.1, once everything else regarding Bidi is more or less stable). My main concern is just not to break anything, and there is something to be said for "if it's not broken, don't fix it". But I do see the sense in using a widely accepted library.


2. For the problem of  "PUNCTUATION + Mixed RTL & LTR", according to the 
Unicode standard since we have the LANGUAGE meta data we can augment the TEXT with UNICODE 
DIRECTIONAL characters.

Yes, if we do use the bidi algorithm, then we *must* also use it's capabilities for override (I'm only very superficially familiar with the algorithm, but I'm pretty sure it does provide an "override" mechanism --- that's the UNICODE DIRECTIONAL characters you mentioned, right?). And yes, since we do already have the language information, that should determine where the override is used.

There's also the issue that I'm calling "GUI-backend Bidi mismatch", (which is actually what Stefan asked about last night) which I'm not sure how to deal with. It may only be the same issue as the overrides: just a question of whether or not one should be allowed to override the direction of whitespace or not...


Dov, what do you think?

So yes, I'm definitely open to this suggestion, but after things are stable, and provided that I'll still be able to do the same things I can do today.

Stefan is also correct --- I'm not really sure how much of a difference this will make. The problems we have are not with the implementation of the bidi algorithm itself, but with how the rest of the code interacts with this. So using FriBiDi really won't help too much in this regard...


Mostafa


Reply via email to