svnno****@sourc*****
svnno****@sourc*****
2010年 3月 30日 (火) 13:16:13 JST
Revision: 3828 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=3828 Author: doda Date: 2010-03-30 13:16:13 +0900 (Tue, 30 Mar 2010) Log Message: ----------- ・VPR の動作を上下逆に変更。 ・VPB をサポート。 VPR, VPB の動作は、rxvt 系と PuTTY 等のその他のターミナルエミュレータで上下逆に動作するが、ECMA-48 の記述的には PuTTY 等の方が正しいと思われるため、rxvt 系の動作はバグと判断し PuTTY 等の動作に合わせる。 ECMA-48 の 8.3.160 VPR - LINE POSITION FORWARD より | VPR causes the active data position to be moved by n line positions in | the data component in a direction parallel to the line progression, | where n equals the value of Pn. "direction parallel to the line progression" なので、行の進む方向である下へ移動するのが正しいはず。 VT520/VT525Video Terminal Programmer Information の VPR-Vertical Position Relative より | VPR causes the active position to be moved to vertically corresponding Pn | lines following the current position of the active line. If an attempt is | made to move the active position beyond the last line, the active position | stops at the last line. この記述から、VT500 シリーズの動作も下へ移動の移動だと思われる。 これにより VT 互換の動作だとも言える為、こちらの動作を採用する。 Modified Paths: -------------- trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2010-03-26 10:47:59 UTC (rev 3827) +++ trunk/teraterm/teraterm/vtterm.c 2010-03-30 04:16:13 UTC (rev 3828) @@ -2509,13 +2509,13 @@ // case 'b': break; // REP -- Not support case 'c': AnswerTerminalType(); break; // DA case 'd': CSMoveToLineN(); break; // VPA - case 'e': CSCursorUp(); break; // VPR + case 'e': CSCursorDown(); break; // VPR case 'f': CSMoveToXY(); break; // HVP case 'g': CSDeleteTabStop(); break; // TBC case 'h': CS_h_Mode(); break; // SM case 'i': CS_i_Mode(); break; // MC case 'j': CSCursorLeft(); break; // HPB -// case 'k': break; // VPB -- Not support + case 'k': CSCursorUp(); // VPB case 'l': CS_l_Mode(); break; // RM case 'm': CSSetAttr(); break; // SGR case 'n': CS_n_Mode(); break; // DSR