[Ttssh2-commit] [4271] mintty の Application Escape Mode をサポート。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 1月 10日 (月) 03:34:01 JST


Revision: 4271
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4271
Author:   doda
Date:     2011-01-10 03:34:01 +0900 (Mon, 10 Jan 2011)

Log Message:
-----------
mintty の Application Escape Mode をサポート。
http://code.google.com/p/mintty/wiki/CtrlSeqs#Escape_keycode
http://code.google.com/p/mintty/wiki/Tips#Avoiding_escape_timeout_issues_in_vim

Modified Paths:
--------------
    trunk/teraterm/teraterm/keyboard.c
    trunk/teraterm/teraterm/keyboard.h
    trunk/teraterm/teraterm/vtterm.c


-------------- next part --------------
Modified: trunk/teraterm/teraterm/keyboard.c
===================================================================
--- trunk/teraterm/teraterm/keyboard.c	2011-01-06 16:07:35 UTC (rev 4270)
+++ trunk/teraterm/teraterm/keyboard.c	2011-01-09 18:34:01 UTC (rev 4271)
@@ -19,7 +19,7 @@
 #include "keyboard.h"
 
 BOOL AutoRepeatMode;
-BOOL AppliKeyMode, AppliCursorMode;
+BOOL AppliKeyMode, AppliCursorMode, AppliEscapeMode;
 BOOL Send8BitMode;
 BYTE DebugFlag = DEBUG_FLAG_NONE;
 
@@ -140,6 +140,16 @@
 	Code[0] = 0x0D;
       }
       break;
+    case VK_ESCAPE: // Escape Key
+      if (Single) {
+	if (AppliEscapeMode) {
+	  CodeLength = 3;
+	  Code[0] = 0x1B;
+	  Code[1] = 'O';
+	  Code[2] = '[';
+	}
+      }
+      break;
     case VK_SPACE:
       if (Control)
       { // Ctrl-Space -> NUL
@@ -468,8 +478,16 @@
     case '3':
       if (Control && !ts.StrictKeyMapping) {
 	// Ctrl-3 -> ESC
-	CodeLength = 1;
-	Code[0] = 0x1b;
+	if (AppliEscapeMode) {
+	  CodeLength = 3;
+	  Code[0] = 0x1B;
+	  Code[1] = 'O';
+	  Code[2] = '[';
+	}
+	else {
+	  CodeLength = 1;
+	  Code[0] = 0x1b;
+	}
       }
       break;
     case '4':

Modified: trunk/teraterm/teraterm/keyboard.h
===================================================================
--- trunk/teraterm/teraterm/keyboard.h	2011-01-06 16:07:35 UTC (rev 4270)
+++ trunk/teraterm/teraterm/keyboard.h	2011-01-09 18:34:01 UTC (rev 4271)
@@ -33,7 +33,7 @@
 #define FuncKeyStrMax 32
 
 extern BOOL AutoRepeatMode;
-extern BOOL AppliKeyMode, AppliCursorMode;
+extern BOOL AppliKeyMode, AppliCursorMode, AppliEscapeMode;
 extern BOOL Send8BitMode;
 extern BYTE DebugFlag;
 

Modified: trunk/teraterm/teraterm/vtterm.c
===================================================================
--- trunk/teraterm/teraterm/vtterm.c	2011-01-06 16:07:35 UTC (rev 4270)
+++ trunk/teraterm/teraterm/vtterm.c	2011-01-09 18:34:01 UTC (rev 4271)
@@ -209,6 +209,7 @@
   AutoWrapMode = TRUE;
   AppliKeyMode = FALSE;
   AppliCursorMode = FALSE;
+  AppliEscapeMode = FALSE;
   RelativeOrgMode = FALSE;
   ts.ColorFlag &= ~CF_REVERSEVIDEO;
   AutoRepeatMode = TRUE;
@@ -2367,6 +2368,9 @@
 	  case 2004: // Bracketed Paste Mode
 	    BracketedPaste = TRUE;
 	    break;
+	  case 7727: // mintty Application Escape Mode
+	    AppliEscapeMode = TRUE;
+	    break;
 	}
     }
 
@@ -2483,6 +2487,9 @@
 	  case 2004: // Bracketed Paste Mode
 	    BracketedPaste = FALSE;
 	    break;
+	  case 7727: // mintty Application Escape Mode
+	    AppliEscapeMode = FALSE;
+	    break;
 	}
     }
 
@@ -2519,6 +2526,7 @@
     RelativeOrgMode = FALSE;
     AppliKeyMode = FALSE;
     AppliCursorMode = FALSE;
+    AppliEscapeMode = FALSE;
     if ((StatusLine>0) &&
 	(CursorY == NumOfLines-1))
       MoveToMainScreen();



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