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();