(struct MFontFT): Delete member lang.
(free_ft_info): Don't unref member lang. Destroy members langset
and charset.
(fc_parse_pattern): Last argument changed to MFontFT *. Callers
changed. Set members langset and charset.
(fc_init_font_list, fc_list_pattern, fc_build_charset): New
functions.
(ft_init_font_list, ft_has_char_list_p, ft_list_char_list): New
functions.
(ft_list_family) [HAVE_FONTCONFIG]: Include FC_CHARSET on objset.
(ft_list_family) [! HAVE_FONTCONFIG]: Call ft_init_font_list.
(ft_list_language) [HAVE_FONTCONFIG]: Check representative
characters at first. If it fails, try listing by language names.
(ft_list_language) [! HAVE_FONTCONFIG]: Call ft_list_char_list.
(ft_check_language): Renamed from ft_check_lang. Adjusted for the
change of MFontCapability.
(ft_list_capability): Likewise. Try listing by languages, then by
scripts. Check OTF at last.
(ft_check_script): New function.
(ft_select): Adjusted for the check of MFontCapability.
(ft_list_family_names): New function.
(ft_check_capability): If cap->script is not Mnil, call
ft_check_script.
(mfont__ft_driver): Initialize with ft_list_family_names.