changeset 29170:401490c30961

(ccl_driver) <CCL_ReadMultibyteChar2> <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and eight-bit-graphic correctly.
author Kenichi Handa <handa@m17n.org>
date Thu, 25 May 2000 01:30:37 +0000
parents 23b00eb0af27
children 53a9512d0a8b
files src/ccl.c
diffstat 1 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ccl.c	Thu May 25 01:30:04 2000 +0000
+++ b/src/ccl.c	Thu May 25 01:30:37 2000 +0000
@@ -1191,6 +1191,18 @@
 		    reg[rrr] = ((i << 7) | (*src & 0x7F));
 		    src++;
 		  }
+		else if (i == LEADING_CODE_8_BIT_CONTROL)
+		  {
+		    if ((src + 1) >= src_end)
+		      goto ccl_read_multibyte_character_suspend;
+		    reg[RRR] = CHARSET_8_BIT_CONTROL;
+		    reg[rrr] = (*src++ - 0x20);
+		  }
+		else if (i >= 0xA0)
+		  {
+		    reg[RRR] = CHARSET_8_BIT_GRAPHIC;
+		    reg[rrr] = i;
+		  }
 		else
 		  {
 		    /* INVALID CODE.  Return a single byte character.  */
@@ -1215,7 +1227,9 @@
 
 	    case CCL_WriteMultibyteChar2:
 	      i = reg[RRR]; /* charset */
-	      if (i == CHARSET_ASCII)
+	      if (i == CHARSET_ASCII
+		  || i == CHARSET_8_BIT_CONTROL
+		  || i == CHARSET_8_BIT_GRAPHIC)
 		i = reg[rrr] & 0xFF;
 	      else if (CHARSET_DIMENSION (i) == 1)
 		i = ((i - 0x70) << 7) | (reg[rrr] & 0x7F);