diff options
author | Kenichi Handa <handa@m17n.org> | 2009-04-16 01:38:35 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2009-04-16 01:38:35 +0000 |
commit | b840b299b96b0b96c72b800173e23894c631a426 (patch) | |
tree | 17afafeafbf1cd5d9f259cfd351bfd5aab714467 /src/xftfont.c | |
parent | d778210526d235d52d58f5dd4e640d14c4d886ab (diff) | |
download | emacs-b840b299b96b0b96c72b800173e23894c631a426.tar.gz |
(xftfont_has_char): Special handling of `ja' and `ko' adstyle.
Diffstat (limited to 'src/xftfont.c')
-rw-r--r-- | src/xftfont.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/xftfont.c b/src/xftfont.c index e533fd73791..af0feb9b7e6 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); |