update.
[chise/xemacs-chise.git.1] / src / mule-charset.c
index 038ec5b..14efd20 100644 (file)
@@ -22,9 +22,12 @@ Boston, MA 02111-1307, USA.  */
 
 /* Rewritten by Ben Wing <ben@xemacs.org>. */
 
-/* Rewritten by MORIOKA Tomohiko <tomo@m17n.org> for XEmacs UTF-2000. */
+/* Rewritten by MORIOKA Tomohiko <tomo@m17n.org> for XEmacs CHISE. */
 
 #include <config.h>
+#ifdef HAVE_LIBCHISE
+#include <chise.h>
+#endif
 #ifdef UTF2000
 #include <limits.h>
 #endif
@@ -274,6 +277,7 @@ Lisp_Object Qdirection;
 Lisp_Object Qreverse_direction_charset;
 Lisp_Object Qleading_byte;
 Lisp_Object Qshort_name, Qlong_name;
+Lisp_Object Qiso_ir;
 #ifdef UTF2000
 Lisp_Object Qmin_code, Qmax_code, Qcode_offset;
 Lisp_Object Qmother, Qconversion, Q94x60, Q94x94x60, Qbig5_1, Qbig5_2;
@@ -293,14 +297,14 @@ Lisp_Object Qascii,
   Qlatin_jisx0201,
   Qcyrillic_iso8859_5,
   Qlatin_iso8859_9,
-  Qjapanese_jisx0208_1978,
-  Qchinese_gb2312,
-  Qchinese_gb12345,
-  Qjapanese_jisx0208,
-  Qkorean_ksc5601,
-  Qjapanese_jisx0212,
-  Qchinese_cns11643_1,
-  Qchinese_cns11643_2,
+  Qmap_jis_x0208_1978,
+  Qmap_gb2312,
+  Qmap_gb12345,
+  Qmap_jis_x0208_1983,
+  Qmap_ks_x1001,
+  Qmap_jis_x0212,
+  Qmap_cns11643_1,
+  Qmap_cns11643_2,
 #ifdef UTF2000
   Qmap_ucs, Qucs,
   Qucs_bmp,
@@ -314,7 +318,7 @@ Lisp_Object Qascii,
   Qvietnamese_viscii_upper,
   Qmap_jis_x0208,
   Qmap_jis_x0208_1990,
-  Qchinese_big5,
+  Qmap_big5,
   Qethiopic_ucs,
 #endif
   Qchinese_big5_1,
@@ -842,7 +846,7 @@ get_unallocated_leading_byte (int dimension)
 #define BIG5_SAME_ROW (0xFF - 0xA1 + 0x7F - 0x40)
 
 Emchar
-decode_defined_char (Lisp_Object ccs, int code_point)
+decode_defined_char (Lisp_Object ccs, int code_point, int without_inheritance)
 {
   int dim = XCHARSET_DIMENSION (ccs);
   Lisp_Object decoding_table = XCHARSET_DECODING_TABLE (ccs);
@@ -858,22 +862,24 @@ decode_defined_char (Lisp_Object ccs, int code_point)
     }
   if (CHARP (decoding_table))
     return XCHAR (decoding_table);
-#ifdef HAVE_CHISE_CLIENT
+#ifdef HAVE_CHISE
   if (EQ (decoding_table, Qunloaded))
     {
       char_id = load_char_decoding_entry_maybe (ccs, code_point);
     }
-#endif
+#endif /* HAVE_CHISE */
   if (char_id >= 0)
     return char_id;
-  else if ( CHARSETP (mother = XCHARSET_MOTHER (ccs)) )
+  else if ( !without_inheritance
+           && CHARSETP (mother = XCHARSET_MOTHER (ccs)) )
     {
       if ( XCHARSET_CONVERSION (ccs) == CONVERSION_IDENTICAL )
        {
          if ( EQ (mother, Vcharset_ucs) )
-           return DECODE_CHAR (mother, code_point);
+           return DECODE_CHAR (mother, code_point, without_inheritance);
          else
-           return decode_defined_char (mother, code_point);
+           return decode_defined_char (mother, code_point,
+                                       without_inheritance);
        }
       else if ( XCHARSET_CONVERSION (ccs) == CONVERSION_BIG5_1 )
        {
@@ -884,7 +890,8 @@ decode_defined_char (Lisp_Object ccs, int code_point)
          unsigned char b2 = I % (0xFF - 0xA1 + 0x7F - 0x40);
 
          b2 += b2 < 0x3F ? 0x40 : 0x62;
-         return decode_defined_char (mother, (b1 << 8) | b2);
+         return decode_defined_char (mother, (b1 << 8) | b2,
+                                     without_inheritance);
        }
       else if ( XCHARSET_CONVERSION (ccs) == CONVERSION_BIG5_2 )
        {
@@ -896,7 +903,8 @@ decode_defined_char (Lisp_Object ccs, int code_point)
          unsigned char b2 = I % (0xFF - 0xA1 + 0x7F - 0x40);
 
          b2 += b2 < 0x3F ? 0x40 : 0x62;
-         return decode_defined_char (mother, (b1 << 8) | b2);
+         return decode_defined_char (mother, (b1 << 8) | b2,
+                                     without_inheritance);
        }
     }
   return -1;
@@ -973,7 +981,8 @@ decode_builtin_char (Lisp_Object charset, int code_point)
              code = (b1 << 8) | b2;
            }
          return
-           decode_builtin_char (mother, code + XCHARSET_CODE_OFFSET(charset));
+           decode_builtin_char (mother,
+                                code + XCHARSET_CODE_OFFSET(charset));
        }
       else
        {
@@ -1155,6 +1164,8 @@ charset_code_point (Lisp_Object charset, Emchar ch, int defined_only)
              exit (-1);
            }
        }
+      else if (defined_only)
+       return -1;
       else if ( ( XCHARSET_FINAL (charset) >= '0' ) &&
                ( XCHARSET_MIN_CODE (charset) == 0 )
               /*
@@ -1486,7 +1497,7 @@ character set.  Recognized properties are:
 */
        (name, doc_string, props))
 {
-  int id, dimension = 1, chars = 94, graphic = 0, final = 0, columns = -1;
+  int id = 0, dimension = 1, chars = 94, graphic = 0, final = 0, columns = -1;
   int direction = CHARSET_LEFT_TO_RIGHT;
   Lisp_Object registry = Qnil;
   Lisp_Object charset;
@@ -1520,6 +1531,14 @@ character set.  Recognized properties are:
            long_name = value;
          }
 
+       else if (EQ (keyword, Qiso_ir))
+         {
+#ifdef UTF2000
+           CHECK_INT (value);
+           id = - XINT (value);
+#endif
+         }
+
        else if (EQ (keyword, Qdimension))
          {
            CHECK_INT (value);
@@ -1661,7 +1680,8 @@ character set.  Recognized properties are:
     error
       ("Character set already defined for this DIMENSION/CHARS/FINAL combo");
 
-  id = get_unallocated_leading_byte (dimension);
+  if (id == 0)
+    id = get_unallocated_leading_byte (dimension);
 
   if (NILP (doc_string))
     doc_string = build_string ("");
@@ -2055,7 +2075,7 @@ Set mapping-table of CHARSET to TABLE.
   return table;
 }
 
-#ifdef HAVE_CHISE_CLIENT
+#ifdef HAVE_CHISE
 DEFUN ("save-charset-mapping-table", Fsave_charset_mapping_table, 1, 1, 0, /*
 Save mapping-table of CHARSET.
 */
@@ -2063,15 +2083,34 @@ Save mapping-table of CHARSET.
 {
   struct Lisp_Charset *cs;
   int byte_min, byte_max;
+#ifdef HAVE_LIBCHISE
+  CHISE_CCS dt_ccs;
+#else /* HAVE_LIBCHISE */
   Lisp_Object db;
   Lisp_Object db_file;
+#endif /* not HAVE_LIBCHISE */
 
   charset = Fget_charset (charset);
   cs = XCHARSET (charset);
 
+#ifdef HAVE_LIBCHISE
+  if ( open_chise_data_source_maybe () )
+    return -1;
+
+  dt_ccs
+    = chise_ds_get_ccs (default_chise_data_source,
+                       XSTRING_DATA (Fsymbol_name (XCHARSET_NAME(charset))));
+  if (dt_ccs == NULL)
+    {
+      printf ("Can't open decoding-table %s\n",
+             XSTRING_DATA (Fsymbol_name (XCHARSET_NAME(charset))));
+      return -1;
+    }
+#else /* HAVE_LIBCHISE */
   db_file = char_attribute_system_db_file (CHARSET_NAME (cs),
                                           Qsystem_char_id, 1);
   db = Fopen_database (db_file, Qnil, Qnil, build_string ("w+"), Qnil);
+#endif /* not HAVE_LIBCHISE */
 
   byte_min = CHARSET_BYTE_OFFSET (cs);
   byte_max = byte_min + CHARSET_BYTE_SIZE (cs);
@@ -2087,9 +2126,15 @@ Save mapping-table of CHARSET.
            Lisp_Object c = get_ccs_octet_table (table_c, charset, cell);
 
            if (CHARP (c))
-             Fput_database (Fprin1_to_string (make_int (cell), Qnil),
-                            Fprin1_to_string (c, Qnil),
-                            db, Qt);
+             {
+#ifdef HAVE_LIBCHISE
+               chise_ccs_set_decoded_char (dt_ccs, cell, XCHAR (c));
+#else /* HAVE_LIBCHISE */
+               Fput_database (Fprin1_to_string (make_int (cell), Qnil),
+                              Fprin1_to_string (c, Qnil),
+                              db, Qt);
+#endif /* not HAVE_LIBCHISE */
+             }
          }
       }
       break;
@@ -2108,11 +2153,19 @@ Save mapping-table of CHARSET.
                Lisp_Object c = get_ccs_octet_table (table_c, charset, cell);
 
                if (CHARP (c))
-                 Fput_database (Fprin1_to_string (make_int ((row << 8)
-                                                            | cell),
-                                                  Qnil),
-                                Fprin1_to_string (c, Qnil),
-                                db, Qt);
+                 {
+#ifdef HAVE_LIBCHISE
+                   chise_ccs_set_decoded_char
+                     (dt_ccs,
+                      (row << 8) | cell, XCHAR (c));
+#else /* HAVE_LIBCHISE */
+                   Fput_database (Fprin1_to_string (make_int ((row << 8)
+                                                              | cell),
+                                                    Qnil),
+                                  Fprin1_to_string (c, Qnil),
+                                  db, Qt);
+#endif /* not HAVE_LIBCHISE */
+                 }
              }
          }
       }
@@ -2140,12 +2193,23 @@ Save mapping-table of CHARSET.
                                                         cell);
 
                    if (CHARP (c))
-                     Fput_database (Fprin1_to_string (make_int ((plane << 16)
-                                                                | (row <<  8)
-                                                                | cell),
-                                                      Qnil),
-                                    Fprin1_to_string (c, Qnil),
-                                    db, Qt);
+                     {
+#ifdef HAVE_LIBCHISE
+                       chise_ccs_set_decoded_char
+                         (dt_ccs,
+                          (plane << 16)
+                          | (row <<  8)
+                          | cell, XCHAR (c));
+#else /* HAVE_LIBCHISE */
+                       Fput_database (Fprin1_to_string
+                                      (make_int ((plane << 16)
+                                                 | (row <<  8)
+                                                 | cell),
+                                       Qnil),
+                                      Fprin1_to_string (c, Qnil),
+                                      db, Qt);
+#endif /* not HAVE_LIBCHISE */
+                     }
                  }
              }
          }
@@ -2180,21 +2244,37 @@ Save mapping-table of CHARSET.
                          = get_ccs_octet_table (table_c, charset, cell);
 
                        if (CHARP (c))
-                         Fput_database (Fprin1_to_string
-                                        (make_int ((  group << 24)
-                                                   | (plane << 16)
-                                                   | (row   <<  8)
-                                                   |  cell),
-                                         Qnil),
-                                        Fprin1_to_string (c, Qnil),
-                                        db, Qt);
+                         {
+#ifdef HAVE_LIBCHISE
+                           chise_ccs_set_decoded_char
+                             (dt_ccs,
+                              (  group << 24)
+                              | (plane << 16)
+                              | (row   <<  8)
+                              |  cell, XCHAR (c));
+#else /* HAVE_LIBCHISE */
+                           Fput_database (Fprin1_to_string
+                                          (make_int ((  group << 24)
+                                                     | (plane << 16)
+                                                     | (row   <<  8)
+                                                     |  cell),
+                                           Qnil),
+                                          Fprin1_to_string (c, Qnil),
+                                          db, Qt);
+#endif /* not HAVE_LIBCHISE */
+                         }
                      }
                  }
              }
          }
       }
     }
+#ifdef HAVE_LIBCHISE
+  chise_ccs_sync (dt_ccs);
+  return Qnil;
+#else /* HAVE_LIBCHISE */
   return Fclose_database (db);
+#endif /* not HAVE_LIBCHISE */
 }
 
 DEFUN ("reset-charset-mapping-table", Freset_charset_mapping_table, 1, 1, 0, /*
@@ -2202,13 +2282,35 @@ Reset mapping-table of CCS with database file.
 */
        (ccs))
 {
+#ifdef HAVE_LIBCHISE
+  CHISE_CCS chise_ccs;
+#else
   Lisp_Object db_file;
+#endif
 
   ccs = Fget_charset (ccs);
+
+#ifdef HAVE_LIBCHISE
+  if ( open_chise_data_source_maybe () )
+    return -1;
+
+  chise_ccs = chise_ds_get_ccs (default_chise_data_source,
+                               XSTRING_DATA (Fsymbol_name
+                                             (XCHARSET_NAME(ccs))));
+  if (chise_ccs == NULL)
+    return Qnil;
+#else
   db_file = char_attribute_system_db_file (XCHARSET_NAME(ccs),
                                           Qsystem_char_id, 0);
+#endif
 
-  if (!NILP (Ffile_exists_p (db_file)))
+  if (
+#ifdef HAVE_LIBCHISE
+      chise_ccs_setup_db (chise_ccs, 0) == 0
+#else
+      !NILP (Ffile_exists_p (db_file))
+#endif
+      )
     {
       XCHARSET_DECODING_TABLE(ccs) = Qunloaded;
       return Qt;
@@ -2219,6 +2321,24 @@ Reset mapping-table of CCS with database file.
 Emchar
 load_char_decoding_entry_maybe (Lisp_Object ccs, int code_point)
 {
+#ifdef HAVE_LIBCHISE
+  CHISE_Char_ID char_id;
+
+  if ( open_chise_data_source_maybe () )
+    return -1;
+
+  char_id
+    = chise_ds_decode_char (default_chise_data_source,
+                           XSTRING_DATA(Fsymbol_name (XCHARSET_NAME(ccs))),
+                           code_point);
+  if (char_id >= 0)
+    decoding_table_put_char (ccs, code_point, make_char (char_id));
+  else
+    decoding_table_put_char (ccs, code_point, Qnil);
+
+  /* chise_ccst_close (dt_ccs); */
+  return char_id;
+#else /* HAVE_LIBCHISE */
   Lisp_Object db;
   Lisp_Object db_file
     = char_attribute_system_db_file (XCHARSET_NAME(ccs), Qsystem_char_id,
@@ -2244,8 +2364,9 @@ load_char_decoding_entry_maybe (Lisp_Object ccs, int code_point)
       Fclose_database (db);
     }
   return -1;
+#endif /* not HAVE_LIBCHISE */
 }
-#endif /* HAVE_CHISE_CLIENT */
+#endif /* HAVE_CHISE */
 #endif /* UTF2000 */
 
 \f
@@ -2254,12 +2375,13 @@ load_char_decoding_entry_maybe (Lisp_Object ccs, int code_point)
 /************************************************************************/
 
 #ifdef UTF2000
-DEFUN ("decode-char", Fdecode_char, 2, 3, 0, /*
+DEFUN ("decode-char", Fdecode_char, 2, 4, 0, /*
 Make a character from CHARSET and code-point CODE.
 If DEFINED_ONLY is non-nil, builtin character is not returned.
+If WITHOUT_INHERITANCE is non-nil, inherited character is not returned.
 If corresponding character is not found, nil is returned.
 */
-       (charset, code, defined_only))
+       (charset, code, defined_only, without_inheritance))
 {
   int c;
 
@@ -2269,9 +2391,9 @@ If corresponding character is not found, nil is returned.
   if (XCHARSET_GRAPHIC (charset) == 1)
     c &= 0x7F7F7F7F;
   if (NILP (defined_only))
-    c = DECODE_CHAR (charset, c);
+    c = DECODE_CHAR (charset, c, !NILP (without_inheritance));
   else
-    c = decode_defined_char (charset, c);
+    c = decode_defined_char (charset, c, !NILP (without_inheritance));
   return c >= 0 ? make_char (c) : Qnil;
 }
 
@@ -2286,7 +2408,7 @@ Make a builtin character from CHARSET and code-point CODE.
   CHECK_INT (code);
   if (EQ (charset, Vcharset_latin_viscii))
     {
-      Lisp_Object chr = Fdecode_char (charset, code, Qnil);
+      Lisp_Object chr = Fdecode_char (charset, code, Qnil, Qnil);
       Lisp_Object ret;
 
       if (!NILP (chr))
@@ -2315,7 +2437,8 @@ Make a builtin character from CHARSET and code-point CODE.
     c &= 0x7F7F7F7F;
 #endif
   c = decode_builtin_char (charset, c);
-  return c >= 0 ? make_char (c) : Fdecode_char (charset, code, Qnil);
+  return
+    c >= 0 ? make_char (c) : Fdecode_char (charset, code, Qnil, Qnil);
 }
 #endif
 
@@ -2577,18 +2700,19 @@ syms_of_mule_charset (void)
   DEFSUBR (Fcharset_id);
   DEFSUBR (Fset_charset_ccl_program);
   DEFSUBR (Fset_charset_registry);
+
 #ifdef UTF2000
   DEFSUBR (Fcharset_mapping_table);
   DEFSUBR (Fset_charset_mapping_table);
-#ifdef HAVE_CHISE_CLIENT
+#ifdef HAVE_CHISE
   DEFSUBR (Fsave_charset_mapping_table);
   DEFSUBR (Freset_charset_mapping_table);
-#endif
-
+#endif /* HAVE_CHISE */
   DEFSUBR (Fdecode_char);
   DEFSUBR (Fdecode_builtin_char);
   DEFSUBR (Fencode_char);
 #endif
+
   DEFSUBR (Fmake_char);
   DEFSUBR (Fchar_charset);
   DEFSUBR (Fchar_octet);
@@ -2607,6 +2731,7 @@ syms_of_mule_charset (void)
   defsymbol (&Qreverse_direction_charset, "reverse-direction-charset");
   defsymbol (&Qshort_name, "short-name");
   defsymbol (&Qlong_name, "long-name");
+  defsymbol (&Qiso_ir, "iso-ir");
 #ifdef UTF2000
   defsymbol (&Qmother, "mother");
   defsymbol (&Qmin_code, "min-code");
@@ -2638,14 +2763,14 @@ 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 (&Qjapanese_jisx0208_1978, "japanese-jisx0208-1978");
-  defsymbol (&Qchinese_gb2312,         "chinese-gb2312");
-  defsymbol (&Qchinese_gb12345,                "chinese-gb12345");
-  defsymbol (&Qjapanese_jisx0208,      "japanese-jisx0208");
-  defsymbol (&Qkorean_ksc5601,         "korean-ksc5601");
-  defsymbol (&Qjapanese_jisx0212,      "japanese-jisx0212");
-  defsymbol (&Qchinese_cns11643_1,     "chinese-cns11643-1");
-  defsymbol (&Qchinese_cns11643_2,     "chinese-cns11643-2");
+  defsymbol (&Qmap_jis_x0208_1978,     "=jis-x0208-1978");
+  defsymbol (&Qmap_gb2312,             "=gb2312");
+  defsymbol (&Qmap_gb12345,            "=gb12345");
+  defsymbol (&Qmap_jis_x0208_1983,     "=jis-x0208-1983");
+  defsymbol (&Qmap_ks_x1001,           "=ks-x1001");
+  defsymbol (&Qmap_jis_x0212,          "=jis-x0212");
+  defsymbol (&Qmap_cns11643_1,         "=cns11643-1");
+  defsymbol (&Qmap_cns11643_2,         "=cns11643-2");
 #ifdef UTF2000
   defsymbol (&Qmap_ucs,                        "=ucs");
   defsymbol (&Qucs,                    "ucs");
@@ -2660,7 +2785,7 @@ syms_of_mule_charset (void)
   defsymbol (&Qvietnamese_viscii_upper,        "vietnamese-viscii-upper");
   defsymbol (&Qmap_jis_x0208,          "=jis-x0208");
   defsymbol (&Qmap_jis_x0208_1990,     "=jis-x0208-1990");
-  defsymbol (&Qchinese_big5,           "chinese-big5");
+  defsymbol (&Qmap_big5,               "=big5");
   defsymbol (&Qethiopic_ucs,           "ethiopic-ucs");
 #endif
   defsymbol (&Qchinese_big5_1,         "chinese-big5-1");
@@ -2926,7 +3051,7 @@ complex_vars_of_mule_charset (void)
   staticpro (&Vcharset_japanese_jisx0208_1978);
   Vcharset_japanese_jisx0208_1978 =
     make_charset (LEADING_BYTE_JAPANESE_JISX0208_1978,
-                 Qjapanese_jisx0208_1978, 94, 2,
+                 Qmap_jis_x0208_1978, 94, 2,
                  2, 0, '@', CHARSET_LEFT_TO_RIGHT,
                  build_string ("JIS X0208:1978"),
                  build_string ("JIS X0208:1978 (Japanese)"),
@@ -2942,7 +3067,7 @@ complex_vars_of_mule_charset (void)
                  CONVERSION_IDENTICAL);
   staticpro (&Vcharset_chinese_gb2312);
   Vcharset_chinese_gb2312 =
-    make_charset (LEADING_BYTE_CHINESE_GB2312, Qchinese_gb2312, 94, 2,
+    make_charset (LEADING_BYTE_CHINESE_GB2312, Qmap_gb2312, 94, 2,
                  2, 0, 'A', CHARSET_LEFT_TO_RIGHT,
                  build_string ("GB2312"),
                  build_string ("GB2312)"),
@@ -2951,7 +3076,7 @@ complex_vars_of_mule_charset (void)
                  Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL);
   staticpro (&Vcharset_chinese_gb12345);
   Vcharset_chinese_gb12345 =
-    make_charset (LEADING_BYTE_CHINESE_GB12345, Qchinese_gb12345, 94, 2,
+    make_charset (LEADING_BYTE_CHINESE_GB12345, Qmap_gb12345, 94, 2,
                  2, 0, 0, CHARSET_LEFT_TO_RIGHT,
                  build_string ("G1"),
                  build_string ("GB 12345)"),
@@ -2960,7 +3085,7 @@ complex_vars_of_mule_charset (void)
                  Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL);
   staticpro (&Vcharset_japanese_jisx0208);
   Vcharset_japanese_jisx0208 =
-    make_charset (LEADING_BYTE_JAPANESE_JISX0208, Qjapanese_jisx0208, 94, 2,
+    make_charset (LEADING_BYTE_JAPANESE_JISX0208, Qmap_jis_x0208_1983, 94, 2,
                  2, 0, 'B', CHARSET_LEFT_TO_RIGHT,
                  build_string ("JISX0208"),
                  build_string ("JIS X0208:1983 (Japanese)"),
@@ -2992,7 +3117,7 @@ complex_vars_of_mule_charset (void)
 #endif
   staticpro (&Vcharset_korean_ksc5601);
   Vcharset_korean_ksc5601 =
-    make_charset (LEADING_BYTE_KOREAN_KSC5601, Qkorean_ksc5601, 94, 2,
+    make_charset (LEADING_BYTE_KOREAN_KSC5601, Qmap_ks_x1001, 94, 2,
                  2, 0, 'C', CHARSET_LEFT_TO_RIGHT,
                  build_string ("KSC5601"),
                  build_string ("KSC5601 (Korean"),
@@ -3001,7 +3126,7 @@ complex_vars_of_mule_charset (void)
                  Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL);
   staticpro (&Vcharset_japanese_jisx0212);
   Vcharset_japanese_jisx0212 =
-    make_charset (LEADING_BYTE_JAPANESE_JISX0212, Qjapanese_jisx0212, 94, 2,
+    make_charset (LEADING_BYTE_JAPANESE_JISX0212, Qmap_jis_x0212, 94, 2,
                  2, 0, 'D', CHARSET_LEFT_TO_RIGHT,
                  build_string ("JISX0212"),
                  build_string ("JISX0212 (Japanese)"),
@@ -3012,7 +3137,7 @@ complex_vars_of_mule_charset (void)
 #define CHINESE_CNS_PLANE_RE(n) "cns11643[.-]\\(.*[.-]\\)?" n "$"
   staticpro (&Vcharset_chinese_cns11643_1);
   Vcharset_chinese_cns11643_1 =
-    make_charset (LEADING_BYTE_CHINESE_CNS11643_1, Qchinese_cns11643_1, 94, 2,
+    make_charset (LEADING_BYTE_CHINESE_CNS11643_1, Qmap_cns11643_1, 94, 2,
                  2, 0, 'G', CHARSET_LEFT_TO_RIGHT,
                  build_string ("CNS11643-1"),
                  build_string ("CNS11643-1 (Chinese traditional)"),
@@ -3022,7 +3147,7 @@ complex_vars_of_mule_charset (void)
                  Qnil, 0, 0, 0, 33, Qnil, CONVERSION_IDENTICAL);
   staticpro (&Vcharset_chinese_cns11643_2);
   Vcharset_chinese_cns11643_2 =
-    make_charset (LEADING_BYTE_CHINESE_CNS11643_2, Qchinese_cns11643_2, 94, 2,
+    make_charset (LEADING_BYTE_CHINESE_CNS11643_2, Qmap_cns11643_2, 94, 2,
                  2, 0, 'H', CHARSET_LEFT_TO_RIGHT,
                  build_string ("CNS11643-2"),
                  build_string ("CNS11643-2 (Chinese traditional)"),
@@ -3069,7 +3194,7 @@ complex_vars_of_mule_charset (void)
                  Qnil, 0, 0, 0, 0, Qnil, CONVERSION_IDENTICAL);
   staticpro (&Vcharset_chinese_big5);
   Vcharset_chinese_big5 =
-    make_charset (LEADING_BYTE_CHINESE_BIG5, Qchinese_big5, 256, 2,
+    make_charset (LEADING_BYTE_CHINESE_BIG5, Qmap_big5, 256, 2,
                  2, 2, 0, CHARSET_LEFT_TO_RIGHT,
                  build_string ("Big5"),
                  build_string ("Big5"),