[Ttssh2-commit] [8694] CBSetTextW() を teraterm/common へ移動

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2020年 4月 12日 (日) 00:54:46 JST


Revision: 8694
          https://osdn.net/projects/ttssh2/scm/svn/commits/8694
Author:   zmatsuo
Date:     2020-04-12 00:54:46 +0900 (Sun, 12 Apr 2020)
Log Message:
-----------
CBSetTextW() を teraterm/common へ移動

- clipboar.c から ttlib_static_cpp.cpp へ

Modified Paths:
--------------
    trunk/teraterm/common/ttlib.h
    trunk/teraterm/common/ttlib_static_cpp.cpp
    trunk/teraterm/teraterm/clipboar.c
    trunk/teraterm/teraterm/clipboar.h

-------------- next part --------------
Modified: trunk/teraterm/common/ttlib.h
===================================================================
--- trunk/teraterm/common/ttlib.h	2020-04-11 15:54:37 UTC (rev 8693)
+++ trunk/teraterm/common/ttlib.h	2020-04-11 15:54:46 UTC (rev 8694)
@@ -162,6 +162,7 @@
 wchar_t *TTGetLangStrW(const char *section, const char *key, const wchar_t *def, const char *UILanguageFile);
 wchar_t *GetClipboardTextW(HWND hWnd, BOOL empty);
 char *GetClipboardTextA(HWND hWnd, BOOL empty);
+BOOL CBSetTextW(HWND hWnd, const wchar_t *str_w, size_t str_len);
 
 #ifdef __cplusplus
 }

Modified: trunk/teraterm/common/ttlib_static_cpp.cpp
===================================================================
--- trunk/teraterm/common/ttlib_static_cpp.cpp	2020-04-11 15:54:37 UTC (rev 8693)
+++ trunk/teraterm/common/ttlib_static_cpp.cpp	2020-04-11 15:54:46 UTC (rev 8694)
@@ -209,9 +209,64 @@
 	return pool;
 }
 
+/**
+ *	\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82Ƀe\x83L\x83X\x83g\x82\xF0\x83Z\x83b\x83g\x82\xB7\x82\xE9
+ *	str_w	\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82ɃZ\x83b\x83g\x82\xB7\x82镶\x8E\x9A\x97\xF1\x82ւ̃|\x83C\x83\x93\x83^
+ *			NULL\x82̂Ƃ\xAB\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xF0\x8B\xF3\x82ɂ\xB7\x82\xE9(str_len\x82͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2)
+ *	str_len	\x95\xB6\x8E\x9A\x97\xF1\x92\xB7
+ *			0\x82̂Ƃ\xAB\x95\xB6\x8E\x9A\x97񒷂\xAA\x8E\xA9\x93\xAE\x82ŎZ\x8Fo\x82\xB3\x82\xEA\x82\xE9
+ */
+BOOL CBSetTextW(HWND hWnd, const wchar_t *str_w, size_t str_len)
+{
+	HGLOBAL CBCopyWideHandle;
 
+	if (str_w == NULL) {
+		str_len = 0;
+	} else {
+		if (str_len == 0)
+			str_len = wcslen(str_w);
+	}
 
+	if (!OpenClipboard(hWnd)) {
+		return FALSE;
+	}
 
+	EmptyClipboard();
+	if (str_len == 0) {
+		CloseClipboard();
+		return TRUE;
+	}
+
+	{
+		// \x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x83R\x83s\x81[\x81A\x8DŌ\xE3\x82\xCCL'\0'\x82\xE0\x8A܂߂\xE9
+		wchar_t *CBCopyWidePtr;
+		const size_t alloc_bytes = (str_len + 1) * sizeof(wchar_t);
+		CBCopyWideHandle = GlobalAlloc(GMEM_MOVEABLE, alloc_bytes);
+		if (CBCopyWideHandle == NULL) {
+			CloseClipboard();
+			return FALSE;
+		}
+		CBCopyWidePtr = (wchar_t *)GlobalLock(CBCopyWideHandle);
+		if (CBCopyWidePtr == NULL) {
+			CloseClipboard();
+			return FALSE;
+		}
+		memcpy(CBCopyWidePtr, str_w, alloc_bytes - sizeof(wchar_t));
+		CBCopyWidePtr[str_len] = L'\0';
+		GlobalUnlock(CBCopyWideHandle);
+	}
+
+	SetClipboardData(CF_UNICODETEXT, CBCopyWideHandle);
+
+	// TODO 9x\x8Cn\x82ł͎\xA9\x93\xAE\x82\xC5CF_TEXT\x82ɃZ\x83b\x83g\x82\xB3\x82\xEA\x82Ȃ\xA2\x82炵\x82\xA2?
+	// ttl_gui.c \x82\xCC TTLVar2Clipb() \x82ł͂‚\xAC\x82\xCC2\x82‚\xAA\x8Ds\x82\xED\x82\xEA\x82Ă\xA2\x82\xBD
+	//		SetClipboardData(CF_TEXT, hText);
+	//		SetClipboardData(CF_UNICODETEXT, wide_hText);
+	CloseClipboard();
+
+	return TRUE;
+}
+
 // from ttxssh
 static void format_line_hexdump(char *buf, int buflen, int addr, int *bytes, int byte_cnt)
 {
@@ -293,3 +348,4 @@
 {
 	DebugHexDump(OutputDebugHexDumpSub, data, len);
 }
+

Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c	2020-04-11 15:54:37 UTC (rev 8693)
+++ trunk/teraterm/teraterm/clipboar.c	2020-04-11 15:54:46 UTC (rev 8694)
@@ -1200,61 +1200,6 @@
 	_CrtCheckMemory();
 }
 
-/**
- *	\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82Ƀe\x83L\x83X\x83g\x82\xF0\x83Z\x83b\x83g\x82\xB7\x82\xE9
- *	str_w	\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82ɃZ\x83b\x83g\x82\xB7\x82镶\x8E\x9A\x97\xF1\x82ւ̃|\x83C\x83\x93\x83^
- *			NULL\x82̂Ƃ\xAB\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xF0\x8B\xF3\x82ɂ\xB7\x82\xE9(str_len\x82͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2)
- *	str_len	\x95\xB6\x8E\x9A\x97\xF1\x92\xB7
- *			0\x82̂Ƃ\xAB\x95\xB6\x8E\x9A\x97񒷂\xAA\x8E\xA9\x93\xAE\x82ŎZ\x8Fo\x82\xB3\x82\xEA\x82\xE9
- */
-BOOL CBSetTextW(HWND hWnd, const wchar_t *str_w, size_t str_len)
-{
-	HGLOBAL CBCopyWideHandle;
-
-	if (str_w == NULL) {
-		str_len = 0;
-	} else {
-		if (str_len == 0)
-			str_len = wcslen(str_w);
-	}
-
-	if (!OpenClipboard(hWnd)) {
-		return FALSE;
-	}
-
-	EmptyClipboard();
-	if (str_len == 0) {
-		CloseClipboard();
-		return TRUE;
-	}
-
-	{
-		// \x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x83R\x83s\x81[\x81A\x8DŌ\xE3\x82\xCCL'\0'\x82\xE0\x8A܂߂\xE9
-		wchar_t *CBCopyWidePtr;
-		const size_t alloc_bytes = (str_len + 1) * sizeof(wchar_t);
-		CBCopyWideHandle = GlobalAlloc(GMEM_MOVEABLE, alloc_bytes);
-		if (CBCopyWideHandle == NULL) {
-			CloseClipboard();
-			return FALSE;
-		}
-		CBCopyWidePtr = (wchar_t *)GlobalLock(CBCopyWideHandle);
-		if (CBCopyWidePtr == NULL) {
-			CloseClipboard();
-			return FALSE;
-		}
-		memcpy(CBCopyWidePtr, str_w, alloc_bytes - sizeof(wchar_t));
-		CBCopyWidePtr[str_len] = L'\0';
-		GlobalUnlock(CBCopyWideHandle);
-	}
-
-	SetClipboardData(CF_UNICODETEXT, CBCopyWideHandle);
-
-	// TODO 9x\x8Cn\x82ł͎\xA9\x93\xAE\x82\xC5CF_TEXT\x82ɃZ\x83b\x83g\x82\xB3\x82\xEA\x82Ȃ\xA2\x82炵\x82\xA2?
-	CloseClipboard();
-
-	return TRUE;
-}
-
 #if 0
 BOOL CBSetClipboard(HWND owner, HGLOBAL hMem)
 {

Modified: trunk/teraterm/teraterm/clipboar.h
===================================================================
--- trunk/teraterm/teraterm/clipboar.h	2020-04-11 15:54:37 UTC (rev 8693)
+++ trunk/teraterm/teraterm/clipboar.h	2020-04-11 15:54:46 UTC (rev 8694)
@@ -41,7 +41,6 @@
 PCHAR CBOpen(LONG MemSize);
 void CBClose(void);
 #endif
-BOOL CBSetTextW(HWND hWnd, const wchar_t *str_w, size_t str_len);
 
 void CBStartSend(PCHAR DataPtr, int DataSize, BOOL EchoOnly);
 void CBStartPaste(HWND HWin, BOOL AddCR, BOOL Bracketed);


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