On Wed, 19 Jun 2002, Shachar Shemesh wrote:
Behdad Esfahbod wrote:
Your are quite right, Fribidi's main algorithms are not going to change anymore, the things I'm playing with these days are all interface and other side stuff (BTW if you want arabic joining too, things become a little different).
I will, eventually. Then again, I don't think that integrating a first version that isn't perfect in that respect, and then doing the port again when you guys are done, is such a bad idea.
Yes, Ofcourse.
The fribidi unicode tables (for just BMP = 16bit) takes something between 2k and 8k (space vs. speed configurable), so don't worry about that too.
Problem is that WINE already has its own unicode tables, and they do not hold enough room for the the 3.0 bidi algo (havn't checked what FriBidi is doing yet). I think it will be better for WINE (but not for my free time) to merge the information (probably very similar already).
I wonder if WINE already has bidi tables of unicode too, if it has, no problem using it.
As for compiling Fribidi with UTF-16 - from what I understood from what you said before, such a thing may cause reordering problems if Fribidi decides, for whatever reason, that a surrogate character needs to be right to left. I am not 100% familiar with the bidi algorythm yet, but won't marking all surrogate forms (both slices) as strong left to right solve this problem?
The problem you are talking about will show itself when some one use RLO..PDF pairs (override embeddings) over some surrogate pairs, but this is not the main problem, I can hach fribidi to take care of surrogates and reorder them back if needed (really easy), the real problem is that when using UTF-16, fribidi will assume all surrogate characters LTR (strong left to right), but there *are* non-LTR characters there already (like language tags), and it may cause to different renderings. If you want conformance, UTF-32 is needed ;-(.
If not, we can always put in special handling that reorders surrogates as a pair.
Shachar