update.
[chise/xemacs-chise.git] / src / mule-charset.c
index 11f6d76..730c540 100644 (file)
@@ -68,9 +68,6 @@ Lisp_Object Vcharset_ucs;
 Lisp_Object Vcharset_ucs_bmp;
 Lisp_Object Vcharset_ucs_smp;
 Lisp_Object Vcharset_ucs_sip;
-Lisp_Object Vcharset_ucs_gb;
-Lisp_Object Vcharset_ucs_cns;
-Lisp_Object Vcharset_ucs_jis;
 Lisp_Object Vcharset_latin_viscii;
 Lisp_Object Vcharset_latin_tcvn5712;
 Lisp_Object Vcharset_latin_viscii_lower;
@@ -179,7 +176,7 @@ Lisp_Object
 put_char_ccs_code_point (Lisp_Object character,
                         Lisp_Object ccs, Lisp_Object value)
 {
-  if (!EQ (XCHARSET_NAME (ccs), Qucs)
+  if (!EQ (XCHARSET_NAME (ccs), Qmap_ucs)
       || !INTP (value)
       || (XCHAR (character) != XINT (value)))
     {
@@ -277,6 +274,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;
@@ -296,31 +294,28 @@ Lisp_Object Qascii,
   Qlatin_jisx0201,
   Qcyrillic_iso8859_5,
   Qlatin_iso8859_9,
-  Qjapanese_jisx0208_1978,
-  Qchinese_gb2312,
-  Qchinese_gb12345,
-  Qjapanese_jisx0208,
-  Qjapanese_jisx0208_1990,
-  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
-  Qucs,
+  Qmap_ucs, Qucs,
   Qucs_bmp,
   Qucs_smp,
   Qucs_sip,
-  Qucs_gb,
-  Qucs_cns,
-  Qucs_jis,
   Qlatin_viscii,
   Qlatin_tcvn5712,
   Qlatin_viscii_lower,
   Qlatin_viscii_upper,
   Qvietnamese_viscii_lower,
   Qvietnamese_viscii_upper,
-  Qjis_x0208,
-  Qchinese_big5,
+  Qmap_jis_x0208,
+  Qmap_jis_x0208_1990,
+  Qmap_big5,
   Qethiopic_ucs,
 #endif
   Qchinese_big5_1,
@@ -1415,7 +1410,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;
@@ -1449,6 +1444,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);
@@ -1586,7 +1589,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 ("");
@@ -1904,7 +1908,7 @@ Set mapping-table of CHARSET to TABLE.
        (charset, table))
 {
   struct Lisp_Charset *cs;
-  size_t i;
+  int i;
   int byte_offset;
 
   charset = Fget_charset (charset);
@@ -1957,7 +1961,7 @@ Set mapping-table of CHARSET to TABLE.
 
          if (VECTORP (v))
            {
-             size_t j;
+             int j;
 
              for (j = 0; j < XVECTOR_LENGTH (v); j++)
                {
@@ -2338,6 +2342,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");
@@ -2367,31 +2372,29 @@ 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 (&Qjapanese_jisx0208_1990,         "japanese-jisx0208-1990");
-  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");
   defsymbol (&Qucs_bmp,                        "ucs-bmp");
   defsymbol (&Qucs_smp,                        "ucs-smp");
   defsymbol (&Qucs_sip,                        "ucs-sip");
-  defsymbol (&Qucs_gb,                 "ucs-gb");
-  defsymbol (&Qucs_cns,                        "ucs-cns");
-  defsymbol (&Qucs_jis,                        "ucs-jis");
   defsymbol (&Qlatin_viscii,           "latin-viscii");
   defsymbol (&Qlatin_tcvn5712,         "latin-tcvn5712");
   defsymbol (&Qlatin_viscii_lower,     "latin-viscii-lower");
   defsymbol (&Qlatin_viscii_upper,     "latin-viscii-upper");
   defsymbol (&Qvietnamese_viscii_lower,        "vietnamese-viscii-lower");
   defsymbol (&Qvietnamese_viscii_upper,        "vietnamese-viscii-upper");
-  defsymbol (&Qjis_x0208,              "=jis-x0208");
-  defsymbol (&Qchinese_big5,           "chinese-big5");
+  defsymbol (&Qmap_jis_x0208,          "=jis-x0208");
+  defsymbol (&Qmap_jis_x0208_1990,     "=jis-x0208-1990");
+  defsymbol (&Qmap_big5,               "=big5");
   defsymbol (&Qethiopic_ucs,           "ethiopic-ucs");
 #endif
   defsymbol (&Qchinese_big5_1,         "chinese-big5-1");
@@ -2465,7 +2468,7 @@ complex_vars_of_mule_charset (void)
 #ifdef UTF2000
   staticpro (&Vcharset_ucs);
   Vcharset_ucs =
-    make_charset (LEADING_BYTE_UCS, Qucs, 256, 4,
+    make_charset (LEADING_BYTE_UCS, Qmap_ucs, 256, 4,
                  1, 2, 0, CHARSET_LEFT_TO_RIGHT,
                  build_string ("UCS"),
                  build_string ("UCS"),
@@ -2502,34 +2505,6 @@ complex_vars_of_mule_charset (void)
                  build_string ("\\(ISO10646.*-2\\|UCS00-2\\)"),
                  Qnil, MIN_CHAR_SIP, MAX_CHAR_SIP,
                  MIN_CHAR_SIP, 0, Qnil, CONVERSION_IDENTICAL);
-  staticpro (&Vcharset_ucs_gb);
-  Vcharset_ucs_gb =
-    make_charset (LEADING_BYTE_UCS_GB, Qucs_gb, 256, 3,
-                 2, 2, 0, CHARSET_LEFT_TO_RIGHT,
-                 build_string ("UCS for GB"),
-                 build_string ("UCS for GB"),
-                 build_string ("ISO/IEC 10646 for GB"),
-                 build_string (""),
-                 Qnil, 0, 0, 0, 0, Vcharset_ucs, CONVERSION_IDENTICAL);
-  staticpro (&Vcharset_ucs_cns);
-  Vcharset_ucs_cns =
-    make_charset (LEADING_BYTE_UCS_CNS, Qucs_cns, 256, 3,
-                 2, 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, 0, 0, 0, Vcharset_ucs, CONVERSION_IDENTICAL);
-  staticpro (&Vcharset_ucs_jis);
-  Vcharset_ucs_jis =
-    make_charset (LEADING_BYTE_UCS_JIS, Qucs_jis, 256, 3,
-                 2, 2, 0, CHARSET_LEFT_TO_RIGHT,
-                 build_string ("UCS for JIS"),
-                 build_string ("UCS for JIS X 0208, 0212 and 0213"),
-                 build_string
-                 ("ISO/IEC 10646 for JIS X 0208, 0212 and 0213"),
-                 build_string (""),
-                 Qnil, 0, 0, 0, 0, Vcharset_ucs, CONVERSION_IDENTICAL);
 #else
 # define MIN_CHAR_THAI 0
 # define MAX_CHAR_THAI 0
@@ -2671,7 +2646,7 @@ complex_vars_of_mule_charset (void)
   staticpro (&Vcharset_jis_x0208);
   Vcharset_jis_x0208 =
     make_charset (LEADING_BYTE_JIS_X0208,
-                 Qjis_x0208, 94, 2,
+                 Qmap_jis_x0208, 94, 2,
                  2, 0, 'B', CHARSET_LEFT_TO_RIGHT,
                  build_string ("JIS X0208"),
                  build_string ("JIS X0208 Common"),
@@ -2685,7 +2660,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)"),
@@ -2701,7 +2676,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)"),
@@ -2710,7 +2685,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)"),
@@ -2719,7 +2694,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)"),
@@ -2736,7 +2711,7 @@ complex_vars_of_mule_charset (void)
   staticpro (&Vcharset_japanese_jisx0208_1990);
   Vcharset_japanese_jisx0208_1990 =
     make_charset (LEADING_BYTE_JAPANESE_JISX0208_1990,
-                 Qjapanese_jisx0208_1990, 94, 2,
+                 Qmap_jis_x0208_1990, 94, 2,
                  2, 0, 0, CHARSET_LEFT_TO_RIGHT,
                  build_string ("JISX0208-1990"),
                  build_string ("JIS X0208:1990 (Japanese)"),
@@ -2751,7 +2726,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"),
@@ -2760,7 +2735,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)"),
@@ -2771,7 +2746,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)"),
@@ -2781,7 +2756,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)"),
@@ -2828,7 +2803,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"),