Tera Termの個人的な作業用リポジトリ
リビジョン | ad7e9a5da6f9b5da10c1c31977e28f841204b0bb (tree) |
---|---|
日時 | 2018-06-28 18:54:14 |
作者 | IWAMOTO Kouichi <sue@iwmt...> |
コミッター | IWAMOTO Kouichi |
Bracketed Paste Mode を反映した貼り付け用関数を追加。
TermSendStartBracket() -- Bracketed Paste Mode が有効か判断し、必要ならば開始 Bracket を送信する。
TermSendEndBracket() -- Bracketed Paste Mode が有効か判断し、必要ならば終了 Bracket を送信する。
TermPasteString(char *str, int len) -- Bracketed Paste Mode を考慮した文字列貼り付け。
使い方:
TermSendStartBracket();
CommTextOut(&cv, str, len);
if (ts.LocalEcho)
CommTextEcho(&cv, str, len);
// 必要なだけ上記を行う
TermSendEndBracket();
上記を一まとめにしたのが TermPasteString(str, len)
git-svn-id: svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk@7140 f5f01b69-1e22-0410-acbf-894ab4bd6246
@@ -31,6 +31,7 @@ | ||
31 | 31 | #include "teraterm.h" |
32 | 32 | #include "tttypes.h" |
33 | 33 | #include "vtdisp.h" |
34 | +#include "vtterm.h" | |
34 | 35 | #include <string.h> |
35 | 36 | #include <stdlib.h> |
36 | 37 | #include <stdio.h> |
@@ -372,12 +373,8 @@ BOOL CheckClipboardContent(HWND HWin, BOOL AddCR, BOOL Bracketed) | ||
372 | 373 | } |
373 | 374 | } |
374 | 375 | |
375 | -#define BracketStartLen (sizeof(BracketStart)-1) | |
376 | -#define BracketEndLen (sizeof(BracketEnd)-1) | |
377 | 376 | void CBStartPaste(HWND HWin, BOOL AddCR, BOOL Bracketed) |
378 | 377 | { |
379 | - static char BracketStart[] = "\033[200~"; | |
380 | - static char BracketEnd[] = "\033[201~"; | |
381 | 378 | UINT Cf; |
382 | 379 | PCHAR TmpPtr; |
383 | 380 | LPWSTR TmpPtrW; |
@@ -98,7 +98,12 @@ static BOOL FocusReportMode; | ||
98 | 98 | static BOOL AltScr; |
99 | 99 | static BOOL LRMarginMode; |
100 | 100 | static BOOL RectangleMode; |
101 | -BOOL BracketedPaste; | |
101 | +static BOOL BracketedPaste; | |
102 | + | |
103 | +char BracketStart[] = "\033[200~"; | |
104 | +char BracketEnd[] = "\033[201~"; | |
105 | +int BracketStartLen = (sizeof(BracketStart)-1); | |
106 | +int BracketEndLen = (sizeof(BracketEnd)-1); | |
102 | 107 | |
103 | 108 | static int VTlevel; |
104 | 109 |
@@ -6104,3 +6109,33 @@ void ChangeTerminalID() { | ||
6104 | 6109 | Send8BitMode = ts.Send8BitCtrl; |
6105 | 6110 | } |
6106 | 6111 | } |
6112 | + | |
6113 | +void TermPasteString(char *str, int len) | |
6114 | +{ | |
6115 | + TermSendStartBracket(); | |
6116 | + CommTextOut(&cv, str, len); | |
6117 | + if (ts.LocalEcho) { | |
6118 | + CommTextEcho(&cv, str, len); | |
6119 | + } | |
6120 | + TermSendEndBracket(); | |
6121 | + | |
6122 | + return; | |
6123 | +} | |
6124 | + | |
6125 | +void TermSendStartBracket() | |
6126 | +{ | |
6127 | + if (BracketedPaste) { | |
6128 | + CommBinaryOut(&cv, BracketStart, BracketStartLen); | |
6129 | + } | |
6130 | + | |
6131 | + return; | |
6132 | +} | |
6133 | + | |
6134 | +void TermSendEndBracket() | |
6135 | +{ | |
6136 | + if (BracketedPaste) { | |
6137 | + CommBinaryOut(&cv, BracketEnd, BracketEndLen); | |
6138 | + } | |
6139 | + | |
6140 | + return; | |
6141 | +} |
@@ -46,7 +46,15 @@ BOOL BracketedPasteMode(); | ||
46 | 46 | BOOL WheelToCursorMode(); |
47 | 47 | void EndTerm(); |
48 | 48 | void ChangeTerminalID(); |
49 | +void TermPasteString(char *str, int len); | |
50 | +void TermSendStartBracket(void); | |
51 | +void TermSendEndBracket(void); | |
49 | 52 | |
50 | 53 | #ifdef __cplusplus |
51 | 54 | } |
52 | 55 | #endif |
56 | + | |
57 | +extern int BracketStartLen; | |
58 | +extern int BracketEndLen; | |
59 | +extern char BracketStart[]; | |
60 | +extern char BracketEnd[]; |