(Fsave_charset_mapping_table): Open database as "w+" mode.
[chise/xemacs-chise.git-] / src / mule-charset.c
index 157e12b..46d12c8 100644 (file)
@@ -77,7 +77,7 @@ Lisp_Object Vcharset_latin_tcvn5712;
 Lisp_Object Vcharset_latin_viscii_lower;
 Lisp_Object Vcharset_latin_viscii_upper;
 Lisp_Object Vcharset_chinese_big5;
-Lisp_Object Vcharset_chinese_big5_cdp;
+/* Lisp_Object Vcharset_chinese_big5_cdp; */
 Lisp_Object Vcharset_ideograph_hanziku_1;
 Lisp_Object Vcharset_ideograph_hanziku_2;
 Lisp_Object Vcharset_ideograph_hanziku_3;
@@ -350,7 +350,7 @@ Lisp_Object Qascii,
   Qvietnamese_viscii_lower,
   Qvietnamese_viscii_upper,
   Qchinese_big5,
-  Qchinese_big5_cdp,
+  /*  Qchinese_big5_cdp, */
   Qideograph_hanziku_1,
   Qideograph_hanziku_2,
   Qideograph_hanziku_3,
@@ -950,8 +950,10 @@ decode_builtin_char (Lisp_Object charset, int code_point)
              + (row - (18 + 32)) * 94
              + cell - 33;
        }
-      return DECODE_CHAR (mother, code + XCHARSET_CODE_OFFSET(charset));
+      return
+       decode_builtin_char (mother, code + XCHARSET_CODE_OFFSET(charset));
     }
+#if 0
   else if (EQ (charset, Vcharset_chinese_big5))
     {
       int c1 = code_point >> 8;
@@ -978,6 +980,7 @@ decode_builtin_char (Lisp_Object charset, int code_point)
          code_point = ((I / 94 + 33) << 8) | (I % 94 + 33);
        }
     }
+#endif
   if ((final = XCHARSET_FINAL (charset)) >= '0')
     {
       if (XCHARSET_DIMENSION (charset) == 1)
@@ -2040,8 +2043,8 @@ Save mapping-table of CHARSET.
 
   db_file = char_attribute_system_db_file (CHARSET_NAME (cs),
                                           Qsystem_char_id, 1);
-  db = Fopen_database (db_file, Qnil, Qnil, Qnil, Qnil);
-      
+  db = Fopen_database (db_file, Qnil, Qnil, build_string ("w+"), Qnil);
+
   byte_min = CHARSET_BYTE_OFFSET (cs);
   byte_max = byte_min + CHARSET_BYTE_SIZE (cs);
   switch (CHARSET_DIMENSION (cs))
@@ -2178,7 +2181,7 @@ load_char_decoding_entry_maybe (Lisp_Object ccs, int code_point)
     = char_attribute_system_db_file (XCHARSET_NAME(ccs), Qsystem_char_id,
                                     0);
 
-  db = Fopen_database (db_file, Qnil, Qnil, Qnil, Qnil);
+  db = Fopen_database (db_file, Qnil, Qnil, build_string ("r"), Qnil);
   if (!NILP (db))
     {
       Lisp_Object ret
@@ -2626,7 +2629,7 @@ syms_of_mule_charset (void)
   defsymbol (&Qideograph_daikanwa_2,   "ideograph-daikanwa-2");
   defsymbol (&Qideograph_daikanwa,     "ideograph-daikanwa");
   defsymbol (&Qchinese_big5,           "chinese-big5");
-  defsymbol (&Qchinese_big5_cdp,       "chinese-big5-cdp");
+  /*  defsymbol (&Qchinese_big5_cdp,   "chinese-big5-cdp"); */
   defsymbol (&Qideograph_hanziku_1,    "ideograph-hanziku-1");
   defsymbol (&Qideograph_hanziku_2,    "ideograph-hanziku-2");
   defsymbol (&Qideograph_hanziku_3,    "ideograph-hanziku-3");
@@ -3063,11 +3066,11 @@ complex_vars_of_mule_charset (void)
                  build_string ("Big5"),
                  build_string ("Big5"),
                  build_string ("Big5 Chinese traditional"),
-                 build_string ("big5"),
+                 build_string ("big5-0"),
                  Qnil,
-                 0 /* MIN_CHAR_BIG5_CDP */,
-                 0 /* MAX_CHAR_BIG5_CDP */, 0, 0,
-                 Qnil, CONVERSION_IDENTICAL);
+                 MIN_CHAR_BIG5_CDP, MAX_CHAR_BIG5_CDP,
+                 MIN_CHAR_BIG5_CDP, 0, Qnil, CONVERSION_IDENTICAL);
+#if 0
   staticpro (&Vcharset_chinese_big5_cdp);
   Vcharset_chinese_big5_cdp =
     make_charset (LEADING_BYTE_CHINESE_BIG5_CDP, Qchinese_big5_cdp, 256, 2,
@@ -3078,6 +3081,7 @@ complex_vars_of_mule_charset (void)
                  build_string ("big5\\.cdp-0"),
                  Qnil, MIN_CHAR_BIG5_CDP, MAX_CHAR_BIG5_CDP,
                  MIN_CHAR_BIG5_CDP, 0, Qnil, CONVERSION_IDENTICAL);
+#endif
 #define DEF_HANZIKU(n)                                                 \
   staticpro (&Vcharset_ideograph_hanziku_##n);                         \
   Vcharset_ideograph_hanziku_##n =                                     \