Skip to content

Support Arabic fallback shaping #63

Open
@floppyhammer

Description

Test text:
ح ب ا حبا
It consists of two parts (separated with a space):
حبا
ح ب ا
The second part is basically the first part with every character delimited with space (in order to cancel ligatures).

Related buffer config:

buffer.set_direction(rustybuzz::Direction::RightToLeft);
buffer.set_language(rustybuzz::Language::from_str("ar").unwrap());
buffer.set_script(rustybuzz::script::ARABIC);

Test case 1 (unifont-15.0.01.ttf)
Shaped glyph id:
harfbuzz 56721 56725 56237 35 56720 35 56722 35 56740
rustybuzz 1578 1579 1584 35 1578 35 1579 35 1584

So firstly, I had tested with unifont, and rustybuzz failed to handle the ligatures. I thought I must had got something wrong, but then I tested with another font.

Test case 2 (HONORSansArabicUI-B.ttf)
Shaped glyph id:
harfbuzz 7 33 97 1 5 1 30 1 93
rustybuzz 7 33 97 1 5 1 30 1 93

And the result is correct and conforms to that of harfbuzz.

There might be something off with rustybuzz.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions