| Index: third_party/harfbuzz-ng/src/hb-ot-layout.cc
|
| ===================================================================
|
| --- third_party/harfbuzz-ng/src/hb-ot-layout.cc (리비전 189447)
|
| +++ third_party/harfbuzz-ng/src/hb-ot-layout.cc (작업 사본)
|
| @@ -185,6 +185,8 @@
|
| return g.get_script_tags (start_offset, script_count, script_tags);
|
| }
|
|
|
| +#define HB_OT_TAG_LATIN_SCRIPT HB_TAG ('l', 'a', 't', 'n')
|
| +
|
| hb_bool_t
|
| hb_ot_layout_table_find_script (hb_face_t *face,
|
| hb_tag_t table_tag,
|
| @@ -206,6 +208,11 @@
|
| if (g.find_script_index (HB_OT_TAG_DEFAULT_LANGUAGE, script_index))
|
| return false;
|
|
|
| + /* try with 'latn'; some old fonts put their features there even though
|
| + they're really trying to support Thai, for example :( */
|
| + if (g.find_script_index (HB_OT_TAG_LATIN_SCRIPT, script_index))
|
| + return false;
|
| +
|
| if (script_index) *script_index = HB_OT_LAYOUT_NO_SCRIPT_INDEX;
|
| return false;
|
| }
|
| @@ -246,7 +253,6 @@
|
|
|
| /* try with 'latn'; some old fonts put their features there even though
|
| they're really trying to support Thai, for example :( */
|
| -#define HB_OT_TAG_LATIN_SCRIPT HB_TAG ('l', 'a', 't', 'n')
|
| if (g.find_script_index (HB_OT_TAG_LATIN_SCRIPT, script_index)) {
|
| if (chosen_script)
|
| *chosen_script = HB_OT_TAG_LATIN_SCRIPT;
|
| @@ -660,11 +666,12 @@
|
| hb_ot_layout_substitute_lookup (hb_font_t *font,
|
| hb_buffer_t *buffer,
|
| unsigned int lookup_index,
|
| - hb_mask_t mask)
|
| + hb_mask_t mask,
|
| + hb_bool_t auto_zwj)
|
| {
|
| if (unlikely (lookup_index >= hb_ot_layout_from_face (font->face)->gsub_lookup_count)) return false;
|
|
|
| - OT::hb_apply_context_t c (font, buffer, mask);
|
| + OT::hb_apply_context_t c (0, font, buffer, mask, auto_zwj);
|
|
|
| const OT::SubstLookup& l = hb_ot_layout_from_face (font->face)->gsub->get_lookup (lookup_index);
|
|
|
| @@ -709,11 +716,12 @@
|
| hb_ot_layout_position_lookup (hb_font_t *font,
|
| hb_buffer_t *buffer,
|
| unsigned int lookup_index,
|
| - hb_mask_t mask)
|
| + hb_mask_t mask,
|
| + hb_bool_t auto_zwj)
|
| {
|
| if (unlikely (lookup_index >= hb_ot_layout_from_face (font->face)->gpos_lookup_count)) return false;
|
|
|
| - OT::hb_apply_context_t c (font, buffer, mask);
|
| + OT::hb_apply_context_t c (1, font, buffer, mask, auto_zwj);
|
|
|
| const OT::PosLookup& l = hb_ot_layout_from_face (font->face)->gpos->get_lookup (lookup_index);
|
|
|
| @@ -721,9 +729,9 @@
|
| }
|
|
|
| void
|
| -hb_ot_layout_position_finish (hb_font_t *font, hb_buffer_t *buffer, hb_bool_t zero_width_attached_marks)
|
| +hb_ot_layout_position_finish (hb_font_t *font, hb_buffer_t *buffer)
|
| {
|
| - OT::GPOS::position_finish (font, buffer, zero_width_attached_marks);
|
| + OT::GPOS::position_finish (font, buffer);
|
| }
|
|
|
| hb_bool_t
|
|
|