Re: Question about the directionality of "Old Hungarian" (document N3531)

From: Asmus Freytag (asmusf@ix.netcom.com)
Date: Tue Nov 04 2008 - 11:06:37 CST

  • Next message: Asmus Freytag: "Re: Question about the directionality of "Old Hungarian" (document N3531)"
    On 11/4/2008 1:14 AM, Michael Everson wrote:
    On 4 Nov 2008, at 08:09, Kent Karlsson wrote:

    I know. That is why there is a loophole, but only a loophole,
    in the bidi algorithm. It covers (badly) Old Italic, which is
    encoded as LTR, when overriden as RTL to (sometimes, only
    sometimes, using some as yet unheard of higher-level-protocol
    mechanism; I can imagine them, just haven't seen any) produce
    mirrored glyphs for the Old Italic letters.

    "The font" is supposed to do that. We've always been told this.

    But if the bidi algorithm says not to mirror, the font [handling
    system] should not start to mirror. The mirroring is governed by the
    bidi algorithm. If the font mirrors glyphs anyway, it's simply a
    flawed font.

    You say this with a lot of conviction. I don't think you're right though.
    Just read the standard, in this case UAX#9.

    The Bidirectional Conformance section says, removing language not needed for this discussion:

    UAX9-C1. In the absence of a permissible higher-level protocol, a process that renders text shall display all visible representations of characters (excluding format characters) in the order described by Section 3, Basic Display Algorithm, of this annex. In particular, this includes ....
    L4

    UAX-C2. The only permissible higher-level protocols are those listed in Section 4.3, Higher-Level Protocols. They are ... and HL6

    and L4 is the step that defines mirroring.

    L4. A character is depicted by a mirrored glyph if and only if (a) the resolved directionality of that character is R, and (b) the Bidi_Mirrored property value of that character is true..

    and, finally, HL6 says:

    HL6.Additional mirroring.
    As you can see, the case where an RTL script is overridden to L is *not* covered by this language. Conformant process MUST NOT mirror characters in this case. What the UAX should have been saying is:

    "Characters with a resolved directionality of R, or characters defined in the standard with bidirectional class of R and resolved directionality of L, can also...."

    But, unless it's fixed, that UAX is *not* saying that and Kent's correct.

    A./





    This archive was generated by hypermail 2.1.5 : Tue Nov 04 2008 - 11:09:30 CST