From: Kenichi Handa Date: Thu, 29 Jan 2009 12:13:59 +0000 (+0000) Subject: (xftfont_has_char): New function. X-Git-Tag: emacs-pretest-23.0.90~89 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6570a1c427c086c81038a7b7c725094729afd3f4;p=emacs.git (xftfont_has_char): New function. (syms_of_xftfont): Register xftfont_has_char in xftfont_driver. --- diff --git a/src/ChangeLog b/src/ChangeLog index 1f5163c556c..c0ae02efe28 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 fa393e826e3..aecf6497428 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;