On Sep 28, 2008, at 1:15 AM, Paul Pedriana wrote:
... this is not a WebCore issue, so there is nothing you can do in WebCore to fix it.
When I look at WebCore's WidthIterator::advance function, it doesn't seem to me to be savvy to complex script. It looks to me like it walks through a Unicode string and replaces character clusters with individual glyphs. This approach works for most scripts but not complex scripts such as Arabic and Devanagari. The problem, as you may well be aware, is that there are many OpenType-directed substitutions, ligations, and "un-ligations." This is unrelated to Arabic's RTL nature unrelated to simply contextual alternates resulting from cursiveness. It seems to me that complex script would have to be supported by something other than WidthIterator::advance (is it?).
If WebCore (or WebKit in general) supports complex script correctly then I wonder what I am missing regarding the above statements.
WebKit on Mac and Windows (and perhaps other ports, haven't tested) supports complex scripts such as Arabic. But not (currently) the iPhone port. Regards, Maciej