update.
[chise/xemacs-chise.git] / src / text-coding.c
index 016f343..7ce8b94 100644 (file)
@@ -2980,16 +2980,16 @@ char_encode_shift_jis (struct encoding_stream *str, Emchar ch,
     }
   else
     {
-      Lisp_Object charset, value;
+      Lisp_Object charset;
       unsigned int c1, c2, s1, s2;
-      
 #ifdef UTF2000
-      if (INTP (value =
-               get_char_code_table
-               (ch, XCHARSET_ENCODING_TABLE (Vcharset_latin_jisx0201))))
+      Lisp_Object value = charset_code_point (Vcharset_latin_jisx0201, ch);
+      Lisp_Object ret = Fcar (value);
+
+      if (INTP (ret))
        {
          charset = Vcharset_latin_jisx0201;
-         c1 = XINT (value);
+         c1 = XINT (ret);
          c2 = 0;
        }
       else
@@ -4837,6 +4837,11 @@ char_encode_iso2022 (struct encoding_stream *str, Emchar ch,
                               Vdefault_coded_charset_priority_list));
            }
          BREAKUP_CHAR (ch, charset, byte1, byte2);
+         if (!XCHARSET_FINAL (charset))
+           {
+             charset = Vcharset_ascii;
+             byte1 = '~';
+           }
        found:
          Vdefault_coded_charset_priority_list
            = original_default_coded_charset_priority_list;