fc_charset_idx. Make the member order compatible with struct
xftfont_info.
(fc_charset_table): Change charset names to registry names.
(ftfont_pattern_entity): Delete the args registry and
fc_charset_idx. Change the value of :font-entity property
to (FONTNAME . INDEX). Always set :registry property to
`iso10646-1'.
(struct ftfont_cache_data): New struct.
(ftfont_lookup_cache): New arg for_face.
(ftfont_get_fc_charset, ftfont_get_otf): New functions.
(ftfont_driver): Set the member otf_capability.
(ftfont_get_charset): Adjust it for the change of
fc_charset_table.
(OTF_TAG_SYM): New macro.
(ftfont_spec_pattern): Delete the arg fc_charset_idx. Adjust it
for the change of fc_charset_table.
(ftfont_list): Adjust it for the change of ftfont_spec_pattern and
ftfont_pattern_entity. Add FC_INDEX to objset.
(ftfont_match): Adjust it for the change of ftfont_spec_pattern
and ftfont_pattern_entity.
(ftfont_open): Adjust it for the change of ftfont_lookup_cache,
font_make_object, struct ftfont_info.
(ftfont_has_char): Use ftfont_get_fc_charset.
(ftfont_otf_features, ftfont_otf_capability): New functions.
(ftfont_shape): Use ftfont_get_otf.
ftfont_list_generic_family. Return a single family for each
generic family.
(ftfont_spec_pattern): Add FC_FAMILY to pattern.
(ftfont_list): Adjusted for the change of
ftfont_resolve_generic_family. Call font_add_log.
(ftfont_match): Call font_add_log.
(ft_face_cache): New variable.
(struct ftfont_info): New member fc_charset_idx;
(ftfont_build_basic_charsets): Deleted.
(fc_charset_table): New variable.
(ftfont_pattern_entity): New arg fc_charset_idx. Store (FILENAME
. FC_CHARSET_IDX) as :font-entity property in the font entity.
Callers changed.
(ftfont_lookup_cache, ftfont_get_charset): New funcitons.
(ftfont_spec_pattern): New argument fc_charset_idx. Check
registry more rigidly. Callers changed.
(ftfont_open, ftfont_close, ftfont_has_char): Adjustd for the
change of :font-entity property of the font.
a font-entity by font_make_entity. Use font_intern_prop instead
of intern_downcase. Use FONT_SET_STYLE to set a style-related
font property. If a font is scalable, set avgwidth property to 0.
Set font-entity property by font_put_extra.
(ftfont_list_generic_family): Argument SPEC and REGISTRY removed.
(ffont_driver): Adjusted for the change of struct font_driver.
(ftfont_spec_pattern): New function.
(ftfont_list): Return a list, not vector.
(ftfont_match): Use ftfont_spec_pattern to get a pattern.
(ftfont_list_family): Don't downcase names.
(ftfont_free_entity): Deleted.
(ftfont_open): Return a font-ojbect. Adjusted for the change of
struct font. Get underline_thickness and underline_position from
font property. Don't update dpyinfo->smallest_font_height and
dpyinfo->smallest_char_width.
(ftfont_close): Don't free `struct font'.
(ftfont_has_char): Adjusted for the format change of font-entity.
(ftfont_encode_char, ftfont_text_extents): Likewise.
script, langsys_tag renamed to langsys, new member script.
(OTF_TAG_STR): Terminate by '\0'.
(ftfont_get_open_type_spec): If :otf prop is is spec, Limit the
listing to the script specified in that property. Fix arg to
OTF_check_features.
(struct ftfont_info) [HAVE_LIBOTF]: New members maybe_otf and otf.
(ftfont_open) [HAVE_LIBOTF]: Initialize the above members.
(ftfont_driver) [HAVE_LIBOTF, HAVE_M17N_FLT]: Don't set
font_otf_capability and font_drive_otf, set ftfont_shape.
(ftfont_list): Adjusted for the change of :otf property value.
(struct MFLTFontFT) [HAVE_LIBOTF, HAVE_M17N_FLT]: New struct.
(ftfont_get_glyph_id, ftfont_get_metrics, ftfont_check_otf)
(adjust_anchor, ftfont_drive_otf, ftfont_shape_by_flt)
(ftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.s
(DEVICE_DELTA) [HAVE_LIBOTF, HAVE_M17N_FLT]: New macro.
(otf_gstring, gstring, m17n_flt_initialized): New variables.