Revision: 7376 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7376 Author: zmatsuo Date: 2018-12-28 00:31:53 +0900 (Fri, 28 Dec 2018) Log Message: ----------- フォント設定関連を修正 Modified Paths: -------------- branches/cmake/teraterm/common/dlglib.c branches/cmake/teraterm/common/dlglib_tmpl.cpp branches/cmake/teraterm/ttpmacro/ttmacro.cpp branches/cmake/ttssh2/ttxssh/ttxssh.c -------------- next part -------------- Modified: branches/cmake/teraterm/common/dlglib.c =================================================================== --- branches/cmake/teraterm/common/dlglib.c 2018-12-27 15:31:39 UTC (rev 7375) +++ branches/cmake/teraterm/common/dlglib.c 2018-12-27 15:31:53 UTC (rev 7376) @@ -1,4 +1,4 @@ -/* +/* -*- coding: utf-8-with-signature -*- // TODO 文字コード * Copyright (C) 1994-1998 T. Teranishi * (C) 2008-2018 TeraTerm Project * All rights reserved. @@ -94,7 +94,7 @@ *R = 0; for (i = FirstId ; i <= LastId ; i++) { if (SendDlgItemMessage(HDlg, i, BM_GETCHECK, 0, 0) != 0) { - *R = i - FirstId + 1; + *R = (WORD)(i - FirstId + 1); return; } } @@ -533,7 +533,7 @@ if (result == TRUE) { #if defined(UNICODE) wchar_t face[LF_FACESIZE]; - mbstowcs(face, logfont.lfFaceName, LF_FACESIZE); // TODO MultiByteToWideChar()を使う + MultiByteToWideChar(CP_ACP, 0, logfont.lfFaceName, -1, face, LF_FACESIZE); if (IsExistFont(face, logfont.lfCharSet, FALSE)) { TTSetDlgFontA(logfont.lfFaceName, logfont.lfHeight, logfont.lfCharSet); return; @@ -555,7 +555,7 @@ const DialogFontLists *list; charset = GetDialogFontCandidate(&list); while(list->face != NULL) { - if (IsExistFont(list->face, charset, TRUE)) { + if (IsExistFont(list->face, (BYTE)charset, TRUE)) { TTSetDlgFont(list->face, list->height, charset); return; } Modified: branches/cmake/teraterm/common/dlglib_tmpl.cpp =================================================================== --- branches/cmake/teraterm/common/dlglib_tmpl.cpp 2018-12-27 15:31:39 UTC (rev 7375) +++ branches/cmake/teraterm/common/dlglib_tmpl.cpp 2018-12-27 15:31:53 UTC (rev 7376) @@ -454,7 +454,7 @@ void TTSetDlgFontA(const char *face, int height, int charset) { if (face != NULL) { - mbstowcs(FontFaceName, face, LF_FACESIZE); // TODO MultiByteToWideChar()\x82\xF0\x8Eg\x82\xA4 + MultiByteToWideChar(CP_ACP, 0, face, -1, FontFaceName, LF_FACESIZE); } else { FontFaceName[0] = L'\0'; } Modified: branches/cmake/teraterm/ttpmacro/ttmacro.cpp =================================================================== --- branches/cmake/teraterm/ttpmacro/ttmacro.cpp 2018-12-27 15:31:39 UTC (rev 7375) +++ branches/cmake/teraterm/ttpmacro/ttmacro.cpp 2018-12-27 15:31:53 UTC (rev 7376) @@ -31,6 +31,8 @@ #include <stdio.h> #include <crtdbg.h> +#include <windows.h> +#include <commctrl.h> #include "teraterm.h" #include "ttm_res.h" #include "ttmmain.h" @@ -120,56 +122,11 @@ ///////////////////////////////////////////////////////////////////////////// -static void SetDialogFont() -{ - LOGFONTA logfont; - BOOL result; - - // \x96\xBE\x8E\xA6\x93I\x82Ɏw\x92肳\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ\x82͂\xBB\x82\xEA\x82ɏ]\x82\xA4 - result = GetI18nLogfont("Tera Term", "DLG_FONT", &logfont, 72, UILanguageFile); - - // \x96\xBE\x8E\xA6\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x8Fꍇ - if (result == FALSE) { - // \x83K\x83C\x83h\x83\x89\x83C\x83\x93\x82ɉ\x88\x82\xC1\x82\xBD\x90ݒ\xE8\x82\xF0\x8Ds\x82\xA4 - // https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa511282.aspx - if (IsWindowsVistaOrLater()) { - // Windows Vista\x88ȍ~ Segoe UI - strcpy(logfont.lfFaceName, "Segoe UI"); - logfont.lfCharSet = 0; - logfont.lfHeight = -9; - logfont.lfWidth = 0; - } else if (IsWindows2000OrLater()) { - // WindowsXP \x82\xA8\x82\xE6\x82\xD1 Windows 2000 \x82\xF0\x83^\x81[\x83Q\x83b\x83g\x82Ƃ\xB7\x82\xE9\x8Fꍇ\x82́A - // 8 \x83|\x83C\x83\x93\x83g MS Shell Dlg 2 \x8B[\x8E\x97\x83t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B - // \x82\xB1\x82̃t\x83H\x83\x93\x83g\x82\xCD Tahoma \x82Ƀ}\x83b\x83s\x83\x93\x83O\x82\xB3\x82\xEA\x82܂\xB7\x81B - strcpy(logfont.lfFaceName, "MS Shell Dlg 2"); - logfont.lfCharSet = 0; - logfont.lfHeight = -8; - logfont.lfWidth = 0; - } else { - // \x88ȑO\x82̃o\x81[\x83W\x83\x87\x83\x93\x82\xF0\x83^\x81[\x83Q\x83b\x83g\x82Ƃ\xB7\x82\xE9\x8Fꍇ\x82\xCD - // 8 \x83|\x83C\x83\x93\x83g MS Shell Dlg \x8B[\x8E\x97\x83t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7 - // MS Sans Serif \x82ɂ\xBB\x82ꂼ\x82\xEA\x83}\x83b\x83s\x83\x93\x83O\x82\xB3\x82\xEA\x82܂\xB7 - strcpy(logfont.lfFaceName, "MS Shell Dlg"); - logfont.lfCharSet = 0; - logfont.lfHeight = -8; - logfont.lfWidth = 0; - } - result = TRUE; - } - - if (result) { - TTSetDlgFontA(logfont.lfFaceName, logfont.lfHeight, logfont.lfCharSet); - } else { - TTSetDlgFont(NULL, 0, 0); - } -} - int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow) { hInst = hInstance; - static HMODULE HTTSET = NULL; +// static HMODULE HTTSET = NULL; LONG lCount = 0; DWORD SleepTick = 1; @@ -178,16 +135,15 @@ #endif init(); -// InitCommonControls(); + InitCommonControls(); GetUILanguageFile(UILanguageFile, sizeof(UILanguageFile)); - SetDialogFont(); + SetDialogFont(NULL, UILanguageFile); Busy = TRUE; pCCtrlWindow = new CCtrlWindow(); pCCtrlWindow->Create(); // pCCtrlWindow->ShowWindow(SW_SHOW); -// tmpWnd->ShowWindow(SW_SHOW); - Busy = FALSE; + Busy = FALSE; HWND hWnd = pCCtrlWindow->GetSafeHwnd(); CtrlWnd = hWnd; @@ -237,7 +193,7 @@ } } } - + ////////////////////////////////////////////////////////////////////// // TODO \x82\xB7\x82łɕ\xB6\x82\xE7\x82\xEA\x82Ă\xA2\x82\xE9\x81A\x82\xB1\x82̏\x88\x97\x9D\x95s\x97v? @@ -247,4 +203,3 @@ pCCtrlWindow = NULL; return ExitCode; } - Modified: branches/cmake/ttssh2/ttxssh/ttxssh.c =================================================================== --- branches/cmake/ttssh2/ttxssh/ttxssh.c 2018-12-27 15:31:39 UTC (rev 7375) +++ branches/cmake/ttssh2/ttxssh/ttxssh.c 2018-12-27 15:31:53 UTC (rev 7376) @@ -207,51 +207,6 @@ ssh_heartbeat_lock_finalize(); } -static void _SetDialogFont(const char *UILanguageFile) -{ - LOGFONTA logfont; - BOOL result; - - // \x96\xBE\x8E\xA6\x93I\x82Ɏw\x92肳\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ\x82͂\xBB\x82\xEA\x82ɏ]\x82\xA4 - result = GetI18nLogfont("Tera Term", "DLG_FONT", &logfont, 72, UILanguageFile); - - // \x96\xBE\x8E\xA6\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x8Fꍇ - if (result == FALSE) { - // \x83K\x83C\x83h\x83\x89\x83C\x83\x93\x82ɉ\x88\x82\xC1\x82\xBD\x90ݒ\xE8\x82\xF0\x8Ds\x82\xA4 - // https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa511282.aspx - if (IsWindowsVistaOrLater()) { - // Windows Vista\x88ȍ~ Segoe UI - strcpy(logfont.lfFaceName, "Segoe UI"); - logfont.lfCharSet = 0; - logfont.lfHeight = -9; - logfont.lfWidth = 0; - } else if (IsWindows2000OrLater()) { - // WindowsXP \x82\xA8\x82\xE6\x82\xD1 Windows 2000 \x82\xF0\x83^\x81[\x83Q\x83b\x83g\x82Ƃ\xB7\x82\xE9\x8Fꍇ\x82́A - // 8 \x83|\x83C\x83\x93\x83g MS Shell Dlg 2 \x8B[\x8E\x97\x83t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B - // \x82\xB1\x82̃t\x83H\x83\x93\x83g\x82\xCD Tahoma \x82Ƀ}\x83b\x83s\x83\x93\x83O\x82\xB3\x82\xEA\x82܂\xB7\x81B - strcpy(logfont.lfFaceName, "MS Shell Dlg 2"); - logfont.lfCharSet = 0; - logfont.lfHeight = -8; - logfont.lfWidth = 0; - } else { - // \x88ȑO\x82̃o\x81[\x83W\x83\x87\x83\x93\x82\xF0\x83^\x81[\x83Q\x83b\x83g\x82Ƃ\xB7\x82\xE9\x8Fꍇ\x82\xCD - // 8 \x83|\x83C\x83\x93\x83g MS Shell Dlg \x8B[\x8E\x97\x83t\x83H\x83\x93\x83g\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7 - // MS Sans Serif \x82ɂ\xBB\x82ꂼ\x82\xEA\x83}\x83b\x83s\x83\x93\x83O\x82\xB3\x82\xEA\x82܂\xB7 - strcpy(logfont.lfFaceName, "MS Shell Dlg"); - logfont.lfCharSet = 0; - logfont.lfHeight = -8; - logfont.lfWidth = 0; - } - result = TRUE; - } - - if (result) { - TTSetDlgFontA(logfont.lfFaceName, logfont.lfHeight, logfont.lfCharSet); - } else { - TTSetDlgFont(NULL, 0, 0); - } -} - static void PASCAL TTXInit(PTTSet ts, PComVar cv) { pvar->settings = *pvar->ts_SSH; @@ -262,7 +217,7 @@ pvar->err_msg = NULL; init_TTSSH(pvar); - _SetDialogFont(ts->UILanguageFile); + SetDialogFont("TTSSH", ts->UILanguageFile); } static void normalize_generic_order(char *buf, char default_strings[], int default_strings_len) @@ -280,7 +235,7 @@ } // \x8Ew\x92肳\x82ꂽ\x95\xB6\x8E\x9A\x97\xF1\x82𑖍\xB8\x82\xB5\x81A\x8B\x96\x89\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x95\xB6\x8E\x9A\x81A\x8Fd\x95\xA1\x82\xB7\x82镶\x8E\x9A\x82͍폜\x82\xB7\x82\xE9\x81B - // + // // ex. (i=5 \x82̕\xB6\x8E\x9A\x82\xF0\x8D폜\x82\xB7\x82\xE9) // i=012345 // >:=9<87;A@?B3026(\0) @@ -288,7 +243,7 @@ // <------------> // \x81\xAB // >:=9<7;A@?B3026(\0) - // + // for (i = 0; buf[i] != 0; i++) { int num = buf[i] - '0'; @@ -308,7 +263,7 @@ } // \x8Ew\x92肳\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x95\xB6\x8E\x9A\x82\xAA\x82\xA0\x82\xEA\x82Adisabled line\x82̒\xBC\x91O\x82ɑ}\x93\xFC\x82\xB7\x82\xE9\x81B - // + // // ex. (Z\x82\xF0\x91}\x93\xFC\x82\xB7\x82\xE9) // k // >:=9<87;A@?B3026(\0) @@ -318,7 +273,7 @@ // >:=9<87;A@?B30026(\0) // \x81\xAB k // >:=9<87;A@?B3Z026(\0) - // + // for (j = 0; j < default_strings_len && default_strings[j] != 0; j++) { int num = default_strings[j]; @@ -1582,7 +1537,7 @@ DlgHostFont = NULL; } #endif - + // SetFocus()\x82Ńt\x83H\x81[\x83J\x83X\x82\xF0\x82\xA0\x82킹\x82\xBD\x8Fꍇ\x81AFALSE\x82\xF0\x95Ԃ\xB7\x95K\x97v\x82\xAA\x82\xA0\x82\xE9\x81B // TRUE\x82\xF0\x95Ԃ\xB7\x82ƁATABSTOP\x91Ώۂ̈\xEA\x94Ԃ͂\xB6\x82߂̃R\x83\x93\x83g\x83\x8D\x81[\x83\x8B\x82\xAA\x91I\x82\xEA\x82\xE9\x81B // (2004.11.23 yutaka) @@ -1898,7 +1853,7 @@ } cur = start; - while (next = GetParam(option, opt_len, cur)) { + while (next = GetParam(option, opt_len, cur)) { DequoteParam(option, opt_len, option); action = OPTION_NONE; @@ -2533,7 +2488,7 @@ static WNDPROC g_defAboutDlgEditWndProc; // Edit Control\x82̃T\x83u\x83N\x83\x89\x83X\x89\xBB\x97p static int g_deltaSumAboutDlg = 0; // \x83}\x83E\x83X\x83z\x83C\x81[\x83\x8B\x82\xCCDelta\x97ݐϗp -static LRESULT CALLBACK AboutDlgEditWindowProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +static LRESULT CALLBACK AboutDlgEditWindowProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { WORD keys; short delta; @@ -3688,8 +3643,8 @@ RSA *rsa; DSA *dsa; EC_KEY *ecdsa; - unsigned char *ed25519_sk; - unsigned char *ed25519_pk; + unsigned char *ed25519_sk; + unsigned char *ed25519_pk; ssh_keytype type; } ssh_private_key_t; @@ -3699,8 +3654,8 @@ RSA *rsa; DSA *dsa; EC_KEY *ecdsa; - unsigned char *ed25519_sk; - unsigned char *ed25519_pk; + unsigned char *ed25519_sk; + unsigned char *ed25519_pk; ssh_keytype type; } ssh_public_key_t; @@ -3765,7 +3720,7 @@ public_key.rsa = pub; break; } - + case KEY_DSA: { DSA *priv = NULL; @@ -4123,7 +4078,7 @@ _snprintf_s(recvdir, sizeof(recvdir), _TRUNCATE, "%s", pvar->ts->FileDir); } SetDlgItemTextA(dlg, IDC_RECVFILE_TO, recvdir); - + #ifdef SFTP_DEBUG ShowWindow(GetDlgItem(dlg, IDC_SFTP_TEST), SW_SHOW); #endif @@ -4350,7 +4305,7 @@ buffer_t *kdf = NULL; buffer_t *encoded = NULL; buffer_t *blob = NULL; - int blocksize, keylen, ivlen, authlen, i, n; + int blocksize, keylen, ivlen, authlen, i, n; unsigned char *key = NULL, salt[SALT_LEN]; char *kdfname = KDFNAME; EVP_CIPHER_CTX cipher_ctx; @@ -4392,7 +4347,7 @@ // \x88Í\x86\x89\xBB\x82̏\x80\x94\xF5 // TODO: OpenSSH 6.5\x82ł\xCD -Z \x83I\x83v\x83V\x83\x87\x83\x93\x82ŁA\x88Í\x86\x89\xBB\x83A\x83\x8B\x83S\x83\x8A\x83Y\x83\x80\x82\xF0\x8Ew\x92\xE8\x89\\x82\xBE\x82\xAA\x81A // \x82\xB1\x82\xB1\x82ł\xCD"AES256-CBC"\x82ɌŒ\xE8\x82Ƃ\xB7\x82\xE9\x81B - cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, + cipher_init_SSH2(&cipher_ctx, key, keylen, key + keylen, ivlen, CIPHER_ENCRYPT, get_cipher_EVP_CIPHER(cipher), 0, 0, pvar); SecureZeroMemory(key, keylen + ivlen); free(key); @@ -5285,7 +5240,7 @@ } else if (private_key.type == KEY_ED25519) { // SSH2 ED25519 save_bcrypt_private_key(buf, filename, comment, dlg, pvar, rounds); - } else { // SSH2 RSA, DSA, ECDSA + } else { // SSH2 RSA, DSA, ECDSA int len; FILE *fp; const EVP_CIPHER *cipher; @@ -5312,7 +5267,7 @@ MessageBox(dlg, uimsg1, uimsg2, MB_OK | MB_ICONEXCLAMATION); break; } - + switch (key_type) { case KEY_RSA: // RSA ret = PEM_write_RSAPrivateKey(fp, private_key.rsa, cipher, buf, len, NULL, NULL); @@ -5459,7 +5414,7 @@ static void _dquote_string(char *str, char *dst, int dst_len) { int i, len, n; - + len = strlen(str); n = 0; for (i = 0 ; i < len ; i++) {