[HarfBuzz] 'calt' in the uniscribe arabic shaper

Jonathan Kew jfkthame at googlemail.com
Sun Aug 18 06:55:15 PDT 2013


Following up on the recent questions regarding 'calt' in Indic 
scripts... I'm also noticing some odd behavior in Arabic.

(1) According to http://support.microsoft.com/kb/2786400, contextual 
alternates (which I assume to mean the 'calt' feature) should *not* be 
applied automatically by uniscribe (by default) in Windows 8, or in a 
fully-updated Win7.

However, testing with Arabic Typesetting on Windows 8, I -am- seeing the 
'calt' feature applied by default. A simple testcase is <06C1,06D2>, 
where the 'calt' feature selects a special ligated form. While I 
actually think this is the RIGHT thing to do, it seems to conflict with 
KB2786400's description of the intended behavior.

A uniscribe bug, a documentation bug, or what...?

(2) If the same word is encoded using the Presentation Forms codepoints 
(not recommended, I know, but there's a certain amount of legacy data 
out there in the wild) as <FBA8,FBAF>, then uniscribe does NOT apply the 
'calt' feature - indeed, I suspect it's not applying any of the Arabic 
shaping features.

However, if I shape the same text using DirectWrite, the 'calt' feature 
IS applied even when the text was encoded using the presentation-form 
codepoints.

(This difference can be observed, for example, by using Firefox, 
disabling harfbuzz (gfx.font_rendering.harfbuzz.scripts = 0) and 
comparing the rendering with hardware acceleration, in which case 
DirectWrite will be used, vs with hardware acc disabled, when Uniscribe 
will be used.)

JK



More information about the HarfBuzz mailing list