diff --git a/src/hb-ot-shape-complex-arabic.cc b/src/hb-ot-shape-complex-arabic.cc index 7c1b7bcbf..77a9c8230 100644 --- a/src/hb-ot-shape-complex-arabic.cc +++ b/src/hb-ot-shape-complex-arabic.cc @@ -67,6 +67,14 @@ static unsigned int get_joining_type (hb_codepoint_t u, hb_category_t gen_cat) return j_type; } + /* Mongolian joining data is not in ArabicJoining.txt yet */ + if (unlikely (0x1800 <= u && u <= 0x18AF)) + { + /* All letters, SIBE SYLLABLE BOUNDARY MARKER, and NIRUGU are D */ + if (gen_cat == HB_CATEGORY_OTHER_LETTER || u == 0x1807 || u == 0x180A) + return JOINING_TYPE_D; + } + if (unlikely ((u & ~(0x200C^0x200D)) == 0x200C)) { return u == 0x200C ? JOINING_TYPE_U : JOINING_TYPE_C; } diff --git a/src/hb-ot-shape-complex-private.hh b/src/hb-ot-shape-complex-private.hh index 788d18aa6..fed167dec 100644 --- a/src/hb-ot-shape-complex-private.hh +++ b/src/hb-ot-shape-complex-private.hh @@ -42,6 +42,7 @@ hb_ot_shape_complex_categorize (const hb_segment_properties_t *props) case HB_SCRIPT_NKO: case HB_SCRIPT_SYRIAC: case HB_SCRIPT_MANDAIC: + case HB_SCRIPT_MONGOLIAN: return hb_ot_complex_shaper_arabic; default: