[ttssh2-commit] [10983] クリップボードString file指定が相対パスの時、設定ファイルフォルダを参照するよう修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 10月 10日 (火) 23:27:46 JST


Revision: 10983
          https://osdn.net/projects/ttssh2/scm/svn/commits/10983
Author:   zmatsuo
Date:     2023-10-10 23:27:46 +0900 (Tue, 10 Oct 2023)
Log Message:
-----------
クリップボードString file指定が相対パスの時、設定ファイルフォルダを参照するよう修正

- Tera Term 5 の設定ファイルフォルダ
  - %APPDATA%\teraterm5

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

-------------- next part --------------
Modified: trunk/teraterm/common/ttlib.h
===================================================================
--- trunk/teraterm/common/ttlib.h	2023-10-09 23:56:58 UTC (rev 10982)
+++ trunk/teraterm/common/ttlib.h	2023-10-10 14:27:46 UTC (rev 10983)
@@ -217,6 +217,7 @@
 void RandomFile(const char *filespec_src,char *filename, int destlen);
 int __ismbblead(BYTE b, int code_page);
 void SetDPIAwareness(const wchar_t *SetupFNameW);
+wchar_t *GetFullPathW(const wchar_t *dir, const wchar_t *rel_path);
 
 #ifdef __cplusplus
 }

Modified: trunk/teraterm/common/ttlib_static_cpp.cpp
===================================================================
--- trunk/teraterm/common/ttlib_static_cpp.cpp	2023-10-09 23:56:58 UTC (rev 10982)
+++ trunk/teraterm/common/ttlib_static_cpp.cpp	2023-10-10 14:27:46 UTC (rev 10983)
@@ -881,34 +881,47 @@
 }
 
 /**
- *	UILanguageFile\x82̃t\x83\x8B\x83p\x83X\x82\xF0\x8E擾\x82\xB7\x82\xE9
+ *	\x83t\x83\x8B\x83p\x83X\x82\xF0\x8E擾\x82\xB7\x82\xE9
  *
- *	@param[in]		ExeDir					exe,dll\x82̑\xB6\x8D݂\xB7\x82\xE9\x83t\x83H\x83\x8B\x83_ GetExeDir()\x82Ŏ擾\x82ł\xAB\x82\xE9
- *	@param[in]		UILanguageFileRel		lng\x83t\x83@\x83C\x83\x8B\x81AExeDir\x82\xA9\x82\xE7\x82̑\x8A\x91΃p\x83X
- *	@return			LanguageFile			lng\x83t\x83@\x83C\x83\x8B\x82̃t\x83\x8B\x83p\x83X
- *											\x95s\x97v\x82ɂȂ\xC1\x82\xBD\x82\xE7free()\x82\xB7\x82邱\x82\xC6
+ *	@param[in]		dir					\x83t\x83@\x83C\x83\x8B\x82\xAA\x91\x8A\x91΃p\x83X\x82\xBE\x82\xC1\x82\xBD\x8E\x9E\x82Ɍ\xB3\x82Ƃ\xB7\x82\xE9\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A
+ *	@param[in]		rel_path			rel_path \x91\x8A\x91\xCE/\x90\xE2\x91΃p\x83X, \x82\xB1\x82\xEA\x82\xF0\x83t\x83\x8B\x83p\x83X\x82ɕϊ\xB7\x82\xB7\x82\xE9
+ *	@return			\x83t\x83@\x83C\x83\x8B\x82̃t\x83\x8B\x83p\x83X
+ *					\x95s\x97v\x82ɂȂ\xC1\x82\xBD\x82\xE7free()\x82\xB7\x82邱\x82\xC6
  */
-wchar_t *GetUILanguageFileFullW(const wchar_t *ExeDir, const wchar_t *UILanguageFileRel)
+wchar_t *GetFullPathW(const wchar_t *dir, const wchar_t *rel_path)
 {
 	wchar_t *fullpath;
-	if (IsRelativePathW(UILanguageFileRel)) {
+	if (IsRelativePathW(rel_path)) {
 		// \x91\x8A\x91΃p\x83X\x81A\x8E\xC0\x8Ds\x83t\x83@\x83C\x83\x8B\x83t\x83H\x83\x8B\x83_\x82\xA9\x82\xE7\x90\xE2\x91΃p\x83X\x82\xF0\x8D\xEC\x82\xE9
-		size_t size = wcslen(ExeDir) + 1 + wcslen(UILanguageFileRel) + 1;
+		size_t size = wcslen(dir) + 1 + wcslen(rel_path) + 1;
 		wchar_t *rel = (wchar_t *)malloc(sizeof(wchar_t) * size);
-		wcscpy_s(rel, size, ExeDir);
+		wcscpy_s(rel, size, dir);
 		wcscat_s(rel, size, L"\\");
-		wcscat_s(rel, size, UILanguageFileRel);
+		wcscat_s(rel, size, rel_path);
 		hGetFullPathNameW(rel, &fullpath, NULL);
 		free(rel);
 	}
 	else {
 		// \x90\xE2\x91΃p\x83X
-		hGetFullPathNameW(UILanguageFileRel, &fullpath, NULL);
+		hGetFullPathNameW(rel_path, &fullpath, NULL);
 	}
 	return fullpath;
 }
 
 /**
+ *	UILanguageFile\x82̃t\x83\x8B\x83p\x83X\x82\xF0\x8E擾\x82\xB7\x82\xE9
+ *
+ *	@param[in]		ExeDir					exe,dll\x82̑\xB6\x8D݂\xB7\x82\xE9\x83t\x83H\x83\x8B\x83_ GetExeDir()\x82Ŏ擾\x82ł\xAB\x82\xE9
+ *	@param[in]		UILanguageFileRel		lng\x83t\x83@\x83C\x83\x8B\x81AExeDir\x82\xA9\x82\xE7\x82̑\x8A\x91΃p\x83X
+ *	@return			LanguageFile			lng\x83t\x83@\x83C\x83\x8B\x82̃t\x83\x8B\x83p\x83X
+ *											\x95s\x97v\x82ɂȂ\xC1\x82\xBD\x82\xE7free()\x82\xB7\x82邱\x82\xC6
+ */
+wchar_t *GetUILanguageFileFullW(const wchar_t *ExeDir, const wchar_t *UILanguageFileRel)
+{
+	return GetFullPathW(ExeDir, UILanguageFileRel);
+}
+
+/**
  *	\x90ݒ\xE8\x83t\x83@\x83C\x83\x8B(TERATERM.INI\x93\x99)\x82̃t\x83\x8B\x83p\x83X\x82\xF0\x8E擾\x82\xB7\x82\xE9
  *
  *	@param[in]	home	\x90ݒ\xE8\x83t\x83@\x83C\x83\x8B\x82̂\xA0\x82\xE9\x83t\x83H\x83\x8B\x83_

Modified: trunk/teraterm/teraterm/clipboar.c
===================================================================
--- trunk/teraterm/teraterm/clipboar.c	2023-10-09 23:56:58 UTC (rev 10982)
+++ trunk/teraterm/teraterm/clipboar.c	2023-10-10 14:27:46 UTC (rev 10983)
@@ -65,10 +65,10 @@
  * \x83t\x83@\x83C\x83\x8B\x82ɒ\xE8\x8B`\x82\xB3\x82ꂽ\x95\xB6\x8E\x9A\x97񂪁Atext\x82Ɋ܂܂\xEA\x82邩\x82𒲂ׂ\xE9\x81B
  * \x8C\xA9\x82‚\xA9\x82\xEA\x82\xCE TRUE\x82\xF0\x95Ԃ\xB7
  */
-static BOOL search_dictW(char *filename, const wchar_t *text)
+static BOOL search_dictW(const wchar_t *filename, const wchar_t *text)
 {
 	BOOL result = FALSE;
-	const wchar_t *buf_top = LoadFileWA(filename, NULL);
+	const wchar_t *buf_top = LoadFileWW(filename, NULL);
 	const wchar_t *buf = buf_top;
 	if (buf == NULL) {
 		return FALSE;
@@ -157,8 +157,14 @@
 	}
 
 	// \x8E\xAB\x8F\x91\x82\xF0\x83T\x81[\x83`\x82\xB7\x82\xE9
-	if (!confirm && search_dictW(ts.ConfirmChangePasteStringFile, str_w)) {
-		confirm = TRUE;
+	if (ts.ConfirmChangePasteStringFile[0] != '\0') {
+		wchar_t *fname_rel =ToWcharA(ts.ConfirmChangePasteStringFile);
+		wchar_t *fnameW = GetFullPathW(ts.HomeDirW, fname_rel);
+		if (!confirm && search_dictW(fnameW, str_w)) {
+			confirm = TRUE;
+		}
+		free(fnameW);
+		free(fname_rel);
 	}
 
 	ret = IDOK;


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