(char_encode_iso2022): Use `charset_code_point' instead of
[chise/xemacs-chise.git-] / src / file-coding.c
index 898d530..3068c89 100644 (file)
@@ -858,10 +858,6 @@ if TYPE is 'ccl:
     CHECK_STRING (doc_string);
   CODING_SYSTEM_DOC_STRING (codesys) = doc_string;
 
-#ifdef UTF2000
-  if (ty == CODESYS_NO_CONVERSION)
-    codesys->fixed.size = 1;
-#endif
   EXTERNAL_PROPERTY_LIST_LOOP (rest, key, value, props)
     {
       if (EQ (key, Qmnemonic))
@@ -3241,6 +3237,7 @@ static void
 encode_coding_big5 (Lstream *encoding, CONST unsigned char *src,
                    unsigned_char_dynarr *dst, unsigned int n)
 {
+#ifndef UTF2000
   unsigned char c;
   struct encoding_stream *str = ENCODING_STREAM_DATA (encoding);
   unsigned int flags  = str->flags;
@@ -3295,6 +3292,7 @@ encode_coding_big5 (Lstream *encoding, CONST unsigned char *src,
 
   str->flags = flags;
   str->ch    = ch;
+#endif
 }
 
 
@@ -3315,7 +3313,7 @@ Return the corresponding character.
   if (BYTE_BIG5_TWO_BYTE_1_P (b1) &&
       BYTE_BIG5_TWO_BYTE_2_P (b2))
     {
-      int leading_byte;
+      Charset_ID leading_byte;
       Lisp_Object charset;
       DECODE_BIG5 (b1, b2, leading_byte, c1, c2);
       charset = CHARSET_BY_LEADING_BYTE (leading_byte);
@@ -4959,7 +4957,7 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src,
        {                       /* Graphic characters */
          Lisp_Object charset;
 #ifndef UTF2000
-         int lb;
+         Charset_ID lb;
 #endif
          int reg;
 
@@ -5003,9 +5001,23 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src,
                    charset = new_charset;
                }
 
-#ifndef UTF2000
+#ifdef UTF2000
+             if (XCHARSET_DIMENSION (charset) == 1)
+               {
+                 DECODE_OUTPUT_PARTIAL_CHAR (ch);
+                 DECODE_ADD_UCS_CHAR
+                   (MAKE_CHAR (charset, c & 0x7F, 0), dst);
+               }
+             else if (ch)
+               {
+                 DECODE_ADD_UCS_CHAR
+                   (MAKE_CHAR (charset, ch & 0x7F, c & 0x7F), dst);
+                 ch = 0;
+               }
+             else
+               ch = c;
+#else
              lb = XCHARSET_LEADING_BYTE (charset);
-#endif
              switch (XCHARSET_REP_BYTES (charset))
                {
                case 1: /* ASCII */
@@ -5015,44 +5027,25 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src,
 
                case 2: /* one-byte official */
                  DECODE_OUTPUT_PARTIAL_CHAR (ch);
-#ifdef UTF2000
-                 DECODE_ADD_UCS_CHAR(MAKE_CHAR(charset, c & 0x7F, 0), dst);
-#else
                  Dynarr_add (dst, lb);
                  Dynarr_add (dst, c | 0x80);
-#endif
                  break;
 
                case 3: /* one-byte private or two-byte official */
-#ifdef UTF2000
-                 if (XCHARSET_DIMENSION (charset) == 1)
-#else
                  if (XCHARSET_PRIVATE_P (charset))
-#endif
                    {
                      DECODE_OUTPUT_PARTIAL_CHAR (ch);
-#ifdef UTF2000
-                     DECODE_ADD_UCS_CHAR(MAKE_CHAR(charset, c & 0x7F, 0),
-                                         dst);
-#else
                      Dynarr_add (dst, PRE_LEADING_BYTE_PRIVATE_1);
                      Dynarr_add (dst, lb);
                      Dynarr_add (dst, c | 0x80);
-#endif
                    }
                  else
                    {
                      if (ch)
                        {
-#ifdef UTF2000
-                         DECODE_ADD_UCS_CHAR(MAKE_CHAR(charset,
-                                                       ch & 0x7F,
-                                                       c & 0x7F), dst);
-#else
                          Dynarr_add (dst, lb);
                          Dynarr_add (dst, ch | 0x80);
                          Dynarr_add (dst, c | 0x80);
-#endif
                          ch = 0;
                        }
                      else
@@ -5063,21 +5056,16 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src,
                default:        /* two-byte private */
                  if (ch)
                    {
-#ifdef UTF2000
-                     DECODE_ADD_UCS_CHAR(MAKE_CHAR(charset,
-                                                   ch & 0x7F,
-                                                   c & 0x7F), dst);
-#else
                      Dynarr_add (dst, PRE_LEADING_BYTE_PRIVATE_2);
                      Dynarr_add (dst, lb);
                      Dynarr_add (dst, ch | 0x80);
                      Dynarr_add (dst, c | 0x80);
-#endif
                      ch = 0;
                    }
                  else
                    ch = c;
                }
+#endif
            }
 
          if (!ch)
@@ -5802,31 +5790,7 @@ encode_coding_no_conversion (Lstream *encoding, CONST unsigned char *src,
          break;
        case 1:
          ch = ( ch << 6 ) | ( c & 0x3f );
-         switch ( str->codesys->fixed.size )
-           {
-           case 1:
-             Dynarr_add (dst, ch & 0xff);
-             break;
-           case 2:
-             Dynarr_add (dst, (ch >> 8) & 0xff);
-             Dynarr_add (dst,  ch       & 0xff);
-             break;
-           case 3:
-             Dynarr_add (dst, (ch >> 16) & 0xff);
-             Dynarr_add (dst, (ch >>  8) & 0xff);
-             Dynarr_add (dst,  ch        & 0xff);
-             break;
-           case 4:
-             Dynarr_add (dst, (ch >> 24) & 0xff);
-             Dynarr_add (dst, (ch >> 16) & 0xff);
-             Dynarr_add (dst, (ch >>  8) & 0xff);
-             Dynarr_add (dst,  ch        & 0xff);
-             break;
-           default:
-             fprintf(stderr, "It seems %d bytes stream.\n",
-                     str->codesys->fixed.size);
-             abort ();
-           }
+         Dynarr_add (dst, ch & 0xff);
          char_boundary = 0;
          break;
        default: