- \x95ύX
Modified: trunk/teraterm/ttpcmn/ttpcmn.def
===================================================================
--- trunk/teraterm/ttpcmn/ttpcmn.def 2016-07-15 13:45:42 UTC (rev 6450)
+++ trunk/teraterm/ttpcmn/ttpcmn.def 2016-08-01 09:01:16 UTC (rev 6451)
@@ -27,6 +27,7 @@
DetectComPorts @42
GetDefaultFName @47
ExtractFileName @48
+ replaceInvalidFileNameChar @74
SJIS2JIS @30
SJIS2EUC @31
Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c 2016-07-15 13:45:42 UTC (rev 6450)
+++ trunk/ttssh2/ttxssh/ttxssh.c 2016-08-01 09:01:16 UTC (rev 6451)
@@ -4522,11 +4522,20 @@
if (szFileName[0] != '\0') {
char recvpath[MAX_PATH] = "";
char* fn = strrchr(szFileName, '/');
- if (fn && fn[1] == '\0') {
- return FALSE;
+ char recvfn[sizeof(szFileName)];
+ if (fn) {
+ fn++;
+ if (*fn == '\0') {
+ return FALSE;
+ }
}
+ else {
+ fn = szFileName;
+ }
+ strncpy_s(recvfn, sizeof(recvfn), fn, _TRUNCATE);
+ replaceInvalidFileNameChar(recvfn, '_');
SendMessage(GetDlgItem(dlg, IDC_RECVFILE_TO), WM_GETTEXT, sizeof(recvdir), (LPARAM)recvdir);
- _snprintf_s(recvpath, sizeof(recvpath), _TRUNCATE, "%s\\%s", recvdir, fn ? (fn + 1) : szFileName);
+ _snprintf_s(recvpath, sizeof(recvpath), _TRUNCATE, "%s\\%s", recvdir, recvfn);
SSH_scp_transaction(pvar, szFileName, recvpath, FROMREMOTE);
EndDialog(dlg, 1); // dialog close
return TRUE;
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:22 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:22 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTNdICDjgq/jg6rjg4Pjg5fjg5zjg7w=?=
=?utf-8?b?44OJ44Gu5YaF5a6544Gu44Kz44OU44O844Go44CBQWRkQ1IgLCAgQnJhY2tl?=
=?utf-8?b?dGVkIFBhc3RlIE1vZGUg44Gu5Yem55CG44KS5YiG6Zui?=
Message-ID: <1470042082.695046.63458.nullmailer@users.sourceforge.jp>
Revision: 6453
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6453
Author: doda
Date: 2016-08-01 18:01:22 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
クリップボードの内容のコピーと、AddCR, Bracketed Paste Mode の処理を分離
間に他の確認/加工処理を入れやすくする為
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:20 UTC (rev 6452)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:22 UTC (rev 6453)
@@ -139,6 +139,8 @@
}
}
+#define BracketStartLen (sizeof(BracketStart)-1)
+#define BracketEndLen (sizeof(BracketEnd)-1)
void CBStartPaste(HWND HWin, BOOL AddCR, BOOL Bracketed)
{
static char BracketStart[] = "\033[200~";
@@ -147,7 +149,7 @@
PCHAR TmpPtr;
LPWSTR TmpPtrW;
HGLOBAL TmpHandle;
- int BuffLen, BracketLen;
+ unsigned int StrLen = 0, BuffLen = 0;
if (! cv.Ready) {
return;
@@ -201,7 +203,7 @@
}
if (Bracketed) {
- BuffLen += sizeof(BracketStart) + sizeof(BracketEnd);
+ BuffLen += BracketStartLen + BracketEndLen;
}
if (AddCR) {
@@ -210,44 +212,69 @@
if ((CBMemHandle = GlobalAlloc(GHND, BuffLen)) != NULL) {
if ((CBMemPtr = GlobalLock(CBMemHandle)) != NULL) {
- if (Bracketed) {
- strncpy_s(CBMemPtr, BuffLen, BracketStart, _TRUNCATE);
- BracketLen = strlen(CBMemPtr);
- }
- else {
- BracketLen = 0;
- }
-
if (Cf == CF_UNICODETEXT) {
- WideCharToMultiByte(CP_ACP, 0, TmpPtrW, -1, CBMemPtr+BracketLen, BuffLen-BracketLen, NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, TmpPtrW, -1, CBMemPtr, BuffLen, NULL, NULL);
}
else {
- strncat_s(CBMemPtr, BuffLen, TmpPtr, _TRUNCATE);
+ strncpy_s(CBMemPtr, BuffLen, TmpPtr, _TRUNCATE);
}
- if (Bracketed) {
- strncat_s(CBMemPtr, BuffLen, BracketEnd, _TRUNCATE);
- }
-
- if (AddCR) {
- strncat_s(CBMemPtr, BuffLen, "\r", _TRUNCATE);
- }
-
- CBMemPtr = NULL;
-
TalkStatus = IdTalkCB;
}
- GlobalUnlock(CBMemHandle);
- CBMemPtr = NULL;
}
GlobalUnlock(TmpHandle);
}
CloseClipboard();
}
+ // \x93\\x82\xE8\x95t\x82\xAF\x82?\x80\x94\x{142A90}\xB3\x8F\xED\x82?o\x97\x88\x82\xBD\x8F?\x82\xCD IdTalkCB \x82??\xE9
+
if (TalkStatus != IdTalkCB) {
+ // \x8F\x80\x94\x{142A8D}s\x82\xA6\x82?\xA9\x82\xC1\x82\xBD\x8F?\x82?\\x82\xE8\x95t\x82\xAF\x82?f\x82\xB7\x82\xE9
CBEndPaste();
+ return;
}
+
+ // \x93\\x82\xE8\x95t\x82\xAF\x91O\x82?N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\xE0\x97e\x82\xF0\x8Am\x94F/\x89\xC1\x8DH\x93\x99\x82\xB7\x82\xE9\x8F?\x82?\xB1\x82\xB1\x82ōs\x82\xA4
+
+ // AddCR / Bracket \x97p\x82??悪\x82\xA0\x82?\x82?m\x94F\x81A\x96\xB3\x82\xAF\x82\xEA\x82Β?\xC1\x8Am\x95\xDB
+ StrLen = strlen(CBMemPtr);
+ BuffLen = StrLen + 1; // strlen + NUL
+ if (AddCR) {
+ BuffLen++;
+ }
+ if (Bracketed) {
+ BuffLen += BracketStartLen + BracketEndLen;
+ }
+
+ if (GlobalSize(CBMemHandle) < BuffLen) {
+ GlobalUnlock(CBMemHandle);
+ CBMemPtr = NULL;
+ if ((TmpHandle = GlobalReAlloc(CBMemHandle, BuffLen, 0)) == NULL) {
+ /*
+ * \x95s\x91\xAB\x95\xAA\x82?m\x95?\xB8\x94s\x82\xB5\x82\xBD\x8E\x9E\x82\xCD CR/Bracket \x96\xB3\x82\xB5\x82œ\\x82\xE8\x95t\x82\xAF\x82\xF0\x8Ds\x82\xA4\x82?\xAB\x82\xA9\x81A
+ * \x82\xBB\x82\xEA\x82?\xE0\x93\\x82\xE8\x95t\x82\xAF\x8E\xA9\x91??~\x82\xB7\x82\xE9(CBEndPaste()\x82\xF0\x8CĂ\xD4)\x82?\xAB\x82\xA9\x81B
+ */
+ // CBEndPaste();
+ return;
+ }
+ CBMemHandle = TmpHandle;
+ CBMemPtr = GlobalLock(CBMemHandle);
+ }
+
+ if (AddCR) {
+ CBMemPtr[StrLen++] = '\r';
+ }
+
+ if (Bracketed) {
+ BuffLen = GlobalSize(CBMemHandle);
+ memmove_s(CBMemPtr+BracketStartLen, BuffLen-BracketStartLen, CBMemPtr, StrLen);
+ memcpy_s(CBMemPtr, BuffLen, BracketStart, BracketStartLen);
+ strncat_s(CBMemPtr, BuffLen, BracketEnd, _TRUNCATE);
+ }
+
+ GlobalUnlock(CBMemHandle);
+ CBMemPtr = NULL;
}
void CBStartPasteB64(HWND HWin, PCHAR header, PCHAR footer)
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:20 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:20 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTJdICDjg6Hjg6Ljg6rjg6rjg7zjgq8=?=
=?utf-8?b?44GM6LW344GN44Gq44GE44KI44GG44Gr44CB5b+144Gu44Gf44KBIE5VTEwg?=
=?utf-8?b?44GL44OB44Kn44OD44Kv44KS6KGM44GG44CC?=
Message-ID: <1470042080.372589.63395.nullmailer@users.sourceforge.jp>
Revision: 6452
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6452
Author: doda
Date: 2016-08-01 18:01:20 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
メモリリークが起きないように、念のため NULL かチェックを行う。
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:16 UTC (rev 6451)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:20 UTC (rev 6452)
@@ -112,9 +112,11 @@
CBEchoOnly = EchoOnly;
+ if (CBMemHandle) {
+ GlobalFree(CBMemHandle);
+ }
CBMemHandle = NULL;
CBMemPtr = NULL;
-
CBMemPtr2 = 0;
CBInsertDelay = FALSE;
@@ -169,6 +171,9 @@
CBEchoOnly = FALSE;
+ if (CBMemHandle) {
+ GlobalFree(CBMemHandle);
+ }
CBMemHandle = NULL;
CBMemPtr = NULL;
CBMemPtr2 = 0;
@@ -262,6 +267,9 @@
CBEchoOnly = FALSE;
+ if (CBMemHandle) {
+ GlobalFree(CBMemHandle);
+ }
CBMemHandle = NULL;
CBMemPtr = NULL;
CBMemPtr2 = 0;
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:25 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:25 +0900
Subject: [Ttssh2-commit] [6454] typo fix.
Message-ID: <1470042085.171663.63542.nullmailer@users.sourceforge.jp>
Revision: 6454
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6454
Author: doda
Date: 2016-08-01 18:01:24 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
typo fix.
Modified Paths:
--------------
trunk/teraterm/common/tttypes.h
-------------- next part --------------
Modified: trunk/teraterm/common/tttypes.h
===================================================================
--- trunk/teraterm/common/tttypes.h 2016-08-01 09:01:22 UTC (rev 6453)
+++ trunk/teraterm/common/tttypes.h 2016-08-01 09:01:24 UTC (rev 6454)
@@ -1075,7 +1075,7 @@
* Increment the number of this macro value
* when you change TMap or member of TMap.
*
- * - At version 4.91, ttset_memfilemap was replaced with ttset_memfilemap_28.
+ * - At version 4.92, ttset_memfilemap was replaced with ttset_memfilemap_29.
* added tttset.TrimTrailingNLonPaste
*
* - At version 4.91, ttset_memfilemap was replaced with ttset_memfilemap_28.
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:30 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:30 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTZdICDjgq/jg6rjg4Pjg5fjg5zjg7w=?=
=?utf-8?b?44OJ44Gu5YaF5a6544Gr5pS56KGM44GM5ZCr44G+44KM44Gm44GE44KL44GL?=
=?utf-8?b?44Gu56K66KqN44KS44CBQ0JTdGFydFBhc3RlICgpICDjga4g5Lit44GL44KJ?=
=?utf-8?b?6KGM44GG44KI44GG44Gr44GX44Gf44CC?=
Message-ID: <1470042090.736980.63670.nullmailer@users.sourceforge.jp>
Revision: 6456
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6456
Author: doda
Date: 2016-08-01 18:01:30 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
クリップボードの内容に改行が含まれているかの確認を、CBStartPaste() の 中から行うようにした。
確認をクリップボードにアクセスするのではなく、CBStartPaste() でコピー した領域をチェックするようにした。
他のクリップボードの内容確認/加工を行う場合を考えた場合、この形式の方が 統一性が取れていいと思う。
変更によってダイアログの(変更)内容をクリップボードに書き戻さなくなったが、 この書き戻しの挙動は必要?
・クリップボードに余計な干渉はしないという観点からは書き戻さない方がよさそう。
・複数回繰り返して貼り付ける場合は、毎回ダイアログでの編集が必要となる。
この点に関しては書き戻した方が便利。
CBStartPaste() でのコピー先の領域を GlobalAlloc() で確保する必要はある?
以前はクリップボードのデータを直接読む場合も有ったので互換性のある確保の仕方が必要だったが、
現在は完全に切り離されたので、malloc() で確保したり、GlobalAlloc() を使うにしても、
GMEM_FIXED で固定メモリにする方が扱い易くないか?
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
trunk/teraterm/teraterm/clipboar.h
trunk/teraterm/teraterm/vtwin.cpp
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:28 UTC (rev 6455)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:30 UTC (rev 6456)
@@ -37,6 +37,8 @@
static HFONT DlgClipboardFont;
+static LRESULT CALLBACK OnClipboardDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp);
+
PCHAR CBOpen(LONG MemSize)
{
if (MemSize==0) {
@@ -154,6 +156,105 @@
return TRUE;
}
+// \x83t\x83@\x83C\x83\x8B\x82?\xE8\x8B`\x82\xB3\x82?\x95\xB6\x8E\x9A\x97?Atext\x82???\xEA\x82?\x82??\xE9\x81B
+BOOL search_dict(char *filename, char *text)
+{
+ BOOL ret = FALSE;
+ FILE *fp = NULL;
+ char buf[256];
+ int len;
+
+ if (filename == NULL || filename[0] == '\0')
+ return FALSE;
+
+ if ((fp = fopen(filename, "r")) == NULL)
+ return FALSE;
+
+ // TODO: \x88\xEA\x8Ds\x82\xAA256byte\x82?\xA6\x82Ă\xA2\x82\xE9\x8F?\x82?l\x97\xB6
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ len = strlen(buf);
+ if (len <= 1) {
+ continue;
+ }
+ if (buf[len - 1] == '\n') {
+ buf[len - 1] = '\0';
+ }
+ if (strstr(text, buf)) { // hit
+ ret = 1;
+ break;
+ }
+ }
+
+ fclose(fp);
+
+ return (ret);
+}
+
+/*
+ * \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\xE0\x97e\x82\xF0\x8Am\x94F\x82\xB5\x81A\x93\\x82\xE8\x95t\x82\xAF\x82\xF0\x8Ds\x82\xA4\x82\xA9\x8Am\x94F\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8Fo\x82\xB7\x81B
+ *
+ * \x95?\xE8\x92l:
+ * TRUE -> \x96\xE2\x91\xE8\x82?\xB5\x81A\x93\\x82\xE8\x95t\x82\xAF\x82\xF0\x8E\xC0\x8E{
+ * FALSE -> \x93\\x82\xE8\x95t\x82\xAF\x92\x86\x8E~
+ */
+BOOL CheckClipboardContent(BOOL AddCR, BOOL Bracketed)
+{
+ int pos;
+ int ret = IDOK;
+ BOOL confirm = FALSE;
+
+ if (!ts.ConfirmChangePaste) {
+ return TRUE;
+ }
+
+/*
+ * ConfirmChangePasteCR \x82?\x93\x93\xAE\x96\xE2\x91\xE8
+ * \x88?\xBA\x82?\xAE\x8D\xEC\x82Ŗ\xE2\x91\xE8\x82?\xA2\x82\xA9\x81B
+ *
+ * ChangePasteCR !ChangePasteCR
+ * AddCR !AddCR AddCR !AddCR
+ * \x89\xFC\x8Ds\x82\xA0\x82\xE8 o o x(2) o
+ * \x89\xFC\x8Ds\x96\xB3\x82\xB5 o(1) x x x
+ *
+ * ChangePasteCR \x82\xCD AddCR \x82?\x9E\x82?m\x94F\x82\xF0\x8Ds\x82\xA4\x82\xA9(1\x82Ŋm\x94F\x82\xB7\x82\xE9)\x82?\xA2\x82\xA4\x90??\x82\xAA\x81A
+ * !ChangePasteCR \x82?\x9E\x82\xF0\x8Dl\x82\xA6\x82\xE9\x82?AAddCR \x82?\x9E\x82?\xED\x82\xC9 CR \x82\xAA\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9\x82?\xC9
+ * \x8Am\x94F\x82\xF0\x8Ds\x82\xED\x82?\xA2\x8E\x96\x82\xA9\x82\xE7 2 \x82??\x82ł\xE0\x8Am\x94F\x82?s\x97p\x82?\xA2\x82\xA4\x88?v\x95\\x8E\xA6\x82?\xE0\x82?\xEA\x82\xE9\x81B
+ * 2 \x82?\xAE\x8D\xEC\x82??\xBF\x82?\x82\xA2\x82\xA2\x82\xA9?
+ */
+
+ if (AddCR) {
+ if (ts.ConfirmChangePasteCR) {
+ confirm = TRUE;
+ }
+ }
+ else {
+ pos = strcspn(CBMemPtr, "\r\n"); // \x89\xFC\x8Ds\x82\xAA\x8A??\xEA\x82Ă\xA2\x82\xBD\x82\xE7
+ if (CBMemPtr[pos] != '\0') {
+ confirm = TRUE;
+ }
+ }
+
+ // \x8E\xAB\x8F\x91\x82\xF0\x83T\x81[\x83`\x82\xB7\x82\xE9
+ if (!confirm && search_dict(ts.ConfirmChangePasteStringFile, CBMemPtr)) {
+ confirm = TRUE;
+ }
+
+ if (confirm) {
+ ret = DialogBox(hInst, MAKEINTRESOURCE(IDD_CLIPBOARD_DIALOG),
+ HVTWin, (DLGPROC)OnClipboardDlgProc);
+ /*
+ * \x88?O\x82?_\x83C\x83A\x83\x8D\x83O\x82?\xE0\x97e\x82\xF0\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\x91\x82\xAB\x96?\xB5\x82Ă\xA2\x82\xBD\x82\xAF\x82\xEA\x82?A\x95K\x97v?
+ */
+ }
+
+ if (ret == IDOK) {
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+}
+
#define BracketStartLen (sizeof(BracketStart)-1)
#define BracketEndLen (sizeof(BracketEnd)-1)
void CBStartPaste(HWND HWin, BOOL AddCR, BOOL Bracketed)
@@ -257,6 +358,11 @@
return;
}
+ if (!CheckClipboardContent(AddCR, Bracketed)) {
+ CBEndPaste();
+ return;
+ }
+
// AddCR / Bracket \x97p\x82??悪\x82\xA0\x82?\x82?m\x94F\x81A\x96\xB3\x82\xAF\x82\xEA\x82Β?\xC1\x8Am\x95\xDB
StrLen = strlen(CBMemPtr);
BuffLen = StrLen + 1; // strlen + NUL
@@ -633,15 +739,11 @@
return hMem;
}
-static char *ClipboardPtr = NULL;
-static int PasteCanceled = 0;
-
static LRESULT CALLBACK OnClipboardDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
{
LOGFONT logfont;
HFONT font;
char uimsg[MAX_UIMSG];
- //char *p;
POINT p;
RECT rc_dsk, rc_dlg;
int dlg_height, dlg_width;
@@ -653,14 +755,6 @@
switch (msg) {
case WM_INITDIALOG:
-#if 0
- for (p = ClipboardPtr; *p ; p++) {
- char buf[20];
- _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%02x ", *p);
- OutputDebugString(buf);
- }
-#endif
-
font = (HFONT)SendMessage(hDlgWnd, WM_GETFONT, 0, 0);
GetObject(font, sizeof(LOGFONT), &logfont);
if (get_lang_font("DLG_TAHOMA_FONT", hDlgWnd, &logfont, &DlgClipboardFont, ts.UILanguageFile)) {
@@ -682,7 +776,7 @@
get_lang_msg("BTN_OK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile);
SetDlgItemText(hDlgWnd, IDOK, ts.UIMsg);
- SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_SETTEXT, 0, (LPARAM)ClipboardPtr);
+ SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_SETTEXT, 0, (LPARAM)CBMemPtr);
DispConvScreenToWin(CursorX, CursorY, &p.x, &p.y);
ClientToScreen(HVTWin, &p);
@@ -760,21 +854,46 @@
switch (LOWORD(wp)) {
case IDOK:
{
- int len = SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_GETTEXTLENGTH, 0, 0);
+ unsigned len = SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_GETTEXTLENGTH, 0, 0);
HGLOBAL hMem;
- char *buf;
+ INT_PTR result = IDCANCEL;
- hMem = GlobalAlloc(GMEM_MOVEABLE, len + 1);
- if (hMem) {
- buf = GlobalLock(hMem);
- SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_GETTEXT, len + 1, (LPARAM)buf);
- GlobalUnlock(hMem);
+ if (CBMemHandle == NULL) {
+ CBMemHandle = GlobalAlloc(GHND, len+1);
+ }
+ else if (GlobalSize(CBMemHandle) <= len) {
+ if (CBMemPtr) {
+ GlobalUnlock(CBMemHandle);
+ CBMemPtr = NULL;
+ }
+ hMem = GlobalReAlloc(CBMemHandle, len+1, 0);
+ if (hMem) {
+ CBMemHandle = hMem;
+ CBMemPtr = GlobalLock(CBMemHandle);
+ }
+ else {
+ /*
+ * \x83\x81\x83\x82\x83\x8A\x82\xAA\x8Am\x95?ł\xAB\x82?\xA9\x82\xC1\x82\xBD\x8F?\x82??\xA4\x82\xB7\x82\xE9\x82?\xAB\x82\xA9\x81B
+ *
+ * \x83_\x83C\x83A\x83\x8D\x83O\x82?\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xAA\x8Ds\x82\xED\x82?\x8F?\x82\xF0\x8Dl\x82\xA6\x82\xE9\x82\xC6
+ * \x83L\x83\x83\x83\x93\x83Z\x83\x8B\x88\xB5\x82\xA2\x82?\xB7\x82\xE9\x95\x{30AA5B3}\x93?\x82\xAA\x81A\x91\xE5\x92\xEF\x82?\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xF0
+ * \x8Ds\x82\xED\x82?\xA2\x82?v\x82\xED\x82\xEA\x82\xE9\x82?ŁA\x82\xBB\x82??\x82?\x8C\x97?\xE6\x82?\xE0\x97e\x82\xF0
+ * \x93\\x82\xE8\x95t\x82\xAF\x82\xBD\x95\xFB\x82\xAA\x90e\x90?B
+ *
+ * \x8E\xE6\x82?\x82\xA6\x82\xB8\x82?\xC0\x91S\x91\xA4\x82?|\x82\xB5\x81A\x8B\x8C\x97?\xE6\x82\xF0\x8AJ\x95\xFA\x82\xB5\x82ē\\x82\xE8\x95t\x82\xAF\x82\xAA
+ * \x8Ds\x82\xED\x82\xEA\x82?\xA2\x82悤\x82?\xB7\x82\xE9\x81B
+ */
+ GlobalFree(CBMemHandle);
+ CBMemHandle = NULL;
+ }
+ }
- if (! CBSetClipboard(hDlgWnd, hMem)) {
- // \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82??Z\x83b\x83g\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x8E\x9E\x82\xCD hMem \x82\xF0\x94j\x8A\xFC\x82\xB7\x82\xE9
- // \x90\xAC\x8C\x{1C2D42}\xBD\x8F?\x82?N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xAA\x8F\x8A\x8E\x9D\x82\xB5\x82Ă\xA2\x82\xE9\x82?ŁA\x94j\x8A\xFC\x82\xB5\x82Ă?\xA2\x82\xAF\x82?\xA2
- GlobalFree(hMem);
+ if (CBMemHandle) {
+ if (CBMemPtr == NULL) {
+ CBMemPtr = GlobalLock(CBMemHandle);
}
+ SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_GETTEXT, GlobalSize(CBMemHandle), (LPARAM)CBMemPtr);
+ result = IDOK;
}
if (DlgClipboardFont != NULL) {
@@ -782,13 +901,11 @@
}
DestroyWindow(hStatus);
- EndDialog(hDlgWnd, IDOK);
+ EndDialog(hDlgWnd, result);
}
break;
case IDCANCEL:
- PasteCanceled = 1;
-
if (DlgClipboardFont != NULL) {
DeleteObject(DlgClipboardFont);
}
@@ -801,13 +918,6 @@
return FALSE;
}
-#if 0
- case WM_CLOSE:
- PasteCanceled = 1;
- EndDialog(hDlgWnd, 0);
- return TRUE;
-#endif
-
case WM_SIZE:
{
// \x8D?z\x92u
@@ -871,150 +981,3 @@
}
return TRUE;
}
-
-// \x83t\x83@\x83C\x83\x8B\x82?\xE8\x8B`\x82\xB3\x82?\x95\xB6\x8E\x9A\x97?Atext\x82???\xEA\x82?\x82??\xE9\x81B
-static int search_clipboard(char *filename, char *text)
-{
- int ret = 0; // no hit
- FILE *fp = NULL;
- char buf[256];
- int len;
-
- if (filename == NULL || filename[0] == '\0')
- goto error;
-
- fp = fopen(filename, "r");
- if (fp == NULL)
- goto error;
-
- // TODO: \x88\xEA\x8Ds\x82\xAA256byte\x82?\xA6\x82Ă\xA2\x82\xE9\x8F?\x82?l\x97\xB6
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- len = strlen(buf);
- if (buf[len - 1] == '\n')
- buf[len - 1] = '\0';
- if (buf[0] == '\0')
- continue;
- if (strstr(text, buf)) { // hit
- ret = 1;
- break;
- }
- }
-
-error:
- if (fp)
- fclose(fp);
-
- return (ret);
-}
-
-
-//
-// \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\xFC\x8Ds\x83R\x81[\x83h\x82\xAA\x8A??\xEA\x82Ă\xA2\x82\xBD\x82\xE7\x81A\x8Am\x94F\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
-// \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?ύX\x82\xE0\x89?\\x81B
-//
-// return 0: Cancel
-// 1: Paste OK
-//
-// (2008.2.3 yutaka)
-//
-int CBStartPasteConfirmChange(HWND HWin, BOOL AddCR)
-{
- UINT Cf;
- HANDLE hText;
- char *pText;
- int pos;
- int ret = 0;
- BOOL confirm = FALSE;
- HANDLE wide_hText;
- LPWSTR wide_buf;
- int mb_len;
-
- if (!ts.ConfirmChangePaste)
- return 1;
-
- if (! cv.Ready)
- goto error;
- if (TalkStatus!=IdTalkKeyb)
- goto error;
-
- if (IsClipboardFormatAvailable(CF_UNICODETEXT))
- Cf = CF_UNICODETEXT;
- else if (IsClipboardFormatAvailable(CF_TEXT))
- Cf = CF_TEXT;
- else if (IsClipboardFormatAvailable(CF_OEMTEXT))
- Cf = CF_OEMTEXT;
- else
- goto error;
-
- if (!OpenClipboard(HWin))
- goto error;
-
- if (Cf == CF_UNICODETEXT) {
- wide_hText = GetClipboardData(CF_UNICODETEXT);
- if (wide_hText != NULL) {
- wide_buf = GlobalLock(wide_hText);
- mb_len = WideCharToMultiByte(CP_ACP, 0, wide_buf, -1, NULL, 0, NULL, NULL);
- ClipboardPtr = (char *)calloc(sizeof(char), mb_len);
- WideCharToMultiByte(CP_ACP, 0, wide_buf, -1, ClipboardPtr, mb_len, NULL, NULL);
- GlobalUnlock(wide_hText);
- }
- else {
- CloseClipboard();
- goto error;
- }
- }
- else {
- hText = GetClipboardData(Cf);
- if (hText != NULL) {
- pText = (char *)GlobalLock(hText);
- ClipboardPtr = (char *)calloc(sizeof(char), strlen(pText)+1);
- memcpy(ClipboardPtr, pText, strlen(pText));
- GlobalUnlock(hText);
- }
- else {
- CloseClipboard();
- goto error;
- }
- }
- CloseClipboard();
-
- if (AddCR) {
- if (ts.ConfirmChangePasteCR) {
- confirm = TRUE;
- }
- }
- else {
- pos = strcspn(ClipboardPtr, "\r\n"); // \x89\xFC\x8Ds\x82\xAA\x8A??\xEA\x82Ă\xA2\x82\xBD\x82\xE7
- if (ClipboardPtr[pos] != '\0' || AddCR) {
- confirm = TRUE;
- }
- }
-
- // \x8E\xAB\x8F\x91\x82\xF0\x83T\x81[\x83`\x82\xB7\x82\xE9
- if (!confirm && search_clipboard(ts.ConfirmChangePasteStringFile, ClipboardPtr)) {
- confirm = TRUE;
- }
-
- if (confirm) {
- PasteCanceled = 0;
- ret = DialogBox(hInst, MAKEINTRESOURCE(IDD_CLIPBOARD_DIALOG),
- HVTWin, (DLGPROC)OnClipboardDlgProc);
- if (ret == 0 || ret == -1) {
- ret = GetLastError();
- }
-
- if (PasteCanceled) {
- ret = 0;
- goto error;
- }
- }
-
- ret = 1;
-
-error:
- if (ClipboardPtr != NULL) {
- free(ClipboardPtr);
- ClipboardPtr = NULL;
- }
- return (ret);
-}
Modified: trunk/teraterm/teraterm/clipboar.h
===================================================================
--- trunk/teraterm/teraterm/clipboar.h 2016-08-01 09:01:28 UTC (rev 6455)
+++ trunk/teraterm/teraterm/clipboar.h 2016-08-01 09:01:30 UTC (rev 6456)
@@ -17,7 +17,6 @@
void CBSend();
void CBEcho();
void CBEndPaste();
-int CBStartPasteConfirmChange(HWND HWin, BOOL AddCR);
#ifdef __cplusplus
}
Modified: trunk/teraterm/teraterm/vtwin.cpp
===================================================================
--- trunk/teraterm/teraterm/vtwin.cpp 2016-08-01 09:01:28 UTC (rev 6455)
+++ trunk/teraterm/teraterm/vtwin.cpp 2016-08-01 09:01:30 UTC (rev 6456)
@@ -941,12 +941,10 @@
}
if (Paste) {
- if (CBStartPasteConfirmChange(HVTWin, FALSE)) {
- CBStartPaste(HVTWin, FALSE, BracketedPasteMode());
- // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
- if (WinOrgY != 0) {
- DispVScroll(SCROLL_BOTTOM, 0);
- }
+ CBStartPaste(HVTWin, FALSE, BracketedPasteMode());
+ // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
+ if (WinOrgY != 0) {
+ DispVScroll(SCROLL_BOTTOM, 0);
}
}
}
@@ -4439,24 +4437,20 @@
void CVTWindow::OnEditPaste()
{
// add confirm (2008.2.4 yutaka)
- if (CBStartPasteConfirmChange(HVTWin, FALSE)) {
- CBStartPaste(HVTWin, FALSE, BracketedPasteMode());
- // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
- if (WinOrgY != 0) {
- DispVScroll(SCROLL_BOTTOM, 0);
- }
+ CBStartPaste(HVTWin, FALSE, BracketedPasteMode());
+ // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
+ if (WinOrgY != 0) {
+ DispVScroll(SCROLL_BOTTOM, 0);
}
}
void CVTWindow::OnEditPasteCR()
{
// add confirm (2008.3.11 maya)
- if (CBStartPasteConfirmChange(HVTWin, TRUE)) {
- CBStartPaste(HVTWin, TRUE, BracketedPasteMode());
- // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
- if (WinOrgY != 0) {
- DispVScroll(SCROLL_BOTTOM, 0);
- }
+ CBStartPaste(HVTWin, TRUE, BracketedPasteMode());
+ // \x83X\x83N\x83\x8D\x81[\x83\x8B\x88?u\x82\xF0\x83\x8A\x83Z\x83b\x83g
+ if (WinOrgY != 0) {
+ DispVScroll(SCROLL_BOTTOM, 0);
}
}
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:33 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:33 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTddICDjg7tTY3BTZW5kRGlyIOOBrg==?=
=?utf-8?b?44OH44OV44Kp44Or44OI5YCk44KSICIiICgg56m65paH5a2X5YiXICkgIA==?=
=?utf-8?b?44Gr5aSJ5pu0?=
Message-ID: <1470042093.801807.63710.nullmailer@users.sourceforge.jp>
Revision: 6457
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6457
Author: doda
Date: 2016-08-01 18:01:33 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
・ScpSendDir のデフォルト値を "" (空文字列) に変更
・ScpsendDir の値が "" の時はサーバ側に渡すパスとして . を使うように変更
Modified Paths:
--------------
trunk/installer/release/TERATERM.INI
trunk/teraterm/ttpset/ttset.c
trunk/ttssh2/ttxssh/ssh.c
-------------- next part --------------
Modified: trunk/installer/release/TERATERM.INI
===================================================================
--- trunk/installer/release/TERATERM.INI 2016-08-01 09:01:30 UTC (rev 6456)
+++ trunk/installer/release/TERATERM.INI 2016-08-01 09:01:33 UTC (rev 6457)
@@ -385,7 +385,7 @@
FileSendFilter=
; SCP sending directory
-ScpSendDir=~/
+ScpSendDir=
; Save Broadcast Command History
BroadcastCommandHistory=on
Modified: trunk/teraterm/ttpset/ttset.c
===================================================================
--- trunk/teraterm/ttpset/ttset.c 2016-08-01 09:01:30 UTC (rev 6456)
+++ trunk/teraterm/ttpset/ttset.c 2016-08-01 09:01:33 UTC (rev 6457)
@@ -1121,7 +1121,7 @@
FName);
/* SCP\x91\x97\x90M\x90\xE6\x83p\x83X (2012.4.6 yutaka) */
- GetPrivateProfileString(Section, "ScpSendDir", "~/",
+ GetPrivateProfileString(Section, "ScpSendDir", "",
ts->ScpSendDir, sizeof(ts->ScpSendDir), FName);
Modified: trunk/ttssh2/ttxssh/ssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ssh.c 2016-08-01 09:01:30 UTC (rev 6456)
+++ trunk/ttssh2/ttxssh/ssh.c 2016-08-01 09:01:33 UTC (rev 6457)
@@ -3887,7 +3887,7 @@
strncpy_s(c->scp.localfilefull, sizeof(c->scp.localfilefull), sendfile, _TRUNCATE); // full path
ExtractFileName(sendfile, c->scp.localfile, sizeof(c->scp.localfile)); // file name only
if (dstfile == NULL || dstfile[0] == '\0') { // remote file path
- strncpy_s(c->scp.remotefile, sizeof(c->scp.remotefile), "~/", _TRUNCATE); // full path
+ strncpy_s(c->scp.remotefile, sizeof(c->scp.remotefile), ".", _TRUNCATE); // full path
} else {
strncpy_s(c->scp.remotefile, sizeof(c->scp.remotefile), dstfile, _TRUNCATE); // full path
}
From svnnotify @ sourceforge.jp Mon Aug 1 18:01:28 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 18:01:28 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTVdICDooYzmnKvjga7mlLnooYzliYo=?=
=?utf-8?b?6Zmk44KSIENCU3RhcnRQYXN0ZSAoKSAg44Gr56e75YuV?=
Message-ID: <1470042088.309210.63627.nullmailer@users.sourceforge.jp>
Revision: 6455
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6455
Author: doda
Date: 2016-08-01 18:01:28 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
行末の改行削除を CBStartPaste() に移動
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:24 UTC (rev 6454)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-01 09:01:28 UTC (rev 6455)
@@ -139,6 +139,21 @@
}
}
+// \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x83o\x83b\x83t\x83@\x82?\x96\x94\xF6\x82?\xA0\x82\xE9 CR / LF \x82\xF0\x82\xB7\x82?č?\x82\xB7\x82\xE9
+BOOL TrimTrailingNL(BOOL AddCR, BOOL Bracketed) {
+ PCHAR tail;
+ if (ts.TrimTrailingNLonPaste) {
+ for (tail = CBMemPtr+strlen(CBMemPtr)-1; tail >= CBMemPtr; tail--) {
+ if (*tail != '\r' && *tail != '\n') {
+ break;
+ }
+ *tail = '\0';
+ }
+ }
+
+ return TRUE;
+}
+
#define BracketStartLen (sizeof(BracketStart)-1)
#define BracketEndLen (sizeof(BracketEnd)-1)
void CBStartPaste(HWND HWin, BOOL AddCR, BOOL Bracketed)
@@ -237,6 +252,11 @@
// \x93\\x82\xE8\x95t\x82\xAF\x91O\x82?N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\xE0\x97e\x82\xF0\x8Am\x94F/\x89\xC1\x8DH\x93\x99\x82\xB7\x82\xE9\x8F?\x82?\xB1\x82\xB1\x82ōs\x82\xA4
+ if (!TrimTrailingNL(AddCR, Bracketed)) {
+ CBEndPaste();
+ return;
+ }
+
// AddCR / Bracket \x97p\x82??悪\x82\xA0\x82?\x82?m\x94F\x81A\x96\xB3\x82\xAF\x82\xEA\x82Β?\xC1\x8Am\x95\xDB
StrLen = strlen(CBMemPtr);
BuffLen = StrLen + 1; // strlen + NUL
@@ -901,15 +921,15 @@
{
UINT Cf;
HANDLE hText;
- char *pText, *tail;
+ char *pText;
int pos;
int ret = 0;
- BOOL confirm = FALSE, need_writeback = FALSE;
+ BOOL confirm = FALSE;
HANDLE wide_hText;
LPWSTR wide_buf;
int mb_len;
- if (!ts.ConfirmChangePaste && !ts.TrimTrailingNLonPaste)
+ if (!ts.ConfirmChangePaste)
return 1;
if (! cv.Ready)
@@ -958,18 +978,6 @@
}
CloseClipboard();
- if (ts.TrimTrailingNLonPaste) {
- for (tail=ClipboardPtr+strlen(ClipboardPtr)-1; tail >= ClipboardPtr; tail--) {
- if (*tail == '\r' || *tail == '\n') {
- *tail = '\0';
- need_writeback = TRUE;
- }
- else {
- break;
- }
- }
- }
-
if (AddCR) {
if (ts.ConfirmChangePasteCR) {
confirm = TRUE;
@@ -1000,17 +1008,6 @@
goto error;
}
}
- else if (need_writeback) {
- HGLOBAL hMem;
- hMem = CBAllocClipboardMem(ClipboardPtr);
- if (hMem) {
- if (! CBSetClipboard(NULL, hMem)) {
- // \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82??Z\x83b\x83g\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x8E\x9E\x82\xCD hMem \x82\xF0\x94j\x8A\xFC\x82\xB7\x82\xE9
- // \x90\xAC\x8C\x{1C2D42}\xBD\x8F?\x82?N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xAA\x8F\x8A\x8E\x9D\x82\xB5\x82Ă\xA2\x82\xE9\x82?ŁA\x94j\x8A\xFC\x82\xB5\x82Ă?\xA2\x82\xAF\x82?\xA2
- GlobalFree(hMem);
- }
- }
- }
ret = 1;
From svnnotify @ sourceforge.jp Mon Aug 1 21:59:15 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Mon, 01 Aug 2016 21:59:15 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NThdICDoi7HoqLPjgII=?=
Message-ID: <1470056355.673913.98899.nullmailer@users.sourceforge.jp>
Revision: 6458
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6458
Author: yutakapon
Date: 2016-08-01 21:59:15 +0900 (Mon, 01 Aug 2016)
Log Message:
-----------
英訳。
Modified Paths:
--------------
trunk/doc/en/html/about/history.html
-------------- next part --------------
Modified: trunk/doc/en/html/about/history.html
===================================================================
--- trunk/doc/en/html/about/history.html 2016-08-01 09:01:33 UTC (rev 6457)
+++ trunk/doc/en/html/about/history.html 2016-08-01 12:59:15 UTC (rev 6458)
@@ -2774,7 +2774,7 @@
- Changes
-
+ - When the filename includes invalid character by SCP receiving, the character is be replaced to '_'.
From svnnotify @ sourceforge.jp Wed Aug 3 02:33:43 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Wed, 03 Aug 2016 02:33:43 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NTldICDjg7tUZWsgV2luZG93IOOBpw==?=
=?utf-8?b?44Gu6LK844KK5LuY44GR5pmC44CB56K66KqN44OA44Kk44Ki44Ot44Kw44GM?=
=?utf-8?b?5Ye644Gf5pmC44GrIFZUIFdpbmRvdyDjgavjg5Xjgqnjg7zjgqvjgrnjgYw=?=
=?utf-8?b?56e744KL44Gu44KS5L+u5q2j?=
Message-ID: <1470159223.616121.72998.nullmailer@users.sourceforge.jp>
Revision: 6459
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6459
Author: doda
Date: 2016-08-03 02:33:43 +0900 (Wed, 03 Aug 2016)
Log Message:
-----------
・Tek Window での貼り付け時、確認ダイアログが出た時に VT Window にフォーカスが移るのを修正
・Tek Window での Alt-V / Alt-R による貼り付け時、Bracketed Paste Mode が適用されないようにした
Tek Window での貼り付けで確認ダイアログが出ない問題自体は r6456 で修正。
Revision Links:
--------------
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6456
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
trunk/teraterm/teraterm/vtwin.cpp
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-01 12:59:15 UTC (rev 6458)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-02 17:33:43 UTC (rev 6459)
@@ -197,7 +197,7 @@
* TRUE -> \x96\xE2\x91\xE8\x82?\xB5\x81A\x93\\x82\xE8\x95t\x82\xAF\x82\xF0\x8E\xC0\x8E{
* FALSE -> \x93\\x82\xE8\x95t\x82\xAF\x92\x86\x8E~
*/
-BOOL CheckClipboardContent(BOOL AddCR, BOOL Bracketed)
+BOOL CheckClipboardContent(HWND HWin, BOOL AddCR, BOOL Bracketed)
{
int pos;
int ret = IDOK;
@@ -241,7 +241,7 @@
if (confirm) {
ret = DialogBox(hInst, MAKEINTRESOURCE(IDD_CLIPBOARD_DIALOG),
- HVTWin, (DLGPROC)OnClipboardDlgProc);
+ HWin, (DLGPROC)OnClipboardDlgProc);
/*
* \x88?O\x82?_\x83C\x83A\x83\x8D\x83O\x82?\xE0\x97e\x82\xF0\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82?\x91\x82\xAB\x96?\xB5\x82Ă\xA2\x82\xBD\x82\xAF\x82\xEA\x82?A\x95K\x97v?
*/
@@ -358,7 +358,7 @@
return;
}
- if (!CheckClipboardContent(AddCR, Bracketed)) {
+ if (!CheckClipboardContent(HWin, AddCR, Bracketed)) {
CBEndPaste();
return;
}
@@ -778,9 +778,24 @@
SendMessage(GetDlgItem(hDlgWnd, IDC_EDIT), WM_SETTEXT, 0, (LPARAM)CBMemPtr);
- DispConvScreenToWin(CursorX, CursorY, &p.x, &p.y);
- ClientToScreen(HVTWin, &p);
+ if (ActiveWin == IdVT) { // VT Window
+ /*
+ * Caret off \x8E\x9E\x82\xC9 GetCaretPos() \x82Ő\xB3\x8Am\x82??\x82\xAA\x8E\xE6\x82\xEA\x82?\xA2\x82?ŁA
+ * vtdisp.c \x93\xE0\x95\x94\x82ŊǗ\x9D\x82\xB5\x82Ă\xA2\x82\xE9\x92l\x82\xA9\x82\xE7\x8Cv\x8EZ\x82\xB7\x82\xE9
+ */
+ DispConvScreenToWin(CursorX, CursorY, &p.x, &p.y);
+ }
+ else if (!GetCaretPos(&p)) { // Tek Window
+ /*
+ * Tek Window \x82?\xE0\x95\x94\x8AǗ\x9D\x82?l\x82\xF0\x8E\xE6\x82\xE9\x82?\xAA\x96?|\x82??\xC5 GetCaretPos() \x82\xF0\x8Eg\x82\xA4
+ * GetCaretPos() \x82\xAA\x83G\x83\x89\x81[\x82??\xC1\x82\xBD\x8F?\x82?O\x82?\xBD\x82\xDF 0, 0 \x82\xF0\x93\xFC\x82\xEA\x82Ă\xA8\x82\xAD
+ */
+ p.x = 0;
+ p.y = 0;
+ }
+ ClientToScreen(GetParent(hDlgWnd), &p);
+
// \x83L\x83\x83\x83\x8C\x83b\x83g\x82\xAA\x89\xE6\x96?\xA9\x82\xE7\x82??o\x82\xB5\x82Ă\xA2\x82\xE9\x82?\xAB\x82?\\x82\xE8\x95t\x82\xAF\x82\xF0\x82\xB7\x82\xE9\x82\xC6
// \x8Am\x94F\x83E\x83C\x83\x93\x83h\x83E\x82\xAA\x8C\xA9\x82\xA6\x82\xE9\x82?\xB1\x82\xEB\x82?\\x8E\xA6\x82\xB3\x82\xEA\x82?\xA2\x82\xB1\x82?\xAA\x82\xA0\x82\xE9\x81B
// \x83E\x83C\x83\x93\x83h\x83E\x82\xA9\x82\xE7\x82??o\x82\xB5\x82\xBD\x8F?\x82?\xB2\x90?\xB7\x82\xE9 (2008.4.24 maya)
Modified: trunk/teraterm/teraterm/vtwin.cpp
===================================================================
--- trunk/teraterm/teraterm/vtwin.cpp 2016-08-01 12:59:15 UTC (rev 6458)
+++ trunk/teraterm/teraterm/vtwin.cpp 2016-08-02 17:33:43 UTC (rev 6459)
@@ -1761,15 +1761,9 @@
if (!ts.DisableAcceleratorSendBreak)
OnControlSendBreak();
return TRUE;
- case ID_ACC_PASTECR:
- OnEditPasteCR();
- return TRUE;
case ID_ACC_AREYOUTHERE:
OnControlAreYouThere();
return TRUE;
- case ID_ACC_PASTE:
- OnEditPaste();
- return TRUE;
}
if (ActiveWin==IdVT) {
switch (wID) {
@@ -1792,6 +1786,12 @@
case ID_ACC_COPY:
OnEditCopy();
return TRUE;
+ case ID_ACC_PASTECR:
+ OnEditPasteCR();
+ return TRUE;
+ case ID_ACC_PASTE:
+ OnEditPaste();
+ return TRUE;
case ID_ACC_PRINT:
OnFilePrint();
return TRUE;
@@ -1805,6 +1805,12 @@
case ID_ACC_COPY:
::PostMessage(HTEKWin,WM_COMMAND,ID_TEKEDIT_COPY,0);
return TRUE;
+ case ID_ACC_PASTECR:
+ ::PostMessage(HTEKWin,WM_COMMAND,ID_TEKEDIT_PASTECR,0);
+ return TRUE;
+ case ID_ACC_PASTE:
+ ::PostMessage(HTEKWin,WM_COMMAND,ID_TEKEDIT_PASTE,0);
+ return TRUE;
case ID_ACC_PRINT:
::PostMessage(HTEKWin,WM_COMMAND,ID_TEKFILE_PRINT,0);
return TRUE;
From svnnotify @ sourceforge.jp Wed Aug 3 02:33:46 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Wed, 03 Aug 2016 02:33:46 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NjBdICDjgqvjg7zjgr3jg6vjgYzlt6Y=?=
=?utf-8?b?5LiK6ZqF44Gr5pyJ44KL5pmC44Gr56K66KqN44OA44Kk44Ki44Ot44Kw44GM?=
=?utf-8?b?55S76Z2i5Lit5aSu44G45Ye644KL5LqL44G444Gu5pqr5a6a5a++562W44CC?=
Message-ID: <1470159226.532325.73066.nullmailer@users.sourceforge.jp>
Revision: 6460
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6460
Author: doda
Date: 2016-08-03 02:33:46 +0900 (Wed, 03 Aug 2016)
Log Message:
-----------
カーソルが左上隅に有る時に確認ダイアログが画面中央へ出る事への暫定対策。
1 ドット右にずれていても気付く人はまずいないと思う。
[Ttssh2-devel 936], [Ttssh2-devel 2528]
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-02 17:33:43 UTC (rev 6459)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-02 17:33:46 UTC (rev 6460)
@@ -794,6 +794,12 @@
p.y = 0;
}
+ // x, y \x82?\xBC\x95\xFB\x82\xAA 0 \x82?\x9E\x82?e\x83E\x83B\x83\x93\x83h\x83E\x82?\x86\x89\x9B\x82??\xAE\x82\xB3\x82\xB9\x82\xE7\x82\xEA\x82\xE9\x82?ŁA
+ // \x82\xBB\x82\xEA\x82\xF0\x96h\x82\xAE\x88?\xC9 x \x82\xF0 1 \x82?\xB7\x82\xE9
+ if (p.x == 0 && p.y == 0) {
+ p.x = 1;
+ }
+
ClientToScreen(GetParent(hDlgWnd), &p);
// \x83L\x83\x83\x83\x8C\x83b\x83g\x82\xAA\x89\xE6\x96?\xA9\x82\xE7\x82??o\x82\xB5\x82Ă\xA2\x82\xE9\x82?\xAB\x82?\\x82\xE8\x95t\x82\xAF\x82\xF0\x82\xB7\x82\xE9\x82\xC6
From svnnotify @ sourceforge.jp Wed Aug 3 02:33:49 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Wed, 03 Aug 2016 02:33:49 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NjFdIEdsb2JhbExvY2soKSAg44Gn6L+U?=
=?utf-8?b?44GV44KM44Gf44Od44Kk44Oz44K/44Gr5a++44GX44GmIEdsb2JhbFVubG9j?=
=?utf-8?b?ayAoKSAg44KS6KGM44Gj44Gm44GE44Gf44Gu44KS5L+u5q2j44CC?=
Message-ID: <1470159229.160976.73158.nullmailer@users.sourceforge.jp>
Revision: 6461
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6461
Author: doda
Date: 2016-08-03 02:33:48 +0900 (Wed, 03 Aug 2016)
Log Message:
-----------
GlobalLock() で返されたポインタに対して GlobalUnlock() を行っていたのを修正。
Modified Paths:
--------------
trunk/teraterm/teraterm/clipboar.c
-------------- next part --------------
Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c 2016-08-02 17:33:46 UTC (rev 6460)
+++ trunk/teraterm/teraterm/clipboar.c 2016-08-02 17:33:48 UTC (rev 6461)
@@ -467,7 +467,7 @@
// WideCharToMultiByte \x82œ\xBE\x82\xE7\x82\xEA\x82\xE9\x82??\x96\x94\xF6\x82\xCC \0 \x8D\x9E\x82??\xB7\x82\xB3
// \0 \x82\xF0\x83G\x83\x93\x83R\x81[\x83h\x91Ώ?????\xA2\x88?\xC9 1 \x8C\xB8\x82炷
len--;
- GlobalUnlock(tmpPtrWide);
+ GlobalUnlock(tmpHandle);
}
}
else {
@@ -501,7 +501,7 @@
free(tmpPtr);
}
else {
- GlobalUnlock(tmpPtr);
+ GlobalUnlock(tmpHandle);
}
}
CloseClipboard();
From svnnotify @ sourceforge.jp Wed Aug 10 18:44:46 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Wed, 10 Aug 2016 18:44:46 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NjJdICDjg5fjg63jgq3jgrfjgpLnhKE=?=
=?utf-8?b?5Yq55YyW44GZ44KL44Gu44GMIC1wcm94eSA9bm9uZTovLyAg44Go44GE44GG?=
=?utf-8?b?44Gu44GM5Yik44KK6L6b44GE44Gu44Gn44CB?=
Message-ID: <1470822286.243768.66903.nullmailer@users.sourceforge.jp>
Revision: 6462
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6462
Author: doda
Date: 2016-08-10 18:44:45 +0900 (Wed, 10 Aug 2016)
Log Message:
-----------
プロキシを無効化するのが -proxy=none:// というのが判り辛いので、
同様の効果を持つ -noproxy オプションを追加する。
Modified Paths:
--------------
trunk/TTProxy/TTProxy.h
trunk/doc/en/html/about/history.html
trunk/doc/en/html/commandline/ttproxy.html
trunk/doc/ja/html/about/history.html
trunk/doc/ja/html/commandline/ttproxy.html
-------------- next part --------------
Modified: trunk/TTProxy/TTProxy.h
===================================================================
--- trunk/TTProxy/TTProxy.h 2016-08-02 17:33:48 UTC (rev 6461)
+++ trunk/TTProxy/TTProxy.h 2016-08-10 09:44:45 UTC (rev 6462)
@@ -147,6 +147,11 @@
option[6] = '=';
}
}
+ else if (_stricmp(option+1, "noproxy") == 0) {
+ // -noproxy \x82\xCD -proxy=none:// \x82??\xBC
+ ProxyWSockHook::parseURL("none://", TRUE);
+ action = OPTION_CLEAR;
+ }
}else{
String realhost = ProxyWSockHook::parseURL(option, FALSE);
if (realhost != NULL) {
Modified: trunk/doc/en/html/about/history.html
===================================================================
--- trunk/doc/en/html/about/history.html 2016-08-02 17:33:48 UTC (rev 6461)
+++ trunk/doc/en/html/about/history.html 2016-08-10 09:44:45 UTC (rev 6462)
@@ -4149,6 +4149,7 @@
+
- The priority(order) of loading TTX plugin is changed from 0 to 10.
Modified: trunk/doc/en/html/commandline/ttproxy.html
===================================================================
--- trunk/doc/en/html/commandline/ttproxy.html 2016-08-02 17:33:48 UTC (rev 6461)
+++ trunk/doc/en/html/commandline/ttproxy.html 2016-08-10 09:44:45 UTC (rev 6462)
@@ -19,6 +19,7 @@
-proxy=protocol://<user<:password>@>proxyserver:proxyport
protocol://<user<:password>@>proxyserver:proxyport/realhost
+-noproxy
@@ -51,6 +52,9 @@
- password
- Password for proxy authentication
+
+ - -noproxy
+ - Disable proxy setting. Same as "-proxy=none://"
Example
@@ -58,6 +62,7 @@
ttermpro.exe -proxy=socks5://user:pass @ proxy:1080 sshserver /ssh
ttermpro.exe -proxy=telnet://proxy:8023 telnetserver:23 /nossh
ttermpro.exe -proxy=none:// sshserver /ssh
+ttermpro.exe -noproxy sshserver /ssh
Note
Modified: trunk/doc/ja/html/about/history.html
===================================================================
--- trunk/doc/ja/html/about/history.html 2016-08-02 17:33:48 UTC (rev 6461)
+++ trunk/doc/ja/html/about/history.html 2016-08-10 09:44:45 UTC (rev 6462)
@@ -4153,6 +4153,7 @@
+ - \x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93\x83I\x83v\x83V\x83\x87\x83\x93\x82\xC9 -noproxy \x82\xF0\x92?\xC1\x82\xB5\x82\xBD\x81B-proxy=none:// \x82?\xAF\x97l\x82?f\x83t\x83H\x83\x8B\x83g\x82?v\x83\x8D\x83L\x83V\x90?\xE8\x82?\x{27B0B7}\x82\xE9\x81B
- TTX \x83\x8D\x81[\x83h\x8E\x9E\x82?D\x90?\x88\xCA (order) \x82\xF0 0 \x82\xA9\x82\xE7 10 \x82?ύX\x82\xB5\x82\xBD\x81B
Modified: trunk/doc/ja/html/commandline/ttproxy.html
===================================================================
--- trunk/doc/ja/html/commandline/ttproxy.html 2016-08-02 17:33:48 UTC (rev 6461)
+++ trunk/doc/ja/html/commandline/ttproxy.html 2016-08-10 09:44:45 UTC (rev 6462)
@@ -19,6 +19,7 @@
-proxy=protocol://<user<:password>@>proxyserver:proxyport
protocol://<user<:password>@>proxyserver:proxyport/realhost
+-noproxy
@@ -51,6 +52,9 @@
- password
- \x83v\x83\x8D\x83L\x83V\x82ŔF\x8F?\xAA\x95K\x97v\x82??\x82?p\x83X\x83\x8F\x81[\x83h
+
+ - -noproxy
+ - \x83v\x83\x8D\x83L\x83V\x90?\xE8\x82?\x{27B0B7}\x82\xE9\x81B-proxy=none:// \x82?\xAF\x82\xB6\x81B
\x8Eg\x97p\x97\xE1
@@ -58,6 +62,7 @@
ttermpro.exe -proxy=socks5://user:pass @ proxy:1080 sshserver /ssh
ttermpro.exe -proxy=telnet://proxy:8023 telnetserver:23 /nossh
ttermpro.exe -proxy=none:// sshserver /ssh
+ttermpro.exe -noproxy sshserver /ssh
\x92\x8D\x88\xD3
From svnnotify @ sourceforge.jp Wed Aug 10 18:44:53 2016
From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp)
Date: Wed, 10 Aug 2016 18:44:53 +0900
Subject: [Ttssh2-commit] =?utf-8?b?WzY0NjRdICBwYXJhbXMg6Zai6YCj44Gu44OJ?=
=?utf-8?b?44Kt44Ol44Oh44Oz44OI5L+u5q2j?=
Message-ID: <1470822293.559773.67185.nullmailer@users.sourceforge.jp>
Revision: 6464
http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6464
Author: doda
Date: 2016-08-10 18:44:53 +0900 (Wed, 10 Aug 2016)
Log Message:
-----------
params 関連のドキュメント修正
Modified Paths:
--------------
trunk/doc/en/html/about/history.html
trunk/doc/en/html/macro/commandline.html
trunk/doc/en/html/macro/syntax/identifiers.html
trunk/doc/en/html/macro/syntax/variables.html
trunk/doc/ja/html/about/history.html
trunk/doc/ja/html/macro/commandline.html
trunk/doc/ja/html/macro/syntax/identifiers.html
trunk/doc/ja/html/macro/syntax/variables.html
-------------- next part --------------
Modified: trunk/doc/en/html/about/history.html
===================================================================
--- trunk/doc/en/html/about/history.html 2016-08-10 09:44:50 UTC (rev 6463)
+++ trunk/doc/en/html/about/history.html 2016-08-10 09:44:53 UTC (rev 6464)
@@ -46,6 +46,7 @@
- Strictly checked the syntax of command line option. When an unnecessary option is added at option back like as /Vxx, the option is not recognized.
- The option placement can be only specified before a filename. When the option is specified after the filename, the option is recognized as macro parameter.
+