Add BiDi infrastructure
Shachar Shemesh
wine-devel at sun.consumer.org.il
Mon Aug 19 04:03:34 CDT 2002
Alexandre Julliard wrote:
>Shachar Shemesh <wine-devel at sun.consumer.org.il> writes:
>
>
>
>>No actual patch, yet, as I still have a few heap corruptions in
>>certain cases. Attached, however, is the preliminary "Wine with
>>external libfribidi". Do your worst, come back with an opinion. This
>>is not, yet, cleaned up, but the interface is a pretty good
>>representation of what the final version is going to be.
>>
>>
>
>What I don't see is how you are going to implement all of the
>GetCharacterPlacement features, like the various override flags, the
>lpClass array, etc.
>
The only overrides in "GetCharacterPlacement" are the lpClass parameter.
The few weeks of silence from me were spent trying to investigate every
aspect of GetCharacterPlacement. The results are, roughly:
1. This function is impossible. It has overlapping arguments, docs
are extremely unclear as to what arguments you can avoid
supplying, and what arguments are mandatory.
2. The function is supposed to let you do all reordering once, and
then repeat the actual printing as many times as necessary. In
practice, I find it hard to believe that this is a high priority
issue for anyone.
3. Things are further complicated by the fact that it has no out of
bounds way of specifying what the base direction is (and, MS being
MS, this means that a base direction of LTR is chosen, and not
according to the Unicode algorithm).
In short, I find it hard to believe that ANYONE would really use that
function at all. The lpClass were particularily annoying, as they
obviously did SOMETHING, but defenitely not what you would expect. Why
is that relevant? Read a little further.
> Is fribidi going to support all of that the way
>we need it?
>
>
Is fribidi going to support all the GetCharacterPlacement functionality?
No, classes are not going to be supported by it. Everything else should
not pose a problem.
Is fribidi going to support all the functionality we are likely to need?
Yes, I believe it will. That is why I tried to stress the amount of
shortcutting this library is going to get us. Implementing the various
unicode algorithms is a pain, and one to be avoided. If, at some stage
in the future, it turns out that some programs really do need classes
from GetCharacterPlacement, well, we'll have this discussion again.
>>As a bynote, I will add that it seems that libfribidi may not be as
>>mature as I have hoped, and if problems keep popping up, I will put it
>>into our code myself (or, more preciseley, try). It will not be an
>>easy task, as it currently carries it's own unicode tables, configure
>>scripts, and so on. Since you vulenteered to help with this.... ;-).
>>
>>
>
>Sure, I can do the unicode tables if you tell me exactly what
>information you need.
>
>
Wouldn't that create strange dependancies between modules? Who currently
"owns" the unicode tables?
Shachar
More information about the wine-devel
mailing list