summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2009-01-29 12:13:59 +0000
committerKenichi Handa <handa@m17n.org>2009-01-29 12:13:59 +0000
commit6570a1c427c086c81038a7b7c725094729afd3f4 (patch)
tree341003062d1fe2ed8cc9d04d5832822d515ebe0f /src
parentd72a4afa742b06438a53ad2a1c5fc31ccf4accbc (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/xftfont.c17
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;