From bf88d81ea66a93295ec06ec8668c38e28aa49957 Mon Sep 17 00:00:00 2001 From: Siarzhuk Zharski Date: Fri, 19 Apr 2013 07:06:08 +0200 Subject: [PATCH] Fix GB18030 encoding support. And some cleanup ... * Fix GB18030 Chinese encoding support for two and four bytes long characters. This finally resolves issue described in #6227; * Processing of multi-byte characters was slightly refactored too; * Remove the multi-byte 94/96 graphsets designation support for Japanese encodings. That looks like MuTerm rudiment, it had incomplete implementation and looked like abandoned. On the other hand multi-byte designation must be implemented in the same way as designation for single-byte graphsets was done. Note that this multi-byte graphsets designation has nothing to do with the normal encoding support for usual data flow conversion - so you will be on the safe side when use terminal encoding menu switch. The removed feature is the ancient technique to achieve different charsets support on 8-bit serial lines by assigning (designating) predefined sets of characters to G0, G1, G2 and G3 and selecting them during program life-time into GL (x20-x07E) or GR (xA0-xFF) areas by using LS or SS functions. For example xterm has no support for designation multi-byte graphsets at all. Anyway if this feature is required and you can provide the test environment - please let me know and I will be glad to implement this feature in more easy and consistent way; * Remove unreferenced gSmbcsTable and gScsTable parsing tables that looks like is not used anymore; * Remove gCS96GroundTable and gMbcsTable parsing tables that were used by multi-byte 94/96 Japanese graphsets support and now obsoleted by removing mentioned feature; * Remove some obsoleted #defines, like HW statusline support for example, from parse tables definition. --- src/apps/terminal/TermParse.cpp | 158 ++-- src/apps/terminal/VTPrsTbl.c | 1450 +------------------------------ src/apps/terminal/VTparse.h | 12 - 3 files changed, 61 insertions(+), 1559 deletions(-) diff --git a/src/apps/terminal/TermParse.cpp b/src/apps/terminal/TermParse.cpp index 86b0653e82..c2b1edacd9 100644 --- a/src/apps/terminal/TermParse.cpp +++ b/src/apps/terminal/TermParse.cpp @@ -37,7 +37,6 @@ extern int gUTF8GroundTable[]; /* UTF8 Ground table */ -extern int gCS96GroundTable[]; /* CS96 Ground table */ extern int gISO8859GroundTable[]; /* ISO8859 & EUC Ground table */ extern int gWinCPGroundTable[]; /* Windows cp1252, cp1251, koi-8r */ extern int gSJISGroundTable[]; /* Shift-JIS Ground table */ @@ -49,7 +48,6 @@ extern int gScrTable[]; /* ESC # */ extern int gIgnoreTable[]; /* ignore table */ extern int gIesTable[]; /* ignore ESC table */ extern int gEscIgnoreTable[]; /* ESC ignore table */ -extern int gMbcsTable[]; /* ESC $ */ extern const char* gLineDrawGraphSet[]; /* may be used for G0, G1, G2, G3 */ @@ -290,7 +288,6 @@ TermParse::DumpState(int *groundtable, int *parsestate, uchar c) #define T(t) \ { t, #t } T(gUTF8GroundTable), - T(gCS96GroundTable), T(gISO8859GroundTable), T(gWinCPGroundTable), T(gSJISGroundTable), @@ -301,7 +298,6 @@ TermParse::DumpState(int *groundtable, int *parsestate, uchar c) T(gIgnoreTable), T(gIesTable), T(gEscIgnoreTable), - T(gMbcsTable), { NULL, NULL } }; int i; @@ -339,7 +335,6 @@ TermParse::_GuessGroundTable(int encoding) case B_EUC_CONVERSION: case B_EUC_KR_CONVERSION: case B_JIS_CONVERSION: - case B_GBK_CONVERSION: case B_BIG5_CONVERSION: return gISO8859GroundTable; @@ -348,6 +343,7 @@ TermParse::_GuessGroundTable(int encoding) case B_MS_WINDOWS_CONVERSION: case B_MAC_ROMAN_CONVERSION: case B_MS_DOS_866_CONVERSION: + case B_GBK_CONVERSION: case B_MS_DOS_CONVERSION: return gWinCPGroundTable; @@ -368,12 +364,9 @@ TermParse::EscParse() { int top; int bottom; -// int cs96 = 0; - uchar curess = 0; char cbuf[4] = { 0 }; char dstbuf[4] = { 0 }; - char *ptr; int currentEncoding = -1; @@ -392,11 +385,6 @@ TermParse::EscParse() int curGL = 0; int curGR = 0; - int32 srcLen = sizeof(cbuf); - int32 dstLen = sizeof(dstbuf); - int32 dummyState = 0; - - int width = 1; BAutolock locker(fBuffer); while (!fQuitting) { @@ -413,6 +401,9 @@ TermParse::EscParse() } //debug_printf("TermParse: char: '%c' (%d), parse state: %d\n", c, c, parsestate[c]); + int32 srcLen = 0; + int32 dstLen = sizeof(dstbuf); + int32 dummyState = 0; switch (parsestate[c]) { case CASE_PRINT: @@ -431,70 +422,48 @@ TermParse::EscParse() break; } case CASE_PRINT_GR: + { /* case iso8859 gr character, or euc */ - ptr = cbuf; - if (currentEncoding == B_EUC_CONVERSION - || currentEncoding == B_EUC_KR_CONVERSION - || currentEncoding == B_JIS_CONVERSION - || currentEncoding == B_GBK_CONVERSION - || currentEncoding == B_BIG5_CONVERSION) { - switch (parsestate[curess]) { - case CASE_SS2: /* JIS X 0201 */ - width = 1; - *ptr++ = curess; - *ptr++ = c; - *ptr = 0; - curess = 0; - break; + switch (currentEncoding) { + case B_EUC_CONVERSION: + case B_EUC_KR_CONVERSION: + case B_JIS_CONVERSION: + case B_BIG5_CONVERSION: + cbuf[srcLen++] = c; + c = _NextParseChar(); + cbuf[srcLen++] = c; + break; - case CASE_SS3: /* JIS X 0212 */ - width = 1; - *ptr++ = curess; - *ptr++ = c; + case B_GBK_CONVERSION: + cbuf[srcLen++] = c; + do { + // GBK-compatible codepoints are 2-bytes long c = _NextParseChar(); - *ptr++ = c; - *ptr = 0; - curess = 0; - break; + cbuf[srcLen++] = c; - default: /* JIS X 0208 */ - width = 2; - *ptr++ = c; - c = _NextParseChar(); - *ptr++ = c; - *ptr = 0; - break; - } - } else { - /* ISO-8859-1...10 and MacRoman */ - *ptr++ = c; - *ptr = 0; + // GB18030 extends GBK with 4-byte codepoints + // using 2nd byte from range 0x30...0x39 + if (srcLen == 2 && (c < 0x30 || c > 0x39)) + break; + } while (srcLen < 4); + break; + + default: // ISO-8859-1...10 and MacRoman + cbuf[srcLen++] = c; + break; } - srcLen = strlen(cbuf); - dstLen = sizeof(dstbuf); - if (currentEncoding != B_JIS_CONVERSION) { - convert_to_utf8(currentEncoding, cbuf, &srcLen, - dstbuf, &dstLen, &dummyState, '?'); - } else { - convert_to_utf8(B_EUC_CONVERSION, cbuf, &srcLen, + if (srcLen > 0) { + int encoding = currentEncoding == B_JIS_CONVERSION + ? B_EUC_CONVERSION : currentEncoding; + + convert_to_utf8(encoding, cbuf, &srcLen, dstbuf, &dstLen, &dummyState, '?'); + + fBuffer->InsertChar(UTF8Char(dstbuf, dstLen)); } - - fBuffer->InsertChar(UTF8Char(dstbuf, dstLen)); - break; - - case CASE_PRINT_CS96: - cbuf[0] = c | 0x80; - c = _NextParseChar(); - cbuf[1] = c | 0x80; - cbuf[2] = 0; - srcLen = 2; - dstLen = sizeof(dstbuf); - convert_to_utf8(B_EUC_CONVERSION, cbuf, &srcLen, - dstbuf, &dstLen, &dummyState, '?'); - fBuffer->InsertChar(UTF8Char(dstbuf, dstLen)); break; + } case CASE_LF: fBuffer->InsertLF(); @@ -505,62 +474,47 @@ TermParse::EscParse() break; case CASE_SJIS_KANA: - cbuf[0] = c; - cbuf[1] = '\0'; - srcLen = 1; - dstLen = sizeof(dstbuf); + cbuf[srcLen++] = c; convert_to_utf8(currentEncoding, cbuf, &srcLen, dstbuf, &dstLen, &dummyState, '?'); fBuffer->InsertChar(UTF8Char(dstbuf, dstLen)); break; case CASE_SJIS_INSTRING: - cbuf[0] = c; + cbuf[srcLen++] = c; c = _NextParseChar(); - cbuf[1] = c; - cbuf[2] = '\0'; - srcLen = 2; - dstLen = sizeof(dstbuf); + cbuf[srcLen++] = c; + convert_to_utf8(currentEncoding, cbuf, &srcLen, dstbuf, &dstLen, &dummyState, '?'); fBuffer->InsertChar(UTF8Char(dstbuf, dstLen)); break; case CASE_UTF8_2BYTE: - cbuf[0] = c; + cbuf[srcLen++] = c; c = _NextParseChar(); if (groundtable[c] != CASE_UTF8_INSTRING) break; - cbuf[1] = c; - cbuf[2] = '\0'; + cbuf[srcLen++] = c; - fBuffer->InsertChar(UTF8Char(cbuf, 2)); + fBuffer->InsertChar(UTF8Char(cbuf, srcLen)); break; case CASE_UTF8_3BYTE: - cbuf[0] = c; - c = _NextParseChar(); - if (groundtable[c] != CASE_UTF8_INSTRING) - break; - cbuf[1] = c; + cbuf[srcLen++] = c; - c = _NextParseChar(); - if (groundtable[c] != CASE_UTF8_INSTRING) - break; - cbuf[2] = c; - cbuf[3] = '\0'; - fBuffer->InsertChar(UTF8Char(cbuf, 3)); - break; + do { + c = _NextParseChar(); + if (groundtable[c] != CASE_UTF8_INSTRING) { + srcLen = 0; + break; + } + cbuf[srcLen++] = c; - case CASE_MBCS: - /* ESC $ */ - parsestate = gMbcsTable; - break; + } while (srcLen != 3); - case CASE_GSETS: - /* ESC $ ? */ - parsestate = gCS96GroundTable; - // cs96 = 1; + if (srcLen > 0) + fBuffer->InsertChar(UTF8Char(cbuf, srcLen)); break; case CASE_SCS_STATE: @@ -1073,13 +1027,11 @@ TermParse::EscParse() case CASE_SS2: /* SS2 */ - curess = c; parsestate = groundtable; break; case CASE_SS3: /* SS3 */ - curess = c; parsestate = groundtable; break; diff --git a/src/apps/terminal/VTPrsTbl.c b/src/apps/terminal/VTPrsTbl.c index 8e464107a4..db8d479611 100644 --- a/src/apps/terminal/VTPrsTbl.c +++ b/src/apps/terminal/VTPrsTbl.c @@ -14,8 +14,6 @@ #include "VTparse.h" -#define USE_MBCS -#define USE_ISO2022 // #pragma mark UTF8 coding ground table int gUTF8GroundTable[] = @@ -342,331 +340,6 @@ CASE_UTF8_3BYTE, CASE_UTF8_3BYTE, }; -// #pragma mark charset 96 table -int gCS96GroundTable[] = -{ -/* NUL SOH STX ETX */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* EOT ENQ ACK BEL */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_BELL, -/* BS HT NL VT */ -CASE_BS, -CASE_TAB, -CASE_LF, -CASE_LF, /* CASE_UP*/ -/* NP CR SO SI */ -CASE_LF, /* CASE_IGNORE*/ -CASE_CR, -CASE_LS1, -CASE_LS0, -/* DLE DC1 DC2 DC3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* DC4 NAK SYN ETB */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* CAN EM SUB ESC */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_ESC, -/* FS GS RS US */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* SP ! " # */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* $ % & ' */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* ( ) * + */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* , - . / */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* 0 1 2 3 */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* 4 5 6 7 */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* 8 9 : ; */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* < = > ? */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* @ A B C */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* D E F G */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* H I J K */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* L M N O */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* P Q R S */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* T U V W */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* X Y Z [ */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* \ ] ^ _ */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* ` a b c */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* d e f g */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* h i j k */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* l m n o */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* p q r s */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* t u v w */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* x y z { */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* | } ~ DEL */ -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -CASE_PRINT_CS96, -/* 0x80 0x81 0x82 0x83 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x84 0x85 0x86 0x87 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x88 0x89 0x8a 0x8b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x8c 0x8d 0x8e 0x8f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x90 0x91 0x92 0x93 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x94 0x95 0x96 0x97 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x99 0x99 0x9a 0x9b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x9c 0x9d 0x9e 0x9f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xa0 0xa1 0xa2 0xa3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xa4 0xa5 0xa6 0xa7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xa8 0xa9 0xaa 0xab */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xac 0xad 0xae 0xaf */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xb0 0xb1 0xb2 0xb3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xb4 0xb5 0xb6 0xb7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xb8 0xb9 0xba 0xbb */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xbc 0xbd 0xbe 0xbf */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xc0 0xc1 0xc2 0xc3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xc4 0xc5 0xc6 0xc7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xc8 0xc9 0xca 0xcb */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xcc 0xcd 0xce 0xcf */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xd0 0xd1 0xd2 0xd3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xd4 0xd5 0xd6 0xd7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xd8 0xd9 0xda 0xdb */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xdc 0xdd 0xde 0xdf */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xe0 0xe1 0xe2 0xe3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xe4 0xe5 0xe6 0xe7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xe8 0xe9 0xea 0xeb */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xec 0xed 0xee 0xef */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xf0 0xf1 0xf2 0xf3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xf4 0xf5 0xf6 0xf7 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xf8 0xf9 0xfa 0xfb */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0xfc 0xfd 0xfe 0xff */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -}; - // #pragma mark ISO8859 table int gISO8859GroundTable[] = { @@ -749,7 +422,7 @@ CASE_PRINT, CASE_PRINT, CASE_PRINT, CASE_PRINT, -CASE_PRINT, +CASE_PRINT, /* @ A B C */ CASE_PRINT, CASE_PRINT, @@ -992,7 +665,10 @@ CASE_PRINT_GR, CASE_PRINT_GR, }; -// #pragma mark WinCP table (Windows cp1252, cp1251, koi-8r etc.) +// #pragma mark WinCP table (ISO8859 + C1) +// This one defines both C1 control and GR characters +// as CASE_PRINT_GR to let process set of encodings +// using this areas: cp1252, cp1251, koi-8r, cp866, gb18030 int gWinCPGroundTable[] = { /* NUL SOH STX ETX */ @@ -1154,7 +830,7 @@ CASE_PRINT, CASE_PRINT, CASE_PRINT, CASE_PRINT, -CASE_PRINT, //TODO??? +CASE_PRINT, /* 0x80 0x81 0x82 0x83 */ CASE_PRINT_GR, CASE_PRINT_GR, @@ -1732,20 +1408,11 @@ CASE_GROUND_STATE, CASE_GROUND_STATE, /* D E F G */ CASE_GROUND_STATE, -#ifdef STATUSLINE -CASE_ERASE_STATUS, -CASE_FROM_STATUS, -#else /* !STATUSLINE */ CASE_GROUND_STATE, CASE_GROUND_STATE, -#endif /* !STATUSLINE */ CASE_GROUND_STATE, /* H I J K */ -#ifdef STATUSLINE -CASE_HIDE_STATUS, -#else /* !STATUSLINE */ CASE_GROUND_STATE, -#endif /* !STATUSLINE */ CASE_GROUND_STATE, CASE_GROUND_STATE, CASE_GROUND_STATE, @@ -1758,17 +1425,9 @@ CASE_GROUND_STATE, CASE_GROUND_STATE, CASE_GROUND_STATE, CASE_GROUND_STATE, -#ifdef STATUSLINE -CASE_SHOW_STATUS, -#else /* !STATUSLINE */ CASE_GROUND_STATE, -#endif /* !STATUSLINE */ /* T U V W */ -#ifdef STATUSLINE -CASE_TO_STATUS, -#else /* !STATUSLINE */ CASE_GROUND_STATE, -#endif /* !STATUSLINE */ CASE_GROUND_STATE, CASE_GROUND_STATE, CASE_GROUND_STATE, @@ -2359,38 +2018,20 @@ CASE_ESC_IGNORE, CASE_ESC_IGNORE, CASE_SCR_STATE, /* $ % & ' */ -#ifdef USE_ISO2022 -CASE_MBCS, -#else /* !USE_ISO2022 */ CASE_ESC_IGNORE, -#endif /* !USE_ISO2022 */ CASE_ESC_IGNORE, CASE_ESC_IGNORE, CASE_ESC_IGNORE, /* ( ) * + */ -#ifdef USE_ISO2022 CASE_SCS_STATE, CASE_SCS_STATE, CASE_SCS_STATE, CASE_SCS_STATE, -#else /* !USE_ISO2022 */ -CASE_SCS0_STATE, -CASE_SCS1_STATE, -CASE_SCS2_STATE, -CASE_SCS3_STATE, -#endif /* !USE_ISO2022 */ /* , - . / */ -#ifdef USE_ISO2022 CASE_SCS_STATE, /* not defined in ISO2022 but used in Mule */ CASE_SCS_STATE, CASE_SCS_STATE, CASE_SCS_STATE, -#else /* !USE_ISO2022 */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -#endif /* !USE_ISO2022 */ /* 0 1 2 3 */ CASE_GROUND_STATE, CASE_GROUND_STATE, @@ -3628,1085 +3269,6 @@ CASE_GROUND_STATE, CASE_GROUND_STATE, }; -// #pragma mark ESC ( - SCS table -int gScsTable[] = -{ -/* NUL SOH STX ETX */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* EOT ENQ ACK BEL */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_BELL, -/* BS HT NL VT */ -CASE_BS, -CASE_TAB, -CASE_VMOT, -CASE_VMOT, -/* NP CR SO SI */ -CASE_VMOT, -CASE_CR, -CASE_LS1, -CASE_LS0, -/* DLE DC1 DC2 DC3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* DC4 NAK SYN ETB */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* CAN EM SUB ESC */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_ESC, -/* FS GS RS US */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* SP ! " # */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* $ % & ' */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* ( ) * + */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* , - . / */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -#ifdef USE_ISO2022 -/* 0 1 2 3 */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* 4 5 6 7 */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* 8 9 : ; */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* < = > ? */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* @ A B C */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* D E F G */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* H I J K */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* L M N O */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* P Q R S */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* T U V W */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* X Y Z [ */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* \ ] ^ _ */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* ` a b c */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* d e f g */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* h i j k */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* l m n o */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GROUND_STATE, /* GSET('p') >= 0x40 (MBCS flag) */ -/* p q r s */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* t u v w */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* x y z { */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* | } ~ DEL */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, /* empty character set */ -CASE_GROUND_STATE, -#else /* !USE_ISO2022 */ -/* 0 1 2 3 */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GROUND_STATE, -/* 4 5 6 7 */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 8 9 : ; */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* < = > ? */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* @ A B C */ -CASE_GROUND_STATE, -CASE_GSETS, -CASE_GSETS, -CASE_GROUND_STATE, -/* D E F G */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* H I J K */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* L M N O */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* P Q R S */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* T U V W */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* X Y Z [ */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* \ ] ^ _ */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* ` a b c */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* d e f g */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* h i j k */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* l m n o */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* p q r s */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* t u v w */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* x y z { */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* | } ~ DEL */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -#endif /* !USE_ISO2022 */ -/* 0x80 0x81 0x82 0x83 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x84 0x85 0x86 0x87 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x88 0x89 0x8a 0x8b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x8c 0x8d 0x8e 0x8f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x90 0x91 0x92 0x93 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x94 0x95 0x96 0x97 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x99 0x99 0x9a 0x9b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x9c 0x9d 0x9e 0x9f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* nobreakspace exclamdown cent sterling */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* currency yen brokenbar section */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* diaeresis copyright ordfeminine guillemotleft */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* notsign hyphen registered macron */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* degree plusminus twosuperior threesuperior */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* acute mu paragraph periodcentered */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* cedilla onesuperior masculine guillemotright */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* onequarter onehalf threequarters questiondown */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Agrave Aacute Acircumflex Atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Adiaeresis Aring AE Ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Egrave Eacute Ecircumflex Ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Igrave Iacute Icircumflex Idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Eth Ntilde Ograve Oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ocircumflex Otilde Odiaeresis multiply */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ooblique Ugrave Uacute Ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Udiaeresis Yacute Thorn ssharp */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* agrave aacute acircumflex atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* adiaeresis aring ae ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* egrave eacute ecircumflex ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* igrave iacute icircumflex idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* eth ntilde ograve oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* ocircumflex otilde odiaeresis division */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* oslash ugrave uacute ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* udiaeresis yacute thorn ydiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -}; - -#ifdef USE_MBCS -// #pragma mark MBCS table -int gMbcsTable[] = { -/* NUL SOH STX ETX */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* EOT ENQ ACK BEL */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_BELL, -/* BS HT NL VT */ -CASE_BS, -CASE_TAB, -CASE_VMOT, -CASE_VMOT, -/* NP CR SO SI */ -CASE_VMOT, -CASE_CR, -CASE_LS1, -CASE_LS0, -/* DLE DC1 DC2 DC3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* DC4 NAK SYN ETB */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* CAN EM SUB ESC */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_ESC, -/* FS GS RS US */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* SP ! " # */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* $ % & ' */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* ( ) * + */ -CASE_IGNORE, /*CASE_SCS_STATE,*/ -CASE_SCS_STATE, -CASE_SCS_STATE, -CASE_SCS_STATE, -/* , - . / */ -CASE_ESC_IGNORE, -CASE_SCS_STATE, -CASE_SCS_STATE, -CASE_SCS_STATE, -/* 0 1 2 3 */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 4 5 6 7 */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 8 9 : ; */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* < = > ? */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* @ A B C */ -CASE_GSETS, /* ESC-$-@ (JIS-78) */ -CASE_GSETS, /* ESC-$-A (GB) */ -CASE_GSETS, /* ESC-$-B (JIS-83) */ -CASE_GROUND_STATE, -/* D E F G */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* H I J K */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* L M N O */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* P Q R S */ -CASE_IGNORE_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* T U V W */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* X Y Z [ */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* \ ] ^ _ */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_IGNORE_STATE, -CASE_IGNORE_STATE, -/* ` a b c */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* d e f g */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* h i j k */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* l m n o */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* p q r s */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* t u v w */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* x y z { */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* | } ~ DEL */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 0x80 0x81 0x82 0x83 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x84 0x85 0x86 0x87 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x88 0x89 0x8a 0x8b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x8c 0x8d 0x8e 0x8f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x90 0x91 0x92 0x93 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x94 0x95 0x96 0x97 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x99 0x99 0x9a 0x9b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x9c 0x9d 0x9e 0x9f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* nobreakspace exclamdown cent sterling */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* currency yen brokenbar section */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* diaeresis copyright ordfeminine guillemotleft */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* notsign hyphen registered macron */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* degree plusminus twosuperior threesuperior */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* acute mu paragraph periodcentered */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* cedilla onesuperior masculine guillemotright */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* onequarter onehalf threequarters questiondown */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Agrave Aacute Acircumflex Atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Adiaeresis Aring AE Ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Egrave Eacute Ecircumflex Ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Igrave Iacute Icircumflex Idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Eth Ntilde Ograve Oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ocircumflex Otilde Odiaeresis multiply */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ooblique Ugrave Uacute Ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Udiaeresis Yacute Thorn ssharp */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* agrave aacute acircumflex atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* adiaeresis aring ae ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* egrave eacute ecircumflex ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* igrave iacute icircumflex idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* eth ntilde ograve oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* ocircumflex otilde odiaeresis division */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* oslash ugrave uacute ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* udiaeresis yacute thorn ydiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -}; - -// #pragma mark SMBCS table -int gSmbcsTable[] = { -/* NUL SOH STX ETX */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* EOT ENQ ACK BEL */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_BELL, -/* BS HT NL VT */ -CASE_BS, -CASE_TAB, -CASE_VMOT, -CASE_VMOT, -/* NP CR SO SI */ -CASE_VMOT, -CASE_CR, -CASE_LS1, -CASE_LS0, -/* DLE DC1 DC2 DC3 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* DC4 NAK SYN ETB */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* CAN EM SUB ESC */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_ESC, -/* FS GS RS US */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* SP ! " # */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* $ % & ' */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* ( ) * + */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* , - . / */ -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -CASE_ESC_IGNORE, -/* 0 1 2 3 */ -CASE_GROUND_STATE, /* (2-byte or more) private character set */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 4 5 6 7 */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 8 9 : ; */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* < = > ? */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* @ A B C */ -CASE_GSETS, /* ESC-$-I-F */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* D E F G */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* H I J K */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* L M N O */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* P Q R S */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* T U V W */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* X Y Z [ */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* \ ] ^ _ */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -/* ` a b c */ -CASE_GROUND_STATE, /* 3-byte character set */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* d e f g */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* h i j k */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* l m n o */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* p q r s */ -CASE_GROUND_STATE, /* 4-byte character set */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* t u v w */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* x y z { */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* | } ~ DEL */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* 0x80 0x81 0x82 0x83 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x84 0x85 0x86 0x87 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x88 0x89 0x8a 0x8b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x8c 0x8d 0x8e 0x8f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x90 0x91 0x92 0x93 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x94 0x95 0x96 0x97 */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x99 0x99 0x9a 0x9b */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* 0x9c 0x9d 0x9e 0x9f */ -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -CASE_IGNORE, -/* nobreakspace exclamdown cent sterling */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* currency yen brokenbar section */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* diaeresis copyright ordfeminine guillemotleft */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* notsign hyphen registered macron */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* degree plusminus twosuperior threesuperior */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* acute mu paragraph periodcentered */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* cedilla onesuperior masculine guillemotright */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* onequarter onehalf threequarters questiondown */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Agrave Aacute Acircumflex Atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Adiaeresis Aring AE Ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Egrave Eacute Ecircumflex Ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Igrave Iacute Icircumflex Idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Eth Ntilde Ograve Oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ocircumflex Otilde Odiaeresis multiply */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Ooblique Ugrave Uacute Ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* Udiaeresis Yacute Thorn ssharp */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* agrave aacute acircumflex atilde */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* adiaeresis aring ae ccedilla */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* egrave eacute ecircumflex ediaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* igrave iacute icircumflex idiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* eth ntilde ograve oacute */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* ocircumflex otilde odiaeresis division */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* oslash ugrave uacute ucircumflex */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -/* udiaeresis yacute thorn ydiaeresis */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -}; - -#endif - // #pragma mark Shift-JIS ground table int gSJISGroundTable[] = { diff --git a/src/apps/terminal/VTparse.h b/src/apps/terminal/VTparse.h index da48dd124f..58d9e8f873 100644 --- a/src/apps/terminal/VTparse.h +++ b/src/apps/terminal/VTparse.h @@ -25,10 +25,6 @@ #define CASE_LS1 12 #define CASE_SP 13 #define CASE_SCR_STATE 14 -#define CASE_SCS0_STATE 15 -#define CASE_SCS1_STATE 16 -#define CASE_SCS2_STATE 17 -#define CASE_SCS3_STATE 18 #define CASE_ESC_IGNORE 19 #define CASE_ESC_DIGIT 20 #define CASE_ESC_SEMI 21 @@ -56,7 +52,6 @@ #define CASE_DECSET 43 #define CASE_DECRST 44 #define CASE_DECALN 45 -#define CASE_GSETS 46 #define CASE_DECSC 47 #define CASE_DECRC 48 #define CASE_DECKPAM 49 @@ -83,12 +78,6 @@ #define CASE_HP_MEM_LOCK 70 #define CASE_HP_MEM_UNLOCK 71 #define CASE_HP_BUGGY_LL 72 -#define CASE_TO_STATUS 73 -#define CASE_FROM_STATUS 74 -#define CASE_SHOW_STATUS 75 -#define CASE_HIDE_STATUS 76 -#define CASE_ERASE_STATUS 77 -#define CASE_MBCS 78 #define CASE_SCS_STATE 79 #define CASE_UTF8_2BYTE 80 #define CASE_UTF8_3BYTE 81 @@ -96,7 +85,6 @@ #define CASE_SJIS_INSTRING 83 #define CASE_SJIS_KANA 84 #define CASE_PRINT_GR 85 -#define CASE_PRINT_CS96 86 // additions, maybe reorder/reuse older ones ? #define CASE_VPA 87 #define CASE_HPA 88