svnno****@sourc*****
svnno****@sourc*****
2010年 8月 22日 (日) 20:55:16 JST
Revision: 4041 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4041 Author: doda Date: 2010-08-22 20:55:16 +0900 (Sun, 22 Aug 2010) Log Message: ----------- DECDSR の 55 でも Locator Device Status Report の応答を返すようにした。 ctlseqs.txt(*1) や vttest(*2) では DECDSR の 53 が Locator Device Status Report の 要求という事になっているが、"Locator Input Model for ANSI Terminals (sixth revision)"(*3) や all-escapes.txt(*4) では DECDSR の 55 が Locator Device Status Report の要求という事になっているので、55 も同様に扱う。 *3 が DEC の人間によって書かれた事、および 53 は No Locator の応答に割り当て られており基本的に要求と応答に同じ番号が割り当てられる事は無いはずなので、 おそらく 55 が正しいと思われるが、53 のサポートも残して置く。 応答と同じ番号を要求として扱うと、ホスト側がエコーバックする場合にループする 可能性があるが、Tera Term が 53 (No Locator) を返す事は無いので問題ないはず。 *1: http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt *2: http://invisible-island.net/vttest/vttest.html *3: http://www.cs.utk.edu/~shuford/terminal/dec_vt_mouse.html *4: http://bjh21.me.uk/all-escapes/all-escapes.txt Modified Paths: -------------- trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2010-08-21 16:24:17 UTC (rev 4040) +++ trunk/teraterm/teraterm/vtterm.c 2010-08-22 11:55:16 UTC (rev 4041) @@ -2239,7 +2239,7 @@ } } - void CSQ_i_Mode() // MC (DEC) + void CSQ_i_Mode() // DECMC { if (Param[1]==-1) Param[1] = 0; switch (Param[1]) { @@ -2355,10 +2355,11 @@ } } - void CSQ_n_Mode() // DSR (DEC) + void CSQ_n_Mode() // DECDSR { switch (Param[1]) { case 53: + case 55: /* Locator Device Status Report -> Ready */ SendCSIstr("?50n", 0); break; @@ -2370,9 +2371,9 @@ switch (b) { case 'K': CSLineErase(); break; // DECSEL case 'h': CSQ_h_Mode(); break; // DECSET - case 'i': CSQ_i_Mode(); break; // MC (DEC) + case 'i': CSQ_i_Mode(); break; // DECMC case 'l': CSQ_l_Mode(); break; // DECRST - case 'n': CSQ_n_Mode(); break; // DSR (DEC) + case 'n': CSQ_n_Mode(); break; // DECDSR } }