[Ttssh2-commit] [6135] About TTSSH と Hostkey rotation ダイアログのテキスト追加方法を変更

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2015年 11月 15日 (日) 22:27:58 JST


Revision: 6135
          http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6135
Author:   maya
Date:     2015-11-15 22:27:58 +0900 (Sun, 15 Nov 2015)
Log Message:
-----------
About TTSSH と Hostkey rotation ダイアログのテキスト追加方法を変更
  EM_REPLACESEL で細かく追加するのをやめ、WM_SETTEXT でまとめてセットする

Modified Paths:
--------------
    trunk/installer/release/lang/English.lng
    trunk/installer/release/lang/French.lng
    trunk/installer/release/lang/German.lng
    trunk/installer/release/lang/Japanese.lng
    trunk/installer/release/lang/Korean.lng
    trunk/installer/release/lang/Russian.lng
    trunk/installer/release/lang/Simplified Chinese.lng
    trunk/installer/release/lang/Traditional Chinese.lng
    trunk/ttssh2/ttxssh/key.c
    trunk/ttssh2/ttxssh/ttxssh.c

-------------- next part --------------
Modified: trunk/installer/release/lang/English.lng
===================================================================
--- trunk/installer/release/lang/English.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/English.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -515,7 +515,9 @@
 DLG_ABOUT_AUTH=Authentication:
 DLG_ABOUT_COMP=Compression:
 DLG_ABOUT_CLIENTID=Client ID:
+DLG_ABOUT_KEX=Key exchange algorithm:
 DLG_ABOUT_HOSTKEY=Host Key:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" to server,"
 DLG_ABOUT_FROMSERVER=" from server"
 DLG_ABOUT_COMPDELAY=Delayed Compression:

Modified: trunk/installer/release/lang/French.lng
===================================================================
--- trunk/installer/release/lang/French.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/French.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -516,7 +516,9 @@
 DLG_ABOUT_AUTH=Authentication:
 DLG_ABOUT_COMP=Compression:
 DLG_ABOUT_CLIENTID=ID Client:
+DLG_ABOUT_KEX=Key exchange algorithm:
 DLG_ABOUT_HOSTKEY=Cl\xE9 de l'h\xF4te:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" vers le serveur,"
 DLG_ABOUT_FROMSERVER=" depuis le serveur"
 DLG_ABOUT_COMPDELAY=Compression retard\xE9e:

Modified: trunk/installer/release/lang/German.lng
===================================================================
--- trunk/installer/release/lang/German.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/German.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -516,7 +516,9 @@
 DLG_ABOUT_AUTH=Authentifikation:
 DLG_ABOUT_COMP=Kompression:
 DLG_ABOUT_CLIENTID=Client-ID:
+DLG_ABOUT_KEX=Key exchange algorithm:
 DLG_ABOUT_HOSTKEY=Client-Schl\xFCssel:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" zum Server,"
 DLG_ABOUT_FROMSERVER=" vom Server"
 DLG_ABOUT_COMPDELAY=Delayed Compression:

Modified: trunk/installer/release/lang/Japanese.lng
===================================================================
--- trunk/installer/release/lang/Japanese.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/Japanese.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -515,7 +515,9 @@
 DLG_ABOUT_AUTH=\x94F\x8Fؕ\xFB\x8E\xAE:
 DLG_ABOUT_COMP=\x88\xB3\x8Fk\x8F\xF3\x8B\xB5:
 DLG_ABOUT_CLIENTID=\x83N\x83\x89\x83C\x83A\x83\x93\x83gID:
+DLG_ABOUT_KEX=\x8C\xAE\x8C\xF0\x8A\xB7\x83A\x83\x8B\x83S\x83\x8A\x83Y\x83\x80:
 DLG_ABOUT_HOSTKEY=\x83z\x83X\x83g\x8C\xAE:
+DLG_ABOUT_MAC=MAC\x83A\x83\x8B\x83S\x83\x8A\x83Y\x83\x80:
 DLG_ABOUT_TOSERVER=" TTSSH\x81\xA8\x83T\x81[\x83o,"
 DLG_ABOUT_FROMSERVER=" \x83T\x81[\x83o\x81\xA8TTSSH"
 DLG_ABOUT_COMPDELAY=\x92x\x89\x84\x88\xB3\x8Fk\x8F\xF3\x8B\xB5:

Modified: trunk/installer/release/lang/Korean.lng
===================================================================
--- trunk/installer/release/lang/Korean.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/Korean.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -516,7 +516,9 @@
 DLG_ABOUT_AUTH=\xC0\xCE\xC1\xF5:
 DLG_ABOUT_COMP=\xBE\xD0\xC3\xE0:
 DLG_ABOUT_CLIENTID=Ŭ\xB6\xF3\xC0̾\xF0Ʈ ID:
+DLG_ABOUT_KEX=Key exchange algorithm:
 DLG_ABOUT_HOSTKEY=ȣ\xBD\xBAƮ Ű:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" \xBC\xAD\xB9\xF6\xB7\xCE,"
 DLG_ABOUT_FROMSERVER=" \xBC\xAD\xB9\xF6\xB7κ\xCE\xC5\xCD"
 DLG_ABOUT_COMPDELAY=\xC1\x{1BFB35}\xC8 \xBE\xD0\xC3\xE0:

Modified: trunk/installer/release/lang/Russian.lng
===================================================================
--- trunk/installer/release/lang/Russian.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/Russian.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -516,7 +516,9 @@
 DLG_ABOUT_AUTH=\xC0\xF3\xF2\xE5\xED\xF2\xE8\xF4\xE8\xEA\xE0\xF6\xE8\xFF:
 DLG_ABOUT_COMP=\xD1\xE6\xE0\xF2\xE8\xE5:
 DLG_ABOUT_CLIENTID=\xCA\xEB\xE8\xE5\xED\xF2 ID:
+DLG_ABOUT_KEX=Key exchange algorithm:
 DLG_ABOUT_HOSTKEY=\xCA\xEB\xFE\xF7 \xF5\xEE\xF1\xF2\xE0:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" \xEA \xF1\xE5\xF0\xE2\xE5\xF0\xF3,"
 DLG_ABOUT_FROMSERVER=" \xEE\xF2 \xF1\xE5\xF0\xE2\xE5\xF0\xE0"
 DLG_ABOUT_COMPDELAY=\xC7\xE0\xE4\xE5\xF0\xE6\xEA\xE0 \xF1\xE6\xE0\xF2\xE8\xFF:

Modified: trunk/installer/release/lang/Simplified Chinese.lng
===================================================================
--- trunk/installer/release/lang/Simplified Chinese.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/Simplified Chinese.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -508,18 +508,20 @@
 ; dlg about
 DLG_ABOUT_TITLE=\xB9\xD8\xD3\xDA TTSSH
 DLG_ABOUT_FP_HASH_ALGORITHM=Fingerprint hash algorithm:
-DLG_ABOUT_SERVERID=\xB7\xFE\xCE\xF1\xC6\xF7ID\xA3\xBA
-DLG_ABOUT_PROTOCOL=Э\xD2\xE9\xB0汾\xA3\xBA
-DLG_ABOUT_ENCRYPTION=\xBC\xD3\xC3ܷ\xBD\xB0\xB8\xA3\xBA
-DLG_ABOUT_SERVERKEY=\xB7\xFE\xCE\xF1\xC6\xF7\xC3\xDCԿ\xA3\xBA
-DLG_ABOUT_KEXKEY=\xC3\xDCԿ\xBD\xBB\xBB\xBB\xC3\xDCԿ\xA3\xBA
-DLG_ABOUT_AUTH=\xC8\xCF֤\xB7\xBDʽ\xA3\xBA
-DLG_ABOUT_COMP=ѹ\xCB\xF5״\xBF\xF6\xA3\xBA
-DLG_ABOUT_CLIENTID=\xBFͻ\xA7\xB6\xCBID\xA3\xBA
-DLG_ABOUT_HOSTKEY=\xD6\xF7\xBB\xFA\xC3\xDCԿ\xA3\xBA
+DLG_ABOUT_SERVERID=\xB7\xFE\xCE\xF1\xC6\xF7ID:
+DLG_ABOUT_PROTOCOL=Э\xD2\xE9\xB0汾:
+DLG_ABOUT_ENCRYPTION=\xBC\xD3\xC3ܷ\xBD\xB0\xB8:
+DLG_ABOUT_SERVERKEY=\xB7\xFE\xCE\xF1\xC6\xF7\xC3\xDCԿ:
+DLG_ABOUT_KEXKEY=\xC3\xDCԿ\xBD\xBB\xBB\xBB\xC3\xDCԿ:
+DLG_ABOUT_AUTH=\xC8\xCF֤\xB7\xBDʽ:
+DLG_ABOUT_COMP=ѹ\xCB\xF5״\xBF\xF6:
+DLG_ABOUT_CLIENTID=\xBFͻ\xA7\xB6\xCBID:
+DLG_ABOUT_KEX=Key exchange algorithm:
+DLG_ABOUT_HOSTKEY=\xD6\xF7\xBB\xFA\xC3\xDCԿ:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" TTSSH\xA1\xFA\xB7\xFE\xCE\xF1\xC6\xF7,"
 DLG_ABOUT_FROMSERVER=" \xB7\xFE\xCE\xF1\xC6\xF7\xA1\xFATTSSH"
-DLG_ABOUT_COMPDELAY=\xD1\xD3ʱѹ\xCB\xF5״\xBF\xF6\xA3\xBA
+DLG_ABOUT_COMPDELAY=\xD1\xD3ʱѹ\xCB\xF5״\xBF\xF6:
 DLG_ABOUT_CIPHER_INFO=%s \xB5\xBD\xB7\xFE\xCE\xF1\xC6\xF7\xA3\xAC%s \xC0\xB4\xD7Է\xFE\xCE\xF1\xC6\xF7
 DLG_ABOUT_KEY_INFO=%d\xD7ֽڷ\xFE\xCE\xF1\xC6\xF7\xC3\xDCԿ\xA3\xAC%d\xD7ֽ\xDA\xD6\xF7\xBB\xFA\xC3\xDCԿ
 DLG_ABOUT_KEY_INFO2=%d\xD7ֽڿͻ\xA7\xB6\xCB\xC3\xDCԿ\xA3\xAC%d\xD7ֽڷ\xFE\xCE\xF1\xC6\xF7\xC3\xDCԿ

Modified: trunk/installer/release/lang/Traditional Chinese.lng
===================================================================
--- trunk/installer/release/lang/Traditional Chinese.lng	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/installer/release/lang/Traditional Chinese.lng	2015-11-15 13:27:58 UTC (rev 6135)
@@ -508,18 +508,20 @@
 ; dlg about
 DLG_ABOUT_TITLE=\xC3\xF6\xA9\xF3 TTSSH
 DLG_ABOUT_FP_HASH_ALGORITHM=Fingerprint hash algorithm:
-DLG_ABOUT_SERVERID=\xA6\xF8\xAAA\xBE\xB9ID\xA1G
-DLG_ABOUT_PROTOCOL=\xA8\xF3\xA9w\xAA\xA9\xA5\xBB\xA1G
-DLG_ABOUT_ENCRYPTION=\xA5[\xB1K\xA4\xE8\xAEסG
-DLG_ABOUT_SERVERKEY=\xA6\xF8\xAAA\xBE\xB9\xB1K\xC6_\xA1G
-DLG_ABOUT_KEXKEY=\xB1K\xC6_\xA5洫\xB1K\xC6_\xA1G
-DLG_ABOUT_AUTH=\xBB{\xC3Ҥ覡\xA1G
-DLG_ABOUT_COMP=\xC0\xA3\xC1Y\xAA\xAC\xAAp\xA1G
-DLG_ABOUT_CLIENTID=\xABȤ\xE1\xBA\xDDID\xA1G
-DLG_ABOUT_HOSTKEY=\xA5D\xBE\xF7\xB1K\xC6_\xA1G
+DLG_ABOUT_SERVERID=\xA6\xF8\xAAA\xBE\xB9ID:
+DLG_ABOUT_PROTOCOL=\xA8\xF3\xA9w\xAA\xA9\xA5\xBB:
+DLG_ABOUT_ENCRYPTION=\xA5[\xB1K\xA4\xE8\xAE\xD7:
+DLG_ABOUT_SERVERKEY=\xA6\xF8\xAAA\xBE\xB9\xB1K\xC6_:
+DLG_ABOUT_KEXKEY=\xB1K\xC6_\xA5洫\xB1K\xC6_:
+DLG_ABOUT_AUTH=\xBB{\xC3Ҥ覡:
+DLG_ABOUT_COMP=\xC0\xA3\xC1Y\xAA\xAC\xAAp:
+DLG_ABOUT_CLIENTID=\xABȤ\xE1\xBA\xDDID:
+DLG_ABOUT_KEX=Key exchange algorithm:
+DLG_ABOUT_HOSTKEY=\xA5D\xBE\xF7\xB1K\xC6_:
+DLG_ABOUT_MAC=MAC algorithm:
 DLG_ABOUT_TOSERVER=" TTSSH\xA1\xF7\xA6\xF8\xAAA\xBE\xB9,"
 DLG_ABOUT_FROMSERVER=" \xA6\xF8\xAAA\xBE\xB9\xA1\xF7TTSSH"
-DLG_ABOUT_COMPDELAY=\xA9\xB5\xAE\xC9\xC0\xA3\xC1Y\xAA\xAC\xAAp\xA1G
+DLG_ABOUT_COMPDELAY=\xA9\xB5\xAE\xC9\xC0\xA3\xC1Y\xAA\xAC\xAAp:
 DLG_ABOUT_CIPHER_INFO=%s \xA8\xEC\xA6\xF8\xAAA\xBE\xB9\xA1A%s \xA8Ӧۦ\xF8\xAAA\xBE\xB9
 DLG_ABOUT_KEY_INFO=%d\xA6r\xB8`\xA6\xF8\xAAA\xBE\xB9\xB1K\xC6_\xA1A%d\xA6r\xB8`\xA5D\xBE\xF7\xB1K\xC6_
 DLG_ABOUT_KEY_INFO2=%d\xA6r\xB8`\xABȤ\xE1\xBAݱK\xC6_\xA1A%d\xA6r\xB8`\xA6\xF8\xAAA\xBE\xB9\xB1K\xC6_

Modified: trunk/ttssh2/ttxssh/key.c
===================================================================
--- trunk/ttssh2/ttxssh/key.c	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/ttssh2/ttxssh/key.c	2015-11-15 13:27:58 UTC (rev 6135)
@@ -1991,51 +1991,62 @@
 
 static void hosts_updatekey_dlg_set_fingerprint(PTInstVar pvar, HWND dlg, digest_algorithm dgst_alg)
 {
-	char buf[1024];
-	char *fp;
+	char *fp, *buf;
 	size_t i;
+	int buf_len;
 	struct hostkeys_update_ctx *ctx;
 	
 	ctx = pvar->hostkey_ctx;
 
-	SendDlgItemMessage(dlg, IDC_ADDKEY_EDIT, WM_SETTEXT, 0, (LPARAM)(char FAR *)"");
-	for (i = 0; i < ctx->nkeys; i++) {
-		if (ctx->keys_seen[i])
-			continue;
-		switch (dgst_alg) {
-		case SSH_DIGEST_MD5:
-			fp = key_fingerprint(ctx->keys[i], SSH_FP_HEX, dgst_alg);
-			break;
-		case SSH_DIGEST_SHA256:
-			fp = key_fingerprint(ctx->keys[i], SSH_FP_BASE64, dgst_alg);
-			break;
-		}			
-		buf[0] = 0;
-		strcat_s(buf, sizeof(buf), get_sshname_from_key(ctx->keys[i]));
-		strcat_s(buf, sizeof(buf), " ");
-		strcat_s(buf, sizeof(buf), fp);
-		SendDlgItemMessage(dlg, IDC_ADDKEY_EDIT, EM_REPLACESEL, 0, (LPARAM)buf);
-		SendDlgItemMessage(dlg, IDC_ADDKEY_EDIT, EM_REPLACESEL, 0, (LPARAM)"\r\n");
-		free(fp);
+	if (ctx->nkeys > 0) {
+		buf_len = 100 * ctx->nkeys;
+		buf = calloc(100, ctx->nkeys);
+		for (i = 0; i < ctx->nkeys; i++) {
+			if (ctx->keys_seen[i])
+				continue;
+			switch (dgst_alg) {
+			case SSH_DIGEST_MD5:
+				fp = key_fingerprint(ctx->keys[i], SSH_FP_HEX, dgst_alg);
+				break;
+			case SSH_DIGEST_SHA256:
+				fp = key_fingerprint(ctx->keys[i], SSH_FP_BASE64, dgst_alg);
+				break;
+			}
+			strncat_s(buf, buf_len, get_sshname_from_key(ctx->keys[i]), _TRUNCATE);
+			strncat_s(buf, buf_len, " ", _TRUNCATE);
+			strncat_s(buf, buf_len, fp, _TRUNCATE);
+			free(fp);
+			if (i < ctx->nkeys - 1) {
+				strncat_s(buf, buf_len, "\r\n", _TRUNCATE);
+			}
+		}
+		SendDlgItemMessage(dlg, IDC_ADDKEY_EDIT, WM_SETTEXT, 0, (LPARAM)(char FAR *)buf);
+		free(buf);
 	}
 
-	SendDlgItemMessage(dlg, IDC_REMOVEKEY_EDIT, WM_SETTEXT, 0, (LPARAM)(char FAR *)"");
-	for (i = 0; i < ctx->nold; i++) {
-		switch (dgst_alg) {
-		case SSH_DIGEST_MD5:
-			fp = key_fingerprint(ctx->old_keys[i], SSH_FP_HEX, dgst_alg);
-			break;
-		case SSH_DIGEST_SHA256:
-			fp = key_fingerprint(ctx->old_keys[i], SSH_FP_BASE64, dgst_alg);
-			break;
+	if (ctx->nold > 0) {
+		buf_len = 100 * ctx->nold;
+		buf = calloc(100, ctx->nold);
+		SendDlgItemMessage(dlg, IDC_REMOVEKEY_EDIT, WM_SETTEXT, 0, (LPARAM)(char FAR *)"");
+		for (i = 0; i < ctx->nold; i++) {
+			switch (dgst_alg) {
+			case SSH_DIGEST_MD5:
+				fp = key_fingerprint(ctx->old_keys[i], SSH_FP_HEX, dgst_alg);
+				break;
+			case SSH_DIGEST_SHA256:
+				fp = key_fingerprint(ctx->old_keys[i], SSH_FP_BASE64, dgst_alg);
+				break;
+			}
+			strncat_s(buf, buf_len, get_sshname_from_key(ctx->old_keys[i]), _TRUNCATE);
+			strncat_s(buf, buf_len, " ", _TRUNCATE);
+			strncat_s(buf, buf_len, fp, _TRUNCATE);
+			free(fp);
+			if (i < ctx->nold - 1) {
+				strncat_s(buf, buf_len, "\r\n", _TRUNCATE);
+			}
 		}
-		buf[0] = 0;
-		strcat_s(buf, sizeof(buf), get_sshname_from_key(ctx->old_keys[i]));
-		strcat_s(buf, sizeof(buf), " ");
-		strcat_s(buf, sizeof(buf), fp);
-		SendDlgItemMessage(dlg, IDC_REMOVEKEY_EDIT, EM_REPLACESEL, 0, (LPARAM)buf);
-		SendDlgItemMessage(dlg, IDC_REMOVEKEY_EDIT, EM_REPLACESEL, 0, (LPARAM)"\r\n");
-		free(fp);
+		SendDlgItemMessage(dlg, IDC_REMOVEKEY_EDIT, WM_SETTEXT, 0, (LPARAM)(char FAR *)buf);
+		free(buf);
 	}
 }
 

Modified: trunk/ttssh2/ttxssh/ttxssh.c
===================================================================
--- trunk/ttssh2/ttxssh/ttxssh.c	2015-11-15 13:17:48 UTC (rev 6134)
+++ trunk/ttssh2/ttxssh/ttxssh.c	2015-11-15 13:27:58 UTC (rev 6135)
@@ -2564,15 +2564,6 @@
 	}
 }
 
-static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg)
-{
-	SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0,
-	                   (LPARAM) prefix);
-	SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, (LPARAM) msg);
-	SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0,
-	                   (LPARAM) (char FAR *) "\r\n");
-}
-
 // \x8E\xC0\x8Ds\x83t\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x83o\x81[\x83W\x83\x87\x83\x93\x8F\xEE\x95\xF1\x82𓾂\xE9 (2005.2.28 yutaka)
 void get_file_version(char *exefile, int *major, int *minor, int *release, int *build)
 {
@@ -2635,103 +2626,160 @@
 
 static void about_dlg_set_abouttext(PTInstVar pvar, HWND dlg, digest_algorithm dgst_alg)
 {
-	char buf[1024];
+	char buf[1024], buf2[2048];
 	char *fp = NULL;
 
 	// TTSSH\x83_\x83C\x83A\x83\x8D\x83O\x82ɕ\\x8E\xA6\x82\xB7\x82\xE9SSH\x82Ɋւ\xB7\x82\xE9\x8F\xEE\x95\xF1 (2004.10.30 yutaka)
 	if (pvar->socket != INVALID_SOCKET) {
-		SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETTEXT, 0, (LPARAM)(char FAR *)"");
+		buf2[0] = '\0';
 
 		if (SSHv1(pvar)) {
+			UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			SSH_get_server_ID_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
-			SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
 			UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
-			CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			SSH_get_server_ID_info(pvar, buf, sizeof(buf));
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
 			UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			SSH_get_server_ID_info(pvar, buf, sizeof(buf));
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
+			UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
+			UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			AUTH_get_auth_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
+			UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			SSH_get_compression_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
 		} else { // SSH2
+			UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			SSH_get_server_ID_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
 			UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar, "Client ID:");
-			append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string);
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), pvar->client_version_string, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
+			UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			SSH_get_protocol_version_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
-			append_about_text(dlg, "KEX:", get_kex_algorithm_name(pvar->kex_type));
+			UTIL_get_lang_msg("DLG_ABOUT_KEX", pvar, "Key exchange algorithm:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), get_kex_algorithm_name(pvar->kex_type), _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
-			strncpy_s(buf, sizeof(buf), get_ssh_keytype_name(pvar->hostkey_type), _TRUNCATE);
 			UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar, "Host Key:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), get_ssh_keytype_name(pvar->hostkey_type), _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
-			// add MAC algorithm (2004.12.17 yutaka)
-			buf[0] = '\0';
-			strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->ctos_hmac), _TRUNCATE);
+			UTIL_get_lang_msg("DLG_ABOUT_MAC", pvar, "MAC algorithm:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), get_ssh2_mac_name(pvar->ctos_hmac), _TRUNCATE);
 			UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server,");
-			strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
-			strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->stoc_hmac), _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), get_ssh2_mac_name(pvar->stoc_hmac), _TRUNCATE);
 			UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server");
-			strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE);
-			append_about_text(dlg, "MAC:", buf);
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
+			UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			CRYPT_get_cipher_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
+
+			UTIL_get_lang_msg("DLG_ABOUT_KEXKEY", pvar, "Key exchange keys:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			CRYPT_get_server_key_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_KEXKEY", pvar, "Key exchange keys:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
+			UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:");
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
 			AUTH_get_auth_info(pvar, buf, sizeof(buf));
-			UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:");
-			append_about_text(dlg, pvar->ts->UIMsg, buf);
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
-			SSH_get_compression_info(pvar, buf, sizeof(buf));
 			if (pvar->ctos_compression == COMP_DELAYED) { // \x92x\x89\x84\x83p\x83P\x83b\x83g\x88\xB3\x8Fk\x82̏ꍇ (2006.6.23 yutaka)
 				UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar, "Delayed Compression:");
-				append_about_text(dlg, pvar->ts->UIMsg, buf);
 			} else {
 				UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:");
-				append_about_text(dlg, pvar->ts->UIMsg, buf);
 			}
+			strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE);
+			SSH_get_compression_info(pvar, buf, sizeof(buf));
+			strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 		}
 
 		// \x83z\x83X\x83g\x8C\xF6\x8AJ\x8C\xAE\x82\xCCfingerprint\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
 		// (2014.5.1 yutaka)
 		UTIL_get_lang_msg("DLG_ABOUT_FINGERPRINT", pvar, "Host key's fingerprint:");
-		append_about_text(dlg, "", pvar->ts->UIMsg);
+		strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE);
+		strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 
 		switch (dgst_alg) {
 		case SSH_DIGEST_MD5:
 			fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, dgst_alg);
-			append_about_text(dlg, "", fp);
+			strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 			free(fp);
 			break;
 		case SSH_DIGEST_SHA256:
 			fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg);
-			append_about_text(dlg, "", fp);
+			strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE);
+			strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE);
 			free(fp);
 			break;
 		}
 
 		fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, dgst_alg);
-		// \x96\x96\x94\xF6\x82ɉ\xFC\x8Ds\x82͕s\x97v\x82Ȃ̂\xC5 append_about_text() \x82͎g\x97p\x82\xB5\x82Ȃ\xA2
-		SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, (LPARAM)fp);
+		strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE);
 		free(fp);
+
+		SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETTEXT, 0, (LPARAM)(char FAR *)buf2);
 	}
 }
 



Ttssh2-commit メーリングリストの案内
Back to archive index