hb_ot_layout_script_find_language (hb_ot_layout_t            *layout,
				   hb_ot_layout_table_type_t  table_type,
				   unsigned int               script_index,
				   hb_tag_t                   language_tag,
				   unsigned int              *language_index)
{
  ASSERT_STATIC (NO_INDEX == HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX);
  const Script &s = get_gsubgpos_table (layout, table_type).get_script (script_index);

  if (s.find_lang_sys_index (language_tag, language_index))
    return TRUE;

  /* try with 'dflt'; MS site has had typos and many fonts use it now :( */
  if (s.find_lang_sys_index (HB_OT_LAYOUT_TAG_DEFAULT_LANGUAGE, language_index))
    return FALSE;

  if (language_index) *language_index = HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX;
  return FALSE;
}
hb_ot_layout_script_find_language (hb_ot_layout_t            *layout,
				   hb_ot_layout_table_type_t  table_type,
				   unsigned int               script_index,
				   hb_tag_t                   language_tag,
				   unsigned int              *language_index)
{
  ASSERT_STATIC (NO_INDEX == HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX);
  const Script &s = get_gsubgpos_table (layout, table_type).get_script (script_index);

  if (s.find_lang_sys_index (language_tag, language_index))
    return TRUE;

   
  if (s.find_lang_sys_index (HB_OT_LAYOUT_TAG_DEFAULT_LANGUAGE, language_index))
    return FALSE;

  if (language_index) *language_index = HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX;
  return FALSE;
}