]> git.eshelyaron.com Git - emacs.git/commitdiff
(xftfont_has_char): New function.
authorKenichi Handa <handa@m17n.org>
Thu, 29 Jan 2009 12:13:59 +0000 (12:13 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 29 Jan 2009 12:13:59 +0000 (12:13 +0000)
(syms_of_xftfont): Register xftfont_has_char in xftfont_driver.

src/ChangeLog
src/xftfont.c

index 1f5163c556c5b0104c3d4e77ea4d382f87413b03..c0ae02efe2817d1cafbae4a1f4a80a81477d52cb 100644 (file)
@@ -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
index fa393e826e320490f647350f4502822b2fe7503d..aecf64974286f85df4118683414c7c830081a2a7 100644 (file)
@@ -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;