X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-charset.c;h=0965a216b5201cb6ae497dec6712ab725ff2cc94;hb=bdd33b388156837b59e1b3f92286c503bb80db6c;hp=eff242e9b9119b5da58225e9b7b69a499dced718;hpb=b10ee70be2e0ce31599b05e9d58f83fc92141de0;p=chise%2Fxemacs-chise.git diff --git a/src/mule-charset.c b/src/mule-charset.c index eff242e..0965a21 100644 --- a/src/mule-charset.c +++ b/src/mule-charset.c @@ -65,6 +65,7 @@ Lisp_Object Vcharset_chinese_cns11643_2; #ifdef UTF2000 Lisp_Object Vcharset_ucs; Lisp_Object Vcharset_ucs_bmp; +Lisp_Object Vcharset_ucs_cns; Lisp_Object Vcharset_latin_viscii; Lisp_Object Vcharset_latin_tcvn5712; Lisp_Object Vcharset_latin_viscii_lower; @@ -1487,9 +1488,6 @@ Store character's ATTRIBUTES. Lisp_Object rest = attributes; Lisp_Object code = Fcdr (Fassq (Qucs, attributes)); Lisp_Object character; -#if 0 - Lisp_Object daikanwa = Qnil; -#endif if (NILP (code)) { @@ -1533,36 +1531,11 @@ Store character's ATTRIBUTES. while (CONSP (rest)) { Lisp_Object cell = Fcar (rest); -#if 0 - Lisp_Object key = Fcar (cell); - Lisp_Object value = Fcdr (cell); -#endif if (!LISTP (cell)) signal_simple_error ("Invalid argument", attributes); -#if 0 - if (EQ (key, Qmorohashi_daikanwa)) - { - size_t len; - GET_EXTERNAL_LIST_LENGTH (value, len); - - if (len == 1) - { - if (NILP (daikanwa)) - daikanwa = Fcdr (Fassq (Qideograph_daikanwa, rest)); - if (EQ (Fcar (value), daikanwa)) - goto ignored; - } - } - else if (EQ (key, Qideograph_daikanwa)) - daikanwa = value; -#endif - Fput_char_attribute (character, Fcar (cell), Fcdr (cell)); -#if 0 - ignored: -#endif rest = Fcdr (rest); } return character; @@ -1608,6 +1581,7 @@ Lisp_Object Qascii, Qchinese_cns11643_2, #ifdef UTF2000 Qucs_bmp, + Qucs_cns, Qlatin_viscii, Qlatin_tcvn5712, Qlatin_viscii_lower, @@ -2389,17 +2363,15 @@ encode_builtin_char_1 (Emchar c, Lisp_Object* charset) *charset = Vcharset_ucs; return c; } - /* else if (c <= MAX_CHAR_DAIKANWA) { *charset = Vcharset_ideograph_daikanwa; return c - MIN_CHAR_DAIKANWA; } - */ - else if (c <= MAX_CHAR_MOJIKYO) + else if (c <= MAX_CHAR_MOJIKYO_0) { *charset = Vcharset_mojikyo; - return c - MIN_CHAR_MOJIKYO; + return c - MIN_CHAR_MOJIKYO_0; } else if (c < MIN_CHAR_94) { @@ -2462,6 +2434,16 @@ encode_builtin_char_1 (Emchar c, Lisp_Object* charset) return c; } } + else if (c < MIN_CHAR_MOJIKYO) + { + *charset = Vcharset_ucs; + return c; + } + else if (c <= MAX_CHAR_MOJIKYO) + { + *charset = Vcharset_mojikyo; + return c - MIN_CHAR_MOJIKYO; + } else { *charset = Vcharset_ucs; @@ -3538,6 +3520,7 @@ syms_of_mule_charset (void) defsymbol (&Qfont, "font"); defsymbol (&Qucs, "ucs"); defsymbol (&Qucs_bmp, "ucs-bmp"); + defsymbol (&Qucs_cns, "ucs-cns"); defsymbol (&Qlatin_viscii, "latin-viscii"); defsymbol (&Qlatin_tcvn5712, "latin-tcvn5712"); defsymbol (&Qlatin_viscii_lower, "latin-viscii-lower"); @@ -3673,6 +3656,15 @@ complex_vars_of_mule_charset (void) build_string ("ISO/IEC 10646 Group 0 Plane 0 (BMP)"), build_string ("\\(ISO10646.*-1\\|UNICODE[23]?-0\\)"), Qnil, 0, 0xFFFF, 0, 0); + staticpro (&Vcharset_ucs_cns); + Vcharset_ucs_cns = + make_charset (LEADING_BYTE_UCS_CNS, Qucs_cns, 256, 4, + 1, 2, 0, CHARSET_LEFT_TO_RIGHT, + build_string ("UCS for CNS"), + build_string ("UCS for CNS 11643"), + build_string ("ISO/IEC 10646 for CNS 11643"), + build_string (""), + Qnil, 0, 0xFFFFFFF, 0, 0); #else # define MIN_CHAR_THAI 0 # define MAX_CHAR_THAI 0