Revision: 9100 https://osdn.net/projects/ttssh2/scm/svn/commits/9100 Author: zmatsuo Date: 2020-12-20 21:15:33 +0900 (Sun, 20 Dec 2020) Log Message: ----------- ダイアログキャプション文字列をUnicode化 - デフォルトダイアログ文字列を ttftypes.h から filesys_proto.h, bplus.h へ移動 Modified Paths: -------------- trunk/teraterm/common/ttftypes.h trunk/teraterm/teraterm/filesys_proto.cpp trunk/teraterm/teraterm/filesys_proto.h trunk/teraterm/ttpfile/bplus.c trunk/teraterm/ttpfile/bplus.h -------------- next part -------------- Modified: trunk/teraterm/common/ttftypes.h =================================================================== --- trunk/teraterm/common/ttftypes.h 2020-12-20 12:15:22 UTC (rev 9099) +++ trunk/teraterm/common/ttftypes.h 2020-12-20 12:15:33 UTC (rev 9100) @@ -39,17 +39,3 @@ #define TitLog "Log" #define TitSendFile "Send file" -#define TitKmtRcv "Kermit Receive" -#define TitKmtGet "Kermit Get" -#define TitKmtSend "Kermit Send" -#define TitKmtFin "Kermit Finish" -#define TitXRcv "XMODEM Receive" -#define TitXSend "XMODEM Send" -#define TitYRcv "YMODEM Receive" -#define TitYSend "YMODEM Send" -#define TitZRcv "ZMODEM Receive" -#define TitZSend "ZMODEM Send" -#define TitBPRcv "B-Plus Receive" -#define TitBPSend "B-Plus Send" -#define TitQVRcv "Quick-VAN Receive" -#define TitQVSend "Quick-VAN Send" Modified: trunk/teraterm/teraterm/filesys_proto.cpp =================================================================== --- trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:15:22 UTC (rev 9099) +++ trunk/teraterm/teraterm/filesys_proto.cpp 2020-12-20 12:15:33 UTC (rev 9100) @@ -80,6 +80,19 @@ #define OpYRcv 15 #define OpYSend 16 +#define TitKmtRcv L"Kermit Receive" +#define TitKmtGet L"Kermit Get" +#define TitKmtSend L"Kermit Send" +#define TitKmtFin L"Kermit Finish" +#define TitXRcv L"XMODEM Receive" +#define TitXSend L"XMODEM Send" +#define TitYRcv L"YMODEM Receive" +#define TitYSend L"YMODEM Send" +#define TitZRcv L"ZMODEM Receive" +#define TitZSend L"ZMODEM Send" +#define TitQVRcv L"Quick-VAN Receive" +#define TitQVSend L"Quick-VAN Send" + static PFileVarProto FileVar = NULL; static int ProtoId; @@ -169,6 +182,18 @@ SetTimer(fv->HMainWin, IdProtoTimer, T*1000, NULL); } +static void SetDialogCation(struct FileVarProto *fv, const char *key, const wchar_t *default_caption) +{ + const char *UILanguageFile = ts.UILanguageFile; + wchar_t uimsg[MAX_UIMSG]; + wchar_t caption[MAX_UIMSG]; + wcsncpy_s(caption, _countof(caption), L"Tera Term: ", _TRUNCATE); + get_lang_msgW(key, uimsg, sizeof(uimsg), default_caption, UILanguageFile); + wcsncat_s(caption, _countof(caption), uimsg, _TRUNCATE); + free((void *)fv->DlgCaption); + fv->DlgCaption = _wcsdup(caption); +} + static BOOL NewFileVar_(PFileVarProto *pfv) { if (*pfv != NULL) { @@ -197,6 +222,7 @@ fv->GetNextFname = GetNextFname; fv->GetRecievePath = GetRecievePath; fv->FTSetTimeOut = FTSetTimeOut; + fv->SetDialogCation = SetDialogCation; fv->InitDlgProgress = _InitDlgProgress; fv->SetDlgTime = _SetDlgTime; @@ -225,6 +251,8 @@ free(fv->FileNames); } fv->file->FileSysDestroy(fv->file); + free(fv->DlgCaption); + fv->DlgCaption = NULL; free(fv); *pfv = NULL; @@ -302,7 +330,7 @@ fv->Destroy(fv); return FALSE; } - SetWindowText(fv->HWin, fv->DlgCaption); + _SetWindowTextW(fv->HWin, fv->DlgCaption); PtDlg = pd; return TRUE; @@ -637,7 +665,7 @@ return ret; } -static char **_GetXFname(HWND HWin, BOOL Receive, const char *caption, LPLONG Option) +static char **_GetXFname(HWND HWin, BOOL Receive, const wchar_t *caption, LPLONG Option) { char FileDirExpanded[MAX_PATH]; ExpandEnvironmentStrings(ts.FileDir, FileDirExpanded, sizeof(FileDirExpanded)); @@ -675,7 +703,7 @@ ofn.Flags |= OFN_ENABLETEMPLATE | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_ENABLESIZING; ofn.Flags |= OFN_SHOWHELP; ofn.lCustData = (LPARAM)&opt; - ofn.lpstrTitle = caption; + ofn.lpstrTitle = ToCharW(caption); ofn.lpfnHook = XFnHook; ofn.lpTemplateName = MAKEINTRESOURCE(IDD_XOPT); ofn.hInstance = hInst; @@ -692,6 +720,7 @@ Ok = GetSaveFileName(&ofn); } free(FNFilter); + free((void *)ofn.lpstrTitle); _SetCurrentDirectoryW(TempDir); char **ret = NULL; @@ -887,7 +916,7 @@ #define GMF_Y 3 /* YMODEM Send */ -static char **_GetMultiFname(HWND hWnd, WORD FuncId, const char *caption, LPWORD Option) +static char **_GetMultiFname(HWND hWnd, WORD FuncId, const wchar_t *caption, LPWORD Option) { #define FnStrMemSize 4096 wchar_t TempDir[MAX_PATH]; @@ -923,7 +952,7 @@ ofn.nFilterIndex = 1; ofn.lpstrFile = FnStrMem; ofn.nMaxFile = FnStrMemSize / sizeof(char); - ofn.lpstrTitle= caption; + ofn.lpstrTitle= ToCharW(caption); ofn.lpstrInitialDir = CurDir; ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; ofn.Flags |= OFN_ALLOWMULTISELECT | OFN_EXPLORER; @@ -943,6 +972,7 @@ BOOL Ok = GetOpenFileName(&ofn); free(FNFilter); + free((void *)ofn.lpstrTitle); char **ret = NULL; if (Ok) { @@ -986,11 +1016,7 @@ FileVar->OpId = OpKmtSend; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTSEND", uimsg, sizeof(uimsg), TitKmtSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTSEND", TitKmtSend); if (filename == NULL) { WORD w = 0; @@ -1023,11 +1049,7 @@ TFileVarProto *fv = FileVar; FileVar->OpId = OpKmtSend; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTGET", uimsg, sizeof(uimsg), TitKmtGet, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTGET", TitKmtGet); if (filename == NULL) { if (! _GetGetFname(FileVar->HMainWin,FileVar, &ts) || FileVar->FileNames == NULL) { @@ -1057,11 +1079,7 @@ TFileVarProto *fv = FileVar; FileVar->OpId = OpKmtRcv; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTRCV", uimsg, sizeof(uimsg), TitKmtRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTRCV", TitKmtRcv); if (macro) { // \x83}\x83N\x83\x8D\x82\xA9\x82\xE7 @@ -1086,11 +1104,7 @@ FileVar->OpId = OpKmtFin; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_KMTFIN", uimsg, sizeof(uimsg), TitKmtFin, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_KMTFIN", TitKmtFin); if (macro) { FileVar->NoMsg = TRUE; @@ -1117,11 +1131,7 @@ TFileVarProto *fv = FileVar; FileVar->OpId = OpXRcv; - const char *UILanguageFile = ts.UILanguageFile; - char uimsg[MAX_UIMSG]; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_XRCV", uimsg, sizeof(uimsg), TitXRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_XRCV", TitXRcv); if (filename == NULL) { LONG Option = MAKELONG(ts.XmodemBin,ts.XmodemOpt); @@ -1207,11 +1217,7 @@ TFileVarProto *fv = FileVar; FileVar->OpId = OpXSend; - const char *UILanguageFile = ts.UILanguageFile; - char uimsg[MAX_UIMSG]; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_XSEND", uimsg, sizeof(uimsg), TitXSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_XSEND", TitXSend); if (filename == NULL) { LONG Option = MAKELONG(ts.XmodemBin,ts.XmodemOpt); @@ -1303,11 +1309,7 @@ FileVar->OpId = OpYRcv; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_YRCV", uimsg, sizeof(uimsg), TitYRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_YRCV", TitYRcv); // \x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x8E\x9E\x82̃I\x83v\x83V\x83\x87\x83\x93\x82\xCD"Yopt1K"\x82Ɍ\x88\x82ߑł\xBF\x81B WORD Opt = Yopt1K; @@ -1345,11 +1347,7 @@ TFileVarProto *fv = FileVar; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_YSEND", uimsg, sizeof(uimsg), TitYSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_YSEND", TitYSend); // \x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x8E\x9E\x82̃I\x83v\x83V\x83\x87\x83\x93\x82\xCD"Yopt1K"\x82Ɍ\x88\x82ߑł\xBF\x81B // TODO: "Yopt1K", "YoptG", "YoptSingle"\x82\xF0\x8B\xE6\x95ʂ\xB5\x82\xBD\x82\xA2\x82Ȃ\xE7\x82AIDD_FOPT\x82\xF0\x8Ag\x92\xA3\x82\xB7\x82\xE9\x95K\x97v\x82\xA0\x82\xE8\x81B @@ -1410,11 +1408,7 @@ /* IdZReceive or IdZAutoR */ FileVar->OpId = OpZRcv; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_ZRCV", uimsg, sizeof(uimsg), TitZRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_ZRCV", TitZRcv); TalkStatus = IdTalkQuiet; @@ -1453,11 +1447,7 @@ TFileVarProto *fv = FileVar; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_ZSEND", uimsg, sizeof(uimsg), TitZSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_ZSEND", TitZSend); WORD Opt = ts.XmodemBin; FileVar->OpId = OpZSend; @@ -1492,7 +1482,7 @@ return TRUE; } -static char **_GetTransFname(HWND hWnd, const char *DlgCaption) +static char **_GetTransFname(HWND hWnd, const wchar_t *DlgCaption) { wchar_t TempDir[MAX_PATH]; char FileName[MAX_PATH]; @@ -1516,11 +1506,12 @@ ofn.nMaxFile = _countof(FileName); ofn.lpstrInitialDir = CurDir; ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_SHOWHELP; - ofn.lpstrTitle = DlgCaption; + ofn.lpstrTitle = ToCharW(DlgCaption); ofn.hInstance = hInst; BOOL Ok = GetOpenFileName(&ofn); free(FNFilter); + free((void *)ofn.lpstrTitle); char **ret = NULL; if (Ok) { @@ -1543,11 +1534,7 @@ TFileVarProto *fv = FileVar; FileVar->OpId = OpBPSend; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_BPSEND", uimsg, sizeof(uimsg), TitBPSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPSEND", TitBPSend); if (! ProtoStart()) return FALSE; @@ -1598,11 +1585,7 @@ /* IdBPReceive or IdBPAuto */ FileVar->OpId = OpBPRcv; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_BPRCV", uimsg, sizeof(uimsg), TitBPRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPRCV", TitBPRcv); TalkStatus = IdTalkQuiet; @@ -1638,11 +1621,7 @@ FileVar->OpId = OpQVRcv; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_QVRCV", uimsg, sizeof(uimsg), TitQVRcv, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_QVRCV", TitQVRcv); TalkStatus = IdTalkQuiet; @@ -1673,11 +1652,7 @@ FileVar->OpId = OpQVSend; - char uimsg[MAX_UIMSG]; - const char *UILanguageFile = ts.UILanguageFile; - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: ", _TRUNCATE); - get_lang_msg("FILEDLG_TRANS_TITLE_QVSEND", uimsg, sizeof(uimsg), TitQVSend, UILanguageFile); - strncat_s(fv->DlgCaption, sizeof(fv->DlgCaption), uimsg, _TRUNCATE); + SetDialogCation(fv, "FILEDLG_TRANS_TITLE_QVSEND", TitQVSend); if (filename == NULL) { WORD Opt; Modified: trunk/teraterm/teraterm/filesys_proto.h =================================================================== --- trunk/teraterm/teraterm/filesys_proto.h 2020-12-20 12:15:22 UTC (rev 9099) +++ trunk/teraterm/teraterm/filesys_proto.h 2020-12-20 12:15:33 UTC (rev 9100) @@ -36,7 +36,7 @@ HWND HMainWin; HWND HWin; - char DlgCaption[40]; + wchar_t *DlgCaption; // \x91\x97\x90M\x83t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1 // \x83t\x83\x8B\x83p\x83X\x82̃t\x83@\x83C\x83\x8B\x96\xBC\x94z\x97\xF1(\x88\xEA\x94ԍŌ\xE3\x82\xCDNULL) @@ -69,6 +69,7 @@ char *(*GetNextFname)(struct FileVarProto *fv); char *(*GetRecievePath)(struct FileVarProto *fv); void (*FTSetTimeOut)(struct FileVarProto *fv, int T); + void (*SetDialogCation)(struct FileVarProto *fv, const char *key, const wchar_t *default_caption); // protocol entrys, data BOOL (*Init)(struct FileVarProto *fv, PComVar cv, PTTSet ts); Modified: trunk/teraterm/ttpfile/bplus.c =================================================================== --- trunk/teraterm/ttpfile/bplus.c 2020-12-20 12:15:22 UTC (rev 9099) +++ trunk/teraterm/ttpfile/bplus.c 2020-12-20 12:15:33 UTC (rev 9100) @@ -38,6 +38,7 @@ #include "ftlib.h" #include "ttcommon.h" #include "ttlib.h" +#include "layer_for_unicode.h" #include "bplus.h" @@ -118,20 +119,20 @@ return fv->FileOpen; } +// \x92ʐM\x92\x86\x82Ɏ\xF3\x90M/\x91\x97\x90M\x82\xAA\x90\xE8\x91ւ\xED\x82\xE9? static void BPDispMode(PFileVarProto fv, PBPVar bv) { - strncpy_s(fv->DlgCaption, sizeof(fv->DlgCaption),"Tera Term: B-Plus ", _TRUNCATE); - switch (bv->BPMode) { + switch (bv->BPMode) { case IdBPSend: - strncat_s(fv->DlgCaption,sizeof(fv->DlgCaption),"Send",_TRUNCATE); - break; + fv->SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPSEND", TitBPSend); + break; case IdBPReceive: case IdBPAuto: - strncat_s(fv->DlgCaption,sizeof(fv->DlgCaption),"Receive",_TRUNCATE); - break; - } + fv->SetDialogCation(fv, "FILEDLG_TRANS_TITLE_BPRCV", TitBPRcv); + break; + } - SetWindowText(fv->HWin,fv->DlgCaption); + _SetWindowTextW(fv->HWin,fv->DlgCaption); } static BOOL BPInit(PFileVarProto fv, PComVar cv, PTTSet ts) Modified: trunk/teraterm/ttpfile/bplus.h =================================================================== --- trunk/teraterm/ttpfile/bplus.h 2020-12-20 12:15:22 UTC (rev 9099) +++ trunk/teraterm/ttpfile/bplus.h 2020-12-20 12:15:33 UTC (rev 9100) @@ -36,6 +36,9 @@ extern "C" { #endif +#define TitBPRcv L"B-Plus Receive" +#define TitBPSend L"B-Plus Send" + /* B-Plus function id */ #define IdBPReceive 1 #define IdBPSend 2