[Ttssh2-commit] [4041] DECDSR の 55 でも Locator Device Status Report の応答を返すようにした。

Back to archive index

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
     }
   }
 



Ttssh2-commit メーリングリストの案内
Back to archive index