# HG changeset patch # User Kenichi Handa # Date 959218237 0 # Node ID 401490c30961cf9604718f1d9828f94075f3b6f0 # Parent 23b00eb0af27bfd3a2fc6604e9971a91092a6209 (ccl_driver) : Handle charsets eight-bit-control and eight-bit-graphic correctly. diff -r 23b00eb0af27 -r 401490c30961 src/ccl.c --- 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);