svnno****@sourc*****
svnno****@sourc*****
2011年 11月 1日 (火) 01:40:11 JST
Revision: 4696 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4696 Author: doda Date: 2011-11-01 01:40:10 +0900 (Tue, 01 Nov 2011) Log Message: ----------- ・OSC 文字列によるカラーパレット変更が出来なくなっていたのを修正 (r4644でのエンバグ) ・空や対応していない OSC 文字列の後に続く文字列が表示されない場合が有ったのを修正 Modified Paths: -------------- trunk/teraterm/teraterm/vtdisp.c trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2011-10-30 13:54:39 UTC (rev 4695) +++ trunk/teraterm/teraterm/vtdisp.c 2011-10-31 16:40:10 UTC (rev 4696) @@ -3693,7 +3693,9 @@ } #ifdef ALPHABLEND_TYPE2 - BGInitialize(); + if (num > 255) { + BGInitialize(); + } #endif if (num == CS_TEK_FG || num == CS_TEK_BG) { if (HTEKWin) Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2011-10-30 13:54:39 UTC (rev 4695) +++ trunk/teraterm/teraterm/vtterm.c 2011-10-31 16:40:10 UTC (rev 4696) @@ -3444,6 +3444,7 @@ #define ModeXsColorNum 3 #define ModeXsColorSpec 4 #define ModeXsEsc 5 +#define ModeXsIgnore 6 void XSequence(BYTE b) { static BYTE XsParseMode = ModeXsFirst, PrevMode; @@ -3467,21 +3468,16 @@ case 11: case 15: case 16: + ColorNumber = 0; XsParseMode = ModeXsColorSpec; - ColorNumber = 0; - StrBuff[0] = '\0'; - StrLen = 0; break; default: XsParseMode = ModeXsString; } } else { - // Invalid Sequence. Ignore. - Param[1] = 0xFFFFFFFF; - StrBuff[0] = '\0'; - StrLen = 0; - XsParseMode = ModeXsString; + XsParseMode = ModeXsIgnore; + XSequence(b); } break; case ModeXsString: @@ -3522,14 +3518,10 @@ } else if (b == ';') { XsParseMode = ModeXsColorSpec; - StrBuff[0] = '\0'; - StrLen = 0; } else { - Param[1] = 0xFFFFFFFF; - StrBuff[0] = '\0'; - StrLen = 0; - XsParseMode = ModeXsString; + XsParseMode = ModeXsIgnore; + XSequence(b); } break; case ModeXsColorSpec: @@ -3571,8 +3563,7 @@ Param[1]++; break; default: - XsParseMode = ModeXsString; - Param[1] = 0xFFFFFFFF; + XsParseMode = ModeXsIgnore; break; } } @@ -3593,6 +3584,16 @@ EscapeSequence(b); } break; + case ModeXsIgnore: + if ((b==ST && Accept8BitCtrl && !(ts.Language==IdJapanese && ts.KanjiCode==IdSJIS)) || b==BEL) { /* String Terminator */ + ParseMode = ModeFirst; + XsParseMode = ModeXsFirst; + } + else if (b == ESC) { + PrevMode = ModeXsIgnore; + XsParseMode = ModeXsEsc; + } + break; } }