svnno****@sourc*****
svnno****@sourc*****
2012年 2月 6日 (月) 13:14:21 JST
Revision: 4829 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4829 Author: doda Date: 2012-02-06 13:14:20 +0900 (Mon, 06 Feb 2012) Log Message: ----------- Extended Mouse Tracking (rxvt-unicode) に対応 Modified Paths: -------------- trunk/teraterm/common/tttypes.h trunk/teraterm/teraterm/vtterm.c -------------- next part -------------- Modified: trunk/teraterm/common/tttypes.h =================================================================== --- trunk/teraterm/common/tttypes.h 2012-02-06 03:02:07 UTC (rev 4828) +++ trunk/teraterm/common/tttypes.h 2012-02-06 04:14:20 UTC (rev 4829) @@ -629,8 +629,8 @@ /* Extended mouse tracking mode */ #define IdMouseTrackExtNone 0 #define IdMouseTrackExtUTF8 1 -#define IdMouseTrackExtSGR 2 // \x82\xBB\x82̂\xA4\x82\xBF\x81c -#define IdMouseTrackExtURXVT 3 // \x8BC\x82\xAA\x8C\xFC\x82\xA2\x82\xBD\x82\xE7\x81c +#define IdMouseTrackExtSGR 2 +#define IdMouseTrackExtURXVT 3 /* Mouse event */ #define IdMouseEventCurStat 0 Modified: trunk/teraterm/teraterm/vtterm.c =================================================================== --- trunk/teraterm/teraterm/vtterm.c 2012-02-06 03:02:07 UTC (rev 4828) +++ trunk/teraterm/teraterm/vtterm.c 2012-02-06 04:14:20 UTC (rev 4829) @@ -2381,6 +2381,10 @@ if (ts.MouseEventTracking) MouseReportExtMode = IdMouseTrackExtSGR; break; + case 1015: // Extended Mouse Tracking (rxvt-unicode) + if (ts.MouseEventTracking) + MouseReportExtMode = IdMouseTrackExtURXVT; + break; case 1047: // Alternate Screen Buffer if ((ts.TermFlag & TF_ALTSCR) && !AltScr) { BuffSaveScreen(); @@ -2515,6 +2519,7 @@ break; case 1005: // Extended Mouse Tracking (UTF-8) case 1006: // Extended Mouse Tracking (SGR) + case 1015: // Extended Mouse Tracking (rxvt-unicode) MouseReportExtMode = IdMouseTrackExtNone; break; case 1047: // Alternate Screen Buffer @@ -4585,6 +4590,7 @@ if (y >= MOUSE_POS_LIMIT) y = MOUSE_POS_LIMIT; return _snprintf_s_l(buff, buffsize, _TRUNCATE, "M%c%c%c", CLocale, mb+32, x+32, y+32); break; + case IdMouseTrackExtUTF8: if (x >= MOUSE_POS_EXT_LIMIT) x = MOUSE_POS_EXT_LIMIT; if (y >= MOUSE_POS_EXT_LIMIT) y = MOUSE_POS_EXT_LIMIT; @@ -4610,9 +4616,14 @@ } return _snprintf_s_l(buff, buffsize, _TRUNCATE, "M%c%s%s", CLocale, mb+32, tmpx, tmpy); break; + case IdMouseTrackExtSGR: return _snprintf_s_l(buff, buffsize, _TRUNCATE, "<%d;%d;%d%c", CLocale, mb&0x7f, x, y, (mb&0x80)?'m':'M'); break; + + case IdMouseTrackExtURXVT: + return _snprintf_s_l(buff, buffsize, _TRUNCATE, "%d;%d;%dM", CLocale, mb+32, x, y); + break; } buff[0] = 0; return 0;