Revision: 9618 https://osdn.net/projects/ttssh2/scm/svn/commits/9618 Author: zmatsuo Date: 2021-12-23 22:19:06 +0900 (Thu, 23 Dec 2021) Log Message: ----------- ダウンロードフォルダをUnicode化 - ts->FileDirW を追加 Modified Paths: -------------- trunk/teraterm/common/tttypes.h trunk/teraterm/teraterm/filesys_proto.cpp trunk/teraterm/ttpset/ttset.c -------------- next part -------------- Modified: trunk/teraterm/common/tttypes.h =================================================================== --- trunk/teraterm/common/tttypes.h 2021-12-23 13:18:57 UTC (rev 9617) +++ trunk/teraterm/common/tttypes.h 2021-12-23 13:19:06 UTC (rev 9618) @@ -383,7 +383,7 @@ WORD XmodemOpt, XmodemBin; int ZmodemDataLen, ZmodemWinSize; int QVWinSize; - char FileDir[MAXPATHLEN]; + char FileDir[MAXPATHLEN]; // switch FileDirW char FileSendFilter[128]; WORD Language; char DelimList[52]; @@ -644,6 +644,7 @@ wchar_t *UILanguageFileW_ini; // \x91\x8A\x91p\x83X,ini\x83t\x83@\x83C\x83\x8B\x82̒\x86\x90g wchar_t *ExeDirW; // ttermpro.exe \x82̂\xA0\x82\xE9\x83t\x83H\x83\x8B\x83_ wchar_t *LogDirW; // log\x82\xE2\x83_\x83\x93\x83v\x82\xF0\x92u\x82\xAD\x83t\x83H\x83\x8B\x83_ + wchar_t *FileDirW; // \x83_\x83E\x83\x93\x83\x8D\x81[\x83h\x83p\x83X(\x83\x8D\x81[\x83h\x8E\x9E\x8A\xAB\x95ϐ\x94\x82\xAA\x93W\x8AJ\x82\xB3\x82\xEA\x82邪\x83Z\x81[\x83u\x8E\x9E\x8E\xB8\x82\xED\x82\xEA\x82\xE9) }; typedef struct tttset TTTSet, *PTTSet; Modified: trunk/teraterm/teraterm/filesys_proto.cpp =================================================================== --- trunk/teraterm/teraterm/filesys_proto.cpp 2021-12-23 13:18:57 UTC (rev 9617) +++ trunk/teraterm/teraterm/filesys_proto.cpp 2021-12-23 13:19:06 UTC (rev 9618) @@ -677,7 +677,7 @@ static wchar_t **_GetXFname(HWND HWin, BOOL Receive, const wchar_t *caption, LPLONG Option) { wchar_t FileDirExpanded[MAX_PATH]; - ExpandEnvironmentStringsW((wc)ts.FileDir, FileDirExpanded, _countof(FileDirExpanded)); + ExpandEnvironmentStringsW(ts.FileDirW, FileDirExpanded, _countof(FileDirExpanded)); wchar_t *CurDir = FileDirExpanded; wchar_t *FNFilter = GetCommonDialogFilterW(!Receive ? ts.FileSendFilter : NULL, ts.UILanguageFile); Modified: trunk/teraterm/ttpset/ttset.c =================================================================== --- trunk/teraterm/ttpset/ttset.c 2021-12-23 13:18:57 UTC (rev 9617) +++ trunk/teraterm/ttpset/ttset.c 2021-12-23 13:19:06 UTC (rev 9618) @@ -1297,18 +1297,24 @@ sizeof(ts->XModemRcvCommand), FName); /* Default directory for file transfer */ - GetPrivateProfileString(Section, "FileDir", "", - ts->FileDir, sizeof(ts->FileDir), FName); - if (strlen(ts->FileDir) == 0) - GetDownloadFolder(ts->FileDir, sizeof(ts->FileDir)); - else { - char FileDirExpanded[MAX_PATH]; - ExpandEnvironmentStrings(ts->FileDir, FileDirExpanded, sizeof(FileDirExpanded)); - _getcwd(Temp, sizeof(Temp)); - if (_chdir(FileDirExpanded) != 0) - GetDownloadFolder(ts->FileDir, sizeof(ts->FileDir)); - _chdir(Temp); + hGetPrivateProfileStringW(SectionW, L"FileDir", L"", FName, &ts->FileDirW); + if (ts->FileDirW != NULL && ts->FileDirW[0] != 0) { + wchar_t *FileDirExpanded; + hExpandEnvironmentStringsW(ts->FileDirW, &FileDirExpanded); + free(ts->FileDirW); + ts->FileDirW = NULL; + if (DoesFolderExistW(FileDirExpanded)) { + ts->FileDirW = FileDirExpanded; + } + else { + free(FileDirExpanded); + } } + if (ts->FileDirW == NULL || ts->FileDirW[0] == 0) { + free(ts->FileDirW); + ts->FileDirW = GetDownloadFolderW(); + } + WideCharToACP_t(ts->FileDirW, ts->FileDir, sizeof(ts->FileDir)); /* filter on file send (2007.6.5 maya) */ GetPrivateProfileString(Section, "FileSendFilter", "", @@ -2774,7 +2780,7 @@ ts->XModemRcvCommand, FName); /* Default directory for file transfer */ - WritePrivateProfileString(Section, "FileDir", ts->FileDir, FName); + WritePrivateProfileStringW(SectionW, L"FileDir", ts->FileDirW, FName); /* filter on file send (2007.6.5 maya) */ WritePrivateProfileString(Section, "FileSendFilter", @@ -3855,15 +3861,12 @@ else if (_wcsnicmp(Temp, L"/FD=", 4) == 0) { /* file transfer directory */ wcsncpy_s(Temp2, _countof(Temp2), &Temp[4], _TRUNCATE); if (wcslen(Temp2) > 0) { - char TempDir[MAXPATHLEN]; - _getcwd(TempDir, _countof(TempDir)); - if (_wchdir(Temp2) == 0) { - char *FileDirA = ToCharW(Temp2); - strncpy_s(ts->FileDir, sizeof(ts->FileDir), FileDirA, - _TRUNCATE); - free(FileDirA); + wchar_t *dir = Temp2; + if (DoesFolderExistW(dir)) { + free(ts->FileDirW); + ts->FileDirW = _wcsdup(dir); + WideCharToACP_t(ts->FileDirW, ts->FileDir, sizeof(ts->FileDir)); } - _chdir(TempDir); } } else if (_wcsicmp(Temp, L"/H") == 0) /* hide title bar */