| 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 | 
|  |