X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-charset.c;h=b55df3ace4f38cb729140a421e698fecd6283153;hb=e3e3297ded763fa55e4847941611e5c788b10036;hp=60f7b13cf37430b60b78386aeb0b4397bdfb16d0;hpb=f52a96980ed9280f8f906a20d4b899dc0b027644;p=chise%2Fxemacs-chise.git- diff --git a/src/mule-charset.c b/src/mule-charset.c index 60f7b13..b55df3a 100644 --- a/src/mule-charset.c +++ b/src/mule-charset.c @@ -160,9 +160,9 @@ const Bytecount rep_bytes_by_first_byte[0xA0] = #ifdef UTF2000 static Lisp_Object -mark_char_byte_table (Lisp_Object obj) +mark_byte_table (Lisp_Object obj) { - struct Lisp_Char_Byte_Table *cte = XCHAR_BYTE_TABLE (obj); + Lisp_Byte_Table *cte = XBYTE_TABLE (obj); int i; for (i = 0; i < 256; i++) @@ -173,19 +173,19 @@ mark_char_byte_table (Lisp_Object obj) } static int -char_byte_table_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) +byte_table_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) { - struct Lisp_Char_Byte_Table *cte1 = XCHAR_BYTE_TABLE (obj1); - struct Lisp_Char_Byte_Table *cte2 = XCHAR_BYTE_TABLE (obj2); + Lisp_Byte_Table *cte1 = XBYTE_TABLE (obj1); + Lisp_Byte_Table *cte2 = XBYTE_TABLE (obj2); int i; for (i = 0; i < 256; i++) - if (CHAR_BYTE_TABLE_P (cte1->property[i])) + if (BYTE_TABLE_P (cte1->property[i])) { - if (CHAR_BYTE_TABLE_P (cte2->property[i])) + if (BYTE_TABLE_P (cte2->property[i])) { - if (!char_byte_table_equal (cte1->property[i], - cte2->property[i], depth + 1)) + if (!byte_table_equal (cte1->property[i], + cte2->property[i], depth + 1)) return 0; } else @@ -198,215 +198,209 @@ char_byte_table_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) } static unsigned long -char_byte_table_hash (Lisp_Object obj, int depth) +byte_table_hash (Lisp_Object obj, int depth) { - struct Lisp_Char_Byte_Table *cte = XCHAR_BYTE_TABLE (obj); + Lisp_Byte_Table *cte = XBYTE_TABLE (obj); return internal_array_hash (cte->property, 256, depth); } -static const struct lrecord_description char_byte_table_description[] = { - { XD_LISP_OBJECT, offsetof(struct Lisp_Char_Byte_Table, property), 256 }, +static const struct lrecord_description byte_table_description[] = { + { XD_LISP_OBJECT_ARRAY, offsetof(Lisp_Byte_Table, property), 256 }, { XD_END } }; -DEFINE_LRECORD_IMPLEMENTATION ("char-byte-table", char_byte_table, - mark_char_byte_table, +DEFINE_LRECORD_IMPLEMENTATION ("byte-table", byte_table, + mark_byte_table, internal_object_printer, - 0, char_byte_table_equal, - char_byte_table_hash, - char_byte_table_description, - struct Lisp_Char_Byte_Table); + 0, byte_table_equal, + byte_table_hash, + byte_table_description, + Lisp_Byte_Table); static Lisp_Object -make_char_byte_table (Lisp_Object initval) +make_byte_table (Lisp_Object initval) { Lisp_Object obj; int i; - struct Lisp_Char_Byte_Table *cte = - alloc_lcrecord_type (struct Lisp_Char_Byte_Table, - &lrecord_char_byte_table); + Lisp_Byte_Table *cte + = alloc_lcrecord_type (Lisp_Byte_Table, &lrecord_byte_table); for (i = 0; i < 256; i++) cte->property[i] = initval; - XSETCHAR_BYTE_TABLE (obj, cte); + XSETBYTE_TABLE (obj, cte); return obj; } static Lisp_Object -copy_char_byte_table (Lisp_Object entry) +copy_byte_table (Lisp_Object entry) { - struct Lisp_Char_Byte_Table *cte = XCHAR_BYTE_TABLE (entry); + Lisp_Byte_Table *cte = XBYTE_TABLE (entry); Lisp_Object obj; int i; - struct Lisp_Char_Byte_Table *ctenew = - alloc_lcrecord_type (struct Lisp_Char_Byte_Table, - &lrecord_char_byte_table); + Lisp_Byte_Table *ctenew + = alloc_lcrecord_type (Lisp_Byte_Table, &lrecord_byte_table); for (i = 0; i < 256; i++) { Lisp_Object new = cte->property[i]; - if (CHAR_BYTE_TABLE_P (new)) - ctenew->property[i] = copy_char_byte_table (new); + if (BYTE_TABLE_P (new)) + ctenew->property[i] = copy_byte_table (new); else ctenew->property[i] = new; } - XSETCHAR_BYTE_TABLE (obj, ctenew); + XSETBYTE_TABLE (obj, ctenew); return obj; } static Lisp_Object -mark_char_code_table (Lisp_Object obj) +mark_char_id_table (Lisp_Object obj) { - struct Lisp_Char_Code_Table *cte = XCHAR_CODE_TABLE (obj); + Lisp_Char_ID_Table *cte = XCHAR_ID_TABLE (obj); return cte->table; } static int -char_code_table_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) +char_id_table_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) { - struct Lisp_Char_Code_Table *cte1 = XCHAR_CODE_TABLE (obj1); - struct Lisp_Char_Code_Table *cte2 = XCHAR_CODE_TABLE (obj2); + Lisp_Char_ID_Table *cte1 = XCHAR_ID_TABLE (obj1); + Lisp_Char_ID_Table *cte2 = XCHAR_ID_TABLE (obj2); - return char_byte_table_equal (cte1->table, cte2->table, depth + 1); + return byte_table_equal (cte1->table, cte2->table, depth + 1); } static unsigned long -char_code_table_hash (Lisp_Object obj, int depth) +char_id_table_hash (Lisp_Object obj, int depth) { - struct Lisp_Char_Code_Table *cte = XCHAR_CODE_TABLE (obj); + Lisp_Char_ID_Table *cte = XCHAR_ID_TABLE (obj); - return char_code_table_hash (cte->table, depth + 1); + return char_id_table_hash (cte->table, depth + 1); } -static const struct lrecord_description char_code_table_description[] = { - { XD_LISP_OBJECT, offsetof(struct Lisp_Char_Code_Table, table), 1 }, +static const struct lrecord_description char_id_table_description[] = { + { XD_LISP_OBJECT, offsetof(Lisp_Char_ID_Table, table) }, { XD_END } }; -DEFINE_LRECORD_IMPLEMENTATION ("char-code-table", char_code_table, - mark_char_code_table, +DEFINE_LRECORD_IMPLEMENTATION ("char-id-table", char_id_table, + mark_char_id_table, internal_object_printer, - 0, char_code_table_equal, - char_code_table_hash, - char_code_table_description, - struct Lisp_Char_Code_Table); + 0, char_id_table_equal, + char_id_table_hash, + char_id_table_description, + Lisp_Char_ID_Table); static Lisp_Object -make_char_code_table (Lisp_Object initval) +make_char_id_table (Lisp_Object initval) { Lisp_Object obj; - struct Lisp_Char_Code_Table *cte = - alloc_lcrecord_type (struct Lisp_Char_Code_Table, - &lrecord_char_code_table); + Lisp_Char_ID_Table *cte + = alloc_lcrecord_type (Lisp_Char_ID_Table, &lrecord_char_id_table); - cte->table = make_char_byte_table (initval); + cte->table = make_byte_table (initval); - XSETCHAR_CODE_TABLE (obj, cte); + XSETCHAR_ID_TABLE (obj, cte); return obj; } static Lisp_Object -copy_char_code_table (Lisp_Object entry) +copy_char_id_table (Lisp_Object entry) { - struct Lisp_Char_Code_Table *cte = XCHAR_CODE_TABLE (entry); + Lisp_Char_ID_Table *cte = XCHAR_ID_TABLE (entry); Lisp_Object obj; - struct Lisp_Char_Code_Table *ctenew = - alloc_lcrecord_type (struct Lisp_Char_Code_Table, - &lrecord_char_code_table); + Lisp_Char_ID_Table *ctenew + = alloc_lcrecord_type (Lisp_Char_ID_Table, &lrecord_char_id_table); - ctenew->table = copy_char_byte_table (cte->table); - XSETCHAR_CODE_TABLE (obj, ctenew); + ctenew->table = copy_byte_table (cte->table); + XSETCHAR_ID_TABLE (obj, ctenew); return obj; } Lisp_Object -get_char_code_table (Emchar ch, Lisp_Object table) +get_char_id_table (Emchar ch, Lisp_Object table) { unsigned int code = ch; - struct Lisp_Char_Byte_Table* cpt - = XCHAR_BYTE_TABLE (XCHAR_CODE_TABLE (table)->table); + Lisp_Byte_Table* cpt + = XBYTE_TABLE (XCHAR_ID_TABLE (table)->table); Lisp_Object ret = cpt->property [(unsigned char)(code >> 24)]; - if (CHAR_BYTE_TABLE_P (ret)) - cpt = XCHAR_BYTE_TABLE (ret); + if (BYTE_TABLE_P (ret)) + cpt = XBYTE_TABLE (ret); else return ret; ret = cpt->property [(unsigned char) (code >> 16)]; - if (CHAR_BYTE_TABLE_P (ret)) - cpt = XCHAR_BYTE_TABLE (ret); + if (BYTE_TABLE_P (ret)) + cpt = XBYTE_TABLE (ret); else return ret; ret = cpt->property [(unsigned char) (code >> 8)]; - if (CHAR_BYTE_TABLE_P (ret)) - cpt = XCHAR_BYTE_TABLE (ret); + if (BYTE_TABLE_P (ret)) + cpt = XBYTE_TABLE (ret); else return ret; return cpt->property [(unsigned char) code]; } -void put_char_code_table (Emchar ch, Lisp_Object value, Lisp_Object table); +void put_char_id_table (Emchar ch, Lisp_Object value, Lisp_Object table); void -put_char_code_table (Emchar ch, Lisp_Object value, Lisp_Object table) +put_char_id_table (Emchar ch, Lisp_Object value, Lisp_Object table) { unsigned int code = ch; - struct Lisp_Char_Byte_Table* cpt1 - = XCHAR_BYTE_TABLE (XCHAR_CODE_TABLE (table)->table); + Lisp_Byte_Table* cpt1 = XBYTE_TABLE (XCHAR_ID_TABLE (table)->table); Lisp_Object ret = cpt1->property[(unsigned char)(code >> 24)]; - if (CHAR_BYTE_TABLE_P (ret)) + if (BYTE_TABLE_P (ret)) { - struct Lisp_Char_Byte_Table* cpt2 = XCHAR_BYTE_TABLE (ret); + Lisp_Byte_Table* cpt2 = XBYTE_TABLE (ret); ret = cpt2->property[(unsigned char)(code >> 16)]; - if (CHAR_BYTE_TABLE_P (ret)) + if (BYTE_TABLE_P (ret)) { - struct Lisp_Char_Byte_Table* cpt3 = XCHAR_BYTE_TABLE (ret); + Lisp_Byte_Table* cpt3 = XBYTE_TABLE (ret); ret = cpt3->property[(unsigned char)(code >> 8)]; - if (CHAR_BYTE_TABLE_P (ret)) + if (BYTE_TABLE_P (ret)) { - struct Lisp_Char_Byte_Table* cpt4 - = XCHAR_BYTE_TABLE (ret); + Lisp_Byte_Table* cpt4 = XBYTE_TABLE (ret); cpt4->property[(unsigned char)code] = value; } else if (!EQ (ret, value)) { - Lisp_Object cpt4 = make_char_byte_table (ret); + Lisp_Object cpt4 = make_byte_table (ret); - XCHAR_BYTE_TABLE(cpt4)->property[(unsigned char)code] = value; + XBYTE_TABLE(cpt4)->property[(unsigned char)code] = value; cpt3->property[(unsigned char)(code >> 8)] = cpt4; } } else if (!EQ (ret, value)) { - Lisp_Object cpt3 = make_char_byte_table (ret); - Lisp_Object cpt4 = make_char_byte_table (ret); + Lisp_Object cpt3 = make_byte_table (ret); + Lisp_Object cpt4 = make_byte_table (ret); - XCHAR_BYTE_TABLE(cpt4)->property[(unsigned char)code] = value; - XCHAR_BYTE_TABLE(cpt3)->property[(unsigned char)(code >> 8)] + XBYTE_TABLE(cpt4)->property[(unsigned char)code] = value; + XBYTE_TABLE(cpt3)->property[(unsigned char)(code >> 8)] = cpt4; cpt2->property[(unsigned char)(code >> 16)] = cpt3; } } else if (!EQ (ret, value)) { - Lisp_Object cpt2 = make_char_byte_table (ret); - Lisp_Object cpt3 = make_char_byte_table (ret); - Lisp_Object cpt4 = make_char_byte_table (ret); + Lisp_Object cpt2 = make_byte_table (ret); + Lisp_Object cpt3 = make_byte_table (ret); + Lisp_Object cpt4 = make_byte_table (ret); - XCHAR_BYTE_TABLE(cpt4)->property[(unsigned char)code] = value; - XCHAR_BYTE_TABLE(cpt3)->property[(unsigned char)(code >> 8)] = cpt4; - XCHAR_BYTE_TABLE(cpt2)->property[(unsigned char)(code >> 16)] = cpt3; + XBYTE_TABLE(cpt4)->property[(unsigned char)code] = value; + XBYTE_TABLE(cpt3)->property[(unsigned char)(code >> 8)] = cpt4; + XBYTE_TABLE(cpt2)->property[(unsigned char)(code >> 16)] = cpt3; cpt1->property[(unsigned char)(code >> 24)] = cpt2; } } @@ -435,9 +429,9 @@ Lisp_Object Qnarrow; Lisp_Object Qsmall; Lisp_Object Qfont; -Emchar to_char_code (Lisp_Object v, char* err_msg, Lisp_Object err_arg); +Emchar to_char_id (Lisp_Object v, char* err_msg, Lisp_Object err_arg); Emchar -to_char_code (Lisp_Object v, char* err_msg, Lisp_Object err_arg) +to_char_id (Lisp_Object v, char* err_msg, Lisp_Object err_arg) { if (INTP (v)) return XINT (v); @@ -491,21 +485,21 @@ Return character corresponding with list. { Lisp_Object v = Fcar (rest); Lisp_Object ret; - Emchar c = to_char_code (v, "Invalid value for composition", list); + Emchar c = to_char_id (v, "Invalid value for composition", list); - ret = get_char_code_table (c, table); + ret = get_char_id_table (c, table); rest = Fcdr (rest); if (NILP (rest)) { - if (!CHAR_CODE_TABLE_P (ret)) + if (!CHAR_ID_TABLE_P (ret)) return ret; else return Qt; } else if (!CONSP (rest)) break; - else if (CHAR_CODE_TABLE_P (ret)) + else if (CHAR_ID_TABLE_P (ret)) table = ret; else signal_simple_error ("Invalid table is found with", list); @@ -519,8 +513,8 @@ Return variants of CHARACTER. (character)) { CHECK_CHAR (character); - return Fcopy_list (get_char_code_table (XCHAR (character), - Vcharacter_variant_table)); + return Fcopy_list (get_char_id_table (XCHAR (character), + Vcharacter_variant_table)); } DEFUN ("char-attribute-alist", Fchar_attribute_alist, 1, 1, 0, /* @@ -529,8 +523,8 @@ Return the alist of attributes of CHARACTER. (character)) { CHECK_CHAR (character); - return Fcopy_alist (get_char_code_table (XCHAR (character), - Vcharacter_attribute_table)); + return Fcopy_alist (get_char_id_table (XCHAR (character), + Vcharacter_attribute_table)); } DEFUN ("get-char-attribute", Fget_char_attribute, 2, 2, 0, /* @@ -538,19 +532,28 @@ Return the value of CHARACTER's ATTRIBUTE. */ (character, attribute)) { - Lisp_Object ret; Lisp_Object ccs; CHECK_CHAR (character); - ret = get_char_code_table (XCHAR (character), - Vcharacter_attribute_table); - if (EQ (ret, Qnil)) - return Qnil; - if (!NILP (ccs = Ffind_charset (attribute))) - attribute = ccs; + { + Lisp_Object encoding_table = XCHARSET_ENCODING_TABLE (ccs); - return Fcdr (Fassq (attribute, ret)); + if (CHAR_ID_TABLE_P (encoding_table)) + return get_char_id_table (XCHAR (character), encoding_table); + else + return Qnil; + } + else + { + Lisp_Object ret + = get_char_id_table (XCHAR (character), Vcharacter_attribute_table); + + if (EQ (ret, Qnil)) + return Qnil; + else + return Fcdr (Fassq (attribute, ret)); + } } Lisp_Object put_char_attribute (Lisp_Object character, @@ -559,9 +562,8 @@ Lisp_Object put_char_attribute (Lisp_Object character, Lisp_Object attribute, Lisp_Object value) { - Emchar char_code = XCHAR (character); - Lisp_Object ret - = get_char_code_table (char_code, Vcharacter_attribute_table); + Emchar char_id = XCHAR (character); + Lisp_Object ret = get_char_id_table (char_id, Vcharacter_attribute_table); Lisp_Object cell; cell = Fassq (attribute, ret); @@ -574,7 +576,7 @@ put_char_attribute (Lisp_Object character, Lisp_Object attribute, { Fsetcdr (cell, value); } - put_char_code_table (char_code, ret, Vcharacter_attribute_table); + put_char_id_table (char_id, ret, Vcharacter_attribute_table); return ret; } @@ -583,9 +585,8 @@ Lisp_Object remove_char_attribute (Lisp_Object character, Lisp_Object remove_char_attribute (Lisp_Object character, Lisp_Object attribute) { - Emchar char_code = XCHAR (character); - Lisp_Object alist - = get_char_code_table (char_code, Vcharacter_attribute_table); + Emchar char_id = XCHAR (character); + Lisp_Object alist = get_char_id_table (char_id, Vcharacter_attribute_table); if (EQ (attribute, Fcar (Fcar (alist)))) { @@ -607,7 +608,7 @@ remove_char_attribute (Lisp_Object character, Lisp_Object attribute) r = Fcdr (r); } } - put_char_code_table (char_code, alist, Vcharacter_attribute_table); + put_char_id_table (char_id, alist, Vcharacter_attribute_table); return alist; } @@ -624,6 +625,8 @@ Store CHARACTER's ATTRIBUTE with VALUE. ccs = Ffind_charset (attribute); if (!NILP (ccs)) { + Lisp_Object encoding_table; + if (!EQ (XCHARSET_NAME (ccs), Qucs) || (XCHAR (character) != XINT (value))) { @@ -704,7 +707,8 @@ Store CHARACTER's ATTRIBUTE with VALUE. } else { - XCHARSET_DECODING_TABLE (ccs) = v = make_vector (ccs_len, Qnil); + XCHARSET_DECODING_TABLE (ccs) = v + = make_older_vector (ccs_len, Qnil); } dim = XCHARSET_DIMENSION (ccs); @@ -719,7 +723,8 @@ Store CHARACTER's ATTRIBUTE with VALUE. if (dim > 0) { if (!VECTORP (nv)) - nv = (XVECTOR_DATA(v)[i] = make_vector (ccs_len, Qnil)); + nv = (XVECTOR_DATA(v)[i] + = make_older_vector (ccs_len, Qnil)); v = nv; } else @@ -729,6 +734,13 @@ Store CHARACTER's ATTRIBUTE with VALUE. } else attribute = ccs; + if (NILP (encoding_table = XCHARSET_ENCODING_TABLE (ccs))) + { + XCHARSET_ENCODING_TABLE (ccs) = encoding_table + = make_char_id_table (Qnil); + } + put_char_id_table (XCHAR (character), value, encoding_table); + return Qt; } else if (EQ (attribute, Q_decomposition)) { @@ -746,22 +758,21 @@ Store CHARACTER's ATTRIBUTE with VALUE. Lisp_Object v = Fcar (rest); Lisp_Object ntable; Emchar c - = to_char_code (v, - "Invalid value for ->decomposition", value); + = to_char_id (v, "Invalid value for ->decomposition", value); rest = Fcdr (rest); if (!CONSP (rest)) { - put_char_code_table (c, character, table); + put_char_id_table (c, character, table); break; } else { - ntable = get_char_code_table (c, table); - if (!CHAR_CODE_TABLE_P (ntable)) + ntable = get_char_id_table (c, table); + if (!CHAR_ID_TABLE_P (ntable)) { - ntable = make_char_code_table (Qnil); - put_char_code_table (c, ntable, table); + ntable = make_char_id_table (Qnil); + put_char_id_table (c, ntable, table); } table = ntable; } @@ -775,12 +786,12 @@ Store CHARACTER's ATTRIBUTE with VALUE. { Emchar c = XINT (v); Lisp_Object ret - = get_char_code_table (c, Vcharacter_variant_table); + = get_char_id_table (c, Vcharacter_variant_table); if (NILP (Fmemq (v, ret))) { - put_char_code_table (c, Fcons (character, ret), - Vcharacter_variant_table); + put_char_id_table (c, Fcons (character, ret), + Vcharacter_variant_table); } } } @@ -795,11 +806,11 @@ Store CHARACTER's ATTRIBUTE with VALUE. c = XINT (value); - ret = get_char_code_table (c, Vcharacter_variant_table); + ret = get_char_id_table (c, Vcharacter_variant_table); if (NILP (Fmemq (character, ret))) { - put_char_code_table (c, Fcons (character, ret), - Vcharacter_variant_table); + put_char_id_table (c, Fcons (character, ret), + Vcharacter_variant_table); } } return put_char_attribute (character, attribute, value); @@ -823,7 +834,8 @@ Remove CHARACTER's ATTRIBUTE. int ccs_len; int dim; int code_point; - + Lisp_Object encoding_table; + /* ad-hoc method for `ascii' */ if ((XCHARSET_CHARS (ccs) == 94) && (XCHARSET_BYTE_OFFSET (ccs) != 33)) @@ -854,6 +866,11 @@ Remove CHARACTER's ATTRIBUTE. v = XCHARSET_DECODING_TABLE (ccs); } } + if (!NILP (encoding_table = XCHARSET_ENCODING_TABLE (ccs))) + { + put_char_id_table (XCHAR (character), Qnil, encoding_table); + } + return Qt; } return remove_char_attribute (character, attribute); } @@ -919,7 +936,7 @@ Store character's ATTRIBUTES. rest = Fcdr (rest); } return - get_char_code_table (XCHAR (character), Vcharacter_attribute_table); + get_char_id_table (XCHAR (character), Vcharacter_attribute_table); } Lisp_Object Vutf_2000_version; @@ -1368,7 +1385,8 @@ mark_charset (Lisp_Object obj) mark_object (cs->registry); mark_object (cs->ccl_program); #ifdef UTF2000 - mark_object (cs->decoding_table); + mark_object (cs->encoding_table); + /* mark_object (cs->decoding_table); */ #endif return cs->name; } @@ -1415,6 +1433,7 @@ static const struct lrecord_description charset_description[] = { { XD_LISP_OBJECT, offsetof (Lisp_Charset, ccl_program) }, #ifdef UTF2000 { XD_LISP_OBJECT, offsetof (Lisp_Charset, decoding_table) }, + { XD_LISP_OBJECT, offsetof (Lisp_Charset, encoding_table) }, #endif { XD_END } }; @@ -1460,6 +1479,7 @@ make_charset (Charset_ID id, Lisp_Object name, CHARSET_REVERSE_DIRECTION_CHARSET (cs) = Qnil; #ifdef UTF2000 CHARSET_DECODING_TABLE(cs) = Qnil; + CHARSET_ENCODING_TABLE(cs) = Qnil; CHARSET_UCS_MIN(cs) = ucs_min; CHARSET_UCS_MAX(cs) = ucs_max; CHARSET_CODE_OFFSET(cs) = code_offset; @@ -2759,8 +2779,8 @@ void syms_of_mule_charset (void) { #ifdef UTF2000 - INIT_LRECORD_IMPLEMENTATION (char_byte_table); - INIT_LRECORD_IMPLEMENTATION (char_code_table); + INIT_LRECORD_IMPLEMENTATION (byte_table); + INIT_LRECORD_IMPLEMENTATION (char_id_table); #endif INIT_LRECORD_IMPLEMENTATION (charset); @@ -2951,13 +2971,13 @@ Version number of UTF-2000. */ ); staticpro (&Vcharacter_attribute_table); - Vcharacter_attribute_table = make_char_code_table (Qnil); + Vcharacter_attribute_table = make_char_id_table (Qnil); staticpro (&Vcharacter_composition_table); - Vcharacter_composition_table = make_char_code_table (Qnil); + Vcharacter_composition_table = make_char_id_table (Qnil); staticpro (&Vcharacter_variant_table); - Vcharacter_variant_table = make_char_code_table (Qnil); + Vcharacter_variant_table = make_char_id_table (Qnil); Vdefault_coded_charset_priority_list = Qnil; DEFVAR_LISP ("default-coded-charset-priority-list",