[Ttssh2-commit] [3828] ・VPR の動作を上下逆に変更。

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



Ttssh2-commit メーリングリストの案内