diff options
author | Kenichi Handa <handa@m17n.org> | 2009-01-29 12:13:59 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2009-01-29 12:13:59 +0000 |
commit | 6570a1c427c086c81038a7b7c725094729afd3f4 (patch) | |
tree | 341003062d1fe2ed8cc9d04d5832822d515ebe0f /src | |
parent | d72a4afa742b06438a53ad2a1c5fc31ccf4accbc (diff) | |
download | emacs-6570a1c427c086c81038a7b7c725094729afd3f4.tar.gz |
(xftfont_has_char): New function.
(syms_of_xftfont): Register xftfont_has_char in xftfont_driver.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/xftfont.c | 17 |
2 files changed, 22 insertions, 0 deletions
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 <handa@m17n.org> + + * xftfont.c (xftfont_has_char): New function. + (syms_of_xftfont): Register xftfont_has_char in xftfont_driver. + 2009-01-29 Adrian Robert <Adrian.B.Robert@gmail.com> * 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; |