Skip to content

[aat] Cluster index stays zero past space boundaries for three words of Hebrew with Lucida Grande #1305

@drott

Description

@drott

We're failing fast/text/atsui-spacing-features.html in Chrome which tests justification and word spacing by inserting space and cluster boundaries, etc. - link to test failure here.

CoreText reports a cluster index increment from 0 to 2 after yodhebrew, shevanarrowhebrew, and keeps incrementing the cluster index, next after hiriqhebrew, etc.

$ ../test/shaping/hb-unicode-encode U+05D9,U+05B0,U+05D4,U+05B4,U+05D9,U+002C,U+0020,U+05D0,U+05B8,U+05D7,U+05B4,U+05D9,U+002C,U+0020,U+05DC,U+05B0,U+05DA,U+05B8,U+0020 | ./hb-shape --shaper=coretext --font-funcs=ot /System/Library/Fonts/LucidaGrande.ttc
[space=18+648|finalkafqamatshebrew=16+1081|shevahebrew=14+0|lamedhebrew=14+1092|space=13+648|comma=12+648|yodhebrew=11+650|hiriqhebrew=9+0|hethebrew=9+1458|qamatshebrew=7+0|alefhebrew=7+1321|space=6+648|comma=5+648|yodhebrew=4+650|hiriqhebrew=2+0|hehebrew=2+1458|shevanarrowhebrew=0+0|yodhebrew=0+650]

However, when shaping with HB's own AAT shaper, the cluster index is not correctly reported and stays at zero up until the end of the last word of the test string, then jumps to the correct 18 for the trailing space.

$ ../test/shaping/hb-unicode-encode U+05D9,U+05B0,U+05D4,U+05B4,U+05D9,U+002C,U+0020,U+05D0,U+05B8,U+05D7,U+05B4,U+05D9,U+002C,U+0020,U+05DC,U+05B0,U+05DA,U+05B8,U+0020 | ./hb-shape --shaper=ot --font-funcs=ot /System/Library/Fonts/LucidaGrande.ttc
[space=18+648|finalkafqamatshebrew=0+1081|shevahebrew=0@-102,-22+0|lamedhebrew=0+1092|space=0+648|comma=0+648|yodhebrew=0+650|hiriqhebrew=0@46,0+0|hethebrew=0+1458|qamatshebrew=0@12,-17+0|alefhebrew=0+1321|space=0+648|comma=0+648|yodhebrew=0+650|hiriqhebrew=0@46,0+0|hehebrew=0+1458|shevanarrowhebrew=0@-180,0+0|yodhebrew=0+650]

Metadata

Metadata

Assignees

No one assigned

    Labels

    ChromeChrome/Chromium project related issues and requests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions