On Fri, Sep 3, 2010 at 4:25 PM, Eli Zaretskii <address@hidden>
<- Snipped text ->
Even if everything I said above is correct, there are complications.
ABCDE could be inside an embedding with left to right override, like
foobar RLO ABCDE PDF
This should be displayed as
i.e., "ABCDE" is not reordered, but displayed in the logical order, as
forced by RLO. Therefore, the reshaped "XYZ" should also be displayed
left to right:
But, if I understand correctly how composition works, the
auto-composed sequence in this case will still be just "XYZ", without
the RLO and PDF control characters. So the `shape' method of the font
driver will still see just "XYZ" in the LGSTRING, without the control
characters, and will reorder "XYZ", which is incorrect.
If we need the `shape' method to reorder glyphs, then in order for it
do its job correctly, we need to give it the entire bidi context of
the string we are asking it to reshape. In the above example, we need
to tell it about the override directive, i.e. pass it "ABCDE" with
surrounding RLO and PDF controls. This flies in the face of the
current design, which separates reordering from glyph shaping.
Is that a typo? I think you mean LRO (U+202D) rather than RLO in all cases above.
(Just commenting, to avoid further misunderstandings).