Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2992 by maya, Wed Aug 8 16:04:09 2007 UTC revision 2994 by maya, Mon Aug 13 22:30:03 2007 UTC
# Line 88  static HICON SecureLargeIcon = NULL; Line 88  static HICON SecureLargeIcon = NULL;
88  static HICON SecureSmallIcon = NULL;  static HICON SecureSmallIcon = NULL;
89  #endif  #endif
90    
 #ifndef NO_I18N  
91  static HFONT DlgHostFont;  static HFONT DlgHostFont;
92  static HFONT DlgAboutFont;  static HFONT DlgAboutFont;
93  static HFONT DlgSetupFont;  static HFONT DlgSetupFont;
94  static HFONT DlgKeygenFont;  static HFONT DlgKeygenFont;
 #endif  
95    
96  static TInstVar FAR *pvar;  static TInstVar FAR *pvar;
97    
# Line 762  void notify_nonfatal_error(PTInstVar pva Line 760  void notify_nonfatal_error(PTInstVar pva
760                  // 未接続の状態では通知先ウィンドウがないので、デスクトップをオーナーとして                  // 未接続の状態では通知先ウィンドウがないので、デスクトップをオーナーとして
761                  // メッセージボックスを出現させる。(2006.6.11 yutaka)                  // メッセージボックスを出現させる。(2006.6.11 yutaka)
762                  if (pvar->NotificationWindow == NULL) {                  if (pvar->NotificationWindow == NULL) {
763  #ifndef NO_I18N                          UTIL_get_lang_msg("MSG_ERROR_NONFAITAL", pvar,
764                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Tera Term: not fatal error", _TRUNCATE);                                                            "Tera Term: not fatal error");
                         UTIL_get_lang_msg("MSG_ERROR_NONFAITAL", pvar);  
765                          MessageBox(NULL, msg, pvar->ts->UIMsg, MB_OK|MB_ICONINFORMATION);                          MessageBox(NULL, msg, pvar->ts->UIMsg, MB_OK|MB_ICONINFORMATION);
 #else  
                         MessageBox(NULL, msg, "Tera Term: not fatal error", MB_OK|MB_ICONINFORMATION);  
 #endif  
766                          msg[0] = '\0';                          msg[0] = '\0';
767    
768                  } else {                  } else {
# Line 906  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 900  static BOOL CALLBACK TTXHostDlg(HWND dlg
900          char ComPortTable[MAXCOMPORT];          char ComPortTable[MAXCOMPORT];
901          int comports;          int comports;
902          BOOL Ok;          BOOL Ok;
 #ifndef NO_I18N  
903          LOGFONT logfont;          LOGFONT logfont;
904          HFONT font;          HFONT font;
905  #endif          char uimsg[MAX_UIMSG];
906    
907          GET_VAR();          GET_VAR();
908    
# Line 918  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 911  static BOOL CALLBACK TTXHostDlg(HWND dlg
911                  GetHNRec = (PGetHNRec) lParam;                  GetHNRec = (PGetHNRec) lParam;
912                  SetWindowLong(dlg, DWL_USER, lParam);                  SetWindowLong(dlg, DWL_USER, lParam);
913    
914  #ifndef NO_I18N                  GetWindowText(dlg, uimsg, sizeof(uimsg));
915                  GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TITLE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TITLE", pvar);  
916                  SetWindowText(dlg, pvar->ts->UIMsg);                  SetWindowText(dlg, pvar->ts->UIMsg);
917                    GetDlgItemText(dlg, IDC_HOSTNAMELABEL, uimsg, sizeof(uimsg));
918                  GetDlgItemText(dlg, IDC_HOSTNAMELABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_HOST", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_HOST", pvar);  
919                  SetDlgItemText(dlg, IDC_HOSTNAMELABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTNAMELABEL, pvar->ts->UIMsg);
920                    GetDlgItemText(dlg, IDC_HISTORY, uimsg, sizeof(uimsg));
921                  GetDlgItemText(dlg, IDC_HISTORY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_HISTORY", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_HISTORY", pvar);  
922                  SetDlgItemText(dlg, IDC_HISTORY, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HISTORY, pvar->ts->UIMsg);
923                    GetDlgItemText(dlg, IDC_SERVICELABEL, uimsg, sizeof(uimsg));
924                  GetDlgItemText(dlg, IDC_SERVICELABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_SERVICE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_SERVICE", pvar);  
925                  SetDlgItemText(dlg, IDC_SERVICELABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_SERVICELABEL, pvar->ts->UIMsg);
926                    GetDlgItemText(dlg, IDC_HOSTOTHER, uimsg, sizeof(uimsg));
927                  GetDlgItemText(dlg, IDC_HOSTOTHER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_OTHER", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_OTHER", pvar);  
928                  SetDlgItemText(dlg, IDC_HOSTOTHER, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTOTHER, pvar->ts->UIMsg);
929                    GetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, uimsg, sizeof(uimsg));
930                  GetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_PORT", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_PORT", pvar);  
931                  SetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, pvar->ts->UIMsg);
932                    GetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, uimsg, sizeof(uimsg));
933                  GetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_SSHVERSION", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_SSHVERSION", pvar);  
934                  SetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, pvar->ts->UIMsg);
935                    GetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, uimsg, sizeof(uimsg));
936                  GetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_TCPIP_PROTOCOL", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_TCPIP_PROTOCOL", pvar);  
937                  SetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, pvar->ts->UIMsg);
938                    GetDlgItemText(dlg, IDC_HOSTSERIAL, uimsg, sizeof(uimsg));
939                  GetDlgItemText(dlg, IDC_HOSTSERIAL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_SERIAL", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_SERIAL", pvar);  
940                  SetDlgItemText(dlg, IDC_HOSTSERIAL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTSERIAL, pvar->ts->UIMsg);
941                    GetDlgItemText(dlg, IDC_HOSTCOMLABEL, uimsg, sizeof(uimsg));
942                  GetDlgItemText(dlg, IDC_HOSTCOMLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_SERIAL_PORT", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_SERIAL_PORT", pvar);  
943                  SetDlgItemText(dlg, IDC_HOSTCOMLABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTCOMLABEL, pvar->ts->UIMsg);
944                    GetDlgItemText(dlg, IDC_HOSTHELP, uimsg, sizeof(uimsg));
945                  GetDlgItemText(dlg, IDC_HOSTHELP, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_HOST_HELP", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_HOST_HELP", pvar);  
946                  SetDlgItemText(dlg, IDC_HOSTHELP, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_HOSTHELP, pvar->ts->UIMsg);
947                    GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg));
948                  GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("BTN_OK", pvar, uimsg);
                 UTIL_get_lang_msg("BTN_OK", pvar);  
949                  SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);
950                    GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg));
951                  GetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg);
                 UTIL_get_lang_msg("BTN_CANCEL", pvar);  
952                  SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
 #endif  
953    
954                  // ホストヒストリのチェックボックスを追加 (2005.10.21 yutaka)                  // ホストヒストリのチェックボックスを追加 (2005.10.21 yutaka)
955                  if (pvar->ts->HistoryList > 0) {                  if (pvar->ts->HistoryList > 0) {
# Line 1103  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1082  static BOOL CALLBACK TTXHostDlg(HWND dlg
1082                          SetFocus(hwnd);                          SetFocus(hwnd);
1083                  }                  }
1084    
 #ifndef NO_I18N  
1085                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);
1086                  GetObject(font, sizeof(LOGFONT), &logfont);                  GetObject(font, sizeof(LOGFONT), &logfont);
1087                  if (UTIL_get_lang_font("DLG_SYSTEM_FONT", dlg, &logfont, &DlgHostFont, pvar)) {                  if (UTIL_get_lang_font("DLG_SYSTEM_FONT", dlg, &logfont, &DlgHostFont, pvar)) {
# Line 1131  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1109  static BOOL CALLBACK TTXHostDlg(HWND dlg
1109                  else {                  else {
1110                          DlgHostFont = NULL;                          DlgHostFont = NULL;
1111                  }                  }
 #endif  
1112    
1113                  // SetFocus()でフォーカスをあわせた場合、FALSEを返す必要がある。                  // SetFocus()でフォーカスをあわせた場合、FALSEを返す必要がある。
1114                  // TRUEを返すと、TABSTOP対象の一番はじめのコントロールが選ばれる。                  // TRUEを返すと、TABSTOP対象の一番はじめのコントロールが選ばれる。
# Line 1152  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1129  static BOOL CALLBACK TTXHostDlg(HWND dlg
1129                                          if (Ok) {                                          if (Ok) {
1130                                                  GetHNRec->TCPPort = i;                                                  GetHNRec->TCPPort = i;
1131                                          } else {                                          } else {
1132  #ifndef NO_I18N                                                  UTIL_get_lang_msg("MSG_TCPPORT_NAN_ERROR", pvar,
1133                                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "The TCP port must be a number.", _TRUNCATE);                                                                                    "The TCP port must be a number.");
                                                 UTIL_get_lang_msg("MSG_TCPPORT_NAN_ERROR", pvar);  
1134                                                  MessageBox(dlg, pvar->ts->UIMsg,                                                  MessageBox(dlg, pvar->ts->UIMsg,
1135                                                                     "Teraterm", MB_OK | MB_ICONEXCLAMATION);                                                                     "Teraterm", MB_OK | MB_ICONEXCLAMATION);
 #else  
                                                 MessageBox(dlg, "The TCP port must be a number.",  
                                                                    "Teraterm", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
1136                                                  return TRUE;                                                  return TRUE;
1137                                          }                                          }
1138  #ifndef NO_INET6  #ifndef NO_INET6
# Line 1221  static BOOL CALLBACK TTXHostDlg(HWND dlg Line 1193  static BOOL CALLBACK TTXHostDlg(HWND dlg
1193                          }                          }
1194                          EndDialog(dlg, 1);                          EndDialog(dlg, 1);
1195    
 #ifndef NO_I18N  
1196                          if (DlgHostFont != NULL) {                          if (DlgHostFont != NULL) {
1197                                  DeleteObject(DlgHostFont);                                  DeleteObject(DlgHostFont);
1198                          }                          }
 #endif  
1199    
1200                          return TRUE;                          return TRUE;
1201    
1202                  case IDCANCEL:                  case IDCANCEL:
1203                          EndDialog(dlg, 0);                          EndDialog(dlg, 0);
1204    
 #ifndef NO_I18N  
1205                          if (DlgHostFont != NULL) {                          if (DlgHostFont != NULL) {
1206                                  DeleteObject(DlgHostFont);                                  DeleteObject(DlgHostFont);
1207                          }                          }
1208  #endif  
                           
1209                          return TRUE;                          return TRUE;
1210    
1211                  case IDC_HOSTTCPIP:                  case IDC_HOSTTCPIP:
# Line 1422  static int parse_option(PTInstVar pvar, Line 1390  static int parse_option(PTInstVar pvar,
1390                          } else {                          } else {
1391                                  char buf[1024];                                  char buf[1024];
1392    
1393  #ifndef NO_I18N                                  UTIL_get_lang_msg("MSG_UNKNOWN_OPTION_ERROR", pvar,
1394                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unrecognized command-line option: %s", _TRUNCATE);                                                                    "Unrecognized command-line option: %s");
                                 UTIL_get_lang_msg("MSG_UNKNOWN_OPTION_ERROR", pvar);  
1395                                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, option);                                  _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, option);
 #else  
                                 _snprintf(buf, sizeof(buf),  
                                                   "Unrecognized command-line option: %s", option);  
 #endif  
                                 buf[sizeof(buf) - 1] = 0;  
1396    
1397                                  MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION);
1398                          }                          }
# Line 1676  static void PASCAL FAR TTXModifyMenu(HME Line 1638  static void PASCAL FAR TTXModifyMenu(HME
1638          GET_VAR();          GET_VAR();
1639    
1640          /* inserts before ID_HELP_ABOUT */          /* inserts before ID_HELP_ABOUT */
1641  #ifndef NO_I18N          UTIL_get_lang_msg("MENU_ABOUT", pvar, "About &TTSSH...");
         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "About &TTSSH...", _TRUNCATE);  
         UTIL_get_lang_msg("MENU_ABOUT", pvar);  
1642          insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, pvar->ts->UIMsg);
 #else  
         insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU,  
                                                  "About &TTSSH...");  
 #endif  
1643    
1644          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1645  #ifndef NO_I18N          UTIL_get_lang_msg("MENU_SSH", pvar, "SS&H...");
         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SS&H...", _TRUNCATE);  
         UTIL_get_lang_msg("MENU_SSH", pvar);  
1646          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, pvar->ts->UIMsg);
 #else  
         insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU,  
                                                  "SS&H...");  
 #endif  
1647          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1648  #ifndef NO_I18N          UTIL_get_lang_msg("MENU_SSH_AUTH", pvar, "SSH &Authentication...");
         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH &Authentication...", _TRUNCATE);  
         UTIL_get_lang_msg("MENU_SSH_AUTH", pvar);  
1649          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, pvar->ts->UIMsg);
 #else  
         insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU,  
                                                  "SSH &Authentication...");  
 #endif  
1650          /* inserts before ID_SETUP_TCPIP */          /* inserts before ID_SETUP_TCPIP */
1651  #ifndef NO_I18N          UTIL_get_lang_msg("MENU_SSH_FORWARD", pvar, "SSH F&orwarding...");
         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH F&orwarding...", _TRUNCATE);  
         UTIL_get_lang_msg("MENU_SSH_FORWARD", pvar);  
1652          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, pvar->ts->UIMsg);
1653  #else          UTIL_get_lang_msg("MENU_SSH_KEYGEN", pvar, "SSH KeyGe&nerator...");
         insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU,  
                                                  "SSH F&orwarding...");  
 #endif  
   
 #ifndef NO_I18N  
         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH KeyGe&nerator...", _TRUNCATE);  
         UTIL_get_lang_msg("MENU_SSH_KEYGEN", pvar);  
1654          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, pvar->ts->UIMsg);          insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, pvar->ts->UIMsg);
 #else  
         insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU,  
                                                  "SSH KeyGenerator...");  
 #endif  
1655  }  }
1656    
1657  static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg)  static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg)
# Line 1796  static void init_about_dlg(PTInstVar pva Line 1727  static void init_about_dlg(PTInstVar pva
1727  {  {
1728          char buf[1024];          char buf[1024];
1729          int a, b, c, d;          int a, b, c, d;
1730                    char uimsg[MAX_UIMSG];
 #ifndef NO_I18N  
         GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));  
         UTIL_get_lang_msg("DLG_ABOUT_TITLE", pvar);  
         SetWindowText(dlg, pvar->ts->UIMsg);  
1731    
1732          GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          GetWindowText(dlg, uimsg, sizeof(uimsg));
1733          UTIL_get_lang_msg("BTN_OK", pvar);          UTIL_get_lang_msg("DLG_ABOUT_TITLE", pvar, uimsg);
1734            SetWindowText(dlg, pvar->ts->UIMsg);
1735            GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg));
1736            UTIL_get_lang_msg("BTN_OK", pvar, uimsg);
1737          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);
 #endif  
1738                    
1739          // TTSSHのバージョンを設定する (2005.2.28 yutaka)          // TTSSHのバージョンを設定する (2005.2.28 yutaka)
1740          get_file_version("ttxssh.dll", &a, &b, &c, &d);          get_file_version("ttxssh.dll", &a, &b, &c, &d);
# Line 1834  static void init_about_dlg(PTInstVar pva Line 1763  static void init_about_dlg(PTInstVar pva
1763          if (pvar->socket != INVALID_SOCKET) {          if (pvar->socket != INVALID_SOCKET) {
1764                  if (SSHv1(pvar)) {                  if (SSHv1(pvar)) {
1765                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));
1766  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server ID: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);  
1767                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Server ID: ", buf);  
 #endif  
1768                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
1769  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Using protocol: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);  
1770                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Using protocol: ", buf);  
 #endif  
1771                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
1772  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Encryption: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);  
1773                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Encryption: ", buf);  
 #endif  
1774                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
1775  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server keys: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);  
1776                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Server keys: ", buf);  
 #endif  
1777                          AUTH_get_auth_info(pvar, buf, sizeof(buf));                          AUTH_get_auth_info(pvar, buf, sizeof(buf));
1778  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Authentication: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);  
1779                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Authentication: ", buf);  
 #endif  
1780                          SSH_get_compression_info(pvar, buf, sizeof(buf));                          SSH_get_compression_info(pvar, buf, sizeof(buf));
1781  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Compression: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);  
1782                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Compression: ", buf);  
 #endif  
1783    
1784                  } else { // SSH2                  } else { // SSH2
1785                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));                          SSH_get_server_ID_info(pvar, buf, sizeof(buf));
1786  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server ID: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar);  
1787                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1788  #else                          UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar, "Client ID: ");
                         append_about_text(dlg, "Server ID: ", buf);  
 #endif  
   
 #ifndef NO_I18N  
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Client ID: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar);  
1789                          append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string);                          append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string);
 #else  
                         append_about_text(dlg, "Client ID: ", pvar->client_version_string);  
 #endif  
1790    
1791                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));                          SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
1792  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Using protocol: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar);  
1793                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Using protocol: ", buf);  
 #endif  
1794    
1795                          if (pvar->kex_type == KEX_DH_GRP1_SHA1) {                          if (pvar->kex_type == KEX_DH_GRP1_SHA1) {
1796                                  strncpy_s(buf, sizeof(buf), KEX_DH1, _TRUNCATE);                                  strncpy_s(buf, sizeof(buf), KEX_DH1, _TRUNCATE);
# Line 1923  static void init_about_dlg(PTInstVar pva Line 1806  static void init_about_dlg(PTInstVar pva
1806                          } else {                          } else {
1807                                  strncpy_s(buf, sizeof(buf), "ssh-rsa", _TRUNCATE);                                  strncpy_s(buf, sizeof(buf), "ssh-rsa", _TRUNCATE);
1808                          }                          }
1809  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar, "Host Key: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Host Key: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar);  
1810                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Host Key: ", buf);  
 #endif  
1811    
1812                          // add HMAC algorithm (2004.12.17 yutaka)                          // add HMAC algorithm (2004.12.17 yutaka)
1813                          buf[0] = '\0';                          buf[0] = '\0';
# Line 1938  static void init_about_dlg(PTInstVar pva Line 1816  static void init_about_dlg(PTInstVar pva
1816                          } else if (pvar->ctos_hmac == HMAC_MD5) {                          } else if (pvar->ctos_hmac == HMAC_MD5) {
1817                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);
1818                          }                          }
1819  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server, ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), " to server, ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar);  
1820                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
 #else  
                         strcat(buf, " to server, ");  
 #endif  
1821                          if (pvar->stoc_hmac == HMAC_SHA1) {                          if (pvar->stoc_hmac == HMAC_SHA1) {
1822                                  strncat_s(buf, sizeof(buf), "hmac-sha1", _TRUNCATE);                                  strncat_s(buf, sizeof(buf), "hmac-sha1", _TRUNCATE);
1823                          } else if (pvar->stoc_hmac == HMAC_MD5) {                          } else if (pvar->stoc_hmac == HMAC_MD5) {
1824                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);                                  strncat_s(buf, sizeof(buf), "hmac-md5", _TRUNCATE);
1825                          }                          }
1826  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), " from server", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar);  
1827                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);                          strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
 #else  
                         strcat(buf, " from server");  
 #endif  
1828                          append_about_text(dlg, "HMAC: ", buf);                          append_about_text(dlg, "HMAC: ", buf);
1829    
1830                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));                          CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
1831  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Encryption: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar);  
1832                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Encryption: ", buf);  
 #endif  
1833                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));                          CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
1834  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Server keys: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar);  
1835                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
1836  #else  
                         append_about_text(dlg, "Server keys: ", buf);  
 #endif  
1837                          AUTH_get_auth_info(pvar, buf, sizeof(buf));                          AUTH_get_auth_info(pvar, buf, sizeof(buf));
1838  #ifndef NO_I18N                          UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication: ");
                         strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Authentication: ", _TRUNCATE);  
                         UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar);  
1839                          append_about_text(dlg, pvar->ts->UIMsg, buf);                          append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                         append_about_text(dlg, "Authentication: ", buf);  
 #endif  
1840    
1841                          SSH_get_compression_info(pvar, buf, sizeof(buf));                          SSH_get_compression_info(pvar, buf, sizeof(buf));
1842                          if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka)                          if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka)
1843  #ifndef NO_I18N                                  UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar, "Delayed Compression: ");
                                 strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Delayed Compression: ", _TRUNCATE);  
                                 UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar);  
1844                                  append_about_text(dlg, pvar->ts->UIMsg, buf);                                  append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                                 append_about_text(dlg, "Delayed Compression: ", buf);  
 #endif  
1845                          } else {                          } else {
1846  #ifndef NO_I18N                                  UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression: ");
                                 strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Compression: ", _TRUNCATE);  
                                 UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar);  
1847                                  append_about_text(dlg, pvar->ts->UIMsg, buf);                                  append_about_text(dlg, pvar->ts->UIMsg, buf);
 #else  
                                 append_about_text(dlg, "Compression: ", buf);  
 #endif  
1848                          }                          }
   
1849                  }                  }
1850          }          }
1851  }  }
# Line 2010  static void init_about_dlg(PTInstVar pva Line 1853  static void init_about_dlg(PTInstVar pva
1853  static BOOL CALLBACK TTXAboutDlg(HWND dlg, UINT msg, WPARAM wParam,  static BOOL CALLBACK TTXAboutDlg(HWND dlg, UINT msg, WPARAM wParam,
1854                                                                   LPARAM lParam)                                                                   LPARAM lParam)
1855  {  {
 #ifndef NO_I18N  
1856          LOGFONT logfont;          LOGFONT logfont;
1857          HFONT font;          HFONT font;
1858  #endif  
1859          switch (msg) {          switch (msg) {
1860          case WM_INITDIALOG:          case WM_INITDIALOG:
 #ifndef NO_I18N  
1861                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);
1862                  GetObject(font, sizeof(LOGFONT), &logfont);                  GetObject(font, sizeof(LOGFONT), &logfont);
1863                  if (UTIL_get_lang_font("DLG_TAHOMA_FONT", dlg, &logfont, &DlgAboutFont, pvar)) {                  if (UTIL_get_lang_font("DLG_TAHOMA_FONT", dlg, &logfont, &DlgAboutFont, pvar)) {
# Line 2034  static BOOL CALLBACK TTXAboutDlg(HWND dl Line 1875  static BOOL CALLBACK TTXAboutDlg(HWND dl
1875                  else {                  else {
1876                          DlgAboutFont = NULL;                          DlgAboutFont = NULL;
1877                  }                  }
 #endif  
1878                  init_about_dlg((PTInstVar) lParam, dlg);                  init_about_dlg((PTInstVar) lParam, dlg);
1879                  return TRUE;                  return TRUE;
1880          case WM_COMMAND:          case WM_COMMAND:
1881                  switch (LOWORD(wParam)) {                  switch (LOWORD(wParam)) {
1882                  case IDOK:                  case IDOK:
1883                          EndDialog(dlg, 1);                          EndDialog(dlg, 1);
 #ifndef NO_I18N  
1884                          if (DlgAboutFont != NULL) {                          if (DlgAboutFont != NULL) {
1885                                  DeleteObject(DlgAboutFont);                                  DeleteObject(DlgAboutFont);
1886                          }                          }
 #endif  
1887                          return TRUE;                          return TRUE;
1888                  case IDCANCEL:                  /* there isn't a cancel button, but other Windows                  case IDCANCEL:                  /* there isn't a cancel button, but other Windows
1889                                                                     UI things can send this message */                                                                     UI things can send this message */
1890                          EndDialog(dlg, 0);                          EndDialog(dlg, 0);
 #ifndef NO_I18N  
1891                          if (DlgAboutFont != NULL) {                          if (DlgAboutFont != NULL) {
1892                                  DeleteObject(DlgAboutFont);                                  DeleteObject(DlgAboutFont);
1893                          }                          }
 #endif  
1894                          return TRUE;                          return TRUE;
1895                  }                  }
1896                  break;                  break;
# Line 2067  static char FAR *get_cipher_name(int cip Line 1903  static char FAR *get_cipher_name(int cip
1903  {  {
1904          switch (cipher) {          switch (cipher) {
1905          case SSH_CIPHER_NONE:          case SSH_CIPHER_NONE:
1906  #ifndef NO_I18N                  UTIL_get_lang_msg("DLG_SSHSETUP_CIPHER_BORDER", pvar,
1907                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "<ciphers below this line are disabled>", _TRUNCATE);                                                    "<ciphers below this line are disabled>");
                 UTIL_get_lang_msg("DLG_SSHSETUP_CIPHER_BORDER", pvar);  
1908                  return pvar->ts->UIMsg;                  return pvar->ts->UIMsg;
 #else  
                 return "<ciphers below this line are disabled>";  
 #endif  
1909          case SSH_CIPHER_RC4:          case SSH_CIPHER_RC4:
1910                  return "RC4";                  return "RC4";
1911          case SSH_CIPHER_3DES:          case SSH_CIPHER_3DES:
# Line 2116  static void init_setup_dlg(PTInstVar pva Line 1948  static void init_setup_dlg(PTInstVar pva
1948          HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);          HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS);
1949          int i;          int i;
1950          int ch;          int ch;
1951            char uimsg[MAX_UIMSG];
1952                    
1953  #ifndef NO_I18N          GetWindowText(dlg, uimsg, sizeof(uimsg));
1954          GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_TITLE", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_TITLE", pvar);  
1955          SetWindowText(dlg, pvar->ts->UIMsg);          SetWindowText(dlg, pvar->ts->UIMsg);
1956            GetDlgItemText(dlg, IDC_COMPRESSLABEL, uimsg, sizeof(uimsg));
1957          GetDlgItemText(dlg, IDC_COMPRESSLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS", pvar);  
1958          SetDlgItemText(dlg, IDC_COMPRESSLABEL, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_COMPRESSLABEL, pvar->ts->UIMsg);
1959            GetDlgItemText(dlg, IDC_COMPRESSNONE, uimsg, sizeof(uimsg));
1960          GetDlgItemText(dlg, IDC_COMPRESSNONE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_NONE", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_NONE", pvar);  
1961          SetDlgItemText(dlg, IDC_COMPRESSNONE, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_COMPRESSNONE, pvar->ts->UIMsg);
1962            GetDlgItemText(dlg, IDC_COMPRESSHIGH, uimsg, sizeof(uimsg));
1963          GetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_HIGHEST", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_HIGHEST", pvar);  
1964          SetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg);
1965            GetDlgItemText(dlg, IDC_CIPHERORDER, uimsg, sizeof(uimsg));
1966          GetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER", pvar);  
1967          SetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg);
1968            GetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, uimsg, sizeof(uimsg));
1969          GetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_UP", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_UP", pvar);  
1970          SetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, pvar->ts->UIMsg);
1971            GetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, uimsg, sizeof(uimsg));
1972          GetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_DOWN", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_DOWN", pvar);  
1973          SetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg);
1974            GetDlgItemText(dlg, IDC_KNOWNHOSTS, uimsg, sizeof(uimsg));
1975          GetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST", pvar);  
1976          SetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg);
1977            GetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, uimsg, sizeof(uimsg));
1978          GetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RW", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RW", pvar);  
1979          SetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, pvar->ts->UIMsg);
1980            GetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, uimsg, sizeof(uimsg));
1981          GetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RO", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RO", pvar);  
1982          SetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, pvar->ts->UIMsg);
1983            GetDlgItemText(dlg, IDC_HEARTBEATLABEL, uimsg, sizeof(uimsg));
1984          GetDlgItemText(dlg, IDC_HEARTBEATLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT", pvar);  
1985          SetDlgItemText(dlg, IDC_HEARTBEATLABEL, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_HEARTBEATLABEL, pvar->ts->UIMsg);
1986            GetDlgItemText(dlg, IDC_HEARTBEATLABEL2, uimsg, sizeof(uimsg));
1987          GetDlgItemText(dlg, IDC_HEARTBEATLABEL2, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT_UNIT", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT_UNIT", pvar);  
1988          SetDlgItemText(dlg, IDC_HEARTBEATLABEL2, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_HEARTBEATLABEL2, pvar->ts->UIMsg);
1989            GetDlgItemText(dlg, IDC_NOTICEBANNER, uimsg, sizeof(uimsg));
1990          GetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));          UTIL_get_lang_msg("DLG_SSHSETUP_NOTICE", pvar, uimsg);
         UTIL_get_lang_msg("DLG_SSHSETUP_NOTICE", pvar);  
1991          SetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg);
   
1992          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "OK", _TRUNCATE);          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "OK", _TRUNCATE);
1993          UTIL_get_lang_msg("BTN_OK", pvar);          UTIL_get_lang_msg("BTN_OK", pvar, uimsg);
1994          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);
   
1995          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Cancel", _TRUNCATE);          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Cancel", _TRUNCATE);
1996          UTIL_get_lang_msg("BTN_CANCEL", pvar);          UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg);
1997          SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);          SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
 #endif  
1998                    
1999          SendMessage(compressionControl, TBM_SETRANGE, TRUE, MAKELONG(0, 9));          SendMessage(compressionControl, TBM_SETRANGE, TRUE, MAKELONG(0, 9));
2000          SendMessage(compressionControl, TBM_SETPOS, TRUE,          SendMessage(compressionControl, TBM_SETPOS, TRUE,
# Line 2400  static int get_keys_file_name(HWND paren Line 2217  static int get_keys_file_name(HWND paren
2217          params.nMaxFile = sizeof(fullname_buf);          params.nMaxFile = sizeof(fullname_buf);
2218          params.lpstrFileTitle = NULL;          params.lpstrFileTitle = NULL;
2219          params.lpstrInitialDir = NULL;          params.lpstrInitialDir = NULL;
 #ifndef NO_I18N  
2220          if (readonly) {          if (readonly) {
2221                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Choose a read-only known-hosts file to add", _TRUNCATE);                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RO_TITLE", pvar,
2222                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RO_TITLE", pvar);                                                    "Choose a read-only known-hosts file to add");
2223          }          }
2224          else {          else {
2225                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Choose a read/write known-hosts file", _TRUNCATE);                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RW_TITLE", pvar,
2226                  UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RW_TITLE", pvar);                                                    "Choose a read/write known-hosts file");
2227          }          }
2228          params.lpstrTitle = pvar->ts->UIMsg;          params.lpstrTitle = pvar->ts->UIMsg;
 #else  
         params.lpstrTitle =  
                 readonly ? "Choose a read-only known-hosts file to add" :  
                 "Choose a read/write known-hosts file";  
 #endif  
2229          params.Flags = (readonly ? OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST : 0)          params.Flags = (readonly ? OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST : 0)
2230                  | OFN_HIDEREADONLY | (!readonly ? OFN_NOREADONLYRETURN : 0);                  | OFN_HIDEREADONLY | (!readonly ? OFN_NOREADONLYRETURN : 0);
2231          params.lpstrDefExt = NULL;          params.lpstrDefExt = NULL;
# Line 2427  static int get_keys_file_name(HWND paren Line 2238  static int get_keys_file_name(HWND paren
2238    
2239                  if (err != 0) {                  if (err != 0) {
2240                          char buf[1024];                          char buf[1024];
2241  #ifndef NO_I18N                          UTIL_get_lang_msg("MSG_OPEN_FILEDLG_KNOWNHOSTS_ERROR", pvar,
2242                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display file dialog box: error %d", _TRUNCATE);                                                            "Unable to display file dialog box: error %d");
                         UTIL_get_lang_msg("MSG_OPEN_FILEDLG_KNOWNHOSTS_ERROR", pvar);  
2243                          _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, err);                          _snprintf_s(buf, sizeof(buf), _TRUNCATE, pvar->ts->UIMsg, err);
 #else  
                         _snprintf(buf, sizeof(buf),  
                                           "Cannot show file dialog box: error %d", err);  
 #endif  
                         buf[sizeof(buf) - 1] = 0;  
2244                          MessageBox(parent, buf, "TTSSH Error",                          MessageBox(parent, buf, "TTSSH Error",
2245                                             MB_OK | MB_ICONEXCLAMATION);                                             MB_OK | MB_ICONEXCLAMATION);
2246                  }                  }
# Line 2475  static void choose_read_only_file(HWND d Line 2280  static void choose_read_only_file(HWND d
2280  static BOOL CALLBACK TTXSetupDlg(HWND dlg, UINT msg, WPARAM wParam,  static BOOL CALLBACK TTXSetupDlg(HWND dlg, UINT msg, WPARAM wParam,
2281                                                                   LPARAM lParam)                                                                   LPARAM lParam)
2282  {  {
 #ifndef NO_I18N  
2283          LOGFONT logfont;          LOGFONT logfont;
2284          HFONT font;          HFONT font;
2285  #endif  
2286          switch (msg) {          switch (msg) {
2287          case WM_INITDIALOG:          case WM_INITDIALOG:
2288                  SetWindowLong(dlg, DWL_USER, lParam);                  SetWindowLong(dlg, DWL_USER, lParam);
2289                  init_setup_dlg((PTInstVar) lParam, dlg);                  init_setup_dlg((PTInstVar) lParam, dlg);
2290  #ifndef NO_I18N  
2291                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);
2292                  GetObject(font, sizeof(LOGFONT), &logfont);                  GetObject(font, sizeof(LOGFONT), &logfont);
2293                  if (UTIL_get_lang_font("DLG_TAHOMA_FONT", dlg, &logfont, &DlgSetupFont, pvar)) {                  if (UTIL_get_lang_font("DLG_TAHOMA_FONT", dlg, &logfont, &DlgSetupFont, pvar)) {
# Line 2509  static BOOL CALLBACK TTXSetupDlg(HWND dl Line 2313  static BOOL CALLBACK TTXSetupDlg(HWND dl
2313                  else {                  else {
2314                          DlgSetupFont = NULL;                          DlgSetupFont = NULL;
2315                  }                  }
2316  #endif  
2317                  return TRUE;                  return TRUE;
2318          case WM_COMMAND:          case WM_COMMAND:
2319                  switch (LOWORD(wParam)) {                  switch (LOWORD(wParam)) {
# Line 2517  static BOOL CALLBACK TTXSetupDlg(HWND dl Line 2321  static BOOL CALLBACK TTXSetupDlg(HWND dl
2321                          complete_setup_dlg((PTInstVar) GetWindowLong(dlg, DWL_USER),                          complete_setup_dlg((PTInstVar) GetWindowLong(dlg, DWL_USER),
2322                                                             dlg);                                                             dlg);
2323                          EndDialog(dlg, 1);                          EndDialog(dlg, 1);
 #ifndef NO_I18N  
2324                          if (DlgSetupFont != NULL) {                          if (DlgSetupFont != NULL) {
2325                                  DeleteObject(DlgSetupFont);                                  DeleteObject(DlgSetupFont);
2326                          }                          }
 #endif  
2327                          return TRUE;                          return TRUE;
2328                  case IDCANCEL:                  /* there isn't a cancel button, but other Windows                  case IDCANCEL:                  /* there isn't a cancel button, but other Windows
2329                                                                     UI things can send this message */                                                                     UI things can send this message */
2330                          EndDialog(dlg, 0);                          EndDialog(dlg, 0);
 #ifndef NO_I18N  
2331                          if (DlgSetupFont != NULL) {                          if (DlgSetupFont != NULL) {
2332                                  DeleteObject(DlgSetupFont);                                  DeleteObject(DlgSetupFont);
2333                          }                          }
 #endif  
2334                          return TRUE;                          return TRUE;
2335                  case IDC_SSHMOVECIPHERUP:                  case IDC_SSHMOVECIPHERUP:
2336                          move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCIPHERPREFS), -1);                          move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCIPHERPREFS), -1);
# Line 2955  static BOOL CALLBACK TTXKeyGenerator(HWN Line 2755  static BOOL CALLBACK TTXKeyGenerator(HWN
2755                                                                   LPARAM lParam)                                                                   LPARAM lParam)
2756  {  {
2757          static enum hostkey_type key_type;          static enum hostkey_type key_type;
 #ifndef NO_I18N  
2758          char uimsg[MAX_UIMSG];          char uimsg[MAX_UIMSG];
2759          LOGFONT logfont;          LOGFONT logfont;
2760          HFONT font;          HFONT font;
 #endif  
2761    
2762          switch (msg) {          switch (msg) {
2763          case WM_INITDIALOG:          case WM_INITDIALOG:
2764                  {                  {
2765  #ifndef NO_I18N                  GetWindowText(dlg, uimsg, sizeof(uimsg));
2766                  GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_TITLE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_TITLE", pvar);  
2767                  SetWindowText(dlg, pvar->ts->UIMsg);                  SetWindowText(dlg, pvar->ts->UIMsg);
2768                    GetDlgItemText(dlg, IDC_KEYTYPE, uimsg, sizeof(uimsg));
2769                  GetDlgItemText(dlg, IDC_KEYTYPE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_KEYTYPE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_KEYTYPE", pvar);  
2770                  SetDlgItemText(dlg, IDC_KEYTYPE, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_KEYTYPE, pvar->ts->UIMsg);
2771                    GetDlgItemText(dlg, IDC_KEY_LABEL, uimsg, sizeof(uimsg));
2772                  GetDlgItemText(dlg, IDC_KEY_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE", pvar);  
2773                  SetDlgItemText(dlg, IDC_KEY_LABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_KEY_LABEL, pvar->ts->UIMsg);
2774                    GetDlgItemText(dlg, IDC_CONFIRM_LABEL, uimsg, sizeof(uimsg));
2775                  GetDlgItemText(dlg, IDC_CONFIRM_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE2", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE2", pvar);  
2776                  SetDlgItemText(dlg, IDC_CONFIRM_LABEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_CONFIRM_LABEL, pvar->ts->UIMsg);
2777                    GetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, uimsg, sizeof(uimsg));
2778                  GetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_SAVEPUBLIC", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_SAVEPUBLIC", pvar);  
2779                  SetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, pvar->ts->UIMsg);
2780                    GetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, uimsg, sizeof(uimsg));
2781                  GetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_SAVEPRIVATE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_SAVEPRIVATE", pvar);  
2782                  SetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, pvar->ts->UIMsg);
2783                    GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg));
2784                  GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("DLG_KEYGEN_GENERATE", pvar, uimsg);
                 UTIL_get_lang_msg("DLG_KEYGEN_GENERATE", pvar);  
2785                  SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg);
2786                    GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg));
2787                  GetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg));                  UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg);
                 UTIL_get_lang_msg("BTN_CANCEL", pvar);  
2788                  SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);                  SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
2789    
2790                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);                  font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0);
# Line 3016  static BOOL CALLBACK TTXKeyGenerator(HWN Line 2806  static BOOL CALLBACK TTXKeyGenerator(HWN
2806                  else {                  else {
2807                          DlgHostFont = NULL;                          DlgHostFont = NULL;
2808                  }                  }
 #endif  
2809    
2810                  // default key type                  // default key type
2811                  SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0);                  SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0);
# Line 3062  static BOOL CALLBACK TTXKeyGenerator(HWN Line 2851  static BOOL CALLBACK TTXKeyGenerator(HWN
2851                          // don't forget to free SSH resource!                          // don't forget to free SSH resource!
2852                          free_ssh_key();                          free_ssh_key();
2853                          EndDialog(dlg, 0); // dialog close                          EndDialog(dlg, 0); // dialog close
 #ifndef NO_I18N  
2854                          if (DlgKeygenFont != NULL) {                          if (DlgKeygenFont != NULL) {
2855                                  DeleteObject(DlgKeygenFont);                                  DeleteObject(DlgKeygenFont);
2856                          }                          }
 #endif  
2857                          return TRUE;                          return TRUE;
2858    
2859                  // if radio button pressed...                  // if radio button pressed...
# Line 3098  static BOOL CALLBACK TTXKeyGenerator(HWN Line 2885  static BOOL CALLBACK TTXKeyGenerator(HWN
2885                          ofn.lStructSize = sizeof(ofn);                          ofn.lStructSize = sizeof(ofn);
2886                          ofn.hwndOwner = dlg;                          ofn.hwndOwner = dlg;
2887                          if (key_type == KEY_RSA1) {                          if (key_type == KEY_RSA1) {
2888  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA1_FILTER", pvar,
2889                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH1 RSA key(identity.pub)\\0identity.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH1 RSA key(identity.pub)\\0identity.pub\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA1_FILTER", pvar);  
2890                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
2891                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0";  
 #endif  
2892                                  strncpy_s(filename, sizeof(filename), "identity.pub", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "identity.pub", _TRUNCATE);
2893                          } else if (key_type == KEY_RSA) {                          } else if (key_type == KEY_RSA) {
2894  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA_FILTER", pvar,
2895                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 RSA key(id_rsa.pub)\\0id_rsa.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH2 RSA key(id_rsa.pub)\\0id_rsa.pub\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA_FILTER", pvar);  
2896                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
2897                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0";  
 #endif  
2898                                  strncpy_s(filename, sizeof(filename), "id_rsa.pub", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "id_rsa.pub", _TRUNCATE);
2899                          } else {                          } else {
2900  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_DSA_FILTER", pvar,
2901                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 DSA key(id_dsa.pub)\\0id_dsa.pub\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH2 DSA key(id_dsa.pub)\\0id_dsa.pub\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_DSA_FILTER", pvar);  
2902                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
2903                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0";  
 #endif  
2904                                  strncpy_s(filename, sizeof(filename), "id_dsa.pub", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "id_dsa.pub", _TRUNCATE);
2905                          }                          }
2906                          ofn.lpstrFile = filename;                          ofn.lpstrFile = filename;
2907                          ofn.nMaxFile = sizeof(filename);                          ofn.nMaxFile = sizeof(filename);
2908  #ifndef NO_I18N                          UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_TITLE", pvar,
2909                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Save public key as:", _TRUNCATE);                                                            "Save public key as:");
                         UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_TITLE", pvar);  
2910                          ofn.lpstrTitle = pvar->ts->UIMsg;                          ofn.lpstrTitle = pvar->ts->UIMsg;
 #else  
                         ofn.lpstrTitle = "Save public key as:";  
 #endif  
2911                          if (GetSaveFileName(&ofn) == 0) { // failure                          if (GetSaveFileName(&ofn) == 0) { // failure
2912                                  ret = CommDlgExtendedError();                                  ret = CommDlgExtendedError();
2913                                  break;                                  break;
# Line 3147  static BOOL CALLBACK TTXKeyGenerator(HWN Line 2918  static BOOL CALLBACK TTXKeyGenerator(HWN
2918                          // saving public key file                          // saving public key file
2919                          fp = fopen(filename, "wb");                          fp = fopen(filename, "wb");
2920                          if (fp == NULL) {                          if (fp == NULL) {
2921  #ifndef NO_I18N                                  UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar,
2922                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);                                                                    "Can't open key file");
                                 UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);  
2923                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
2924                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);                                  UTIL_get_lang_msg("MSG_ERROR", pvar, "ERROR");
                                 UTIL_get_lang_msg("MSG_ERROR", pvar);  
2925                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                                 MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
2926                                  break;                                  break;
2927                          }                          }
2928    
# Line 3245  public_error: Line 3011  public_error:
3011    
3012                          // check matching                          // check matching
3013                          if (strcmp(buf, buf_conf) != 0) {                          if (strcmp(buf, buf_conf) != 0) {
3014  #ifndef NO_I18N                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR", pvar,
3015                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Two passphrases don't match.", _TRUNCATE);                                                                    "Two passphrases don't match.");
                                 UTIL_get_lang_msg("MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR", pvar);  
3016                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3017                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);                                  UTIL_get_lang_msg("MSG_ERROR", pvar, "ERROR");
                                 UTIL_get_lang_msg("MSG_ERROR", pvar);  
3018                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                                 MessageBox(dlg, "Two passphrases don't match.", "ERROR", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3019                                  break;                                  break;
3020                          }                          }
3021    
3022                          // check empty-passphrase (this is warning level)                          // check empty-passphrase (this is warning level)
3023                          if (buf[0] == '\0') {                          if (buf[0] == '\0') {
3024  #ifndef NO_I18N                                  UTIL_get_lang_msg("MSG_SAVE_PRIVATEKEY_EMPTY_WARN", pvar,
3025                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Are you sure that you want to use a empty passphrase?", _TRUNCATE);                                                                    "Are you sure that you want to use a empty passphrase?");
                                 UTIL_get_lang_msg("MSG_SAVE_PRIVATEKEY_EMPTY_WARN", pvar);  
3026                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                  strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3027                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "WARNING", _TRUNCATE);                                  UTIL_get_lang_msg("MSG_WARNING", pvar, "WARNING");
                                 UTIL_get_lang_msg("MSG_WARNING", pvar);  
3028                                  ret = MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_YESNO | MB_ICONWARNING);                                  ret = MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_YESNO | MB_ICONWARNING);
 #else  
                                 ret = MessageBox(dlg, "Are you sure that you want to use a empty passphrase?", "WARNING", MB_YESNO | MB_ICONWARNING);  
 #endif  
3029                                  if (ret == IDNO)                                  if (ret == IDNO)
3030                                          break;                                          break;
3031                          }                          }
# Line 3281  public_error: Line 3037  public_error:
3037                          ofn.lStructSize = sizeof(ofn);                          ofn.lStructSize = sizeof(ofn);
3038                          ofn.hwndOwner = dlg;                          ofn.hwndOwner = dlg;
3039                          if (key_type == KEY_RSA1) {                          if (key_type == KEY_RSA1) {
3040  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER", pvar,
3041                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH1 RSA key(identity)\\0identity\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH1 RSA key(identity)\\0identity\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER", pvar);  
3042                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3043                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0";  
 #endif  
3044                                  strncpy_s(filename, sizeof(filename), "identity", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "identity", _TRUNCATE);
3045                          } else if (key_type == KEY_RSA) {                          } else if (key_type == KEY_RSA) {
3046  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER", pvar,
3047                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 RSA key(id_rsa)\\0id_rsa\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH2 RSA key(id_rsa)\\0id_rsa\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER", pvar);  
3048                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3049                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0";  
 #endif  
3050                                  strncpy_s(filename, sizeof(filename), "id_rsa", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "id_rsa", _TRUNCATE);
3051                          } else {                          } else {
3052  #ifndef NO_I18N                                  UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_DSA_FILTER", pvar,
3053                                  strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "SSH2 DSA key(id_dsa)\\0id_dsa\\0All Files(*.*)\\0*.*\\0\\0", _TRUNCATE);                                                                    "SSH2 DSA key(id_dsa)\\0id_dsa\\0All Files(*.*)\\0*.*\\0\\0");
                                 UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_DSA_FILTER", pvar);  
3054                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));                                  memcpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg));
3055                                  ofn.lpstrFilter = uimsg;                                  ofn.lpstrFilter = uimsg;
 #else  
                                 ofn.lpstrFilter = "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0";  
 #endif  
3056                                  strncpy_s(filename, sizeof(filename), "id_dsa", _TRUNCATE);                                  strncpy_s(filename, sizeof(filename), "id_dsa", _TRUNCATE);
3057                          }                          }
3058                          ofn.lpstrFile = filename;                          ofn.lpstrFile = filename;
3059                          ofn.nMaxFile = sizeof(filename);                          ofn.nMaxFile = sizeof(filename);
3060  #ifndef NO_I18N                          UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_TITLE", pvar,
3061                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Save private key as:", _TRUNCATE);                                                            "Save private key as:");
                         UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_TITLE", pvar);  
3062                          ofn.lpstrTitle = pvar->ts->UIMsg;                          ofn.lpstrTitle = pvar->ts->UIMsg;
 #else  
                         ofn.lpstrTitle = "Save private key as:";  
 #endif  
3063                          if (GetSaveFileName(&ofn) == 0) { // failure                          if (GetSaveFileName(&ofn) == 0) { // failure
3064                                  ret = CommDlgExtendedError();                                  ret = CommDlgExtendedError();
3065                                  break;                                  break;
# Line 3428  public_error: Line 3168  public_error:
3168                                  // saving private key file (binary mode)                                  // saving private key file (binary mode)
3169                                  fp = fopen(filename, "wb");                                  fp = fopen(filename, "wb");
3170                                  if (fp == NULL) {                                  if (fp == NULL) {
3171  #ifndef NO_I18N                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar,
3172                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);                                                                            "Can't open key file");
                                         UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);  
3173                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3174                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);                                          UTIL_get_lang_msg("MSG_ERROR", pvar, "ERROR");
                                         UTIL_get_lang_msg("MSG_ERROR", pvar);  
3175                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                                         MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3176                                          break;                                          break;
3177                                  }                                  }
3178                                  fwrite(buffer_ptr(enc), buffer_len(enc), 1, fp);                                  fwrite(buffer_ptr(enc), buffer_len(enc), 1, fp);
# Line 3463  error:; Line 3198  error:;
3198    
3199                                  fp = fopen(filename, "w");                                  fp = fopen(filename, "w");
3200                                  if (fp == NULL) {                                  if (fp == NULL) {
3201  #ifndef NO_I18N                                          UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar,
3202                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);                                                                            "Can't open key file");
                                         UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar);  
3203                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3204                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);                                          UTIL_get_lang_msg("MSG_ERROR", pvar, "ERROR");
                                         UTIL_get_lang_msg("MSG_ERROR", pvar);  
3205                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                                         MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3206                                          break;                                          break;
3207                                  }                                  }
3208    
# Line 3482  error:; Line 3212  error:;
3212                                          ret = PEM_write_DSAPrivateKey(fp, private_key.dsa, cipher, buf, len, NULL, NULL);                                          ret = PEM_write_DSAPrivateKey(fp, private_key.dsa, cipher, buf, len, NULL, NULL);
3213                                  }                                  }
3214                                  if (ret == 0) {                                  if (ret == 0) {
3215  #ifndef NO_I18N                                          UTIL_get_lang_msg("MSG_SAVE_KEY_WRITEFILE_ERROR", pvar,
3216                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Can't open key file", _TRUNCATE);                                                                            "Can't open key file");
                                         UTIL_get_lang_msg("MSG_SAVE_KEY_WRITEFILE_ERROR", pvar);  
3217                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3218                                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "ERROR", _TRUNCATE);                                          UTIL_get_lang_msg("MSG_ERROR", pvar, "ERROR");
                                         UTIL_get_lang_msg("MSG_ERROR", pvar);  
3219                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                                          MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                                         MessageBox(dlg, "Can't write key file", "ERROR", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3220                                  }                                  }
3221                                  fclose(fp);                                  fclose(fp);
3222                          }                          }
# Line 3510  error:; Line 3235  error:;
3235    
3236  static int PASCAL FAR TTXProcessCommand(HWND hWin, WORD cmd)  static int PASCAL FAR TTXProcessCommand(HWND hWin, WORD cmd)
3237  {  {
 #ifndef NO_I18N  
3238          char uimsg[MAX_UIMSG];          char uimsg[MAX_UIMSG];
3239  #endif  
3240          GET_VAR();          GET_VAR();
3241    
3242          if (pvar->fatal_error) {          if (pvar->fatal_error) {
# Line 3523  static int PASCAL FAR TTXProcessCommand( Line 3247  static int PASCAL FAR TTXProcessCommand(
3247          case ID_SSHKEYGENMENU:          case ID_SSHKEYGENMENU:
3248                  if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator,                  if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator,
3249                          (LPARAM) pvar) == -1) {                          (LPARAM) pvar) == -1) {
3250  #ifndef NO_I18N                          UTIL_get_lang_msg("MSG_CREATEWINDOW_KEYGEN_ERROR", pvar,
3251                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display Key Generator dialog box.", _TRUNCATE);                                                            "Unable to display Key Generator dialog box.");
                         UTIL_get_lang_msg("MSG_CREATEWINDOW_KEYGEN_ERROR", pvar);  
3252                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3253                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar, "TTSSH Error");
                         UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);  
3254                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                         MessageBox(hWin, "Cannot create Key Generator window.",  
                                 "TTSSH Error", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3255                  }                  }
3256                  return 1;                  return 1;
3257    
# Line 3542  static int PASCAL FAR TTXProcessCommand( Line 3260  static int PASCAL FAR TTXProcessCommand(
3260                          (hInst, MAKEINTRESOURCE(IDD_ABOUTDIALOG), hWin, TTXAboutDlg,                          (hInst, MAKEINTRESOURCE(IDD_ABOUTDIALOG), hWin, TTXAboutDlg,
3261                           (LPARAM) pvar)                           (LPARAM) pvar)
3262                          == -1) {                          == -1) {
3263  #ifndef NO_I18N                          UTIL_get_lang_msg("MSG_CREATEWINDOW_ABOUT_ERROR", pvar,
3264                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display About dialog box.", _TRUNCATE);                                                            "Unable to display About dialog box.");
                         UTIL_get_lang_msg("MSG_CREATEWINDOW_ABOUT_ERROR", pvar);  
3265                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3266                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar, "TTSSH Error");
                         UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);  
3267                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                         MessageBox(hWin, "Cannot create About box window.",  
                                            "TTSSH Error", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3268                  }                  }
3269                  return 1;                  return 1;
3270          case ID_SSHAUTH:          case ID_SSHAUTH:
# Line 3563  static int PASCAL FAR TTXProcessCommand( Line 3275  static int PASCAL FAR TTXProcessCommand(
3275                          (hInst, MAKEINTRESOURCE(IDD_SSHSETUP), hWin, TTXSetupDlg,                          (hInst, MAKEINTRESOURCE(IDD_SSHSETUP), hWin, TTXSetupDlg,
3276                           (LPARAM) pvar)                           (LPARAM) pvar)
3277                          == -1) {                          == -1) {
3278  #ifndef NO_I18N                          UTIL_get_lang_msg("MSG_CREATEWINDOW_SETUP_ERROR", pvar,
3279                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "Unable to display TTSSH Setup dialog box.", _TRUNCATE);                                                            "Unable to display TTSSH Setup dialog box.");
                         UTIL_get_lang_msg("MSG_CREATEWINDOW_SETUP_ERROR", pvar);  
3280                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);                          strncpy_s(uimsg, sizeof(uimsg), pvar->ts->UIMsg, _TRUNCATE);
3281                          strncpy_s(pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg), "TTSSH Error", _TRUNCATE);                          UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar, "TTSSH Error");
                         UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar);  
3282                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);                          MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION);
 #else  
                         MessageBox(hWin, "Cannot create TTSSH Setup window.",  
                                            "TTSSH Error", MB_OK | MB_ICONEXCLAMATION);  
 #endif  
3283                  }                  }
3284                  return 1;                  return 1;
3285          case ID_SSHAUTHSETUPMENU:          case ID_SSHAUTHSETUPMENU:
# Line 3888  int CALLBACK LibMain(HANDLE hInstance, W Line 3594  int CALLBACK LibMain(HANDLE hInstance, W
3594    
3595  /*  /*
3596   * $Log: not supported by cvs2svn $   * $Log: not supported by cvs2svn $
3597     * Revision 1.65  2007/08/08 16:04:09  maya
3598     * 安全な関数を使用するように変更した。
3599     *
3600   * Revision 1.64  2007/07/23 14:23:36  maya   * Revision 1.64  2007/07/23 14:23:36  maya
3601   * シリアル接続のCOM最大ポートを200まで拡張した。   * シリアル接続のCOM最大ポートを200まで拡張した。
3602   *   *

Legend:
Removed from v.2992  
changed lines
  Added in v.2994

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26