[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src xfont.c
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] emacs/src xfont.c |
Date: |
Thu, 16 Apr 2009 01:39:09 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 09/04/16 01:39:09
Modified files:
src : xfont.c
Log message:
(xfont_has_char): Special handling of `ja' and `ko' adstyle.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/xfont.c?cvsroot=emacs&r1=1.24&r2=1.25
Patches:
Index: xfont.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xfont.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- xfont.c 14 Apr 2009 01:26:03 -0000 1.24
+++ xfont.c 16 Apr 2009 01:39:08 -0000 1.25
@@ -792,17 +792,33 @@
return 0;
}
+extern Lisp_Object Qja, Qko;
+
static int
-xfont_has_char (entity, c)
- Lisp_Object entity;
+xfont_has_char (font, c)
+ Lisp_Object font;
int c;
{
- Lisp_Object registry = AREF (entity, FONT_REGISTRY_INDEX);
+ Lisp_Object registry = AREF (font, FONT_REGISTRY_INDEX);
struct charset *encoding;
- struct charset *repertory;
+ struct charset *repertory = NULL;
- if (font_registry_charsets (registry, &encoding, &repertory) < 0)
- return -1;
+ if (EQ (registry, Qiso10646_1))
+ {
+ /* We use a font of `ja' and `ko' adstyle only for a character
+ in JISX0208 and KSC5601 charsets respectively. */
+ if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qja)
+ && charset_jisx0208 >= 0)
+ encoding = repertory = CHARSET_FROM_ID (charset_jisx0208);
+ else if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qko)
+ && charset_ksc5601 >= 0)
+ encoding = repertory = CHARSET_FROM_ID (charset_ksc5601);
+ else
+ encoding = CHARSET_FROM_ID (charset_unicode);
+ }
+ else if (font_registry_charsets (registry, &encoding, &repertory) < 0)
+ /* Unknown REGISTRY, not usable. */
+ return 0;
if (ASCII_CHAR_P (c) && encoding->ascii_compatible_p)
return 1;
if (! repertory)