Sync up with r21-4-17-chise-0_23-1.
[chise/xemacs-chise.git-] / src / mule-ccl.c
index 947d64b..83309a4 100644 (file)
@@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "lisp.h"
 #include "buffer.h"
-#include "mule-charset.h"
+#include "character.h"
 #include "mule-ccl.h"
 #include "file-coding.h"
 
@@ -1279,6 +1279,7 @@ ccl_driver (struct ccl_program *ccl,
        case CCL_Extension:
          switch (EXCMD)
            {
+#ifndef UTF2000
            case CCL_ReadMultibyteChar2:
              if (!src)
                CCL_INVALID_CMD;
@@ -1303,6 +1304,13 @@ ccl_driver (struct ccl_program *ccl,
                    reg[RRR] = i;
                    reg[rrr] = (*src++ & 0x7F);
                  }
+               else if (LEADING_BYTE_CONTROL_1 == i)
+                 {
+                   if (src >= src_end)
+                     goto ccl_read_multibyte_character_suspend;
+                   reg[RRR] = i;
+                   reg[rrr] = (*src++ - 0xA0);
+                 }
                else if (i <= MAX_LEADING_BYTE_OFFICIAL_2)
                  {
                    if ((src + 1) >= src_end)
@@ -1347,10 +1355,12 @@ ccl_driver (struct ccl_program *ccl,
                CCL_SUSPEND (CCL_STAT_SUSPEND_BY_SRC);
 
              break;
+#endif
 
+#ifndef UTF2000
            case CCL_WriteMultibyteChar2:
              i = reg[RRR]; /* charset */
-             if (i == LEADING_BYTE_ASCII)
+             if (i == LEADING_BYTE_ASCII || i == LEADING_BYTE_CONTROL_1)
                i = reg[rrr] & 0xFF;
              else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
                i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
@@ -1363,6 +1373,7 @@ ccl_driver (struct ccl_program *ccl,
              CCL_WRITE_CHAR (i);
 
              break;
+#endif
 
            case CCL_TranslateCharacter:
 #if 0