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 |