X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-charset.c;h=0007daaf9e1a6fa7793022eb49f0541bb82b61e7;hb=56b909659fac72d38daf133576b31e40b25cc789;hp=70cb061ae8ae9610740a7dfd23f1c9cfed641373;hpb=8c4f40f3113957e282f57fe682f28b6ee78b1ed1;p=chise%2Fxemacs-chise.git.1 diff --git a/src/mule-charset.c b/src/mule-charset.c index 70cb061..0007daa 100644 --- a/src/mule-charset.c +++ b/src/mule-charset.c @@ -1,7 +1,8 @@ /* Functions to handle multilingual characters. Copyright (C) 1992, 1995 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. - Copyright (C) 1999,2000,2001,2002,2003,2004,2008 MORIOKA Tomohiko + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2008, 2009, 2011, 2013, 2016 + MORIOKA Tomohiko This file is part of XEmacs. @@ -57,7 +58,7 @@ Lisp_Object Vcharset_katakana_jisx0201; Lisp_Object Vcharset_latin_jisx0201; Lisp_Object Vcharset_cyrillic_iso8859_5; Lisp_Object Vcharset_latin_iso8859_9; -Lisp_Object Vcharset_japanese_jisx0208_1978; +/* Lisp_Object Vcharset_japanese_jisx0208_1978; */ Lisp_Object Vcharset_chinese_gb2312; Lisp_Object Vcharset_chinese_gb12345; Lisp_Object Vcharset_japanese_jisx0208; @@ -368,6 +369,8 @@ Lisp_Object Qleading_byte; Lisp_Object Qshort_name, Qlong_name; Lisp_Object Qiso_ir; #ifdef UTF2000 +Lisp_Object Qto_iso_ir; +Lisp_Object Qpartial; Lisp_Object Qmin_code, Qmax_code, Qcode_offset; Lisp_Object Qmother, Qconversion, Q94x60, Q94x94x60, Qbig5_1, Qbig5_2; #endif @@ -386,7 +389,7 @@ Lisp_Object Qascii, Qlatin_jisx0201, Qcyrillic_iso8859_5, Qlatin_iso8859_9, - Qrep_jis_x0208_1978, +/* Qrep_jis_x0208_1978, */ Qrep_gb2312, Qrep_gb12345, Qrep_jis_x0208_1983, @@ -820,10 +823,12 @@ make_charset (Charset_ID id, Lisp_Object name, Bufbyte final, unsigned char direction, Lisp_Object short_name, Lisp_Object long_name, Lisp_Object doc, Lisp_Object reg, + int iso_ir, Lisp_Object decoding_table, Emchar min_code, Emchar max_code, Emchar code_offset, unsigned char byte_offset, - Lisp_Object mother, unsigned char conversion) + Lisp_Object mother, unsigned char conversion, + int partial) { Lisp_Object obj; Lisp_Charset *cs = alloc_lcrecord_type (Lisp_Charset, &lrecord_charset); @@ -847,6 +852,7 @@ make_charset (Charset_ID id, Lisp_Object name, CHARSET_CCL_PROGRAM (cs) = Qnil; CHARSET_REVERSE_DIRECTION_CHARSET (cs) = Qnil; #ifdef UTF2000 + CHARSET_ISO_IR (cs) = iso_ir; CHARSET_DECODING_TABLE(cs) = Qunbound; CHARSET_MIN_CODE (cs) = min_code; CHARSET_MAX_CODE (cs) = max_code; @@ -873,7 +879,7 @@ make_charset (Charset_ID id, Lisp_Object name, unsigned char iso2022_type = (dimension == 1 ? 0 : 2) + (chars == 94 ? 0 : 1); #if UTF2000 - if (code_offset == 0) + if ( ( !partial ) && ( code_offset == 0 ) ) { assert (NILP (chlook->charset_by_attributes[iso2022_type][final])); chlook->charset_by_attributes[iso2022_type][final] = obj; @@ -1134,35 +1140,50 @@ decode_builtin_char (Lisp_Object charset, int code_point) } int -charset_code_point (Lisp_Object charset, Emchar ch, int defined_only) +charset_code_point (Lisp_Object charset, Emchar ch, int accepted_mode) { - Lisp_Object encoding_table = XCHARSET_ENCODING_TABLE (charset); Lisp_Object ret; - if ( CHAR_TABLEP (encoding_table) - && INTP (ret = get_char_id_table (XCHAR_TABLE(encoding_table), - ch)) ) - return XINT (ret); - else + if ( accepted_mode >= 0 ) + { + Lisp_Object encoding_table = XCHARSET_ENCODING_TABLE (charset); + + if ( CHAR_TABLEP (encoding_table) +#ifdef USE_CONCORD_OBJECT_SYSTEM + && !UNBOUNDP (ret = get_char_id_table_ce (XCHAR_TABLE + (encoding_table), + ch)) +#else + && !UNBOUNDP (ret = get_char_id_table (XCHAR_TABLE(encoding_table), + ch)) +#endif + ) + if ( INTP (ret) ) + return XINT (ret); + else + return -1; + } { Lisp_Object mother = XCHARSET_MOTHER (charset); int min = XCHARSET_MIN_CODE (charset); int max = XCHARSET_MAX_CODE (charset); int code = -1; - if ( CHARSETP (mother) ) - { - if (XCHARSET_FINAL (charset) >= '0') - code = charset_code_point (mother, ch, 1); - else - code = charset_code_point (mother, ch, defined_only); - } - else if (defined_only) + if ( CHARSETP (mother) && ( accepted_mode >= 0) + && ( XCHARSET_FINAL (charset) >= '0' ) + ) + code = charset_code_point (mother, ch, CHAR_DEFINED_ONLY); + else if ( CHARSETP (mother) + && ( XCHARSET_FINAL (charset) < '0' ) + ) + code = charset_code_point (mother, ch, accepted_mode); + else if ( accepted_mode == CHAR_DEFINED_ONLY ) return -1; else if ( ((max == 0) && CHARSETP (mother) && (XCHARSET_FINAL (charset) == 0)) || ((min <= ch) && (ch <= max)) ) code = ch; + if ( ((max == 0) && CHARSETP (mother) && (code >= 0)) || ((min <= code) && (code <= max)) ) { @@ -1255,7 +1276,7 @@ charset_code_point (Lisp_Object charset, Emchar ch, int defined_only) exit (-1); } } - else if (defined_only) + else if ( accepted_mode == CHAR_DEFINED_ONLY ) return -1; else if ( ( XCHARSET_FINAL (charset) >= '0' ) && ( XCHARSET_MIN_CODE (charset) == 0 ) @@ -1629,6 +1650,8 @@ character set. Recognized properties are: is passed the octets of the character, with the high bit cleared and set depending upon whether the value of the 'graphic property is 0 or 1. +'iso-ir ISO-IR number (for representative coded-charset). +'=>iso-ir [UTF-2000 only] Corresponding ISO-IR number. 'mother [UTF-2000 only] Base coded-charset. 'code-min [UTF-2000 only] Minimum code-point of a base coded-charset. 'code-max [UTF-2000 only] Maximum code-point of a base coded-charset. @@ -1636,16 +1659,19 @@ character set. Recognized properties are: coded-charset. 'conversion [UTF-2000 only] Conversion for a code-point of a base coded-charset (94x60, 94x94x60, big5-1 or big5-2). +'partial [UTF-2000 only] If t, specify as a partial coded-charset. */ (name, doc_string, props)) { int id = 0, dimension = 1, chars = 94, graphic = 0, final = 0, columns = -1; + int iso_ir = 0; int direction = CHARSET_LEFT_TO_RIGHT; Lisp_Object registry = Qnil; Lisp_Object charset; Lisp_Object ccl_program = Qnil; Lisp_Object short_name = Qnil, long_name = Qnil; Lisp_Object mother = Qnil; + int partial = 0; int min_code = 0, max_code = 0, code_offset = 0; int byte_offset = -1; int conversion = 0; @@ -1677,10 +1703,19 @@ character set. Recognized properties are: { #ifdef UTF2000 CHECK_INT (value); - id = - XINT (value); + iso_ir = XINT (value); + id = - iso_ir; #endif } +#ifdef UTF2000 + else if (EQ (keyword, Qto_iso_ir)) + { + CHECK_INT (value); + iso_ir = XINT (value); + } +#endif + else if (EQ (keyword, Qdimension)) { CHECK_INT (value); @@ -1754,6 +1789,11 @@ character set. Recognized properties are: } #ifdef UTF2000 + else if (EQ (keyword, Qpartial)) + { + partial = !NILP (value); + } + else if (EQ (keyword, Qmother)) { mother = Fget_charset (value); @@ -1850,11 +1890,52 @@ character set. Recognized properties are: byte_offset = 0; } + if ( (conversion == 0) && NILP (mother) && (min_code > 0) ) + { + switch (chars) + { + case 94: + switch (dimension) + { + case 1: + conversion = CONVERSION_94; + break; + case 2: + conversion = CONVERSION_94x94; + break; + case 3: + conversion = CONVERSION_94x94x94; + break; + case 4: + conversion = CONVERSION_94x94x94x94; + break; + } + break; + case 96: + switch (dimension) + { + case 1: + conversion = CONVERSION_96; + break; + case 2: + conversion = CONVERSION_96x96; + break; + case 3: + conversion = CONVERSION_96x96x96; + break; + case 4: + conversion = CONVERSION_96x96x96x96; + break; + } + break; + } + } + charset = make_charset (id, name, chars, dimension, columns, graphic, final, direction, short_name, long_name, - doc_string, registry, + doc_string, registry, iso_ir, Qnil, min_code, max_code, code_offset, byte_offset, - mother, conversion); + mother, conversion, partial); if (!NILP (ccl_program)) XCHARSET_CCL_PROGRAM (charset) = ccl_program; return charset; @@ -1903,6 +1984,7 @@ NEW-NAME is the name of the new charset. Return the new charset. graphic, final, direction, short_name, long_name, doc_string, registry, #ifdef UTF2000 + CHARSET_ISO_IR(cs), CHARSET_DECODING_TABLE(cs), CHARSET_MIN_CODE(cs), CHARSET_MAX_CODE(cs), @@ -1913,7 +1995,7 @@ NEW-NAME is the name of the new charset. Return the new charset. #else Qnil, 0, 0, 0, 0, Qnil, 0 #endif -); + , 0); CHARSET_REVERSE_DIRECTION_CHARSET (cs) = new_charset; XCHARSET_REVERSE_DIRECTION_CHARSET (new_charset) = charset; @@ -2063,6 +2145,14 @@ Recognized properties are those listed in `make-charset', as well as return CHARSETP (obj) ? XCHARSET_NAME (obj) : obj; } #ifdef UTF2000 + if (EQ (prop, Qiso_ir)|| + EQ (prop, Qto_iso_ir)) + { + if ( CHARSET_ISO_IR (cs) > 0 ) + return make_int (CHARSET_ISO_IR (cs)); + else + return Qnil; + } if (EQ (prop, Qmother)) return CHARSET_MOTHER (cs); if (EQ (prop, Qmin_code)) @@ -2473,10 +2563,12 @@ load_char_decoding_entry_maybe (Lisp_Object ccs, int code_point) = chise_ds_decode_char (default_chise_data_source, XSTRING_DATA(Fsymbol_name (XCHARSET_NAME(ccs))), code_point); +#if 0 if (char_id >= 0) decoding_table_put_char (ccs, code_point, make_char (char_id)); else decoding_table_put_char (ccs, code_point, Qnil); +#endif /* chise_ccst_close (dt_ccs); */ return char_id; @@ -2694,7 +2786,8 @@ If corresponding character is not found, nil is returned. charset = Fget_charset (charset); CHECK_INT (code); c = XINT (code); - if (XCHARSET_GRAPHIC (charset) == 1) + if ( (XCHARSET_GRAPHIC (charset) == 0) || + (XCHARSET_GRAPHIC (charset) == 1) ) c &= 0x7F7F7F7F; if (NILP (defined_only)) c = DECODE_CHAR (charset, c, !NILP (without_inheritance)); @@ -3043,6 +3136,8 @@ syms_of_mule_charset (void) defsymbol (&Qlong_name, "long-name"); defsymbol (&Qiso_ir, "iso-ir"); #ifdef UTF2000 + defsymbol (&Qto_iso_ir, "=>iso-ir"); + defsymbol (&Qpartial, "partial"); defsymbol (&Qmother, "mother"); defsymbol (&Qmin_code, "min-code"); defsymbol (&Qmax_code, "max-code"); @@ -3073,7 +3168,7 @@ syms_of_mule_charset (void) defsymbol (&Qlatin_jisx0201, "latin-jisx0201"); defsymbol (&Qcyrillic_iso8859_5, "cyrillic-iso8859-5"); defsymbol (&Qlatin_iso8859_9, "latin-iso8859-9"); - defsymbol (&Qrep_jis_x0208_1978, "=jis-x0208@1978"); + /* defsymbol (&Qrep_jis_x0208_1978, "=jis-x0208@1978"); */ defsymbol (&Qrep_gb2312, "=gb2312"); defsymbol (&Qrep_gb12345, "=gb12345"); defsymbol (&Qrep_jis_x0208_1983, "=jis-x0208@1983"); @@ -3186,7 +3281,9 @@ complex_vars_of_mule_charset (void) build_string ("CHAR-ID"), build_string ("System char-id"), build_string (""), - Qnil, 0, 0x7FFFFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL); + 0, + Qnil, 0, 0x7FFFFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_ucs); Vcharset_ucs = make_charset (LEADING_BYTE_UCS, Qrep_ucs, 256, 4, @@ -3195,7 +3292,9 @@ complex_vars_of_mule_charset (void) build_string ("UCS"), build_string ("ISO/IEC 10646"), build_string (""), - Qnil, 0, 0xEFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_UCS, + Qnil, 0, 0xEFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_ucs_bmp); Vcharset_ucs_bmp = make_charset (LEADING_BYTE_UCS_BMP, Qucs_bmp, 256, 2, @@ -3205,7 +3304,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO/IEC 10646 Group 0 Plane 0 (BMP)"), build_string ("\\(ISO10646\\(\\.[0-9]+\\)?-[01]\\|UCS00-0\\|UNICODE[23]?-0\\)"), - Qnil, 0, 0xFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_UCS_BMP, + Qnil, 0, 0xFFFF, 0, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_ucs_smp); Vcharset_ucs_smp = make_charset (LEADING_BYTE_UCS_SMP, Qucs_smp, 256, 2, @@ -3214,8 +3315,10 @@ complex_vars_of_mule_charset (void) build_string ("UCS-SMP"), build_string ("ISO/IEC 10646 Group 0 Plane 1 (SMP)"), build_string ("UCS00-1"), + 0, Qnil, MIN_CHAR_SMP, MAX_CHAR_SMP, - MIN_CHAR_SMP, 0, Qnil, CONVERSION_IDENTICAL); + MIN_CHAR_SMP, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_ucs_sip); Vcharset_ucs_sip = make_charset (LEADING_BYTE_UCS_SIP, Qucs_sip, 256, 2, @@ -3224,8 +3327,10 @@ complex_vars_of_mule_charset (void) build_string ("UCS-SIP"), build_string ("ISO/IEC 10646 Group 0 Plane 2 (SIP)"), build_string ("\\(ISO10646.*-2\\|UCS00-2\\)"), + 0, Qnil, MIN_CHAR_SIP, MAX_CHAR_SIP, - MIN_CHAR_SIP, 0, Qnil, CONVERSION_IDENTICAL); + MIN_CHAR_SIP, 0, Qnil, CONVERSION_IDENTICAL, + 0); #else # define MIN_CHAR_THAI 0 # define MAX_CHAR_THAI 0 @@ -3242,7 +3347,9 @@ complex_vars_of_mule_charset (void) build_string ("ASCII)"), build_string ("ASCII (ISO646 IRV)"), build_string ("\\(iso8859-[0-9]*\\|-ascii\\)"), - Qnil, 0, 0x7F, 0, 0, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_ASCII, + Qnil, 0, 0x7F, 0, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_control_1); Vcharset_control_1 = make_charset (LEADING_BYTE_CONTROL_1, Qcontrol_1, 94, 1, @@ -3251,7 +3358,9 @@ complex_vars_of_mule_charset (void) build_string ("Control characters"), build_string ("Control characters 128-191"), build_string (""), - Qnil, 0x80, 0x9F, 0x80, 0, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_CONTROL_1, + Qnil, 0x80, 0x9F, 0x80, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_iso8859_1); Vcharset_latin_iso8859_1 = make_charset (LEADING_BYTE_LATIN_ISO8859_1, Qlatin_iso8859_1, 96, 1, @@ -3260,7 +3369,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-1 (Latin-1)"), build_string ("ISO8859-1 (Latin-1)"), build_string ("iso8859-1"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_ISO8859_1, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_iso8859_2); Vcharset_latin_iso8859_2 = make_charset (LEADING_BYTE_LATIN_ISO8859_2, Qlatin_iso8859_2, 96, 1, @@ -3269,7 +3380,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-2 (Latin-2)"), build_string ("ISO8859-2 (Latin-2)"), build_string ("iso8859-2"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_ISO8859_2, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_iso8859_3); Vcharset_latin_iso8859_3 = make_charset (LEADING_BYTE_LATIN_ISO8859_3, Qlatin_iso8859_3, 96, 1, @@ -3278,7 +3391,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-3 (Latin-3)"), build_string ("ISO8859-3 (Latin-3)"), build_string ("iso8859-3"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_ISO8859_3, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_iso8859_4); Vcharset_latin_iso8859_4 = make_charset (LEADING_BYTE_LATIN_ISO8859_4, Qlatin_iso8859_4, 96, 1, @@ -3287,7 +3402,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-4 (Latin-4)"), build_string ("ISO8859-4 (Latin-4)"), build_string ("iso8859-4"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_ISO8859_4, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_thai_tis620); Vcharset_thai_tis620 = make_charset (LEADING_BYTE_THAI_TIS620, Qthai_tis620, 96, 1, @@ -3296,7 +3413,9 @@ complex_vars_of_mule_charset (void) build_string ("TIS620 (Thai)"), build_string ("TIS620.2529 (Thai)"), build_string ("tis620"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_THAI_TIS620, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_greek_iso8859_7); Vcharset_greek_iso8859_7 = make_charset (LEADING_BYTE_GREEK_ISO8859_7, Qgreek_iso8859_7, 96, 1, @@ -3305,7 +3424,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-7 (Greek)"), build_string ("ISO8859-7 (Greek)"), build_string ("iso8859-7"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_GREEK_ISO8859_7, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_arabic_iso8859_6); Vcharset_arabic_iso8859_6 = make_charset (LEADING_BYTE_ARABIC_ISO8859_6, Qarabic_iso8859_6, 96, 1, @@ -3314,7 +3435,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-6 (Arabic)"), build_string ("ISO8859-6 (Arabic)"), build_string ("iso8859-6"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_ARABIC_ISO8859_6, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_hebrew_iso8859_8); Vcharset_hebrew_iso8859_8 = make_charset (LEADING_BYTE_HEBREW_ISO8859_8, Qhebrew_iso8859_8, 96, 1, @@ -3323,10 +3446,12 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-8 (Hebrew)"), build_string ("ISO8859-8 (Hebrew)"), build_string ("iso8859-8"), + - LEADING_BYTE_HEBREW_ISO8859_8, Qnil, 0 /* MIN_CHAR_HEBREW */, 0 /* MAX_CHAR_HEBREW */, 0, 32, - Qnil, CONVERSION_IDENTICAL); + Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_katakana_jisx0201); Vcharset_katakana_jisx0201 = make_charset (LEADING_BYTE_KATAKANA_JISX0201, Qkatakana_jisx0201, 94, 1, @@ -3335,7 +3460,9 @@ complex_vars_of_mule_charset (void) build_string ("JISX0201.1976 (Japanese Kana)"), build_string ("JISX0201.1976 Japanese Kana"), build_string ("jisx0201\\.1976"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_KATAKANA_JISX0201, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_jisx0201); Vcharset_latin_jisx0201 = make_charset (LEADING_BYTE_LATIN_JISX0201, Qlatin_jisx0201, 94, 1, @@ -3344,7 +3471,9 @@ complex_vars_of_mule_charset (void) build_string ("JISX0201.1976 (Japanese Roman)"), build_string ("JISX0201.1976 Japanese Roman"), build_string ("jisx0201\\.1976"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_JISX0201, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_cyrillic_iso8859_5); Vcharset_cyrillic_iso8859_5 = make_charset (LEADING_BYTE_CYRILLIC_ISO8859_5, Qcyrillic_iso8859_5, 96, 1, @@ -3353,7 +3482,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-5 (Cyrillic)"), build_string ("ISO8859-5 (Cyrillic)"), build_string ("iso8859-5"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_CYRILLIC_ISO8859_5, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_iso8859_9); Vcharset_latin_iso8859_9 = make_charset (LEADING_BYTE_LATIN_ISO8859_9, Qlatin_iso8859_9, 96, 1, @@ -3362,7 +3493,9 @@ complex_vars_of_mule_charset (void) build_string ("ISO8859-9 (Latin-5)"), build_string ("ISO8859-9 (Latin-5)"), build_string ("iso8859-9"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_ISO8859_9, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); #ifdef UTF2000 staticpro (&Vcharset_jis_x0208); Vcharset_jis_x0208 = @@ -3372,12 +3505,15 @@ complex_vars_of_mule_charset (void) build_string ("JIS X0208"), build_string ("JIS X0208 Common"), build_string ("JIS X0208 Common part"), - build_string ("jisx0208\\.1990"), + build_string ("jisx0208"), + - LEADING_BYTE_JAPANESE_JISX0208_1978, Qnil, MIN_CHAR_JIS_X0208_1990, MAX_CHAR_JIS_X0208_1990, MIN_CHAR_JIS_X0208_1990, 33, - Qnil, CONVERSION_94x94); + Qnil, CONVERSION_94x94, + 1); #endif +#if 0 staticpro (&Vcharset_japanese_jisx0208_1978); Vcharset_japanese_jisx0208_1978 = make_charset (LEADING_BYTE_JAPANESE_JISX0208_1978, @@ -3388,13 +3524,16 @@ complex_vars_of_mule_charset (void) build_string ("JIS X0208:1978 Japanese Kanji (so called \"old JIS\")"), build_string ("\\(jisx0208\\|jisc6226\\)\\.1978"), + - LEADING_BYTE_JAPANESE_JISX0208_1978, Qnil, 0, 0, 0, 33, #ifdef UTF2000 Vcharset_jis_x0208, #else Qnil, #endif - CONVERSION_IDENTICAL); + CONVERSION_IDENTICAL, + 0); +#endif staticpro (&Vcharset_chinese_gb2312); Vcharset_chinese_gb2312 = make_charset (LEADING_BYTE_CHINESE_GB2312, Qrep_gb2312, 94, 2, @@ -3403,7 +3542,9 @@ complex_vars_of_mule_charset (void) build_string ("GB2312)"), build_string ("GB2312 Chinese simplified"), build_string ("gb2312"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_CHINESE_GB2312, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_chinese_gb12345); Vcharset_chinese_gb12345 = make_charset (LEADING_BYTE_CHINESE_GB12345, Qrep_gb12345, 94, 2, @@ -3412,7 +3553,9 @@ complex_vars_of_mule_charset (void) build_string ("GB 12345)"), build_string ("GB 12345-1990"), build_string ("GB12345\\(\\.1990\\)?-0"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + 0, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_japanese_jisx0208); Vcharset_japanese_jisx0208 = make_charset (LEADING_BYTE_JAPANESE_JISX0208, Qrep_jis_x0208_1983, 94, 2, @@ -3421,13 +3564,15 @@ complex_vars_of_mule_charset (void) build_string ("JIS X0208:1983 (Japanese)"), build_string ("JIS X0208:1983 Japanese Kanji"), build_string ("jisx0208\\.1983"), + - LEADING_BYTE_JAPANESE_JISX0208, Qnil, 0, 0, 0, 33, #ifdef UTF2000 Vcharset_jis_x0208, #else Qnil, #endif - CONVERSION_IDENTICAL); + CONVERSION_IDENTICAL, + 0); #ifdef UTF2000 staticpro (&Vcharset_japanese_jisx0208_1990); Vcharset_japanese_jisx0208_1990 = @@ -3438,12 +3583,14 @@ complex_vars_of_mule_charset (void) build_string ("JIS X0208:1990 (Japanese)"), build_string ("JIS X0208:1990 Japanese Kanji"), build_string ("jisx0208\\.1990"), + - LEADING_BYTE_JAPANESE_JISX0208_1990, Qnil, 0x2121 /* MIN_CHAR_JIS_X0208_1990 */, 0x7426 /* MAX_CHAR_JIS_X0208_1990 */, 0 /* MIN_CHAR_JIS_X0208_1990 */, 33, Vcharset_jis_x0208 /* Qnil */, - CONVERSION_IDENTICAL /* CONVERSION_94x94 */); + CONVERSION_IDENTICAL /* CONVERSION_94x94 */, + 0); #endif staticpro (&Vcharset_korean_ksc5601); Vcharset_korean_ksc5601 = @@ -3453,7 +3600,9 @@ complex_vars_of_mule_charset (void) build_string ("KSC5601 (Korean"), build_string ("KSC5601 Korean Hangul and Hanja"), build_string ("ksc5601"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_KOREAN_KSC5601, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_japanese_jisx0212); Vcharset_japanese_jisx0212 = make_charset (LEADING_BYTE_JAPANESE_JISX0212, Qrep_jis_x0212, 94, 2, @@ -3462,7 +3611,9 @@ complex_vars_of_mule_charset (void) build_string ("JISX0212 (Japanese)"), build_string ("JISX0212 Japanese Supplement"), build_string ("jisx0212"), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_JAPANESE_JISX0212, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); #define CHINESE_CNS_PLANE_RE(n) "cns11643[.-]\\(.*[.-]\\)?" n "$" staticpro (&Vcharset_chinese_cns11643_1); @@ -3474,7 +3625,9 @@ complex_vars_of_mule_charset (void) build_string ("CNS 11643 Plane 1 Chinese traditional"), build_string (CHINESE_CNS_PLANE_RE("1")), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_CHINESE_CNS11643_1, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_chinese_cns11643_2); Vcharset_chinese_cns11643_2 = make_charset (LEADING_BYTE_CHINESE_CNS11643_2, Qrep_cns11643_2, 94, 2, @@ -3484,7 +3637,9 @@ complex_vars_of_mule_charset (void) build_string ("CNS 11643 Plane 2 Chinese traditional"), build_string (CHINESE_CNS_PLANE_RE("2")), - Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_CHINESE_CNS11643_2, + Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL, + 0); #ifdef UTF2000 staticpro (&Vcharset_latin_tcvn5712); Vcharset_latin_tcvn5712 = @@ -3494,7 +3649,9 @@ complex_vars_of_mule_charset (void) build_string ("TCVN 5712 (VSCII-2)"), build_string ("Vietnamese TCVN 5712:1983 (VSCII-2)"), build_string ("tcvn5712\\(\\.1993\\)?-1"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + - LEADING_BYTE_LATIN_TCVN5712, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_viscii_lower); Vcharset_latin_viscii_lower = make_charset (LEADING_BYTE_LATIN_VISCII_LOWER, Qlatin_viscii_lower, 96, 1, @@ -3503,7 +3660,9 @@ complex_vars_of_mule_charset (void) build_string ("VISCII lower (Vietnamese)"), build_string ("VISCII lower (Vietnamese)"), build_string ("MULEVISCII-LOWER"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + 0, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_viscii_upper); Vcharset_latin_viscii_upper = make_charset (LEADING_BYTE_LATIN_VISCII_UPPER, Qlatin_viscii_upper, 96, 1, @@ -3512,7 +3671,9 @@ complex_vars_of_mule_charset (void) build_string ("VISCII upper (Vietnamese)"), build_string ("VISCII upper (Vietnamese)"), build_string ("MULEVISCII-UPPER"), - Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL); + 0, + Qnil, 0, 0, 0, 32, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_latin_viscii); Vcharset_latin_viscii = make_charset (LEADING_BYTE_LATIN_VISCII, Qlatin_viscii, 256, 1, @@ -3521,7 +3682,9 @@ complex_vars_of_mule_charset (void) build_string ("VISCII 1.1 (Vietnamese)"), build_string ("VISCII 1.1 (Vietnamese)"), build_string ("VISCII1\\.1"), - Qnil, 0, 0, 0, 0, Qnil, CONVERSION_IDENTICAL); + 0, + Qnil, 0, 0, 0, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_chinese_big5); Vcharset_chinese_big5 = make_charset (LEADING_BYTE_CHINESE_BIG5, Qrep_big5, 256, 2, @@ -3530,9 +3693,11 @@ complex_vars_of_mule_charset (void) build_string ("Big5"), build_string ("Big5 Chinese traditional"), build_string ("big5-0"), + 0, Qnil, MIN_CHAR_BIG5_CDP, MAX_CHAR_BIG5_CDP, - MIN_CHAR_BIG5_CDP, 0, Qnil, CONVERSION_IDENTICAL); + MIN_CHAR_BIG5_CDP, 0, Qnil, CONVERSION_IDENTICAL, + 0); staticpro (&Vcharset_ethiopic_ucs); Vcharset_ethiopic_ucs = @@ -3542,8 +3707,10 @@ complex_vars_of_mule_charset (void) build_string ("Ethiopic (UCS)"), build_string ("Ethiopic of UCS"), build_string ("Ethiopic-Unicode"), + 0, Qnil, 0x1200, 0x137F, 0, 0, - Qnil, CONVERSION_IDENTICAL); + Qnil, CONVERSION_IDENTICAL, + 0); #endif staticpro (&Vcharset_chinese_big5_1); Vcharset_chinese_big5_1 = @@ -3554,8 +3721,10 @@ complex_vars_of_mule_charset (void) build_string ("Big5 Level-1 Chinese traditional"), build_string ("big5"), + 0, Qnil, 0, 0, 0, 33, /* Qnil, CONVERSION_IDENTICAL */ - Vcharset_chinese_big5, CONVERSION_BIG5_1); + Vcharset_chinese_big5, CONVERSION_BIG5_1, + 0); staticpro (&Vcharset_chinese_big5_2); Vcharset_chinese_big5_2 = make_charset (LEADING_BYTE_CHINESE_BIG5_2, Qchinese_big5_2, 94, 2, @@ -3565,8 +3734,10 @@ complex_vars_of_mule_charset (void) build_string ("Big5 Level-2 Chinese traditional"), build_string ("big5"), + 0, Qnil, 0, 0, 0, 33, /* Qnil, CONVERSION_IDENTICAL */ - Vcharset_chinese_big5, CONVERSION_BIG5_2); + Vcharset_chinese_big5, CONVERSION_BIG5_2, + 0); #ifdef ENABLE_COMPOSITE_CHARS /* #### For simplicity, we put composite chars into a 96x96 charset.