svnno****@sourc*****
svnno****@sourc*****
2017年 2月 22日 (水) 03:05:13 JST
Revision: 6602 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6602 Author: doda Date: 2017-02-22 03:05:13 +0900 (Wed, 22 Feb 2017) Log Message: ----------- 行内では CP932 に fallback した事を覚えておくようにした。 Modified Paths: -------------- trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2017-02-21 18:05:04 UTC (rev 6601) +++ trunk/teraterm/teraterm/vtterm.c 2017-02-21 18:05:13 UTC (rev 6602) @@ -132,6 +132,7 @@ /* JIS -> SJIS conversion flag */ static BOOL ConvJIS; static WORD Kanji; +static BOOL Fallbacked; // variables for status line mode static int StatusX=0; @@ -342,6 +343,7 @@ EUCsupIn = FALSE; SSflag = FALSE; ConvJIS = FALSE; + Fallbacked = FALSE; cv.Language = ts.Language; cv.CRSend = ts.CRSend; @@ -512,6 +514,8 @@ MoveCursor(CursorLeftM, CursorY); else if (CursorX < CursorLeftM) MoveCursor(0, CursorY); + + Fallbacked = FALSE; } void LineFeed(BYTE b, BOOL logFlag) @@ -537,6 +541,8 @@ #endif /* NO_COPYLINE_FIX */ if (LFMode) CarriageReturn(logFlag); + + Fallbacked = FALSE; } void Tab() @@ -1801,6 +1807,7 @@ else MoveCursor(CursorX,Param[1]-1); } + Fallbacked = FALSE; } void CSMoveToXY() // CUP / HVP @@ -1831,6 +1838,7 @@ } MoveCursor(NewX, NewY); + Fallbacked = FALSE; } void CSDeleteTabStop() @@ -4923,6 +4931,7 @@ if (ts.KanjiCode==IdSJIS || ts.KanjiCode==IdUTF8 || ts.KanjiCode==IdUTF8m) { if ((0x80<b) && (b<0xa0) || (0xdf<b) && (b<0xfd)) { + Fallbacked = TRUE; return TRUE; // SJIS kanji } if ((0xa1<=b) && (b<=0xdf)) { @@ -5316,6 +5325,11 @@ locptr = setlocale(LC_ALL, ts.Locale); + if (Fallbacked) { + ParseFirstJP(b); + return; + } + if ((b & 0x80) != 0x80 || ((b & 0xe0) == 0x80 && count == 0)) { // 1\x83o\x83C\x83g\x96ڂ\xA8\x82\xE6\x82\xD12\x83o\x83C\x83g\x96ڂ\xAAASCII\x82̏ꍇ\x82́A\x82\xB7\x82ׂ\xC4ASCII\x8Fo\x97͂Ƃ\xB7\x82\xE9\x81B // 1\x83o\x83C\x83g\x96ڂ\xAAC1\x90\xA7\x8C䕶\x8E\x9A(0x80-0x9f)\x82̏ꍇ\x82\xE0\x93\xAF\x97l\x81B