[Bug 7150] Implement Arabic shaping

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Oct 26 12:17:48 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=7150





--- Comment #14 from alsadi <alsadi at ojuba.org>  2009-10-26 12:17:48 ---
> articles written by me

Shachar! why haven't you implemented your docs ?

according to me the proper BiDi handling is :-)
- Bidi level calculations
- Line breaking
- Reodering
- Shaping

my code is very optimized, so if you just want to move things for optimization
purpose just forget it, you won't get a better performance, that would be near
impossible.

why did I made it the last step of BiDi process ?
because shaping changes the characters which would interfere the Reodering
process

for example a Reodering routine might know that U+639 is RTL but it may/may not
know that U+FECC is RTL too (many Reodering routines in many project don't
handle this case, I don't know about wine)

notes:
U+0639 ARABIC LETTER AIN
U+FECC ARABIC LETTER AIN MEDIAL FORM

and since I don't want to change any other function, I made it after Reodering.

the case where Shaping should be done before reodering is when the char length
of U+0639 is less that shaped U+FECC
but this is not the case in wine (UTF-16) so the positions calculated by your
reordering are granted to be valid as my function is 1-1.

the right thing to do is to use HarfBuzz which is in its way as a standalone
library.
http://fedoraproject.org/wiki/Features/Harfbuzz

but since this is a decision to be made in winehq, this is the only thing I can
do.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list