scmno****@osdn*****
scmno****@osdn*****
2017年 9月 27日 (水) 12:16:21 JST
Revision: 6943 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6943 Author: doda Date: 2017-09-27 12:16:21 +0900 (Wed, 27 Sep 2017) Log Message: ----------- DECRQSSへの応答(DECRPSS)を修正。 VT510 Video Terminal Programmer Information での DECRPSS の記述 [*1] では 最初のパラメータはの意味は以下のようになっている。 0 -> valid 1 -> invalid VT520/VT525 Video Terminal Programmer Information [*2] でも同様の記述。 Tera Term ではこの記述に従って DECRQSS/DECRPSS を実装していた。 しかし、以下の物で 0/1 と valid/invalid の対応が逆(1がvalid)となって いた為、[*1] の記述は誤りと判断し、Tera Term の動作も変更する。 * xterm での DECRQSS/DECRPSS の動作 * VT382 Kanji Display Terminal Programmer Reference Manual [*3] * VT382, VT525 の実機の動作 1: https://vt100.net/docs/vt510-rm/DECRPSS.html 2: https://vt100.net/docs/vt520-rm/ 3: https://vt100.net/manx/details/1,4208 Modified Paths: -------------- trunk/doc/en/html/about/history.html trunk/doc/ja/html/about/history.html trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/doc/en/html/about/history.html =================================================================== --- trunk/doc/en/html/about/history.html 2017-09-27 03:16:17 UTC (rev 6942) +++ trunk/doc/en/html/about/history.html 2017-09-27 03:16:21 UTC (rev 6943) @@ -38,6 +38,12 @@ <li>The response of DA2 request is changed.</li> </ul> </li> + + <li>Buf fixes + <ul> + <li>The response of DECRQSS control sequence was invalid.</li> + </ul> + </li> </ul> Modified: trunk/doc/ja/html/about/history.html =================================================================== --- trunk/doc/ja/html/about/history.html 2017-09-27 03:16:17 UTC (rev 6942) +++ trunk/doc/ja/html/about/history.html 2017-09-27 03:16:21 UTC (rev 6943) @@ -38,6 +38,12 @@ <li>DA2 \x97v\x8B\x81\x82ւ̉\x9E\x93\x9A\x93\xE0\x97e\x82\xF0\x95ύX\x82\xB5\x82\xBD\x81B</li> </ul> </li> + + <li>\x83o\x83O\x8FC\x90\xB3 + <ul> + <li>DECRQSS \x90\xA7\x8C\xE4\x83V\x81[\x83P\x83\x93\x83X\x82ւ̉\x9E\x93\x9A\x82\xAA\x8AԈ\xE1\x82\xC1\x82Ă\xA2\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + </ul> + </li> </ul> Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2017-09-27 03:16:17 UTC (rev 6942) +++ trunk/teraterm/teraterm/vtterm.c 2017-09-27 03:16:21 UTC (rev 6943) @@ -3996,7 +3996,7 @@ if (ts.NonblinkingCursor) { tmp++; } - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r%d q", CLocale, tmp); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r%d q", CLocale, tmp); } break; case '"': @@ -4003,19 +4003,19 @@ switch (StrBuff[1]) { case 'p': // DECSCL if (VTlevel > 1 && Send8BitMode) { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r6%d;0\"p", CLocale, VTlevel); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r6%d;0\"p", CLocale, VTlevel); } else { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r6%d;1\"p", CLocale, VTlevel); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r6%d;1\"p", CLocale, VTlevel); } break; case 'q': // DECSCA if (CharAttr.Attr2 & Attr2Protect) { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r1\"q", CLocale); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r1\"q", CLocale); } else { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r0\"q", CLocale); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r0\"q", CLocale); } break; } @@ -4022,7 +4022,7 @@ break; case 'm': // SGR if (StrBuff[1] == 0) { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r0", CLocale); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r0", CLocale); if (CharAttr.Attr & AttrBold) { len += _snprintf_s_l(&RepStr[len], sizeof(RepStr) - len, _TRUNCATE, ";1", CLocale); } @@ -4088,17 +4088,17 @@ break; case 'r': // DECSTBM if (StrBuff[1] == 0) { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r%d;%dr", CLocale, CursorTop+1, CursorBottom+1); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r%d;%dr", CLocale, CursorTop+1, CursorBottom+1); } break; case 's': // DECSLRM if (StrBuff[1] == 0) { - len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "0$r%d;%ds", CLocale, CursorLeftM+1, CursorRightM+1); + len = _snprintf_s_l(RepStr, sizeof(RepStr), _TRUNCATE, "1$r%d;%ds", CLocale, CursorLeftM+1, CursorRightM+1); } break; } if (len == 0) { - if (strncpy_s(RepStr, sizeof(RepStr), "1$r", _TRUNCATE)) { + if (strncpy_s(RepStr, sizeof(RepStr), "0$r", _TRUNCATE)) { return; } len = 3;