From 6570a1c427c086c81038a7b7c725094729afd3f4 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 29 Jan 2009 12:13:59 +0000 Subject: [PATCH] (xftfont_has_char): New function. (syms_of_xftfont): Register xftfont_has_char in xftfont_driver. --- src/ChangeLog | 5 +++++ src/xftfont.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 1f5163c556..c0ae02efe2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-01-29 Kenichi Handa + + * xftfont.c (xftfont_has_char): New function. + (syms_of_xftfont): Register xftfont_has_char in xftfont_driver. + 2009-01-29 Adrian Robert * nsterm.h (EmacsPrefsController.cursorBlinkSlider): Only define diff --git a/src/xftfont.c b/src/xftfont.c index fa393e826e..aecf649742 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -144,6 +144,7 @@ static Lisp_Object xftfont_open P_ ((FRAME_PTR, Lisp_Object, int)); static void xftfont_close P_ ((FRAME_PTR, struct font *)); static int xftfont_prepare_face P_ ((FRAME_PTR, struct face *)); static void xftfont_done_face P_ ((FRAME_PTR, struct face *)); +static int xftfont_has_char P_ ((Lisp_Object, int)); static unsigned xftfont_encode_char P_ ((struct font *, int)); static int xftfont_text_extents P_ ((struct font *, unsigned *, int, struct font_metrics *)); @@ -466,6 +467,21 @@ xftfont_done_face (f, face) } } +static int +xftfont_has_char (font, c) + Lisp_Object font; + int c; +{ + struct xftfont_info *xftfont_info; + + if (FONT_ENTITY_P (font)) + return ftfont_driver.has_char (font, c); + + xftfont_info = (struct xftfont_info *) XFONT_OBJECT (font); + return (XftCharExists (xftfont_info->display, xftfont_info->xftfont, + (FcChar32) c) == FcTrue); +} + static unsigned xftfont_encode_char (font, c) struct font *font; @@ -604,6 +620,7 @@ syms_of_xftfont () xftfont_driver.close = xftfont_close; xftfont_driver.prepare_face = xftfont_prepare_face; xftfont_driver.done_face = xftfont_done_face; + xftfont_driver.has_char = xftfont_has_char; xftfont_driver.encode_char = xftfont_encode_char; xftfont_driver.text_extents = xftfont_text_extents; xftfont_driver.draw = xftfont_draw; -- 2.20.1