From 7179ce7b35a4e28d4bf6e49508631d074835c9d2 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 27 Jan 2009 05:10:08 +0000 Subject: [PATCH] (ftfont_has_char): If the arg FONT is a font-object, directly use GT_Get_Char_index. --- src/ChangeLog | 10 ++++++++++ src/ftfont.c | 21 ++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 52eab5a74ce..1b236637671 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2009-01-27 Kenichi Handa + + * ftfont.c (ftfont_has_char): If the arg FONT is a font-object, + directly use GT_Get_Char_index. + + * xftfont.c (struct xftfont_info): New member `index'. + + * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit. + (Ffontset_font): Adjusted for the change of fontset entry. + 2009-01-26 Kenichi Handa * fontset.c (fontset_find_font): Fix handling of non-cons return diff --git a/src/ftfont.c b/src/ftfont.c index b28c4c3ea21..dea3bf069b4 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -62,7 +62,7 @@ struct ftfont_info { struct font font; #ifdef HAVE_LIBOTF - /* The following three members must be here in this order to be + /* The following four members must be here in this order to be compatible with struct xftfont_info (in xftfont.c). */ int maybe_otf; /* Flag to tell if this may be OTF or not. */ OTF *otf; @@ -1189,13 +1189,24 @@ ftfont_close (f, font) } static int -ftfont_has_char (entity, c) - Lisp_Object entity; +ftfont_has_char (font, c) + Lisp_Object font; int c; { - FcCharSet *charset = ftfont_get_fc_charset (entity); + if (FONT_ENTITY_P (font)) + { + FcCharSet *charset = ftfont_get_fc_charset (font); - return (FcCharSetHasChar (charset, c) == FcTrue); + return (FcCharSetHasChar (charset, c) == FcTrue); + } + else + { + struct ftfont_info *ftfont_info; + + ftfont_info = (struct ftfont_info *) XFONT_OBJECT (font); + return (FT_Get_Char_Index (ftfont_info->ft_size->face, (FT_ULong) c) + != 0); + } } static unsigned