aboutsummaryrefslogtreecommitdiffstats
path: root/src/xftfont.c
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>2009-04-16 01:38:35 +0000
committerKenichi Handa <[email protected]>2009-04-16 01:38:35 +0000
commitb840b299b96b0b96c72b800173e23894c631a426 (patch)
tree17afafeafbf1cd5d9f259cfd351bfd5aab714467 /src/xftfont.c
parentd778210526d235d52d58f5dd4e640d14c4d886ab (diff)
(xftfont_has_char): Special handling of `ja' and `ko' adstyle.
Diffstat (limited to 'src/xftfont.c')
-rw-r--r--src/xftfont.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/xftfont.c b/src/xftfont.c
index e533fd7379..af0feb9b7e 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -467,16 +467,28 @@ xftfont_done_face (f, face)
}
}
+extern Lisp_Object Qja, Qko;
+
static int
xftfont_has_char (font, c)
Lisp_Object font;
int c;
{
struct xftfont_info *xftfont_info;
+ struct charset *cs = NULL;
if (FONT_ENTITY_P (font))
return ftfont_driver.has_char (font, c);
+ if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qja)
+ && charset_jisx0208 >= 0)
+ cs = CHARSET_FROM_ID (charset_jisx0208);
+ else if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qko)
+ && charset_ksc5601 >= 0)
+ cs = CHARSET_FROM_ID (charset_ksc5601);
+ if (cs)
+ return (ENCODE_CHAR (cs, c) != CHARSET_INVALID_CODE (cs));
+
xftfont_info = (struct xftfont_info *) XFONT_OBJECT (font);
return (XftCharExists (xftfont_info->display, xftfont_info->xftfont,
(FcChar32) c) == FcTrue);