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\x91p\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\x91p\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\x91p\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\x91p\x83X\x81A\x8E\xC0\x8Ds\x83t\x83@\x83C\x83\x8B\x83t\x83H\x83\x8B\x83_\x82\xA9\x82\xE7\x90\xE2\x91p\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\x91p\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\x91p\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\x97Atext\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;