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..
- This rule can be overridden in certain cases; see HL6.
and, finally, HL6 says:
HL6.Additional mirroring.
- Characters with a resolved directionality of R that do not have
the Bidi_Mirrored property can also be depicted by a mirrored glyph in
specialized contexts. Such contexts include, but are not limited to,
historic scripts and associated punctuation, private-use characters,
and characters in mathematical expressions. (See Section
6, 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