[Ttssh2-commit] [8124] Merge branch 'trunk' into unicode_buf

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2019年 9月 13日 (金) 00:58:02 JST


Revision: 8124
          https://osdn.net/projects/ttssh2/scm/svn/commits/8124
Author:   zmatsuo
Date:     2019-09-13 00:58:02 +0900 (Fri, 13 Sep 2019)
Log Message:
-----------
Merge branch 'trunk' into unicode_buf

Modified Paths:
--------------
    branches/unicode_buf/TTProxy/ProxyWSockHook.h
    branches/unicode_buf/TTProxy/StdAfx.cpp
    branches/unicode_buf/TTProxy/TTProxy.cpp
    branches/unicode_buf/TTProxy/TTProxy.v10.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v11.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v12.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v14.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v15.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v16.vcxproj
    branches/unicode_buf/TTProxy/TTProxy.v9.vcproj
    branches/unicode_buf/TTProxy/TTProxy.vcproj
    branches/unicode_buf/TTXSamples/CMakeLists.txt
    branches/unicode_buf/TTXSamples/ttxtest/CMakeLists.txt
    branches/unicode_buf/doc/en/html/about/history.html
    branches/unicode_buf/doc/en/html/commandline/ttssh.html
    branches/unicode_buf/doc/en/html/image/NewConnection.png
    branches/unicode_buf/doc/en/html/macro/command/setflowctrl.html
    branches/unicode_buf/doc/en/html/menu/file-new.html
    branches/unicode_buf/doc/en/html/menu/setup-additional.html
    branches/unicode_buf/doc/en/html/menu/setup-proxy.html
    branches/unicode_buf/doc/en/html/menu/setup-serialport.html
    branches/unicode_buf/doc/en/html/menu/setup-ssh.html
    branches/unicode_buf/doc/en/html/reference/develop.txt
    branches/unicode_buf/doc/en/html/setup/teraterm-ini.html
    branches/unicode_buf/doc/ja/html/about/history.html
    branches/unicode_buf/doc/ja/html/commandline/ttssh.html
    branches/unicode_buf/doc/ja/html/image/NewConnection.png
    branches/unicode_buf/doc/ja/html/macro/command/setflowctrl.html
    branches/unicode_buf/doc/ja/html/menu/file-new.html
    branches/unicode_buf/doc/ja/html/menu/setup-additional.html
    branches/unicode_buf/doc/ja/html/menu/setup-proxy.html
    branches/unicode_buf/doc/ja/html/menu/setup-serialport.html
    branches/unicode_buf/doc/ja/html/menu/setup-ssh.html
    branches/unicode_buf/doc/ja/html/reference/develop.txt
    branches/unicode_buf/doc/ja/html/setup/teraterm-ini.html
    branches/unicode_buf/doc/ja/teraterm.hhp
    branches/unicode_buf/installer/release/TERATERM.INI
    branches/unicode_buf/installer/release/lang/English.lng
    branches/unicode_buf/installer/release/lang/French.lng
    branches/unicode_buf/installer/release/lang/German.lng
    branches/unicode_buf/installer/release/lang/Japanese.lng
    branches/unicode_buf/installer/release/lang/Korean.lng
    branches/unicode_buf/installer/release/lang/Russian.lng
    branches/unicode_buf/installer/release/lang/Simplified Chinese.lng
    branches/unicode_buf/installer/release/lang/Traditional Chinese.lng
    branches/unicode_buf/installer/teraterm.iss
    branches/unicode_buf/libs/SFMT.cmake
    branches/unicode_buf/libs/buildSFMT.bat
    branches/unicode_buf/libs/oniguruma.cmake
    branches/unicode_buf/teraterm/common/teraterm.h
    branches/unicode_buf/teraterm/common/tipwin.cpp
    branches/unicode_buf/teraterm/common/tipwin.h
    branches/unicode_buf/teraterm/common/tmfc.cpp
    branches/unicode_buf/teraterm/common/tmfc.h
    branches/unicode_buf/teraterm/common/tt-version.h
    branches/unicode_buf/teraterm/common/tt_res.h
    branches/unicode_buf/teraterm/common/tttypes.h
    branches/unicode_buf/teraterm/svnrev/svnrev.cpp
    branches/unicode_buf/teraterm/teraterm/CMakeLists.txt
    branches/unicode_buf/teraterm/teraterm/addsetting.cpp
    branches/unicode_buf/teraterm/teraterm/addsetting.h
    branches/unicode_buf/teraterm/teraterm/buffer.c
    branches/unicode_buf/teraterm/teraterm/clipboar.c
    branches/unicode_buf/teraterm/teraterm/commlib.c
    branches/unicode_buf/teraterm/teraterm/sizetip.c
    branches/unicode_buf/teraterm/teraterm/sizetip.h
    branches/unicode_buf/teraterm/teraterm/ttdde.c
    branches/unicode_buf/teraterm/teraterm/ttermpro.rc
    branches/unicode_buf/teraterm/teraterm/ttermpro.v10.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v11.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v12.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v14.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v15.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v16.vcxproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.v9.vcproj
    branches/unicode_buf/teraterm/teraterm/ttermpro.vcproj
    branches/unicode_buf/teraterm/teraterm/vtdisp.c
    branches/unicode_buf/teraterm/teraterm/vtdisp.h
    branches/unicode_buf/teraterm/teraterm/vtterm.c
    branches/unicode_buf/teraterm/teraterm/vtwin.cpp
    branches/unicode_buf/teraterm/ttpdlg/dlg_res.h
    branches/unicode_buf/teraterm/ttpdlg/ttdlg.c
    branches/unicode_buf/teraterm/ttpdlg/ttpdlg.rc
    branches/unicode_buf/teraterm/ttpset/ttset.c
    branches/unicode_buf/ttssh2/ttxssh/auth.c
    branches/unicode_buf/ttssh2/ttxssh/auth.h
    branches/unicode_buf/ttssh2/ttxssh/fwdui.c
    branches/unicode_buf/ttssh2/ttxssh/hosts.c
    branches/unicode_buf/ttssh2/ttxssh/hosts.h
    branches/unicode_buf/ttssh2/ttxssh/resource.h
    branches/unicode_buf/ttssh2/ttxssh/ssh.c
    branches/unicode_buf/ttssh2/ttxssh/ssh.h
    branches/unicode_buf/ttssh2/ttxssh/ttxssh-version.h
    branches/unicode_buf/ttssh2/ttxssh/ttxssh.c
    branches/unicode_buf/ttssh2/ttxssh/ttxssh.h
    branches/unicode_buf/ttssh2/ttxssh/ttxssh.rc

Added Paths:
-----------
    branches/unicode_buf/tests/#39334.ttl

-------------- next part --------------
Modified: branches/unicode_buf/TTProxy/ProxyWSockHook.h
===================================================================
--- branches/unicode_buf/TTProxy/ProxyWSockHook.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/ProxyWSockHook.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1197,24 +1197,42 @@
         return _sendToSocket(s, (const unsigned char*) buf, len);
     }
 
-    int recieveFromSocketTimeout(SOCKET s, unsigned char* buffer, int size, int timeout) {
+    /*
+	 * SOCKS\x83T\x81[\x83o\x82\xA9\x82\xE7\x83f\x81[\x83^\x82\xF0\x8E\xF3\x90M\x82\xB7\x82\xE9
+	 *
+	 * return:
+	 *    1\x88ȏ\xE3   \x8E\xF3\x90M\x83f\x81[\x83^\x90\x94(byte)\x81Bsize\x82\xE6\x82菬\x82\xB3\x82\xA2\x8Fꍇ\x82\xE0\x82\xA0\x82\xE9\x81B
+	 *    -1      SOCKET_ERROR 
+	 */
+	int recieveFromSocketTimeout(SOCKET s, unsigned char* buffer, int size, int timeout) {
         int ready = 0;
+		int ret;
+
         while (!ready) {
             struct timeval tv = {timeout, 0};
             fd_set fd;
+			int n;
+
             FD_ZERO(&fd);
             FD_SET(s, &fd);
-            switch (select((int) (s + 1), &fd, NULL, NULL, timeout > 0 ? &tv : NULL)) {
+			n = select((int)(s + 1), &fd, NULL, NULL, timeout > 0 ? &tv : NULL);
+			switch (n) {
             case SOCKET_ERROR:
                 return SOCKET_ERROR;
             case 0:
-                return 0;
+				// \x8E\xF3\x90M\x83^\x83C\x83\x80\x83A\x83E\x83g\x82̏ꍇ\x82ɂ\xE0\x83G\x83\x89\x81[\x88\xB5\x82\xA2\x82Ƃ\xB7\x82\xE9\x81B
+                return SOCKET_ERROR;
             default:
                 ready = FD_ISSET(s, &fd);
                 break;
             }
         }
-        return ORIG_recv(s, (char*) buffer, size, 0);
+
+		// SOCKS\x83T\x81[\x83o\x82\xA9\x82\xE7\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81Arecv()\x82\xAA0\x82\xF0\x95Ԃ\xB7\x82\xBD\x82߁A\x83G\x83\x89\x81[\x88\xB5\x82\xA2\x82Ƃ\xB7\x82\xE9\x81B
+        ret = ORIG_recv(s, (char*) buffer, size, 0);
+		if (ret == 0)
+			ret = SOCKET_ERROR;
+		return (ret);
     }
 
     int recieveFromSocket(SOCKET s, unsigned char* buffer, int size) {
@@ -1345,7 +1363,9 @@
             }
         } while (strcmp(buf,"\r\n") != 0);
         if (status_code != 200) {
-            char uimsg[MAX_UIMSG];
+			char uimsg[MAX_UIMSG] = {0};
+			char tmp[MAX_UIMSG + 32];
+
             switch (status_code) {
             case 401:
             case 407:
@@ -1356,8 +1376,13 @@
             case 405:
             case 406:
             case 403:
-                UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg),
+				// \x8AY\x93\x96\x82\xB5\x82Ȃ\xA2\x83X\x83e\x81[\x83^\x83X\x83R\x81[\x83h\x82\xBE\x82\xC1\x82\xBD\x8Fꍇ\x81A\x95s\x92\xE8\x82ȓ\xE0\x97e\x82\xCCuimsg[]\x82\xAA
+				// MessageBox\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B
+			default:
+                UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", tmp, sizeof(tmp),
                                   "Proxy prevent this connection!");
+				_snprintf_s(uimsg, sizeof(uimsg), _TRUNCATE, "%s(HTTP: status code %d)", 
+					tmp, status_code);
                 break;
             }
             return setError(s, uimsg);
@@ -1510,10 +1535,37 @@
             return SOCKET_ERROR;
         if (recieveFromSocket(s, buf, 4) == SOCKET_ERROR)
             return SOCKET_ERROR;
+		/* SOCKS\x83\x8A\x83N\x83G\x83X\x83g\x82ɑ΂\xB7\x82郊\x83v\x83\x89\x83C
+		   
+		   buf[0] VER  protocol version: X'05'
+		   buf[1] REP  Reply field: 
+ 				 o  X'00' succeeded
+				 o  X'01' general SOCKS server failure
+				 o  X'02' connection not allowed by ruleset
+				 o  X'03' Network unreachable
+				 o  X'04' Host unreachable
+				 o  X'05' Connection refused
+				 o  X'06' TTL expired
+				 o  X'07' Command not supported
+				 o  X'08' Address type not supported
+				 o  X'09' to X'FF' unassigned
+		   buf[2] RSV    RESERVED: X'00'
+		   buf[3] ATYP   address type of following address
+				 o  IP V4 address: X'01'
+				 o  DOMAINNAME: X'03'
+				 o  IP V6 address: X'04'
+		   buf[4:N] BND.ADDR       server bound address
+		   buf[N+1] BND.PORT       server bound port in network octet order 
+		 */
         if (buf[0] != SOCKS5_VERSION || buf[1] != SOCKS5_REP_SUCCEEDED) {   /* check reply code */
-            UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg),
+			char tmp[MAX_UIMSG + 32];
+
+			UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg),
                               "Proxy prevent this connection!");
-            return setError(s, uimsg);
+			// \x83\x8A\x83v\x83\x89\x83C\x8F\xEE\x95\xF1\x82\xF0\x92NjL\x82\xB5\x82ă\x81\x83b\x83Z\x81[\x83W\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
+			_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%s(SOCKS5:VER %u REP %u ATYP %u)", 
+				uimsg, buf[0], buf[1], buf[3]);
+			return setError(s, tmp);
         }
         // buf[2] is reserved
         switch (buf[3]) { /* case by ATYP */
@@ -1609,6 +1661,19 @@
         if (recieveFromSocket(s, buf, 8) == SOCKET_ERROR) {
             return SOCKET_ERROR;
         }
+		/* SOCKS4\x82̕ԓ\x9A\x83p\x83P\x83b\x83g
+		 
+		  buf[0] VN \x8F\xED\x82\xC90
+		  buf[1] CD
+		           90 request granted
+		           91 request rejected or failed
+		           92 request rejected becasue SOCKS server cannot connect to
+	                  identd on the client
+				   93 request rejected because the client program and identd
+	                  report different user-ids
+		  buf[2:3] DSTPORT \x83|\x81[\x83g\x94ԍ\x86
+		  buf[4:7] DSTIP   IP\x83A\x83h\x83\x8C\x83X
+		 */
         char uimsg[MAX_UIMSG];
         uimsg[0] = NULL;
         if (buf[0] != 0) {
@@ -1622,7 +1687,11 @@
                               "Proxy prevent this connection!");
         }
         if (uimsg[0] != NULL) {
-            return setError(s, uimsg);
+			char tmp[MAX_UIMSG + 32];
+
+			// SOCKS\x82̕ԓ\x9A\x83p\x83P\x83b\x83g\x82\xCCVN\x82\xC6CD\x82\xF0\x92NjL\x82\xB5\x82ă\x81\x83b\x83Z\x81[\x83W\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
+			_snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%s(SOCKS4:VN %u CD %u)", uimsg, buf[0], buf[1]);
+            return setError(s, tmp);
         }
     
         /* Conguraturation, connected via SOCKS4 server! */
@@ -1784,7 +1853,12 @@
             if (select((int) (s + 1), &ifd, &ofd, &efd, timeout > 0 ? &tv : NULL) == SOCKET_ERROR)
                 return SOCKET_ERROR;
             if (FD_ISSET(s, &efd)) {
-                WSASetLastError(WSAECONNREFUSED);
+				// Proxy server\x82ւ\xCCconnect\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x8Fꍇ\x81A\x88Ӑ}\x93I\x82\xC9 WSAECONNREFUSED \x83G\x83\x89\x81[\x82\xF0
+				// \x83Z\x83b\x83g\x82\xB7\x82\xE9\x82̂\xF0\x82\xE2\x82߂\xBD\x81B
+				// Proxy server\x82\xAA\x83z\x83X\x83g\x96\xBC\x82Ƃ\xB5\x82Đݒ肳\x82\xEA\x82Ă\xA2\x82āA\x82\xA9\x82ƒf\x83\x85\x83A\x83\x8B\x83X\x83^\x83b\x83N\x8A‹\xAB\x82̏ꍇ\x81A
+				// Tera Term\x91\xA4\x82ł\xCCIPv6/IPv4\x83t\x83H\x81[\x83\x8B\x83o\x83b\x83N\x82\xAA\x8A\xFA\x91Ғʂ\xE8\x82ɓ\xAE\x82\xA2\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x81B
+				// \x82܂\xBD\x81AProxy server\x82ɂ܂\xC1\x82\xBD\x82\xAD\x90ڑ\xB1\x82ł\xAB\x82Ȃ\xA2\x8Fꍇ\x81AConnection refused\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA
+				// 3\x89\xF1\x98A\x91\xB1\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x93\xAE\x8D\xEC\x82ɂ\xE0\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x81B
                 return SOCKET_ERROR;
             }
         }else{

Modified: branches/unicode_buf/TTProxy/StdAfx.cpp
===================================================================
--- branches/unicode_buf/TTProxy/StdAfx.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/StdAfx.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -2,7 +2,7 @@
 //              ttx.pch \x90\xB6\x90\xAC\x82\xB3\x82\xEA\x82\xE9\x83v\x83\x8A\x83R\x83\x93\x83p\x83C\x83\x8B\x8Dσw\x83b\x83_\x81[
 //              stdafx.obj \x90\xB6\x90\xAC\x82\xB3\x82\xEA\x82\xE9\x83v\x83\x8A\x83R\x83\x93\x83p\x83C\x83\x8B\x8Dσ^\x83C\x83v\x8F\xEE\x95\xF1
 
-#include "stdafx.h"
+#include "StdAfx.h"
 
 // TODO: STDAFX.H \x82Ɋ܂܂\xEA\x82Ă\xA2\x82āA\x82\xB1\x82̃t\x83@\x83C\x83\x8B\x82ɋL\x8Fq\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2
 // \x83w\x83b\x83_\x81[\x83t\x83@\x83C\x83\x8B\x82\xF0\x92lj\xC1\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B

Modified: branches/unicode_buf/TTProxy/TTProxy.cpp
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,7 +1,7 @@
 // ttx.cpp : DLL \x83A\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x97p\x82̃G\x83\x93\x83g\x83\x8A \x83|\x83C\x83\x93\x83g\x82\xF0\x92\xE8\x8B`\x82\xB5\x82܂\xB7\x81B
 //
 
-#include "stdafx.h"
+#include "StdAfx.h"
 
 #include "resource.h"
 

Modified: branches/unicode_buf/TTProxy/TTProxy.v10.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v10.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v10.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -71,6 +71,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -112,6 +113,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v11.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v11.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v11.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -76,6 +76,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -117,6 +118,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v12.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v12.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v12.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -76,6 +76,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -117,6 +118,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v14.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v14.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v14.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -76,6 +76,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -116,6 +117,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+	  <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v15.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v15.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v15.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -77,6 +77,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -117,6 +118,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v16.vcxproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v16.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v16.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -77,6 +77,7 @@
       <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -117,6 +118,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <AdditionalOptions>/D_CRT_SECURE_NO_DEPRECATE %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

Modified: branches/unicode_buf/TTProxy/TTProxy.v9.vcproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.v9.vcproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.v9.vcproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -47,6 +47,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
 				AdditionalIncludeDirectories="$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32"
@@ -142,6 +143,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
 				AdditionalIncludeDirectories="$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS"

Modified: branches/unicode_buf/TTProxy/TTProxy.vcproj
===================================================================
--- branches/unicode_buf/TTProxy/TTProxy.vcproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTProxy/TTProxy.vcproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -46,6 +46,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
 				AdditionalIncludeDirectories="$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32"
@@ -142,6 +143,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
 				AdditionalIncludeDirectories="$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\teraterm\common;YCL\include;$(SolutionDir)..\libs\openssl\inc32"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TTX_EXPORTS"

Modified: branches/unicode_buf/TTXSamples/CMakeLists.txt
===================================================================
--- branches/unicode_buf/TTXSamples/CMakeLists.txt	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTXSamples/CMakeLists.txt	2019-09-12 15:58:02 UTC (rev 8124)
@@ -35,7 +35,7 @@
 add_subdirectory(TTXShowCommandLine)
 set_target_properties(TTXShowCommandLine PROPERTIES FOLDER TTXSamples)
 
-add_subdirectory(TTXtest)
+add_subdirectory(ttxtest)
 set_target_properties(TTXtest PROPERTIES FOLDER TTXSamples)
 
 add_subdirectory(TTXttyrec)

Modified: branches/unicode_buf/TTXSamples/ttxtest/CMakeLists.txt
===================================================================
--- branches/unicode_buf/TTXSamples/ttxtest/CMakeLists.txt	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/TTXSamples/ttxtest/CMakeLists.txt	2019-09-12 15:58:02 UTC (rev 8124)
@@ -9,7 +9,7 @@
 
 add_library(
   TTXtest SHARED
-  TTXtest.c
+  ttxtest.c
   )
 
 set_target_properties(

Modified: branches/unicode_buf/doc/en/html/about/history.html
===================================================================
--- branches/unicode_buf/doc/en/html/about/history.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/about/history.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -31,30 +31,64 @@
 
 <h2 id="teraterm">Tera Term</h2>
 
-<h3 id="teraterm_4.104">2019.xx.xx (Ver 4.104)</h3>
+<h3 id="teraterm_4.105">2019.xx.xx (Ver 4.105)</h3>
 <ul class="history">
   <li>Changes
     <ul>
-      <li>MARCO: The <a href="../macro/command/fileopen.html">fileopen</a> command does not cause an error when a file can not be opened. Reverted changes in Ver 4.102.</li>
-      <li>MACRO: When <a href="../macro/command/filetruncate.html">filetruncate</a> command does not cause an error when a file can not be opened, or file size can not be changed.</li>
+      <li>Added support for hardware flow control DSR/DTR with serial connection.
+        <ul>
+          <li>The hardware is renamed to RTS/CTS, and DSR/DTR is newly added on the Flow control of <a href="../menu/setup-serialport.html">Serial port ([Setup] menu)</a>.</li>
+          <li>MARCO: The DSR/DRT can be specified in <a href="../macro/command/setflowctrl.html">setflowctrl</a> command.</li>
+        </ul></li>
+      <li>Added SFMT information on version dialog.</li>
+      <li>Changed of indication from "Protocol" to "IP version" and from "UNSPEC" to "AUTO" on <a href="../menu/file-new.html">New connection dialog</a>.</li>
+      <li>When the opacity value of the window is temporarily changed by operating the mouse wheel on the title bar of VT window, the tooltip of the opacity value is shown.</li>
+      <li>The location of resizing toolchip is automatically moved to coordinates after resizing.</li>
+      <li>Added slider for specify the opacity values on the Visual tab of the <a href="../menu/setup-additional.html">Additional settings dialog</a>.</li>
+      <li>Eterm look-feel: Added the <a href="../menu/setup-additional.html#MixedThemeFile">Mixed ThemeFile to Background</a> configuration. Also, added the the <a href="../setup/teraterm-ini.html#BGIgnoreThemeFile">BGIgnoreThemeFile</a> entry in the teraterm.ini file. The default value is off.</li>
+    </ul>
+  </li>
+  <li>Bug fixes
+    <ul>
+      <li>The toolchip during resizing can not be displayed on the left and top edge of the desktop. This bug was introduced in 4.103.</li>
+      <li>Eterm look-feel: When a image file is randomly selected with the wallpaper, invalid file may be selected. </li>
+    </ul>
+  </li>
+
+  <li>Misc
+    <ul>
+      <li>upgraded TTSSH to <a href="#ttssh_2.91">2.91</a>.</li>
+      <li>upgraded TTProxy to <a href="#ttproxy_1.0.0.26">1.0.0.26</a>.</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="teraterm_4.104">2019.08.31 (Ver 4.104)</h3>
+<ul class="history">
+  <li>Changes
+    <ul>
+      <li>The <a href="../setup/teraterm-win.html#textselect">Disabling text selection when the window is activated by mouse</a> configuration can be set up on the <a href="../menu/setup-additional.html#SelectOnActivate">Additional settings dialog</a>.</li>
       <li>The environment variable included in <a href="../menu/file-chdir.html">directory for file transfers</a> becomes to be expanded.</li>
       <li>Unspecified string font in IME uses your defined font.</li>
-      <li>The <a href="../setup/teraterm-win.html#textselect">Disabling text selection when the window is activated by mouse</a> configuration can be set up on the <a href="../menu/setup-additional.html#SelectOnActivate">Additional settings dialog</a>.</li>
+      <li>Added help button on Additional settings dialog.</li>
+      <li>MARCO: The <a href="../macro/command/fileopen.html">fileopen</a> command does not cause an error when a file can not be opened. Reverted changes in 4.102.</li>
+      <li>MACRO: When <a href="../macro/command/filetruncate.html">filetruncate</a> command does not cause an error when a file can not be opened, or file size can not be changed.</li>
     </ul>
   </li>
   <li>Bug fixes
     <ul>
+      <li>When UTF-8 characters received, 4-byte UTF-8 characters are miss-decoded.</li>
       <li>When the Active Window Tracking is enabled, mouse cursor won't be active in Tera Term window. This bug was introduced in 4.103.</li>
-      <li>When UTF-8 characters received, 4-byte UTF-8 characters are miss-decorded.</li>
+      <li>The session number of window title is always 1. This bug was introduced in 4.103.</li>
+      <li>When the font selection dialog is used while undetermined characters of IME are displayed , the font ot IME always is changed.</li>
+      <li>When the locale setting is default(japanese) or invalid on English version of Windows, an application fault immediately occurs after starting Tera Term.</li>
+      <li>A big file can not send by using [File]/[Send file..]. This bug was introduced in 4.103.</li>
+      <li>Cancel printing dialog can not be shown. This bug was introduced in 4.103.</li>
       <li>The plugin compiled before 4.103 can not called because the DLL's calling convention is changed in Tera Term 4.103. </li>
-      <li>Displayed unspecified string font in IME changes, when you open the font setting dialog.</li>
-      <li>The session number of window title is always 1.</li>
+      <li>MACRO: <a href="../macro/command/listbox.html">listbox</a> command can not adjust the width of list according to the window size. This bug was introduced in 4.103.</li>
       <li>MACRO: <a href="../macro/command/filecopy.html">filecopy</a> command may not store the result to result system variable.</li>
-      <li>A big file can not send by using [File]/[Send file..]. This bug was introduced in 4.103.</li>
       <li>MACRO: <a href="../macro/command/filelock.html">filelock</a> and <a href="../macro/command/fileunlock.html">fileunlock</a> command always fail. This bug was introduced in 4.101.</li>
       <li>MACRO: When the first byte of the file is matched by using <a href="../macro/command/filestrseek2.html">filestrseek2</a> command, the file pointer is invalid. This bug was introduced in 4.101.</li>
-      <li>Cancel printing dialog can not be shown. This bug was introduced in 4.103.</li>
-      <li>When the locale setting is default(japanese) or invalid on English version of Windows, an application fault immediately occurs after starting Tera Term.</li>
     </ul>
   </li>
 
@@ -62,6 +96,7 @@
     <ul>
       <li>upgraded TTSSH to <a href="#ttssh_2.90">2.90</a>.</li>
       <li>upgraded TTProxy to <a href="#ttproxy_1.0.0.25">1.0.0.25</a>.</li>
+      <li>upgraded Oniguruma to 6.9.3.</li>
     </ul>
   </li>
 </ul>
@@ -3162,28 +3197,50 @@
 
 <h2 id="ttssh">TTSSH</h2>
 
-<h3 id="ttssh_2.90">2019.xx.xx (Ver 2.90)</h3>
+<h3 id="ttssh_2.91">2019.xx.xx (Ver 2.91)</h3>
 <ul class="history">
   <li>Changes
     <ul>
-      <li></li>
+      <li>Changed of indication from "Protocol" to "IP version" and from "UNSPEC" to "AUTO" on <a href="../menu/file-new.html">New connection dialog</a>.</li>
+      <li>The display timing of the user authentication dialog is changed to display after the known_hosts dialog.</li>
+      <li>The LogLevel entry is added on the <a href="../menu/setup-ssh.html#LogLevel">Setup dialog</a>.</li>
+      <li>The help button are added on the <a href="../menu/setup-ssh.html">Setup dialog</a>, <a href="../menu/setup-sshauth.html">Authentication Setup dialog</a>, <a href="../menu/setup-sshforward.html">Forwarding dialog</a> and <a href="../menu/setup-sshkeygenerator.html">Key Generator dialog</a>.</li>
+      <li>When the network is disconnected from SSH server side, the known_hosts and user authentication dialog are automatically closed while the dialog is shown.</li>
     </ul>
   </li>
 
   <li>Bug fixes
     <ul>
+      <li>The same messages may be included on MessageBox displaying.</li>
+      <li>When the network is disconnected from SSH server side, an application fault may be occurred while known_hosts dialog is shown.</li>
+      <li>SSH1: The <a href="../commandline/ttssh.html#nosecuritywarning">/nosecuritywarning</a> option does not work well.</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="ttssh_2.90">2019.08.31 (Ver 2.90)</h3>
+<ul class="history">
+  <!--li>Changes
+    <ul>
+      <li></li>
+    </ul>
+  </li-->
+
+  <li>Bug fixes
+    <ul>
       <li>SSH2: When SSH communication is slow by using port forwarding, an application fault is occurred due to increase memory consumption.</li>
       <li>SSH2: When SCP transfer dialog is closed, the directory of file transfer setting and the SCP destination path setting may not be updated.</li>
+      <li>SSH2: When SCP transfer is started on Windows 95/98/Me, an application fault occurs.</li>
       <li>SSH1: When the destination port number is other than 22, an application fault may be occurred after the host key is newly written to known_hosts file.</li>
       <li>SSH1: The rhosts authentication could not be performed at all.</li>
     </ul>
   </li>
 
-  <li>Misc
+  <!--li>Misc
     <ul>
       <li></li>
     </ul>
-  </li>
+  </li-->
 </ul>
 
 <h3 id="ttssh_2.89">2019.06.15 (Ver 2.89)</h3>
@@ -4789,11 +4846,38 @@
 
 <h2 id="ttproxy">TTProxy</h2>
 
-<h3 id="ttproxy_1.0.0.25">2019.xx.xx (Ver 1.0.0.25)</h3>
+<h3 id="ttproxy_1.0.0.26">2019.xx.xx (Ver 1.0.0.26)</h3>
 <ul class="history">
-      <li>Depending on OS, it's not working correctly. This bug was introduced in 4.103.</li>
+  <li>Changes
+    <ul>
+      <li></li>
+    </ul>
+  </li>
+  
+  <li>Bug fixes
+    <ul>
+      <li>When the HTTP proxy connection fails and the status code is other than 400,401,403,405,406,407, invalid string are shown in the message box.</li>
+    </ul>
+  </li>
 </ul>
 
+<h3 id="ttproxy_1.0.0.25">2019.08.31 (Ver 1.0.0.25)</h3>
+<ul class="history">
+  <li>Changes
+    <ul>
+      <li>When the negotiation is failed with SOCKS4 and 5, an error information is added to message.</li>
+    </ul>
+  </li>
+  
+  <li>Bug fixes
+    <ul>
+      <li>Bug fix: Depending on OS, setup dialog is not working correctly. This bug was introduced in 4.103.</li>
+      <li>Bug fix: When the hostname setting is domain, IPv6 and IPv4 fallback does not work well. And also, when you can not connect to the proxy server, Connection refused dialog is shown three times in a row.</li>
+      <li>Bug fix: When data can not receive from SOCKS server during negotiation with SOCKS4 and 5, the data may not be handled as an error.</li>
+    </ul>
+  </li>
+</ul>
+
 <h3 id="ttproxy_1.0.0.24">2016.11.30 (Ver 1.0.0.24)</h3>
 <ul class="history">
       <li>When an authentication is used on HTTP proxy, Tera Term(TTProxy) will be crashed.</li>

Modified: branches/unicode_buf/doc/en/html/commandline/ttssh.html
===================================================================
--- branches/unicode_buf/doc/en/html/commandline/ttssh.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/commandline/ttssh.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -172,7 +172,14 @@
   <dd>don't start a shell session when starting a connection.</dd>
 
   <dt id="nosecuritywarning">/nosecuritywarning</dt>
-  <dd>suppress SSH security warning. THIS OPTION PROHIBITED.</dd>
+  <dd>suppress SSH security warning(known_hosts). <strong>THIS OPTION PROHIBITED.</strong> <br>
+  
+    <u>NOTICE: This option was created for the purpose of realizing automatic testing of equipment <br>
+       in local environment like as a factory. You must not use this option when your network <br>
+       contains the security risk. Please at you own risk in every case.<br>
+    </u>
+  
+  </dd>
 
 </dl>
 

Modified: branches/unicode_buf/doc/en/html/image/NewConnection.png
===================================================================
(Binary files differ)

Modified: branches/unicode_buf/doc/en/html/macro/command/setflowctrl.html
===================================================================
--- branches/unicode_buf/doc/en/html/macro/command/setflowctrl.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/macro/command/setflowctrl.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -38,12 +38,16 @@
  </tr>
  <tr>
   <td>2</td>
-  <td>hardware</td>
+  <td>hardware(RTS/CTS)</td>
  </tr>
  <tr>
   <td>3</td>
   <td>none</td>
  </tr>
+ <tr>
+  <td>4</td>
+  <td>hardware(DSR/DTR) <em>(version 4.105 or later)</em></td>
+ </tr>
 </table>
 
 	</dd>

Modified: branches/unicode_buf/doc/en/html/menu/file-new.html
===================================================================
--- branches/unicode_buf/doc/en/html/menu/file-new.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/menu/file-new.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -41,23 +41,80 @@
     ssh://user****@myhos*****       SSH connection to the SSH protocol(ssh://)
     \\.\pipe\vmware-serial-port         Named pipe connection
     </pre>
-    
+
     This edit control can support the Ctrl+a(Home key), Ctrl+e(End key), Ctrl+b(left-arrow), Ctrl+f(right-arrow), Ctrl+n(down-arrow), Ctrl+p(up-arrow), Ctrl+d(delete the character at point), Ctrl+k(kill the text from point to the end of the line) and Ctrl+u(kill backward from point to the beginning of the line).
       </dd>
 
+      <dt>History</dt>
+      <dd>
+        Displayed when TTSSH is enabled. <br>
+        This option is select, the entered hostname will be added to the top of the host list when connecting to the input host.
+        This checkbox uses function of <a href="setup-tcpip.html#HistoryList">History</a> in the <a href="setup-tcpip.html">[Setup] menu</a>.
+      </dd>
+
       <dt>Telnet</dt>
       <dd>
-	Enables the telnet protocol. Usually, you should select this
-	option.
+        Enables the telnet protocol.
       </dd>
 
+      <dt>SSH</dt>
+      <dd>
+        Default selected option. Displayed when TTSSH is enabled.<br>
+        Enables the SSH protocol.
+      </dd>
+
+      <dt>Other</dt>
+      <dd>
+        Displayed when TTSSH is enabled.<br>
+        Enables other protocol from except telnet and SSH.
+      </dd>
+
       <dt>TCP port#</dt>
       <dd>
-	Normally, you should use the TCP port number 23 for the telnet
-	protocol.
+        Specify the port number according to the selected service.<br>
+        The default is as follows.<br>
+        <table border="1">
+          <tr>
+           <th>Service</th>
+           <th>TCP port#</th>
+           <th>etc.</th>
+          </tr>
+
+          <tr>
+           <td>Telnet</td>
+           <td>23</td>
+           <td>well-known ports</td>
+          </tr>
+
+          <tr>
+           <td>SSH</td>
+           <td>22</td>
+           <td>well-known ports<br>Displayed when TTSSH is enabled.</td>
+          </tr>
+
+          <tr>
+           <td>Other</td>
+           <td>(Optional)</td>
+           <td>Displayed when TTSSH is enabled.</td>
+          </tr>
+
+        </table>
       </dd>
+
+      <dt>SSH version</dt>
+      <dd>
+        Displayed when TTSSH is enabled.<br>
+        Uses for connection by selected from version ssh1 or ssh2.
+      </dd>
+
+      <dt>IP version</dt>
+      <dd>
+        Selects as an IP version from AUTO or IPv6 or IPv4.<br>
+        The AUTO try to connect to the IP address associated with the hostname.<br>
+        Either IPv6 or IPv4 using depends on the OS setting(priority of IP version).
+      </dd>
+
     </dl>
-
     <p class="indent1">
       Note:<br>
       Only if <telnet flag> is on and <TCP port#> is 23,
@@ -75,7 +132,7 @@
     <dl>
       <dt>Port</dt>
       <dd>
-	Select a port from the list. By default, maximum serial port number in the list is 256. It is configurable in <a href="../setup/teraterm-com.html#maxport">MaxComPort</a> setting.
+        Select a port from the list. By default, maximum serial port number in the list is 256. Also, the serial port does not show when there is no available port. It is configurable in <a href="../setup/teraterm-com.html#maxport">MaxComPort</a> setting.
       </dd>
     </dl>
   </body>

Modified: branches/unicode_buf/doc/en/html/menu/setup-additional.html
===================================================================
--- branches/unicode_buf/doc/en/html/menu/setup-additional.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/menu/setup-additional.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -263,19 +263,26 @@
 
     <h2 id="TabVisual">"Visual" tab</h2>
     <dl>
-      <dt id="AlphaBlendActive">Window Transparency / Active</dt>
-      <dt id="AlphaBlend">Window Transparency / Inactive</dt>
+      <dt id="AlphaBlendActive">Window Opacity / Active</dt>
+      <dt id="AlphaBlend">Window Opacity / Inactive</dt>
       <dd>
-	You can set up the value of transparency when the window is active (on focus) and not active (non-focus).
-	The range of transparency is from 0 to 255. The more transparency reduces the value, the more
+	You can set up the value of opacity when the window is active (on focus) and not active (non-focus).
+	The range of opacity is from 0 to 255. The more reduces the this value, the more
 	window transparency is blinding.
       </dd>
 
       <dt>Eterm lookfeel</dt>
       <dd>
-	Tera Term window looks like Eterm look-feel background transparency.
+	Tera Term window looks like Eterm look-feel background transparency. <br>
+	<strong>NOTICE: You need to save setup and restart Tera Term for enabling this settings.</strong>
       </dd>
 
+     <dt id="MixedThemeFile">Mixed ThemeFile to Background</dt>
+      <dd>
+	When the Eterm look-feel feature is enabled, you can specify whether to mix the wallpaper and the image of theme file. <br>
+	Howerver, this option can not be used with Background Image at the same time. <br>
+      </dd>
+
       <dt>Background Image</dt>
       <dd>
 	When the Eterm look-feel feature is enabled, an image file can be specified as background.

Modified: branches/unicode_buf/doc/en/html/menu/setup-proxy.html
===================================================================
--- branches/unicode_buf/doc/en/html/menu/setup-proxy.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/menu/setup-proxy.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -11,6 +11,8 @@
   <body>
     <h1>Proxy([Setup] menu)</h1>
 
+<strong>NOTICE: You need to save setup and restart Tera Term for enabling proxy settings.</strong>
+
     <h2>"Proxy Setup" dialog box</h2>
     <dl>
       <dt>Type</dt>
@@ -28,6 +30,11 @@
       <dt>Hostname</dt>
       <dd>
 	Specify Proxy Server
+	
+	<p>
+	The host name, IPv4 and IPv6 address can be specified. <br>
+	The IPv6 address need not to be surround with the bracket.
+	</p>
       </dd>
 
       <dt>Port number</dt>

Modified: branches/unicode_buf/doc/en/html/menu/setup-serialport.html
===================================================================
--- branches/unicode_buf/doc/en/html/menu/setup-serialport.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/menu/setup-serialport.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -27,9 +27,10 @@
 	</p>
 	<p>
 	  Flow control can be configured in the following:<br>
+	     Xon/Xoff  ...  Software flow<br>
+	     RTS/CTS  ... Hardware flow(RTS/CTS)<br>
+	     DSR/DTR  ... Hardware flow(DSR/DTR)<br>
 	     none  ...  No flow control<br>
-	     Xon/Xoff  ...  Software flow<br>
-	     hardware  ... Hardware flow(RTS/CTS)<br>
 	</p>
 	<p>
 	  Note: If Data is 7 bit, the XMODEM, ZMODEM, B PLUS and Quick-VAN

Modified: branches/unicode_buf/doc/en/html/menu/setup-ssh.html
===================================================================
--- branches/unicode_buf/doc/en/html/menu/setup-ssh.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/menu/setup-ssh.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -323,6 +323,54 @@
 	By using SSH1 protocol, when the Compression level is 0, the packet compression is disabled, or the Compression level is over 1, the compression is enabled. <br>
 	By using SSH2 protocol, use the Compression order to enable the packet compression. And then, set the Compression level to 1 over.
       </dd>
+
+
+      <dt id="LogLevel">LogLevel</dt>
+      <dd>
+	Specify the debug level of TTSSH module. <br>
+	When the debug level is greater than 0, the debug data is recorded in "TTSSH.LOG", <br>
+	"ssh2connect.log" and "ssh2packet.log" under ttermpro.exe directory. <br>
+	<table border="1">
+	  <tr>
+	    <td>Value</td>
+	    <td>Meaning</td>
+	  </tr>
+	  <tr>
+	    <td>0</td>
+	    <td>Disabled</td>
+	  </tr>
+	  <tr>
+	    <td>5</td>
+	    <td>Fatal</td>
+	  </tr>
+	  <tr>
+	    <td>10</td>
+	    <td>Error</td>
+	  </tr>
+	  <tr>
+	    <td>30</td>
+	    <td>Warning</td>
+	  </tr>
+	  <tr>
+	    <td>50</td>
+	    <td>Notice</td>
+	  </tr>
+	  <tr>
+	    <td>80</td>
+	    <td>Information</td>
+	  </tr>
+	  <tr>
+	    <td>100</td>
+	    <td>Verbose</td>
+	  </tr>
+	  <tr>
+	    <td>200</td>
+	    <td>SSH Dump</td>
+	  </tr>
+	</table>
+      </dd>
+
+
     </dl>
   </body>
 </html>

Modified: branches/unicode_buf/doc/en/html/reference/develop.txt
===================================================================
--- branches/unicode_buf/doc/en/html/reference/develop.txt	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/reference/develop.txt	2019-09-12 15:58:02 UTC (rev 8124)
@@ -50,7 +50,7 @@
 
 
 * Libraries
-- Oniguruma 6.9.2 (https://github.com/kkos/oniguruma)
+- Oniguruma 6.9.3 (https://github.com/kkos/oniguruma)
 - OpenSSL 1.0.2s (http://www.openssl.org/)
 - zlib 1.2.11 (http://www.zlib.net/)
 - PuTTY 0.70 (http://www.chiark.greenend.org.uk/~sgtatham/putty/)
@@ -150,6 +150,7 @@
      (1) Extract SFMT source into libs/SFMT directory.
      (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu.
      (3) Move 'libs' directory on the command prompt. And run buildSFMT.bat.
+     (4) Modify version information in libs/SFMT/SFMT_version_for_teraterm.h if necessary.
 
 
 * How to build Tera Term

Modified: branches/unicode_buf/doc/en/html/setup/teraterm-ini.html
===================================================================
--- branches/unicode_buf/doc/en/html/setup/teraterm-ini.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/en/html/setup/teraterm-ini.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -56,6 +56,18 @@
 		<td style="width:250px;"><-</td>
 		<td></td>
 	</tr>
+	<tr>
+		<td id="BGThemeFile">BGThemeFile</td>
+		<td style="width:250px;">theme\*.ini</td>
+		<td style="width:250px;"><-</td>
+		<td></td>
+	</tr>
+	<tr>
+		<td id="BGIgnoreThemeFile">BGIgnoreThemeFile</td>
+		<td style="width:250px;">off</td>
+		<td style="width:250px;"><-</td>
+		<td></td>
+	</tr>
 </table>
 
 <h2>Tera Term</h2>

Modified: branches/unicode_buf/doc/ja/html/about/history.html
===================================================================
--- branches/unicode_buf/doc/ja/html/about/history.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/about/history.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -31,30 +31,64 @@
 
 <h2 id="teraterm">Tera Term</h2>
 
-<h3 id="teraterm_4.104">2019.xx.xx (Ver 4.104)</h3>
+<h3 id="teraterm_4.105">2019.xx.xx (Ver 4.105)</h3>
 <ul class="history">
   <li>\x95ύX
     <ul>
-      <li><a href="../macro/command/fileopen.html">fileopen</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83t\x83@\x83C\x83\x8B\x82\xAA\x8AJ\x82\xAF\x82Ȃ\xA2\x8Fꍇ\x82ɃG\x83\x89\x81[\x82ɂȂ\xE7\x82Ȃ\xA2\x82悤\x82ɂ\xB5\x82\xBD\x81BVer 4.102\x82ł̕ύX\x82\xF0\x8C\xB3\x82ɖ߂\xB5\x82\xBD\x81B</li>
-      <li><a href="../macro/command/filetruncate.html">filetruncate</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83t\x83@\x83\x8B\x82\xAA\x8AJ\x82\xAF\x82Ȃ\xA2\x8Fꍇ\x81E\x83t\x83@\x83C\x83\x8B\x83T\x83C\x83Y\x82̕ύX\x82Ɏ\xB8\x94s\x82\xB5\x82\xBD\x8Fꍇ\x82ɃG\x83\x89\x81[\x82ɂȂ\xE7\x82Ȃ\xA2\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+      <li>\x83V\x83\x8A\x83A\x83\x8B\x90ڑ\xB1\x82Ńn\x81[\x83h\x83E\x83F\x83A\x83t\x83\x8D\x81[\x90\xA7\x8C\xE4DSR/DTR\x82\xF0\x83T\x83|\x81[\x83g\x82\xB5\x82\xBD\x81B
+        <ul>
+          <li><a href="../menu/setup-serialport.html">Serial port ([Setup] \x83\x81\x83j\x83\x85\x81[)</a>\x82\xCCFlow control\x82\xC5hardware\x82\xF0RTS/CTS\x82ɕύX\x82\xB5\x81A\x90V\x82\xB5\x82\xADDSR/DTR\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li>
+          <li><a href="../macro/command/setflowctrl.html">setflowctrl</a>\x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82\xC5 DSR/DTR \x82\xF0\x8Ew\x92\xE8\x82ł\xAB\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+        </ul></li>
+      <li>\x83o\x81[\x83W\x83\x87\x83\x93\x8F\xEE\x95\xF1\x83_\x83C\x83A\x83\x8D\x83O\x82\xC9SFMT\x82̕\\x8BL\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li>
+      <li><a href="../menu/file-new.html">New connection\x83_\x83C\x83A\x83\x8D\x83O</a>\x82̕\\x8BL\x82\xF0\x81uProtocol\x81v\x82\xA9\x82\xE7\x81uIP version\x81v\x82ɁA\x81uUNSPEC\x81v\x82\xF0\x81uAUTO\x81v\x82ɕύX\x82\xB5\x82\xBD\x81B</li>
+      <li>VT \x83E\x83B\x83\x93\x83h\x83E\x82̃^\x83C\x83g\x83\x8B\x83o\x81[\x8F\xE3\x82Ń}\x83E\x83X\x83z\x83C\x81[\x83\x8B\x82𑀍삵\x82ăE\x83B\x83\x93\x83h\x83E\x82̕s\x93\xA7\x96\xBE\x93x\x82\xF0\x88ꎞ\x93I\x82ɕύX\x82\xB7\x82\xE9\x82Ƃ\xAB\x81A\x95s\x93\xA7\x96\xBE\x93x\x82\xF0\x83c\x81[\x83\x8B\x83`\x83b\x83v\x82ɕ\\x8E\xA6\x82\xB7\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+      <li><a href="../menu/setup-additional.html">Additional settings\x83_\x83C\x83A\x83\x8D\x83O</a>\x82\xCCVisual\x83^\x83u\x82ŁA\x95s\x93\xA7\x96\xBE\x93x\x82\xF0\x83X\x83\x89\x83C\x83_\x81[\x82Ŏw\x92\xE8\x82ł\xAB\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+      <li>\x83\x8A\x83T\x83C\x83Y\x92\x86\x82̏c\x89\xA1\x83T\x83C\x83Y\x83c\x81[\x83\x8B\x83`\x83b\x83v\x82̕\\x8E\xA6\x88ʒu\x82\xF0\x83\x8A\x83T\x83C\x83Y\x8C\xE3\x82̍\xC0\x95W\x82ɒǏ]\x82\xB7\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+      <li>Eterm look-feel: <a href="../menu/setup-additional.html#MixedThemeFile">\x95ǎ\x86\x82Ɖ摜\x82\xF0\x8D\xAC\x8D\x87\x82\xB7\x82\xE9</a>\x82\xF0\x90ݒ\xE8\x82ł\xAB\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81Bteraterm.ini \x82\xC9 <a href="../setup/teraterm-ini.html#BGIgnoreThemeFile">BGIgnoreThemeFile</a> \x83G\x83\x93\x83g\x83\x8A\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B\x83f\x83t\x83H\x83\x8B\x83g\x82\xCDoff\x81B</li>
+    </ul>
+  </li>
+  <li>\x83o\x83O\x8FC\x90\xB3
+    <ul>
+      <li>\x83\x8A\x83T\x83C\x83Y\x92\x86\x82̏c\x89\xA1\x83T\x83C\x83Y\x83c\x81[\x83\x8B\x83`\x83b\x83v\x82\xAA\x81A\x83f\x83X\x83N\x83g\x83b\x83v\x82̍\xB6\x92[\x82Ə\xE3\x92[\x82ŕ\\x8E\xA6\x82\xB3\x82\xEA\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
+      <li>Eterm look-feel: \x95ǎ\x86\x82ƍ\xAC\x8D\x87\x82\xB7\x82\xE9\x89摜\x83t\x83@\x83C\x83\x8B\x82\xF0\x83\x89\x83\x93\x83_\x83\x80\x82ɑI\x91\xF0\x82\xB7\x82\xE9\x8DہA\x96\xB3\x8A֌W\x82ȃt\x83@\x83C\x83\x8B\x82\xF0\x91I\x91\xF0\x82\xB7\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+    </ul>
+  </li>
+
+  <li>\x82\xBB\x82̑\xBC
+    <ul>
+      <li><a href="#ttssh_2.91">TTSSH(2.91)</a>\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li>
+      <li><a href="#ttproxy_1.0.0.26">TTProxy(1.0.0.26)</a>\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="teraterm_4.104">2019.08.31 (Ver 4.104)</h3>
+<ul class="history">
+  <li>\x95ύX
+    <ul>
+      <li><a href="../setup/teraterm-win.html#textselect">\x83}\x83E\x83X\x82ŃE\x83B\x83\x93\x83h\x83E\x82\xF0\x91I\x91\xF0\x82\xB5\x82\xBD\x82Ƃ\xAB\x82̕\xB6\x8E\x9A\x82̑I\x91\xF0\x82\xF0\x8B֎~\x82\xB7\x82\xE9</a>\x82\xF0<a href="../menu/setup-additional.html#SelectOnActivate">Additional settings\x83_\x83C\x83A\x83\x8D\x83O</a>\x82Őݒ\xE8\x82ł\xAB\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
       <li><a href="../menu/file-chdir.html">\x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x82̂\xBD\x82߂̃f\x83B\x83\x8C\x83N\x83g\x83\x8A</a>\x82Ɋ܂܂\xEA\x82\xE9\x8A‹\xAB\x95ϐ\x94\x82\xF0\x93W\x8AJ\x82\xB7\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
       <li>IME\x82̖\xA2\x8Am\x92蕶\x8E\x9A\x82̃t\x83H\x83\x93\x83g\x82\xAA\x8Ew\x92\xE8\x83t\x83H\x83\x93\x83g\x82Ɠ\xAF\x88\xEA\x82ɂȂ\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
-      <li><a href="../setup/teraterm-win.html#textselect">\x83}\x83E\x83X\x82ŃE\x83B\x83\x93\x83h\x83E\x82\xF0\x91I\x91\xF0\x82\xB5\x82\xBD\x82Ƃ\xAB\x82̕\xB6\x8E\x9A\x82̑I\x91\xF0\x82\xF0\x8B֎~\x82\xB7\x82\xE9</a>\x82\xF0<a href="../menu/setup-additional.html#SelectOnActivate">Additional settings\x83_\x83C\x83A\x83\x8D\x83O</a>\x82Őݒ\xE8\x82ł\xAB\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
+      <li>Additional settings\x83_\x83C\x83A\x83\x8D\x83O\x82Ƀw\x83\x8B\x83v\x83{\x83^\x83\x93\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li>
+      <li><a href="../macro/command/fileopen.html">fileopen</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83t\x83@\x83C\x83\x8B\x82\xAA\x8AJ\x82\xAF\x82Ȃ\xA2\x8Fꍇ\x82ɃG\x83\x89\x81[\x82ɂȂ\xE7\x82Ȃ\xA2\x82悤\x82ɂ\xB5\x82\xBD\x81B4.102\x82ł̕ύX\x82\xF0\x8C\xB3\x82ɖ߂\xB5\x82\xBD\x81B</li>
+      <li><a href="../macro/command/filetruncate.html">filetruncate</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83t\x83@\x83\x8B\x82\xAA\x8AJ\x82\xAF\x82Ȃ\xA2\x8Fꍇ\x81E\x83t\x83@\x83C\x83\x8B\x83T\x83C\x83Y\x82̕ύX\x82Ɏ\xB8\x94s\x82\xB5\x82\xBD\x8Fꍇ\x82ɃG\x83\x89\x81[\x82ɂȂ\xE7\x82Ȃ\xA2\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
     </ul>
   </li>
   <li>\x83o\x83O\x8FC\x90\xB3
     <ul>
+      <li>UTF-8\x8E\xF3\x90M\x8E\x9E\x81A4byte\x82\xCCUTF-8\x82̃f\x83R\x81[\x83h\x82\xF0\x8C\xEB\x82\xC1\x82Ă\xA2\x82\xBD\x82̂ŏC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
       <li>Active Window Tracking \x82\xF0\x97L\x8C\xF8\x8E\x9E\x81A\x83}\x83E\x83X\x83J\x81[\x83\\x83\x8B\x82\xAA Tera Term \x82̃E\x83B\x83\x93\x83h\x83E\x93\xE0\x82Ɉړ\xAE\x82\xB5\x82Ă\xE0\x81A\x83A\x83N\x83e\x83B\x83u\x82ɂȂ\xE7\x82Ȃ\xA2\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
-      <li>UTF-8\x8E\xF3\x90M\x8E\x9E\x81A4byte\x82\xCCUTF-8\x82̃f\x83R\x81[\x83h\x82\xF0\x8C\xEB\x82\xC1\x82Ă\xA2\x82\xBD\x82̂ŏC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
-      <li>Ver 4.103 \x82\xC5 DLL \x82̌Ăяo\x82\xB5\x8BK\x96\xF1\x82\xF0\x95ς\xA6\x82\xBD\x82\xB1\x82ƂŁA\x82\xBB\x82\xEA\x88ȑO\x82ɃR\x83\x93\x83p\x83C\x83\x8B\x82\xB3\x82ꂽ\x83v\x83\x89\x83O\x83C\x83\x93\x82\xAA\x8CĂяo\x82\xB9\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>\x83E\x83B\x83\x93\x83h\x83E\x83^\x83C\x83g\x83\x8B\x82̃Z\x83b\x83V\x83\x87\x83\x93\x94ԍ\x86\x82\xAA\x8F\xED\x82\xC91\x82ƂȂ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
       <li>IME\x82̖\xA2\x8Am\x92蕶\x8E\x9A\x82\xF0\x95\\x8E\xA6\x82\xB5\x82Ă\xA2\x82\xE9\x8F\xF3\x91ԂŃt\x83H\x83\x93\x83g\x91I\x91\xF0\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x82\xC6IME\x82̃t\x83H\x83\x93\x83g\x82\xAA\x95ω\xBB\x82\xB7\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
-      <li>\x83E\x83B\x83\x93\x83h\x83E\x83^\x83C\x83g\x83\x8B\x82̃Z\x83b\x83V\x83\x87\x83\x93\x94ԍ\x86\x82\xAA\x8F\xED\x82\xC91\x82ƂȂ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>\x89p\x8C\xEA\x94\xC5Windows\x82ŁA\x83\x8D\x83P\x81[\x83\x8B\x90ݒ肪\x83f\x83t\x83H\x83\x8B\x83g(japanese)\x82\xE0\x82\xB5\x82\xAD\x82͕s\x93K\x90؂ȏꍇ\x81ATera Term\x82\xF0\x8BN\x93\xAE\x82\xB5\x82Ă\xB7\x82\xAE\x82ɃA\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x83t\x83H\x83\x8B\x83g\x82ƂȂ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>[File]/[Send file..]\x82\xA9\x82\xE7\x91傫\x82ȃt\x83@\x83C\x83\x8B\x82\xF0\x82\xA4\x82܂\xAD\x91\x97\x90M\x82ł\xAB\x82Ȃ\xA2\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
+      <li>\x88󎚒\x86\x8E~\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x8Fo\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
+      <li>4.103 \x82\xC5 DLL \x82̌Ăяo\x82\xB5\x8BK\x96\xF1\x82\xF0\x95ς\xA6\x82\xBD\x82\xB1\x82ƂŁA\x82\xBB\x82\xEA\x88ȑO\x82ɃR\x83\x93\x83p\x83C\x83\x8B\x82\xB3\x82ꂽ\x83v\x83\x89\x83O\x83C\x83\x93\x82\xAA\x8CĂяo\x82\xB9\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li><a href="../macro/command/listbox.html">listbox</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y\x82ɍ\x87\x82킹\x82ă\x8A\x83X\x83g\x82̉\xA1\x95\x9D\x82𒲐\xAE\x82ł\xAB\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
       <li><a href="../macro/command/filecopy.html">filecopy</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82̌\x8B\x89ʂ\xAA result \x83V\x83X\x83e\x83\x80\x95ϐ\x94\x82Ɋi\x94[\x82\xB3\x82\xEA\x82Ȃ\xA2\x82\xB1\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
-      <li>[File]/[Send file..]\x82\xA9\x82\xE7\x91傫\x82ȃt\x83@\x83C\x83\x8B\x82\xF0\x82\xA4\x82܂\xAD\x91\x97\x90M\x82ł\xAB\x82Ȃ\xA2\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
       <li><a href="../macro/command/filelock.html">filelock</a>, <a href="../macro/command/fileunlock.html">fileunlock</a> \x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82\xAA\x8F\xED\x82Ɏ\xB8\x94s\x82\xB5\x82Ă\xA2\x82\xBD\x81B4.101\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
       <li><a href="../macro/command/filestrseek2.html">filestrseek2</a>\x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82ŁA\x83t\x83@\x83C\x83\x8B\x82\xCC1\x83o\x83C\x83g\x96ڂ\xAA\x88\xEA\x92v\x82\xB5\x82\xBD\x82Ƃ\xAB\x81A\x83t\x83@\x83C\x83\x8B\x83|\x83C\x83\x93\x83^\x82\xAA\x90擪\x82ɂȂ\xC1\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.101\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
-      <li>\x88󎚒\x86\x8E~\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x8Fo\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B4.103\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
-      <li>\x89p\x8C\xEA\x94\xC5Windows\x82ŁA\x83\x8D\x83P\x81[\x83\x8B\x90ݒ肪\x83f\x83t\x83H\x83\x8B\x83g(japanese)\x82\xE0\x82\xB5\x82\xAD\x82͕s\x93K\x90؂ȏꍇ\x81ATera Term\x82\xF0\x8BN\x93\xAE\x82\xB5\x82Ă\xB7\x82\xAE\x82ɃA\x83v\x83\x8A\x83P\x81[\x83V\x83\x87\x83\x93\x83t\x83H\x83\x8B\x83g\x82ƂȂ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
     </ul>
   </li>
 
@@ -62,6 +96,7 @@
     <ul>
       <li><a href="#ttssh_2.90">TTSSH(2.90)</a>\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li>
       <li><a href="#ttproxy_1.0.0.25">TTProxy(1.0.0.25)</a>\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li>
+      <li>Oniguruma 6.9.3\x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li>
     </ul>
   </li>
 </ul>
@@ -3168,28 +3203,50 @@
 
 <h2 id="ttssh">TTSSH</h2>
 
-<h3 id="ttssh_2.90">2019.xx.xx (Ver 2.90)</h3>
+<h3 id="ttssh_2.91">2019.xx.xx (Ver 2.91)</h3>
 <ul class="history">
   <li>\x95ύX
     <ul>
-      <li></li>
+      <li><a href="../menu/file-new.html">New connection\x83_\x83C\x83A\x83\x8D\x83O</a>\x82̕\\x8BL\x82\xF0\x81uProtocol\x81v\x82\xA9\x82\xE7\x81uIP version\x81v\x82ɁA\x81uUNSPEC\x81v\x82\xF0\x81uAUTO\x81v\x82ɕύX\x82\xB5\x82\xBD\x81B</li>
+      <li>\x83\x86\x81[\x83U\x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82̕\\x8E\xA6\x83^\x83C\x83~\x83\x93\x83O\x82\xF0known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌\xE3\x82ɕύX\x82\xB5\x82\xBD\x81B</li>
+      <li><a href="../menu/setup-ssh.html#LogLevel">Setup\x83_\x83C\x83A\x83\x8D\x83O</a>\x82\xC9LogLevel\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li>
+      <li><a href="../menu/setup-ssh.html">Setup\x83_\x83C\x83A\x83\x8D\x83O</a>\x81A<a href="../menu/setup-sshauth.html">Authentication Setup\x83_\x83C\x83A\x83\x8D\x83O</a>\x81A<a href="../menu/setup-sshforward.html">Forwarding\x83_\x83C\x83A\x83\x8D\x83O</a>\x81A<a href="../menu/setup-sshkeygenerator.html">Key Generator\x83_\x83C\x83A\x83\x8D\x83O</a>\x82Ƀw\x83\x8B\x83v\x83{\x83^\x83\x93\x82\xF0\x92lj\xC1\x82\xB5\x82\xBD\x81B</li>
+      <li>known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xA8\x82\xE6\x82у\x86\x81[\x83U\x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82̕\\x8E\xA6\x92\x86\x82ɁASSH\x83T\x81[\x83o\x91\xA4\x82\xA9\x82\xE7\x83l\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8E\xA9\x93\xAE\x82ŕ‚\xB6\x82\xE9\x82悤\x82ɂ\xB5\x82\xBD\x81B</li>
     </ul>
   </li>
 
   <li>\x83o\x83O\x8FC\x90\xB3
     <ul>
+      <li>\x83\x81\x83b\x83Z\x81[\x83W\x83{\x83b\x83N\x83X\x82̕\\x8E\xA6\x82ɓ\xAF\x88ꃁ\x83b\x83Z\x81[\x83W\x82\xAA\x95\xA1\x90\x94\x8A܂܂\xEA\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̕\\x8E\xA6\x92\x86\x82\xC9SSH\x83T\x81[\x83o\x91\xA4\x82\xA9\x82\xE7\x83l\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82\xEA\x82\xE9\x82ƁA\x83A\x83v\x83\x8A\x82\xAA\x83N\x83\x89\x83b\x83V\x83\x85\x82\xB7\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>SSH1: <a href="../commandline/ttssh.html#nosecuritywarning">/nosecuritywarning</a>\x83I\x83v\x83V\x83\x87\x83\x93\x82\xAA\x8B@\x94\\x82\xB5\x82Ă\xA2\x82Ȃ\xA9\x82\xC1\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+    </ul>
+  </li>
+</ul>
+
+<h3 id="ttssh_2.90">2019.08.31 (Ver 2.90)</h3>
+<ul class="history">
+  <!--li>\x95ύX
+    <ul>
+      <li></li>
+    </ul>
+  </li-->
+
+  <li>\x83o\x83O\x8FC\x90\xB3
+    <ul>
       <li>SSH2: \x83|\x81[\x83g\x93]\x91\x97\x82\xC5SSH\x92ʐM\x82\xAA\x92x\x82\xA2\x8Fꍇ\x82ɂ\xA8\x82\xA2\x82āA\x8F\xC1\x94\x83\x82\x83\x8A\x82\xAA\x94\xEC\x91剻\x82\xB5\x82ăA\x83v\x83\x8A\x82\xAA\x97\x8E\x82\xBF\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
       <li>SSH2: SCP \x93]\x91\x97\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x82Ƃ\xAB\x82ɁA\x83t\x83@\x83C\x83\x8B\x93]\x91\x97\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x90ݒ\xE8\x81ESCP\x91\x97\x90M\x90\xE6\x83p\x83X\x90ݒ肪\x8DX\x90V\x82\xB3\x82\xEA\x82Ȃ\xA2\x82\xB1\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>SSH2: Windows95/98/Me\x82\xC5SCP\x92ʐM\x82\xF0\x8AJ\x8En\x82\xB7\x82\xE9\x82ƁA\x83A\x83v\x83\x8A\x82\xAA\x97\x8E\x82\xBF\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
       <li>SSH1: \x90ڑ\xB1\x90\xE6\x82̃|\x81[\x83g\x94ԍ\x86\x82\xAA22\x88ȊO\x82ŁA\x90V\x8BK\x82\xC9known_hosts\x83t\x83@\x83C\x83\x8B\x82փz\x83X\x83g\x8C\xAE\x82\xF0\x8F\x91\x82\xAB\x8D\x9E\x82ގ\x9E\x81A\x83A\x83v\x83\x8A\x82\xAA\x97\x8E\x82\xBF\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
       <li>SSH1: rhosts\x94F\x8F؂\xAA\x82ł\xAB\x82Ȃ\xAD\x82Ȃ\xC1\x82Ă\xA2\x82\xBD\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
     </ul>
   </li>
 
-  <li>\x82\xBB\x82̑\xBC
+  <!--li>\x82\xBB\x82̑\xBC
     <ul>
       <li></li>
     </ul>
-  </li>
+  </li-->
 </ul>
 
 <h3 id="ttssh_2.89">2019.06.15 (Ver 2.89)</h3>
@@ -4794,11 +4851,38 @@
 
 <h2 id="ttproxy">TTProxy</h2>
 
-<h3 id="ttproxy_1.0.0.25">2019.xx.xx (Ver 1.0.0.25)</h3>
+<h3 id="ttproxy_1.0.0.26">2019.xx.xx (Ver 1.0.0.26)</h3>
 <ul class="history">
-      <li>OS\x82ɂ\xE6\x82\xC1\x82Đ\xB3\x82\xB5\x82\xAD\x93\xAE\x8D삵\x82Ȃ\xA2\x95s\x8B\x82\xF0\x8FC\x90\xB3\x81B<a href="#teraterm_4.103">teraterm 4.103</a>\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
+  <li>\x95ύX
+    <ul>
+      <li></li>
+    </ul>
+  </li>
+  
+  <li>\x83o\x83O\x8FC\x90\xB3
+    <ul>
+      <li>HTTP\x83v\x83\x8D\x83L\x83V\x90ڑ\xB1\x82\xAA\x83G\x83\x89\x81[\x82ƂȂ\xE8\x81A\x83X\x83e\x81[\x83^\x83X\x83R\x81[\x83h\x82\xAA400,401,403,405,406,407\x88ȊO\x82\xBE\x82\xC1\x82\xBD\x8Fꍇ\x81A\x83\x81\x83b\x83Z\x81[\x83W\x83{\x83b\x83N\x83X\x82ɃS\x83~\x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+    </ul>
+  </li>
 </ul>
 
+<h3 id="ttproxy_1.0.0.25">2019.08.31 (Ver 1.0.0.25)</h3>
+<ul class="history">
+  <li>\x95ύX
+    <ul>
+      <li>SOCKS4/5\x82ƃl\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x8Fꍇ\x81A\x83G\x83\x89\x81[\x8F\xEE\x95\xF1\x82\xF0\x83\x81\x83b\x83Z\x81[\x83W\x82ɒlj\xC1\x82\xB5\x82\xBD\x81B</li>
+    </ul>
+  </li>
+  
+  <li>\x83o\x83O\x8FC\x90\xB3
+    <ul>
+      <li>OS\x82ɂ\xE6\x82\xC1\x82Đݒ\xE8\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x90\xB3\x82\xB5\x82\xAD\x93\xAE\x8D삵\x82Ȃ\xA2\x95s\x8B\x82\xF0\x8FC\x90\xB3\x81B<a href="#teraterm_4.103">teraterm 4.103</a>\x82ł̃G\x83\x93\x83o\x83O\x81B</li>
+      <li>\x83z\x83X\x83g\x96\xBC\x82̐ݒ肪\x83h\x83\x81\x83C\x83\x93\x82̏ꍇ\x82ɂ\xA8\x82\xA2\x82āAIPv6/IPv4\x83t\x83H\x81[\x83\x8B\x83o\x83b\x83N\x82\xAA\x93\xAE\x8D삵\x82Ȃ\xA2\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B\x82\xA9\x82A\x83v\x83\x8D\x83L\x83V\x83T\x81[\x83o\x82ɐڑ\xB1\x82ł\xAB\x82Ȃ\xA2\x8Fꍇ\x81AConnection refused\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA3\x89\xF1\x98A\x91\xB1\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xE0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+      <li>SOCKS4/5\x82ƃl\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x92\x86\x82ɁASOCKS\x83T\x81[\x83o\x82\xA9\x82\xE7\x83f\x81[\x83^\x8E\xF3\x90M\x82ł\xAB\x82Ȃ\xA2\x8Fꍇ\x81A\x83G\x83\x89\x81[\x88\xB5\x82\xA2\x82ɂł\xAB\x82Ă\xA2\x82Ȃ\xA2\x82\xB1\x82Ƃ\xAA\x82\xA0\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>
+    </ul>
+  </li>
+</ul>
+
 <h3 id="ttproxy_1.0.0.24">2016.11.30 (Ver 1.0.0.24)</h3>
 <ul class="history">
       <li>HTTP \x83v\x83\x8D\x83L\x83V\x82ŔF\x8F؂\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x82Ɛڑ\xB1\x8E\x9E\x82ɗ\x8E\x82\xBF\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li>

Modified: branches/unicode_buf/doc/ja/html/commandline/ttssh.html
===================================================================
--- branches/unicode_buf/doc/ja/html/commandline/ttssh.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/commandline/ttssh.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -172,7 +172,13 @@
   <dd>\x90ڑ\xB1\x8E\x9E\x82ɃV\x83F\x83\x8B\x83Z\x83b\x83V\x83\x87\x83\x93\x82\xF0\x8AJ\x8En\x82\xB5\x82Ȃ\xA2\x81B</dd>
 
   <dt id="nosecuritywarning">/nosecuritywarning</dt>
-  <dd>SSH\x83Z\x83L\x83\x85\x83\x8A\x83e\x83B\x8Cx\x8D\x90\x82𖳎\x8B\x82\xB7\x82\xE9\x81B\x8C\xB4\x91\xA5\x81A\x8Eg\x97p\x8B֎~\x81B</dd>
+  <dd>SSH\x83Z\x83L\x83\x85\x83\x8A\x83e\x83B\x8Cx\x8D\x90(known_hosts)\x82𖳎\x8B\x82\xB7\x82\xE9\x81B\x8C\xB4\x91\xA5\x81A<strong>\x8Eg\x97p\x8B֎~</strong>\x81B<br>
+  
+    <u>\x81\xA6\x96{\x83I\x83v\x83V\x83\x87\x83\x93\x82́A\x8DH\x8F\xEA\x82Ȃǂ̕‚\xB6\x82\xBD\x8A‹\xAB\x82ŁA\x8B@\x8A\xED\x82̎\xA9\x93\xAE\x8E\x8E\x8C\xB1\x82\xF0\x8E\xC0\x8C\xBB\x82\xB7\x82邽\x82߂ɗp\x88ӂ\xB3\x82\xEA\x82܂\xB5\x82\xBD\x81B<br>
+       \x92ʐM\x82ɃZ\x83L\x83\x85\x83\x8A\x83e\x83B\x83\x8A\x83X\x83N\x82\xAA\x82\xA0\x82\xE9\x8Fꍇ\x82́A\x90\xE2\x91΂ɓ\x96\x8AY\x83I\x83v\x83V\x83\x87\x83\x93\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2\x82ł\xAD\x82\xBE\x82\xB3\x82\xA2\x81B<br>
+       \x82\xA2\x82\xB8\x82\xEA\x82ɂ\xA8\x82\xA2\x82Ă\xE0\x8E\xA9\x8CȐӔC\x82ł\xA8\x8A肢\x82\xB5\x82܂\xB7\x81B<br>
+    </u>
+  </dd>
 
 </dl>
 

Modified: branches/unicode_buf/doc/ja/html/image/NewConnection.png
===================================================================
(Binary files differ)

Modified: branches/unicode_buf/doc/ja/html/macro/command/setflowctrl.html
===================================================================
--- branches/unicode_buf/doc/ja/html/macro/command/setflowctrl.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/macro/command/setflowctrl.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -38,12 +38,16 @@
  </tr>
  <tr>
   <td>2</td>
-  <td>hardware</td>
+  <td>hardware(RTS/CTS)</td>
  </tr>
  <tr>
   <td>3</td>
   <td>none</td>
  </tr>
+ <tr>
+  <td>4</td>
+  <td>hardware(DSR/DTR) <em>(\x83o\x81[\x83W\x83\x87\x83\x93 4.105 \x88ȍ~)</em></td> 
+ </tr>
 </table>
 
 	</dd>

Modified: branches/unicode_buf/doc/ja/html/menu/file-new.html
===================================================================
--- branches/unicode_buf/doc/ja/html/menu/file-new.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/menu/file-new.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -45,17 +45,76 @@
     \x82\xB1\x82̃G\x83f\x83B\x83b\x83g\x83R\x83\x93\x83g\x83\x8D\x81[\x83\x8B\x82ł́ACtrl+a(\x83L\x83\x83\x83\x8C\x83b\x83g\x82\xF0\x90擪\x82ֈړ\xAE) Ctrl+e(\x83L\x83\x83\x83\x8C\x83b\x83g\x82\xF0\x8DŌ\xE3\x94\xF6\x82ֈړ\xAE) Ctrl+b(\x83L\x83\x83\x83\x8C\x83b\x83g\x82\xF01\x95\xB6\x8E\x9A\x8C\xE3\x82\xEB\x82ֈړ\xAE) Ctrl+f(\x83L\x83\x83\x83\x8C\x83b\x83g\x82\xF01\x95\xB6\x8E\x9A\x91O\x82ֈړ\xAE) Ctrl+n(1\x82‰\xBA\x82\xCCHost\x90ݒ\xE8\x82\xF0\x91I\x91\xF0) Ctrl+p(1\x82\xE3\x82\xCCHost\x90ݒ\xE8\x82\xF0\x91I\x91\xF0) Ctrl+d(\x88ꕶ\x8E\x9A\x8D폜) Ctrl+k(\x8Ds\x96\x96\x82܂ō폜) Ctrl+u(\x8Ds\x93\xAA\x82܂ō폜) \x82\xF0\x8Eg\x82\xA4\x82\xB1\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B
       </dd>
 
+      <dt>History</dt>
+      <dd>
+        TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+        \x82\xB1\x82̃I\x83v\x83V\x83\x87\x83\x93\x82\xF0\x91I\x91\xF0\x82\xB7\x82\xE9\x82Ɠ\xFC\x97͂\xB5\x82\xBD\x83z\x83X\x83g\x96\xBC\x82́A\x91Ώۂ̃z\x83X\x83g\x82֐ڑ\xB1\x82\xB5\x82悤\x82Ƃ\xB5\x82\xBD\x8Fꍇ\x82Ƀz\x83X\x83g\x83\x8A\x83X\x83g\x82̐擪\x82ɒlj\xC1\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+        \x82\xB1\x82̃`\x83F\x83b\x83N\x83{\x83b\x83N\x83X\x82\xCD <a href="setup-tcpip.html">[Setup] \x83\x81\x83j\x83\x85\x81[</a> \x82\xCC <a href="setup-tcpip.html#HistoryList">History</a> \x82̋@\x94\\x82𗘗p\x82\xB5\x82܂\xB7\x81B
+      </dd>
+
       <dt>Telnet</dt>
       <dd>
-	Telnet \x83v\x83\x8D\x83g\x83R\x83\x8B\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B\x92ʏ\xED\x82͑I\x91\xF0\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B
+        Telnet \x83v\x83\x8D\x83g\x83R\x83\x8B\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B
       </dd>
 
+      <dt>SSH</dt>
+      <dd>
+        TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x81A\x83f\x83t\x83H\x83\x8B\x83g\x82őI\x91\xF0\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+        SSH \x83v\x83\x8D\x83g\x83R\x83\x8B\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B
+      </dd>
+
+      <dt>Other</dt>
+      <dd>
+        TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+        Telnet / SSH \x88ȊO\x82̃v\x83\x8D\x83g\x83R\x83\x8B\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B
+      </dd>
+
       <dt>TCP port#</dt>
       <dd>
-	Telnet \x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x8Fꍇ\x81A\x92ʏ\xED\x82\xCD23\x82ɂ\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B
+        \x91I\x91\xF0\x82\xB5\x82\xBD\x83T\x81[\x83r\x83X\x82ɂ\xE6\x82\xC1\x82āA\x83|\x81[\x83g\x94ԍ\x86\x82\xF0\x8Ew\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B<br>
+        \x83f\x83t\x83H\x83\x8B\x83g\x82́A\x88ȉ\xBA\x82̒ʂ\xE8\x82ł\xB7\x81B<br>
+        <table border="1">
+          <tr>
+           <th>Service</th>
+           <th>TCP port#</th>
+           <th>\x94\xF5\x8Dl</th>
+          </tr>
+
+          <tr>
+           <td>Telnet</td>
+           <td>23</td>
+           <td>well-known ports</td>
+          </tr>
+
+          <tr>
+           <td>SSH</td>
+           <td>22</td>
+           <td>well-known ports<br>TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B</td>
+          </tr>
+
+          <tr>
+           <td>Other</td>
+           <td>\x81i\x94C\x88Ӂj</td>
+           <td>TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B</td>
+          </tr>
+
+        </table>
       </dd>
+
+      <dt>SSH version</dt>
+      <dd>
+        TTSSH \x97L\x8C\xF8\x8E\x9E\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+        SSH1 / SSH2 \x82\xA9\x82\xE7\x90ڑ\xB1\x82ɗ\x98\x97p\x82\xB7\x82\xE9\x83o\x81[\x83W\x83\x87\x83\x93\x82\xF0\x91I\x91\xF0\x82\xB5\x82܂\xB7\x81B
+      </dd>
+
+      <dt>IP version</dt>
+      <dd>
+        AUTO / IPv6 / IPv4 \x82\xA9\x82\xE7\x91I\x91\xF0\x82\xB5\x82܂\xB7\x81B<br>
+        AUTO \x82́A\x8Ew\x92肵\x82\xBD\x83z\x83X\x83g\x96\xBC\x82ɕR\x82Â\xAD IP \x83A\x83h\x83\x8C\x83X\x82ɑ΂\xB5\x81A\x90ڑ\xB1\x82\xF0\x8E\x8E\x82݂܂\xB7\x81B<br>
+        \x82\xB1\x82̎\x9E IPv6 / IPv4 \x82̂ǂ\xBF\x82\xE7\x82Őڑ\xB1\x82\xB7\x82\xE9\x82̂\xA9\x82́AOS \x82̐ݒ\xE8\x81iIP \x83o\x81[\x83W\x83\x87\x83\x93\x82̗D\x90揇\x88ʁj\x82ɂ\xE6\x82\xE8\x82܂\xB7\x81B<br>
+      </dd>
+
     </dl>
-
     <p class="indent1">
       \x92\x8D:<br>
       Telnet \x82\xAA\x91I\x91\xF0\x82\xB3\x82\xEA\x82āA\x82\xA9\x82\xC2 TCP port# \x82\xAA 23 \x82̂Ƃ\xAB\x82\xBE\x82\xAF\x81ATera Term
@@ -73,7 +132,7 @@
     <dl>
       <dt>Port</dt>
       <dd>
-	\x90ڑ\xB1\x82\xB7\x82\xE9\x83V\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x82\xF0\x83\x8A\x83X\x83g\x82̒\x86\x82\xA9\x82\xE7\x91I\x91\xF0\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B\x83\x8A\x83X\x83g\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x83V\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x94ԍ\x86\x82̍ő\xE5\x92l\x82̓f\x83t\x83H\x83\x8B\x83g\x82\xC5256\x82ƂȂ\xC1\x82Ă\xA2\x82܂\xB7\x81B<a href="../setup/teraterm-com.html#maxport">MaxComPort</a>\x82ōő\xE5\x92l\x82\xF0\x95ύX\x82ł\xAB\x82܂\xB7\x81B
+        \x90ڑ\xB1\x82\xB7\x82\xE9\x83V\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x82\xF0\x83\x8A\x83X\x83g\x82̒\x86\x82\xA9\x82\xE7\x91I\x91\xF0\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B\x83\x8A\x83X\x83g\x82ɕ\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x83V\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x94ԍ\x86\x82̍ő\xE5\x92l\x82̓f\x83t\x83H\x83\x8B\x83g\x82\xC5256\x82ƂȂ\xC1\x82Ă\xA2\x82܂\xB7\x81B\x82܂\xBD\x81A\x97\x98\x97p\x89”\\x82ȃV\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x82\xAA\x91\xB6\x8D݂\xB5\x82Ȃ\xA2\x8Fꍇ\x82͕\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB9\x82\xF1\x81B<a href="../setup/teraterm-com.html#maxport">MaxComPort</a>\x82ōő\xE5\x92l\x82\xF0\x95ύX\x82ł\xAB\x82܂\xB7\x81B<br>
       </dd>
     </dl>
   </body>

Modified: branches/unicode_buf/doc/ja/html/menu/setup-additional.html
===================================================================
--- branches/unicode_buf/doc/ja/html/menu/setup-additional.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/menu/setup-additional.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -261,17 +261,24 @@
 
     <h2 id="TabVisual">"Visual" \x83^\x83u</h2>
     <dl>
-      <dt id="AlphaBlendActive">Window Transparency / Active</dt>
-      <dt id="AlphaBlend">Window Transparency / Inactive</dt>
+      <dt id="AlphaBlendActive">Window Opacity / Active</dt>
+      <dt id="AlphaBlend">Window Opacity / Inactive</dt>
       <dd>
-	VT \x83E\x83B\x83\x93\x83h\x83E\x82\xAA\x83A\x83N\x83e\x83B\x83u(\x83t\x83H\x81[\x83J\x83X\x82\xAA\x82\xA0\x82\xE9)\x8E\x9E\x81A\x82\xA8\x82\xE6\x82є\xF1\x83A\x83N\x83e\x83B\x83u(\x83t\x83H\x81[\x83J\x83X\x82\xAA\x82Ȃ\xA2)\x8E\x9E\x82̓\xA7\x96\xBE\x93x\x82\xF0\x90ݒ\xE8\x82ł\xAB\x82܂\xB7\x81B
+	VT \x83E\x83B\x83\x93\x83h\x83E\x82\xAA\x83A\x83N\x83e\x83B\x83u(\x83t\x83H\x81[\x83J\x83X\x82\xAA\x82\xA0\x82\xE9)\x8E\x9E\x81A\x82\xA8\x82\xE6\x82є\xF1\x83A\x83N\x83e\x83B\x83u(\x83t\x83H\x81[\x83J\x83X\x82\xAA\x82Ȃ\xA2)\x8E\x9E\x82̕s\x93\xA7\x96\xBE\x93x\x82\xF0\x90ݒ\xE8\x82ł\xAB\x82܂\xB7\x81B
 	\x92l\x82\xCD0\x81`255\x82͈̔͂Ŏw\x92肷\x82邱\x82Ƃ\xAA\x82ł\xAB\x81A\x92l\x82\xF0\x8F\xAC\x82\xB3\x82\xAD\x82\xB7\x82\xE9\x82قǓ\xA7\x96\xBE\x93x\x82͋\xAD\x82\xAD\x82Ȃ\xE8\x82܂\xB7\x81B
       </dd>
 
       <dt>Eterm lookfeel</dt>
       <dd>
-	Eterm\x95\x97\x82̔\xBC\x93\xA7\x96\xBE\x83E\x83B\x83\x93\x83h\x83E\x82\xF0\x8Eg\x97p\x82\xB7\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B
+	Eterm\x95\x97\x82̔\xBC\x93\xA7\x96\xBE\x83E\x83B\x83\x93\x83h\x83E\x82\xF0\x8Eg\x97p\x82\xB7\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B<br>
+	<strong>\x92\x8D\x88ӁF\x90ݒ\xE8\x82\xF0\x97L\x8C\xF8\x82ɂ\xB7\x82\xE9\x82ɂ́A\x90ݒ\xE8\x82̕ۑ\xB6\x82\xC6Tera Term\x82̍ċN\x93\xAE\x82\xAA\x95K\x97v\x82ł\xB7\x81B</strong>
       </dd>
+      
+     <dt id="MixedThemeFile">Mixed ThemeFile to Background</dt>
+      <dd>
+	Eterm lookfeel\x8B@\x94\\x82\xAA\x97L\x8C\xF8\x82̏ꍇ\x81A\x95ǎ\x86\x82ƃe\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82̉摜\x82\xF0\x8D\xAC\x8D\x87\x82\xB7\x82邩\x82ǂ\xA4\x82\xA9\x8Ew\x92\xE8\x82ł\xAB\x82܂\xB7\x81B<br>
+	\x82Ȃ\xA8\x81ABackground Image\x82Ƃ͓\xAF\x8E\x9E\x82Ɏg\x97p\x82ł\xAB\x82܂\xB9\x82\xF1\x81B
+      </dd>
 
       <dt>Background Image</dt>
       <dd>

Modified: branches/unicode_buf/doc/ja/html/menu/setup-proxy.html
===================================================================
--- branches/unicode_buf/doc/ja/html/menu/setup-proxy.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/menu/setup-proxy.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -11,6 +11,8 @@
   <body>
     <h1>Proxy ([Setup] \x83\x81\x83j\x83\x85\x81[)</h1>
 
+<strong>\x92\x8D\x88ӁF\x90ݒ\xE8\x82\xF0\x97L\x8C\xF8\x82ɂ\xB7\x82\xE9\x82ɂ́A\x90ݒ\xE8\x82̕ۑ\xB6\x82\xC6Tera Term\x82̍ċN\x93\xAE\x82\xAA\x95K\x97v\x82ł\xB7\x81B</strong>
+
     <h2>"Proxy Setup" \x83_\x83C\x83A\x83\x8D\x83O\x83{\x83b\x83N\x83X</h2>
     <dl>
       <dt>Type</dt>
@@ -28,6 +30,11 @@
       <dt>Hostname</dt>
       <dd>
 	\x83v\x83\x8D\x83L\x83V\x83T\x81[\x83o\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B
+	
+	<p>
+	\x83z\x83X\x83g\x96\xBC\x81AIPv4\x83A\x83h\x83\x8C\x83X\x81AIPv6\x83A\x83h\x83\x8C\x83X\x82\xAA\x8Ew\x92\xE8\x82ł\xAB\x82܂\xB7\x81B<br>
+	IPv6\x83A\x83h\x83\x8C\x83X\x82͊p\x8A\x87\x8Cʁi\x91劇\x8Cʁj\x82ň͂ޕK\x97v\x82͂\xA0\x82\xE8\x82܂\xB9\x82\xF1\x81B
+	</p>
       </dd>
 
       <dt>Port number</dt>

Modified: branches/unicode_buf/doc/ja/html/menu/setup-serialport.html
===================================================================
--- branches/unicode_buf/doc/ja/html/menu/setup-serialport.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/menu/setup-serialport.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -27,9 +27,10 @@
 	</p>
 	<p>
 	  Flow control\x82͈ȉ\xBA\x82\xAA\x90ݒ\xE8\x82ł\xAB\x82܂\xB7\x81B<br>
+	     Xon/Xoff  ...  \x83\\x83t\x83g\x83E\x83F\x83A\x83t\x83\x8D\x81[<br>
+	     RTS/CTS  ...  \x83n\x81[\x83h\x83E\x83F\x83A\x83t\x83\x8D\x81[(RTS/CTS)<br>
+	     DSR/DTR  ...  \x83n\x81[\x83h\x83E\x83F\x83A\x83t\x83\x8D\x81[(DSR/DTR)<br>
 	     none  ...  \x83t\x83\x8D\x81[\x90\xA7\x8C\xE4\x82Ȃ\xB5<br>
-	     Xon/Xoff  ...  \x83\\x83t\x83g\x83E\x83F\x83A\x83t\x83\x8D\x81[<br>
-	     hardware  ...  \x83n\x81[\x83h\x83E\x83F\x83A\x83t\x83\x8D\x81[(RTS/CTS)<br>
 	</p>
 	<p>
 	  \x92\x8D: Data \x82\xF0 7 \x82ɂ\xB7\x82\xE9\x82ƁAXMODEM, ZMODEM, B-PLUS, Quick-VAN

Modified: branches/unicode_buf/doc/ja/html/menu/setup-ssh.html
===================================================================
--- branches/unicode_buf/doc/ja/html/menu/setup-ssh.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/menu/setup-ssh.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -321,6 +321,52 @@
 	SSH1 \x82̏ꍇ\x82́ACompression level \x82\xAA 0 \x82ł\xA0\x82\xEA\x82Έ\xB3\x8Fk\x82\xAA\x96\xB3\x8C\xF8\x81A1 \x88ȏ\xE3\x82ł\xA0\x82\xEA\x82Έ\xB3\x8Fk\x82\xAA\x97L\x8C\xF8\x82ɂȂ\xE8\x82܂\xB7\x81B<br>
 	SSH2 \x82̏ꍇ\x82́ACompression order \x82ň\xB3\x8Fk\x82\xF0\x97L\x8C\xF8\x82ɂ\xB5\x82܂\xB7\x81B\x82\xBB\x82̂\xA4\x82\xA6\x82\xC5 Compression level \x82\xF0 1 \x88ȏ\xE3\x82ɂ\xB7\x82\xE9\x82ƈ\xB3\x8Fk\x82\xAA\x97L\x8C\xF8\x82ɂȂ\xE8\x82܂\xB7\x81B
       </dd>
+
+      <dt id="LogLevel">LogLevel</dt>
+      <dd>
+	TTSSH\x82̃f\x83o\x83b\x83O\x83\x8C\x83x\x83\x8B\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B<br>
+	\x83f\x83o\x83b\x83O\x83\x8C\x83x\x83\x8B\x82\xAA 0 \x82\xE6\x82\xE8\x91傫\x82\xA2\x8Fꍇ\x81A\x83f\x83o\x83b\x83O\x8F\xEE\x95\xF1\x82\xAA ttermpro.exe \x82\xAA\x82\xA0\x82\xE9\x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x94z\x89\xBA\x82\xC9<br>
+	\x81uTTSSH.LOG\x81v\x81A\x81ussh2connect.log\x81v\x81A\x81ussh2packet.log\x81v\x82Ƃ\xA2\x82\xA4\x83t\x83@\x83C\x83\x8B\x82ɋL\x98^\x82\xB3\x82\xEA\x82܂\xB7\x81B<br>
+	<table border="1">
+	  <tr>
+	    <td>\x92l</td>
+	    <td>\x88Ӗ\xA1</td>
+	  </tr>
+	  <tr>
+	    <td>0</td>
+	    <td>\x96\xB3\x8C\xF8</td>
+	  </tr>
+	  <tr>
+	    <td>5</td>
+	    <td>Fatal</td>
+	  </tr>
+	  <tr>
+	    <td>10</td>
+	    <td>Error</td>
+	  </tr>
+	  <tr>
+	    <td>30</td>
+	    <td>Warning</td>
+	  </tr>
+	  <tr>
+	    <td>50</td>
+	    <td>Notice</td>
+	  </tr>
+	  <tr>
+	    <td>80</td>
+	    <td>Information</td>
+	  </tr>
+	  <tr>
+	    <td>100</td>
+	    <td>Verbose</td>
+	  </tr>
+	  <tr>
+	    <td>200</td>
+	    <td>SSH Dump</td>
+	  </tr>
+	</table>
+      </dd>
+
     </dl>
   </body>
 </html>

Modified: branches/unicode_buf/doc/ja/html/reference/develop.txt
===================================================================
--- branches/unicode_buf/doc/ja/html/reference/develop.txt	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/reference/develop.txt	2019-09-12 15:58:02 UTC (rev 8124)
@@ -54,7 +54,7 @@
 
 
 \x81\xA1 \x83\x89\x83C\x83u\x83\x89\x83\x8A
-- Oniguruma 6.9.2 (https://github.com/kkos/oniguruma)
+- Oniguruma 6.9.3 (https://github.com/kkos/oniguruma)
 - OpenSSL 1.0.2s (http://www.openssl.org/)
 - zlib 1.2.11 (http://www.zlib.net/)
 - PuTTY 0.70 (http://www.chiark.greenend.org.uk/~sgtatham/putty/)
@@ -157,6 +157,7 @@
      (1) SFMT \x82̃\\x81[\x83X\x82\xF0 libs/SFMT \x82̒\x86\x82ɓW\x8AJ\x82\xB7\x82\xE9\x81B
      (2) \x83X\x83^\x81[\x83g\x83\x81\x83j\x83\x85\x81[\x82\xA9\x82\xE7\x81uVisual Studio 2005 \x83R\x83}\x83\x93\x83h \x83v\x83\x8D\x83\x93\x83v\x83g\x81v\x82\xF0\x8BN\x93\xAE\x82\xB7\x82\xE9\x81B
      (3) \x83R\x83}\x83\x93\x83h\x83v\x83\x8D\x83\x93\x83v\x83g\x8Fォ\x82\xE7 libs \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82Ɉړ\xAE\x82\xB5\x81AbuildSFMT.bat \x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B
+     (4) \x95K\x97v\x82ɉ\x9E\x82\xB6\x82\xC4 libs/SFMT/SFMT_version_for_teraterm.h \x82̃o\x81[\x83W\x83\x87\x83\x93\x94ԍ\x86\x82\xF0\x8FC\x90\xB3\x82\xB7\x82\xE9\x81B
 
 
 \x81\xA1 Tera Term\x82̃r\x83\x8B\x83h\x95\xFB\x96@

Modified: branches/unicode_buf/doc/ja/html/setup/teraterm-ini.html
===================================================================
--- branches/unicode_buf/doc/ja/html/setup/teraterm-ini.html	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/html/setup/teraterm-ini.html	2019-09-12 15:58:02 UTC (rev 8124)
@@ -56,6 +56,18 @@
 		<td style="width:250px;"><-</td>
 		<td></td>
 	</tr>
+	<tr>
+		<td id="BGThemeFile">BGThemeFile</td>
+		<td style="width:250px;">theme\*.ini</td>
+		<td style="width:250px;"><-</td>
+		<td></td>
+	</tr>
+	<tr>
+		<td id="BGIgnoreThemeFile">BGIgnoreThemeFile</td>
+		<td style="width:250px;">off</td>
+		<td style="width:250px;"><-</td>
+		<td></td>
+	</tr>
 </table>
 
 <h2>Tera Term</h2>

Modified: branches/unicode_buf/doc/ja/teraterm.hhp
===================================================================
--- branches/unicode_buf/doc/ja/teraterm.hhp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/doc/ja/teraterm.hhp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -79,8 +79,6 @@
 HlpUsageTipsNumeric=html\usage\tips\about_tenkey.html
 HlpUsageTipsVt100=html\usage\tips\pf1-pf4key_vt100.html
 HlpUsageTipsPc=html\usage\tips\pc-communication.html
-HlpUsageTipsNifty=html\usage\tips\nifty-serve.html
-HlpUsageTipsPcvan=html\usage\tips\pc_van.html
 HlpUsageTipsXmodem=html\usage\tips\xmodem.html
 HlpUsageTipsZmodem=html\usage\tips\zmodem.html
 HlpUsageTipsBplus=html\usage\tips\b-plus.html

Modified: branches/unicode_buf/installer/release/TERATERM.INI
===================================================================
--- branches/unicode_buf/installer/release/TERATERM.INI	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/TERATERM.INI	2019-09-12 15:58:02 UTC (rev 8124)
@@ -21,7 +21,11 @@
 ; wildcard => random select
 BGThemeFile=theme\*.ini
 
+; This option ignores the BGThemeFile in any case. When the option is on,
+; the wallpaper image does not be mixed with theme file image.
+BGIgnoreThemeFile=off
 
+
 [Tera Term]
 ;	Tera Term version number
 Version=2.3
@@ -312,7 +316,8 @@
 DataBit=8
 ;	  Stop (1/1.5/2)
 StopBit=1
-;	  Flow control (x/hard/none)
+;	  Flow control (x/hard/none/rtscts/dsrdtr)
+;     "hard" is same as "rtscts"
 FlowCtrl=none
 ;	  Transmit delay per character (in msec)
 DelayPerChar=0

Modified: branches/unicode_buf/installer/release/lang/English.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/English.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/English.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 
 [Tera Term]
 DLG_SYSTEM_FONT=System,14,0
@@ -227,10 +227,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=ms
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=Window Transparency
+DLG_TAB_VISUAL_ALPHA=Window Opacity
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=&Eterm lookfeel(*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=Background &Image
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=Image Brigh&tness
 DLG_TAB_VISUAL_MOUSE=&Mouse cursor
@@ -311,6 +312,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=Opacity %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=Cannot use winsock
 MSG_INVALID_HOST_ERROR=Invalid host
@@ -342,7 +345,7 @@
 DLG_HOST_TITLE=Tera Term: New connection
 DLG_HOST_TCPIPHOST=H&ost:
 DLG_HOST_TCPIPPORT=TCP &port#:
-DLG_HOST_TCPIPPROTOCOL=Protoco&l:
+DLG_HOST_TCPIPPROTOCOL=IP versio&n:
 DLG_HOST_SERIAL=&Serial
 DLG_HOST_SERIALPORT=Po&rt:
 
@@ -591,6 +594,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=Remember password on &memory
 DLG_AUTH_FWDAGENT=F&orward agent
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=Use p&lain password to log in
 DLG_AUTH_METHOD_RSA=Use &RSA/DSA/ECDSA/ED25519 key to log in
 DLG_AUTH_METHOD_RHOST=Use r&hosts to log in (SSH1)
@@ -608,10 +612,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: Authentication Setup
 DLG_AUTHSETUP_BANNER=Select defaults for authentication:
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_DEFAULT_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=Use p&lain password to log in
 DLG_AUTHSETUP_METHOD_RSA=Use &RSA/DSA/ECDSA/ED25519 key to log in
 DLG_AUTHSETUP_METHOD_RHOST=Use r&hosts to log in (SSH1)
@@ -691,7 +697,7 @@
 DLG_HOST_TCPIPOTHER=Other
 DLG_HOST_TCPIPPORT=TCP &port#:
 DLG_HOST_TCPIPSSHVERSION=SSH &version:
-DLG_HOST_TCPIPPROTOCOL=Proto&col:
+DLG_HOST_TCPIPPROTOCOL=IP versio&n:
 DLG_HOST_SERIAL=S&erial
 DLG_HOST_SERIALPORT=Po&rt:
 DLG_HOST_HELP=&Help
@@ -775,6 +781,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=No
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=Yes
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=Ask
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=Choose a read/write known-hosts file
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=Choose a read-only known-hosts file to add
@@ -935,6 +943,7 @@
 BTN_CONTINUE=&Continue
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/French.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/French.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/French.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (French language) by Francois MOCQ (2010-07-21)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=ms
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=M\xE9lange alpha
+DLG_TAB_VISUAL_ALPHA=Fen\xEAtre opacit\xE9
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=Apparence Eterm(*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=Background &Image
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=Image Brigh&tness
 DLG_TAB_VISUAL_MOUSE=Curseur de la souris
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=Opacit\xE9 %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=Impossible d'utiliser winsock
 MSG_INVALID_HOST_ERROR=H\xF4te invalide
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term: Nouvelle connexion
 DLG_HOST_TCPIPHOST=H\xF4te:
 DLG_HOST_TCPIPPORT=N\xB0 port TCP:
-DLG_HOST_TCPIPPROTOCOL=Protoco&le:
+DLG_HOST_TCPIPPROTOCOL=IP versio&n:
 DLG_HOST_SERIAL=&Serie
 DLG_HOST_SERIALPORT=Po&rt:
 
@@ -592,6 +595,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=Garder le mot de passe en &m\xE9moire
 DLG_AUTH_FWDAGENT=F&orward agent
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=Utiliser mot de passe pour la connexion
 DLG_AUTH_METHOD_RSA=Utiliser cl\xE9 &RSA/DSA/ECDSA/ED25519 pour la connexion
 DLG_AUTH_METHOD_RHOST=Utiser r&hosts pour la connexion (SSH1)
@@ -611,10 +615,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: Configuration de l'authentification
 DLG_AUTHSETUP_BANNER=Configuration par d\xE9faut:
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_DEFAULT_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=Util. mot de passe pour la conn.
 DLG_AUTHSETUP_METHOD_RSA=Util. cl\xE9 &RSA/DSA/ECDSA/ED25519 pour conn.
 DLG_AUTHSETUP_METHOD_RHOST=Util. r&hosts pour conn.(SSH1)
@@ -695,7 +701,7 @@
 DLG_HOST_TCPIPOTHER=Autre
 DLG_HOST_TCPIPPORT=TCP &port#:
 DLG_HOST_TCPIPSSHVERSION=SSH &version:
-DLG_HOST_TCPIPPROTOCOL=Proto&cole:
+DLG_HOST_TCPIPPROTOCOL=IP versio&n:
 DLG_HOST_SERIAL=S&\xE9rie
 DLG_HOST_SERIALPORT=Po&rt:
 DLG_HOST_HELP=&Aide
@@ -779,6 +785,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=No
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=Yes
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=Ask
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=Choisir un fichier h\xF4tes connus en R/W
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=Choisir un fichier h\xF4tes connus en lect. seule \xE0 ajouter
@@ -939,6 +947,7 @@
 BTN_CONTINUE=&Continuer
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/German.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/German.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/German.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (German language) by Frederik Schwarzer (2010-05-17)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=ms
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=&Transparenz
+DLG_TAB_VISUAL_ALPHA=Fenster Opazit\xE4t
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=&Eterm-Aussehen(*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=Background &Image
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=Image Brigh&tness
 DLG_TAB_VISUAL_MOUSE=&Mauszeiger
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=Opazit\xE4t %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=Kann Winsock nicht verwenden
 MSG_INVALID_HOST_ERROR=Falscher Hostname
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term: Neue Verbindung
 DLG_HOST_TCPIPHOST=&Rechner:
 DLG_HOST_TCPIPPORT=TCP-&Port#:
-DLG_HOST_TCPIPPROTOCOL=Protoco&ll:
+DLG_HOST_TCPIPPROTOCOL=IP Versio&n:
 DLG_HOST_SERIAL=&Seriell
 DLG_HOST_SERIALPORT=Po&rt:
 
@@ -592,6 +595,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=Passphrase speichern
 DLG_AUTH_FWDAGENT=F&orward agent
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=Passwortauthentifikation verwenden
 DLG_AUTH_METHOD_RSA=DSA/RSA/ECDSA/ED25519-Schl\xFCssel verwenden
 DLG_AUTH_METHOD_RHOST=rhosts verwenden (SSH1)
@@ -611,10 +615,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: Authentifikation-Einstellungen
 DLG_AUTHSETUP_BANNER=Standard-Einstellungen f\xFCr Authentifikation:
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_DEFAULT_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=Passwortauthentifikation verwenden
 DLG_AUTHSETUP_METHOD_RSA=DSA/RSA/ECDSA/ED25519-Schl\xFCssel verwenden
 DLG_AUTHSETUP_METHOD_RHOST=rhosts verwenden (SSH1)
@@ -695,7 +701,7 @@
 DLG_HOST_TCPIPOTHER=Anderer
 DLG_HOST_TCPIPPORT=TCP-Port
 DLG_HOST_TCPIPSSHVERSION=Protokoll-Version
-DLG_HOST_TCPIPPROTOCOL=Protokoll:
+DLG_HOST_TCPIPPROTOCOL=IP Versio&n:
 DLG_HOST_SERIAL=Seriell
 DLG_HOST_SERIALPORT=Port
 DLG_HOST_HELP=Hilfe
@@ -779,6 +785,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=No
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=Yes
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=Ask
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=Choose a read/write known-hosts file
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=Choose a read-only known-hosts file to add
@@ -939,6 +947,7 @@
 BTN_CONTINUE=&Fortsetzen
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/Japanese.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/Japanese.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/Japanese.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 
 [Tera Term]
 DLG_SYSTEM_FONT=\x82l\x82r \x82o\x83S\x83V\x83b\x83N,12,128
@@ -211,7 +211,7 @@
 DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_ON=\x93Ǎ\x9E/\x8F\x91\x8D\x9E
 DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_READ=\x93Ǎ\x9E\x82̂\xDD
 DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_WRITE=\x8F\x91\x8D\x9E\x82̂\xDD
-DLG_TAB_SEQUENCE_CLIPBOARD_NOTIFY=&\x83\x8A\x83\x82\x81[\x83g\x82\xA9\x82\xE7\x82̃N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x83A\x83N\x83Z\x83X\x82\xF0\x92ʒm\x82\xB7\x82\xE9(&N)
+DLG_TAB_SEQUENCE_CLIPBOARD_NOTIFY=\x83\x8A\x83\x82\x81[\x83g\x82\xA9\x82\xE7\x82̃N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x83A\x83N\x83Z\x83X\x82\xF0\x92ʒm\x82\xB7\x82\xE9(&N)
 
 DLG_TAB_COPYPASTE_CONTINUE=\x8Cp\x91\xB1\x8Ds\x83R\x83s\x81[\x82\xF0\x97L\x8C\xF8\x82ɂ\xB7\x82\xE9(&L)
 DLG_TAB_COPYPASTE_MOUSEPASTE=\x89E\x83N\x83\x8A\x83b\x83N\x82ł̓\\x82\xE8\x95t\x82\xAF\x82𖳌\xF8\x82ɂ\xB7\x82\xE9(&D)
@@ -225,12 +225,13 @@
 DLG_TAB_COPYPASTE_DELIMITER=\x8B\xE6\x90؂蕶\x8E\x9A(&I)
 DLG_TAB_COPYPASTE_PASTEDELAY=\x93\\x82\xE8\x95t\x82\xAF\x82̍s\x8AԒx\x89\x84(&A)
 DLG_TAB_COPYPASTE_PASTEDELAY2=\x83~\x83\x8A\x95b
-DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=\x83}\x83E\x83X\x82ŃE\x83B\x83\x93\x83h\x83E\x91I\x91\xF0\x8E\x9E\x82̕\xB6\x8E\x9A\x91I\x91\xF0\x82\xF0\x97L\x8C\xF8\x82ɂ\xB7\x82\xE9(&b)
+DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=\x83}\x83E\x83X\x82ŃE\x83B\x83\x93\x83h\x83E\x91I\x91\xF0\x8E\x9E\x82̕\xB6\x8E\x9A\x91I\x91\xF0\x82\xF0\x97L\x8C\xF8\x82ɂ\xB7\x82\xE9(&B)
 
-DLG_TAB_VISUAL_ALPHA=\x94\xBC\x93\xA7\x96\xBE\x93x
+DLG_TAB_VISUAL_ALPHA=\x83E\x83B\x83\x93\x83h\x83E\x82̕s\x93\xA7\x96\xBE\x93x
 DLG_TAB_VISUAL_ALPHA_ACTIVE=\x83A\x83N\x83e\x83C\x83u\x8E\x9E(&A)
 DLG_TAB_VISUAL_ALPHA_INACTIVE=\x94\xF1\x83A\x83N\x83e\x83B\x83u\x8E\x9E(&C)
 DLG_TAB_VISUAL_ETERM=&Eterm\x95\x97\x82ɂ\xB7\x82\xE9(*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=\x95ǎ\x86\x82Ɖ摜\x82\xF0\x8D\xAC\x8D\x87\x82\xB7\x82\xE9(&T)
 DLG_TAB_VISUAL_BGIMG=\x94w\x8Ci\x89摜(&I)
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=\x89摜\x82̖\xBE\x82邳(&T)
 DLG_TAB_VISUAL_MOUSE=\x83}\x83E\x83X\x83J\x81[\x83\\x83\x8B(&M)
@@ -311,6 +312,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=\x8E\x9F\x82̃h\x83\x8D\x83b\x83v\x8E\x9E\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB5\x82Ȃ\xA2(&I)
 DLG_DANDD_NOTE=\x82\xB1\x82̃_\x83C\x83A\x83\x8D\x83O\x82́ACTRL\x82\xF0\x89\x9F\x82\xB5\x82Ȃ\xAA\x82\xE7\x83h\x83\x8D\x83b\x83v\x82\xB7\x82\xE9\x82ƕK\x82\xB8\x95\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB7
 
+TOOLTIP_TITLEBAR_OPACITY=\x95s\x93\xA7\x96\xBE\x93x %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=Winsock \x82\xAA\x8Eg\x82\xA6\x82܂\xB9\x82\xF1
 MSG_INVALID_HOST_ERROR=\x96\xB3\x8C\xF8\x82ȃz\x83X\x83g
@@ -342,7 +345,7 @@
 DLG_HOST_TITLE=Tera Term: \x90V\x82\xB5\x82\xA2\x90ڑ\xB1
 DLG_HOST_TCPIPHOST=\x83z\x83X\x83g(&O):
 DLG_HOST_TCPIPPORT=TCP\x83|\x81[\x83g#(&P):
-DLG_HOST_TCPIPPROTOCOL=\x83v\x83\x8D\x83g\x83R\x83\x8B(&L):
+DLG_HOST_TCPIPPROTOCOL=IP\x83o\x81[\x83W\x83\x87\x83\x93(&N):
 DLG_HOST_SERIAL=\x83V\x83\x8A\x83A\x83\x8B(&S)
 DLG_HOST_SERIALPORT=\x83|\x81[\x83g(&R):
 
@@ -591,6 +594,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82\xF0\x95\\x8E\xA6(&S)
 DLG_AUTH_REMEMBER_PASSWORD=\x83p\x83X\x83\x8F\x81[\x83h\x82\xF0\x83\x81\x83\x82\x83\x8A\x8F\xE3\x82ɋL\x89\xAF\x82\xB7\x82\xE9(&M)
 DLG_AUTH_FWDAGENT=\x83G\x81[\x83W\x83F\x83\x93\x83g\x93]\x91\x97\x82\xB7\x82\xE9(&O)
+DLG_AUTH_METHOD=\x94F\x8Fؕ\xFB\x8E\xAE
 DLG_AUTH_METHOD_PASSWORD=\x83v\x83\x8C\x83C\x83\x93\x83p\x83X\x83\x8F\x81[\x83h\x82\xF0\x8Eg\x82\xA4(&L)
 DLG_AUTH_METHOD_RSA=&RSA/DSA/ECDSA/ED25519\x8C\xAE\x82\xF0\x8Eg\x82\xA4
 DLG_AUTH_METHOD_RHOST=r&hosts(SSH1)\x82\xF0\x8Eg\x82\xA4
@@ -607,11 +611,13 @@
 
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: \x94F\x8Fؐݒ\xE8
-DLG_AUTHSETUP_BANNER=\x92ʏ\xED\x8Eg\x97p\x82\xB7\x82\xE9\x94F\x8Fؕ\xFB\x8E\xAE:
+DLG_AUTHSETUP_BANNER=\x92ʏ\xED\x8Eg\x97p\x82\xB7\x82\xE9\x94F\x8Fؐݒ\xE8:
+DLG_AUTHSETUP_USERNAME=\x83\x86\x81[\x83U\x96\xBC
 DLG_AUTHSETUP_NO_USERNAME=\x93\xFC\x97͂\xB5\x82Ȃ\xA2(&D)
 DLG_AUTHSETUP_DEFAULT_USERNAME=\x83f\x83t\x83H\x83\x8B\x83g\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p(&S):
 DLG_AUTHSETUP_LOGON_USERNAME=\x83\x8D\x83O\x83I\x83\x93\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p(&E):
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=\x8C\xBB\x8D݂̃\x8D\x83O\x83I\x83\x93\x83\x86\x81[\x83U\x96\xBC "%s"
+DLG_AUTHSETUP_METHOD=\x94F\x8Fؕ\xFB\x8E\xAE
 DLG_AUTHSETUP_METHOD_PASSWORD=\x83v\x83\x8C\x83C\x83\x93\x83p\x83X\x83\x8F\x81[\x83h\x82\xF0\x8Eg\x82\xA4(&L)
 DLG_AUTHSETUP_METHOD_RSA=&RSA/DSA/ECDSA/ED25519\x8C\xAE\x82\xF0\x8Eg\x82\xA4
 DLG_AUTHSETUP_METHOD_RHOST=r&hosts\x82\xF0\x8Eg\x82\xA4(SSH1)
@@ -691,7 +697,7 @@
 DLG_HOST_TCPIPOTHER=\x82\xBB\x82̑\xBC
 DLG_HOST_TCPIPPORT=TCP\x83|\x81[\x83g#(&P):
 DLG_HOST_TCPIPSSHVERSION=SSH\x83o\x81[\x83W\x83\x87\x83\x93(&V):
-DLG_HOST_TCPIPPROTOCOL=\x83v\x83\x8D\x83g\x83R\x83\x8B(&C):
+DLG_HOST_TCPIPPROTOCOL=IP\x83o\x81[\x83W\x83\x87\x83\x93(&N):
 DLG_HOST_SERIAL=\x83V\x83\x8A\x83A\x83\x8B(&E)
 DLG_HOST_SERIALPORT=\x83|\x81[\x83g(&R):
 DLG_HOST_HELP=\x83w\x83\x8B\x83v(&H)
@@ -775,6 +781,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=\x96\xB3\x8C\xF8
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=\x97L\x8C\xF8
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=\x8Am\x94F\x82\xB7\x82\xE9
+DLG_SSHSETUP_LOGLEVEL=\x83\x8D\x83O\x83\x8C\x83x\x83\x8B(&L)
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0\x82\xF0\x8Ew\x92肷\x82\xE9\x82Ɩ\xB3\x8C\xF8)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=\x93ǂݏ\x91\x82\xAB\x97pknownhosts\x83t\x83@\x83C\x83\x8B\x82\xF0\x91I\x91\xF0\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=\x92lj\xC1\x82\xB7\x82\xE9\x93ǂݎ\xE6\x82\xE8\x90\xEA\x97pknownhosts\x83t\x83@\x83C\x83\x8B\x82\xF0\x91I\x91\xF0\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2
@@ -935,6 +943,7 @@
 BTN_CONTINUE=\x91\xB1\x8Ds(&C)
 BTN_YES=\x82͂\xA2(&Y)
 BTN_NO=\x82\xA2\x82\xA2\x82\xA6(&N)
+BTN_HELP=\x83w\x83\x8B\x83v(&H)
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/Korean.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/Korean.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/Korean.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (Korean language) by Daehong Kim (2013-07-25)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=ms
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=\xC5\xF5\xB8\x{DD75}
+DLG_TAB_VISUAL_ALPHA=\xBA\xD2\xC5\xF5\xB8\xED
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=Eterm \xB4\xC0\xB3\xA6(*)(&E)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=\xB9\xE8\xB0\xE6\xB1׸\xB2(&I)
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=Image Brigh&tness
 DLG_TAB_VISUAL_MOUSE=\xB8\xB6\xBF콺 Ŀ\xBC\xAD(&M)
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=\xBA\xD2\xC5\xF5\xB8\xED %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=\xC0\xA9\xBC\xD3\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4ϴ\xD9
 MSG_INVALID_HOST_ERROR=\xC0߸\xF8\xB5\xC8 ȣ\xBD\xBAƮ
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term: \xBB\xF5 \xBF\xAC\xB0\xE1
 DLG_HOST_TCPIPHOST=ȣ\xBD\xBAƮ(&O):
 DLG_HOST_TCPIPPORT=TCP \xC6\xF7Ʈ(&P)#:
-DLG_HOST_TCPIPPROTOCOL=\xC7\xC1\xB7\xCE\xC5\xE4\xC4\xDD(&L):
+DLG_HOST_TCPIPPROTOCOL=IP \xB9\xF6\xC0\xFC(&N):
 DLG_HOST_SERIAL=\xBDø\xAE\xBE\xF3(&S)
 DLG_HOST_SERIALPORT=\xC6\xF7Ʈ(&R):
 
@@ -592,6 +595,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=\xB8޸𸮿\xA1 \xBE\xCFȣ\xB1\xE2\xBE\xEF(&M)
 DLG_AUTH_FWDAGENT=\xBF\xA1\xC0\xCC\xC0\xFCƮ\xB7\xCE \xC0\xFC\xB4\xDE(&O)
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=\xC0Ϲ\xDD\xC5ؽ\xBAƮ \xBE\xCFȣ \xB7α\xD7\xC0\xCE(&L)
 DLG_AUTH_METHOD_RSA=RSA/DSA/ECDSA/ED25519 Ű \xB7α\xD7\xC0\xCE(&R)
 DLG_AUTH_METHOD_RHOST=rhosts \xB7α\xD7\xC0\xCE(SSH1)(&H)
@@ -611,10 +615,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: \xC0\xCE\xC1\xF5 \xBC\xB3\xC1\xA4
 DLG_AUTHSETUP_BANNER=\xB1⺻ \xC0\xCE\xC1\xF5 \xBC\xB1\xC5\xC3:
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_DEFAULT_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=\xC0Ϲ\xDD\xC5ؽ\xBAƮ \xBE\xCFȣ \xB7α\xD7\xC0\xCE(&L)
 DLG_AUTHSETUP_METHOD_RSA=RSA/DSA/ECDSA/ED25519 Ű \xB7α\xD7\xC0\xCE(&R)
 DLG_AUTHSETUP_METHOD_RHOST=rhosts \xB7α\xD7\xC0\xCE(SSH1)(&H)
@@ -695,7 +701,7 @@
 DLG_HOST_TCPIPOTHER=Other
 DLG_HOST_TCPIPPORT=TCP \xC6\xF7Ʈ#(&P):
 DLG_HOST_TCPIPSSHVERSION=SSH \xB9\xF6\xC0\xFC(&V):
-DLG_HOST_TCPIPPROTOCOL=\xC7\xC1\xB7\xCE\xC5\xE4\xC4\xDD(&C):
+DLG_HOST_TCPIPPROTOCOL=IP \xB9\xF6\xC0\xFC(&N):
 DLG_HOST_SERIAL=\xBDø\xAE\xBE\xF3(&E)
 DLG_HOST_SERIALPORT=\xC6\xF7Ʈ(&R):
 DLG_HOST_HELP=\xB5\xB5\xBF\xF2\xB8\xBB(&H)
@@ -779,6 +785,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=No
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=Yes
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=Ask
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=\xC0а\x{DFB2}\xB1\xE2\xC0\xC7 known-host \xC6\xC4\xC0\xCF\xC0\xBB \xBC\xB1\xC5\xC3\xC7ϼ\xBC\xBF\xE4
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=\xC3߰\xA1\xC7ϱ\xE2 \xC0\xA7\xC7\xD1 \xC0б\xE2\xC0\xFC\xBF\xEB\xC0\xC7 known-host \xC6\xC4\xC0\xCF\xC0\xBB \xBC\xB1\xC5\xC3\xC7ϼ\xBC\xBF\xE4
@@ -939,6 +947,7 @@
 BTN_CONTINUE=\xB0\xE8\xBC\xD3(&C)
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/Russian.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/Russian.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/Russian.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (Russian language) by Ryumik Sergey (2017-07-19)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=\xEC\xF1
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=&\xCF\xF0\xEE\xE7\xF0\xE0\xF7\xED\xFB\xE9
+DLG_TAB_VISUAL_ALPHA=\xCD\xE5\xEF\xF0\xEE\xE7\xF0\xE0\xF7\xED\xEE\xF1\xF2\xFC \xEE\xEA\xED\xE0
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=&\xD1\xF2\xE8\xEB\xFC Eterm (*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=&\xD4\xEE\xED\xEE\xE2\xFB\xE9 \xF0\xE8\xF1\xF3\xED\xEE\xEA
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=&\xDF\xF0\xEA\xEE\xF1\xF2\xFC \xE8\xE7\xEE\xE1\xF0\xE0\xE6\xE5\xED\xE8\xFF
 DLG_TAB_VISUAL_MOUSE=&\xCA\xF3\xF0\xF1\xEE\xF0 \xEC\xFB\xF8\xE8
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=\xED\xE5\xEF\xF0\xEE\xE7\xF0\xE0\xF7\xED\xEE\xF1\xF2\xFC %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=\xCD\xE5 \xF3\xE4\xE0\xE5\xF2\xF1\xFF \xE8\xF1\xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xFC winsock
 MSG_INVALID_HOST_ERROR=\xCD\xE5\xE2\xE5\xF0\xED\xFB\xE9 \xF5\xEE\xF1\xF2
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term: \xCD\xEE\xE2\xEE\xE5 \xF1\xEE\xE5\xE4\xE8\xED\xE5\xED\xE8\xE5
 DLG_HOST_TCPIPHOST=&\xD5\xEE\xF1\xF2:
 DLG_HOST_TCPIPPORT=&TCP-\xEF\xEE\xF0\xF2#:
-DLG_HOST_TCPIPPROTOCOL=&\xCF\xF0\xEE\xF2\xEE\xEA\xEE\xEB:
+DLG_HOST_TCPIPPROTOCOL=&IP \xE2\xE5\xF0\xF1\xE8\xFF:
 DLG_HOST_SERIAL=&COM
 DLG_HOST_SERIALPORT=&\xCF\xEE\xF0\xF2:
 
@@ -592,6 +595,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=&\xC7\xE0\xEF\xEE\xEC\xED\xE8\xF2\xFC \xEF\xE0\xF0\xEE\xEB\xFC \xE2 \xEF\xE0\xEC\xFF\xF2\xE8
 DLG_AUTH_FWDAGENT=&\xCF\xE5\xF0\xE2\xFB\xE9 \xE0\xE3\xE5\xED\xF2
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=&\xC2\xF5\xEE\xE4 \xF1 \xEF\xF0\xEE\xF1\xF2\xFB\xEC \xEF\xE0\xF0\xEE\xEB\xE5\xEC
 DLG_AUTH_METHOD_RSA=&\xC2\xF5\xEE\xE4 \xF1 \xEA\xEB\xFE\xF7\xEE\xEC RSA/DSA/ECDSA/ED25519
 DLG_AUTH_METHOD_RHOST=\xC2\xF5\xEE\xE4 \xF1 r&hosts (SSH1)
@@ -611,10 +615,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH: \xCD\xE0\xF1\xF2\xF0\xEE\xE9\xEA\xE0 \xE0\xF3\xF2\xE5\xED\xF2\xE8\xF4\xE8\xEA\xE0\xF6\xE8\xE8
 DLG_AUTHSETUP_BANNER=\xC2\xFB\xE1\xF0\xE0\xF2\xFC \xEF\xEE \xF3\xEC\xEE\xEB\xF7\xE0\xED\xE8\xFE:
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=&\xC2\xF5\xEE\xE4 \xF1 \xEF\xF0\xEE\xF1\xF2\xFB\xEC \xEF\xE0\xF0\xEE\xEB\xE5\xEC
 DLG_AUTHSETUP_METHOD_RSA=&\xC2\xF5\xEE\xE4 \xF1 \xEA\xEB\xFE\xF7\xEE\xEC RSA/DSA/ECDSA/ED25519
 DLG_AUTHSETUP_METHOD_RHOST=&\xC2\xF5\xEE\xE4 \xF1 rhosts (SSH1)
@@ -695,7 +701,7 @@
 DLG_HOST_TCPIPOTHER=\xC4\xF0\xF3\xE3\xE8\xE5
 DLG_HOST_TCPIPPORT=&\xEF\xEE\xF0\xF2 TCP#:
 DLG_HOST_TCPIPSSHVERSION=&\xE2\xE5\xF0\xF1\xE8\xFF SSH:
-DLG_HOST_TCPIPPROTOCOL=&\xEF\xF0\xEE\xF2\xEE\xEA\xEE\xEB:
+DLG_HOST_TCPIPPROTOCOL=&IP \xE2\xE5\xF0\xF1\xE8\xFF:
 DLG_HOST_SERIAL=&COM
 DLG_HOST_SERIALPORT=&\xCF\xEE\xF0\xF2:
 DLG_HOST_HELP=&\xCF\xEE\xEC\xEE\xF9\xFC
@@ -779,6 +785,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=\xCD\xE5\xF2
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=\xC4\xE0
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=\xC7\xE0\xEF\xF0\xEE\xF1
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=\xC2\xFB\xE1\xE5\xF0\xE8\xF2\xE5 \xF4\xE0\xE9\xEB \xF7\xF2\xE5\xED\xE8\xFF/\xE7\xE0\xEF\xE8\xF1\xE8 \xE8\xE7\xE2\xE5\xF1\xF2\xED\xFB\xF5 \xF5\xEE\xF1\xF2\xEE\xE2
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=\xC2\xFB\xE1\xE5\xF0\xE8\xF2\xE5 \xF4\xE0\xE9\xEB \xF7\xF2\xE5\xED\xE8\xFF \xE8\xE7\xE2\xE5\xF1\xF2\xED\xFB\xF5 \xF5\xEE\xF1\xF2\xEE\xE2, \xF7\xF2\xEE\xE1\xFB \xE4\xEE\xE1\xE0\xE2\xE8\xF2\xFC
@@ -939,6 +947,7 @@
 BTN_CONTINUE=&\xCF\xF0\xEE\xE4\xEE\xEB\xE6\xE5\xED\xE8\xE5
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/Simplified Chinese.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/Simplified Chinese.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/Simplified Chinese.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (Simplified Chinese language) by LiShaohui (2017-04-11)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=\xBA\xC1\xC3\xEB
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=͸\xC3\xF7\xB6\xC8
+DLG_TAB_VISUAL_ALPHA=\xB4\xB0\xBFڲ\xBB͸\xC3\xF7\xB6\xC8
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=&Eterm \xB7\xE7\xB8\xF1 (*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=\xB1\xB3\xBE\xB0ͼ\xCF\xF1(&I)
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=ͼ\xCF\xF1\xC1\xC1\xB6\xC8(&T)
 DLG_TAB_VISUAL_MOUSE=\xB9\xE2\xB1\xEA(&M)
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=\xB2\xBB͸\xC3\xF7\xB6\xC8 %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=\xCE޷\xA8ʹ\xD3\xC3 Winsock
 MSG_INVALID_HOST_ERROR=\xCE\xDEЧ\xB5\xC4\xD6\xF7\xBB\xFA\xB5\xD8ַ
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term\xA3\xBA\xD0½\xA8\xC1\xAC\xBD\xD3
 DLG_HOST_TCPIPHOST=\xD6\xF7\xBB\xFA(&O)\xA3\xBA
 DLG_HOST_TCPIPPORT=TCP\xB6˿\xDA(&P)\xA3\xBA
-DLG_HOST_TCPIPPROTOCOL=Э\xD2\xE9(&L)\xA3\xBA
+DLG_HOST_TCPIPPROTOCOL=IP\xB0汾(&N)\xA3\xBA
 DLG_HOST_SERIAL=\xB4\xAE\xBF\xDA(&S)
 DLG_HOST_SERIALPORT=\xB6˿\xDA(&R)\xA3\xBA
 
@@ -592,6 +595,7 @@
 DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase
 DLG_AUTH_REMEMBER_PASSWORD=\xBC\xC7ס\xC3\xDC\xC2\xEB(&M)
 DLG_AUTH_FWDAGENT=\xB4\xFA\xC0\xEDת\xB7\xA2(&O)
+DLG_AUTH_METHOD=Authentication methods
 DLG_AUTH_METHOD_PASSWORD=ʹ\xD3ü򵥵\xC4\xC3\xDC\xC2\xEB\xC0\xB4\xB5\xC7¼(&L)
 DLG_AUTH_METHOD_RSA=ʹ\xD3\xC3 &RSA/DSA/ECDSA/ED25519 \xC3\xDCԿ\xB5\xC7¼
 DLG_AUTH_METHOD_RHOST=ʹ\xD3\xC3 r&hosts \xB5\xC7¼(SSH1)
@@ -611,10 +615,12 @@
 ; dlg auth setup
 DLG_AUTHSETUP_TITLE=TTSSH\xA3\xBA\xC8\xCF֤\xC9\xE8\xD6\xC3
 DLG_AUTHSETUP_BANNER=\xC9\xE8\xD6\xC3Ĭ\xC8\xCF\xC8\xCF֤\xD0\xC5Ϣ\xA3\xBA
+DLG_AUTHSETUP_USERNAME=User name
 DLG_AUTHSETUP_NO_USERNAME=&Do not enter username
 DLG_AUTHSETUP_DEFAULT_USERNAME=U&se default username
 DLG_AUTHSETUP_LOGON_USERNAME=Us&e logon username
 DLG_AUTHSETUP_LOGON_USERNAME_TEXT=Current username is "%s"
+DLG_AUTHSETUP_METHOD=Authentication methods
 DLG_AUTHSETUP_METHOD_PASSWORD=ʹ\xD3ü򵥵\xC4\xC3\xDC\xC2\xEB\xC0\xB4\xB5\xC7¼(&L)
 DLG_AUTHSETUP_METHOD_RSA=ʹ\xD3\xC3 &RSA/DSA/ECDSA/ED25519 \xC3\xDCԿ\xB5\xC7¼
 DLG_AUTHSETUP_METHOD_RHOST=ʹ\xD3\xC3 r&hosts \xB5\xC7¼(SSH1)
@@ -695,7 +701,7 @@
 DLG_HOST_TCPIPOTHER=\xC6\xE4\xCB\xFB
 DLG_HOST_TCPIPPORT=TCP\xB6˿\xDA(&P)\xA3\xBA
 DLG_HOST_TCPIPSSHVERSION=SSH\xB0汾(&V)\xA3\xBA
-DLG_HOST_TCPIPPROTOCOL=Э\xD2\xE9(&C)\xA3\xBA
+DLG_HOST_TCPIPPROTOCOL=IP\xB0汾(&N)\xA3\xBA
 DLG_HOST_SERIAL=\xB4\xAE\xBF\xDA(&E)
 DLG_HOST_SERIALPORT=\xB6˿\xDA(&R)\xA3\xBA
 DLG_HOST_HELP=\xB0\xEF\xD6\xFA(&H)
@@ -779,6 +785,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=\xB7\xF1
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=\xCA\xC7
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=ѯ\xCE\xCA
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=ѡ\xD4\xF1һ\xB8\xF6\xBFɶ\xC1д\xB5\xC4hosts\xCEļ\xFE
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=׷\xBC\xD3һ\xB8\xF6ֻ\xB6\xC1\xB5\xC4hosts\xCEļ\xFE
@@ -939,6 +947,7 @@
 BTN_CONTINUE=\xBC\xCC\xD0\xF8(&C)
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/release/lang/Traditional Chinese.lng
===================================================================
--- branches/unicode_buf/installer/release/lang/Traditional Chinese.lng	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/release/lang/Traditional Chinese.lng	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-; Updated by TeraTerm Project (2019-08-16)
+; Updated by TeraTerm Project (2019-09-11)
 ; Last translated (Traditional Chinese language) by kikiqqp (2014-09-20)
 
 [Tera Term]
@@ -228,10 +228,11 @@
 DLG_TAB_COPYPASTE_PASTEDELAY2=\xB2@\xAC\xED
 DLG_TAB_COPYPASTE_SELECT_ON_ACTIVATE=Ena&bling text selection when the window is activated by mouse
 
-DLG_TAB_VISUAL_ALPHA=\xB3z\xA9\xFA\xAB\xD7
+DLG_TAB_VISUAL_ALPHA=\xB5\xA1\xA4f\xA4\xA3\xB3z\xA9\xFA\xAB\xD7
 DLG_TAB_VISUAL_ALPHA_ACTIVE=&Active
 DLG_TAB_VISUAL_ALPHA_INACTIVE=Ina&ctive
 DLG_TAB_VISUAL_ETERM=&Eterm \xAD\xB7\xAE\xE6 (*)
+DLG_TAB_VISUAL_BGMIXED_THEMEFILE=Mixed &ThemeFile to Background
 DLG_TAB_VISUAL_BGIMG=\xADI\xB4\xBA\xB9Ϲ\xB3(&I)
 DLG_TAB_VISUAL_BGIMG_BRIGHTNESS=Image Brigh&tness
 DLG_TAB_VISUAL_MOUSE=\xB4\xE5\xBC\xD0(&M)
@@ -312,6 +313,8 @@
 DLG_DANDD_DONTSHOW_NEEXTDROP=Do not d&isplay this dialog, next drop
 DLG_DANDD_NOTE=Drop with CTRL, this dialog is displayed
 
+TOOLTIP_TITLEBAR_OPACITY=\xA4\xA3\xB3z\xA9\xFA\xAB\xD7 %.1f %%
+
 ; commonlib.c
 MSG_WINSOCK_ERROR=\xB5L\xAAk\xA8ϥ\xCE Winsock
 MSG_INVALID_HOST_ERROR=\xB5L\xAEĪ\xBA\xA5D\xBE\xF7\xA6a\xA7}
@@ -343,7 +346,7 @@
 DLG_HOST_TITLE=Tera Term\xA1G\xABإ߷s\xB3s\xBDu
 DLG_HOST_TCPIPHOST=\xA5D\xBE\xF7(&O)\xA1G
 DLG_HOST_TCPIPPORT=TCP\xBAݤf(&P)\xA1G
-DLG_HOST_TCPIPPROTOCOL=\xA8\xF3\xA9w(&L)\xA1G
+DLG_HOST_TCPIPPROTOCOL=IP\xAA\xA9\xA5\xBB(&N)\xA1G
 DLG_HOST_SERIAL=\xB3s\xB1\xB5\xB0\xF0(&S)
 DLG_HOST_SERIALPORT=\xBAݤf(&R)\xA1G
 
@@ -695,7 +698,7 @@
 DLG_HOST_TCPIPOTHER=\xA8\xE4\xA5L
 DLG_HOST_TCPIPPORT=TCP\xBAݤf(&P)\xA1G
 DLG_HOST_TCPIPSSHVERSION=SSH\xAA\xA9\xA5\xBB(&V)\xA1G
-DLG_HOST_TCPIPPROTOCOL=\xA8\xF3\xA9w(&C)\xA1G
+DLG_HOST_TCPIPPROTOCOL=IP\xAA\xA9\xA5\xBB(&N)\xA1G
 DLG_HOST_SERIAL=\xB3s\xB1\xB5\xB0\xF0(&E)
 DLG_HOST_SERIALPORT=\xBAݤf(&R)\xA1G
 DLG_HOST_HELP=\xC0\xB0\xA7U(&H)
@@ -779,6 +782,8 @@
 DLG_SSHSETUP_HOSTKEY_ROTATION_NO=No
 DLG_SSHSETUP_HOSTKEY_ROTATION_YES=Yes
 DLG_SSHSETUP_HOSTKEY_ROTATION_ASK=Ask
+DLG_SSHSETUP_LOGLEVEL=&LogLevel
+DLG_SSHSETUP_LOGLEVEL_UNIT=(0 to turn off)
 
 FILEDLG_OPEN_KNOWNHOSTS_RW_TITLE=\xBF\xEF\xBEܤ@\xADӥiŪ\xBCg\xAA\xBAhosts\xA4\xE5\xA5\xF3
 FILEDLG_OPEN_KNOWNHOSTS_RO_TITLE=\xB0l\xA5[\xA4@\xADӥuŪ\xAA\xBAhosts\xA4\xE5\xA5\xF3
@@ -939,6 +944,7 @@
 BTN_CONTINUE=\xC4~\xC4\xF2(&C)
 BTN_YES=&Yes
 BTN_NO=&No
+BTN_HELP=&Help
 
 
 [TTProxy]

Modified: branches/unicode_buf/installer/teraterm.iss
===================================================================
--- branches/unicode_buf/installer/teraterm.iss	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/installer/teraterm.iss	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,5 +1,5 @@
 #define AppName "Tera Term"
-#define AppVer "4.103"
+#define AppVer "4.104"
 #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
 
 [InnoIDE_PreCompile]

Modified: branches/unicode_buf/libs/SFMT.cmake
===================================================================
--- branches/unicode_buf/libs/SFMT.cmake	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/libs/SFMT.cmake	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,5 @@
-# cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=Win32 -P oniguruma.cmake
+# cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=Win32 -P SFMT.cmake
+# cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=x64 -P SFMT.cmake
 # cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -P SFMT.cmake
 # cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -DCMAKE_CONFIGURATION_TYPE=Release -P SFMT.cmake
 
@@ -56,6 +57,7 @@
 
 include(script_support.cmake)
 
+set(SFMT_VERSION "1.5.1")
 set(SRC_DIR_BASE "SFMT-src-1.5.1")
 set(SRC_ARC "SFMT-1.5.1.zip")
 set(SRC_URL "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/SFMT-src-1.5.1.zip")
@@ -88,11 +90,21 @@
     COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC}
     WORKING_DIRECTORY ${EXTRACT_DIR}
     )
-
 endif()
 
 ########################################
 
+if(NOT EXISTS ${SRC_DIR}/SFMT_version_for_teraterm.h)
+  file(WRITE "${SRC_DIR}/SFMT_version_for_teraterm.h"
+    "// created by cmake\n"
+    "#pragma once\n"
+    "#ifndef SFMT_VERSION_H\n"
+    "#define SFMT_VERSION_H\n"
+    "#define SFMT_VERSION \"${SFMT_VERSION}\"\n"
+    "#endif"
+    )
+
+endif()
 if(NOT EXISTS ${SRC_DIR}/CMakeLists.txt)
   file(WRITE "${SRC_DIR}/CMakeLists.txt"
 	"cmake_minimum_required(VERSION 2.4.4)\n"
@@ -112,7 +124,9 @@
 	"  ARCHIVE DESTINATION \${CMAKE_INSTALL_PREFIX}/lib\n"
 	"  )\n"
 	"install(\n"
-	"  FILES SFMT.h SFMT-params.h SFMT-params19937.h\n"
+	"  FILES\n"
+    "    SFMT.h SFMT-params.h SFMT-params19937.h\n"
+    "    SFMT_version_for_teraterm.h\n"
 	"  DESTINATION \${CMAKE_INSTALL_PREFIX}/include\n"
 	"  )\n"
 	)

Modified: branches/unicode_buf/libs/buildSFMT.bat
===================================================================
--- branches/unicode_buf/libs/buildSFMT.bat	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/libs/buildSFMT.bat	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,3 +1,5 @@
+SET filename=SFMT_version_for_teraterm.h
+
 cd SFMT
 
 if exist "Makefile.msc.release" goto end_mk_release
@@ -25,4 +27,16 @@
 nmake /f Makefile.msc.debug
 nmake /f Makefile.msc.release
 
+rem \x83o\x81[\x83W\x83\x87\x83\x93\x83t\x83@\x83C\x83\x8B\x82\xAA\x82Ȃ\xAF\x82\xEA\x82΍\xEC\x82\xE9
+IF EXIST %filename% (GOTO FILE_TRUE) ELSE GOTO FILE_FALSE
+:FILE_TRUE
+ECHO "\x83o\x81[\x83W\x83\x87\x83\x93\x83t\x83@\x83C\x83\x8B\x82\xAA\x8C\xA9\x82‚\xA9\x82\xE8\x82܂\xB5\x82\xBD"
+GOTO END
+
+:FILE_FALSE
+ECHO "\x83o\x81[\x83W\x83\x87\x83\x93\x83t\x83@\x83C\x83\x8B\x82\xAA\x8C\xA9\x82‚\xA9\x82\xE8\x82Ȃ\xA2\x82̂ŐV\x8BK\x8D쐬\x82\xB5\x82܂\xB7"
+echo #define SFMT_VERSION "Unknown" > %filename%
+GOTO END
+
+:END
 cd ..

Modified: branches/unicode_buf/libs/oniguruma.cmake
===================================================================
--- branches/unicode_buf/libs/oniguruma.cmake	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/libs/oniguruma.cmake	2019-09-12 15:58:02 UTC (rev 8124)
@@ -58,14 +58,14 @@
 
 include(script_support.cmake)
 
-set(SRC_DIR_BASE "92354eea3ff8f07795c3ddb91cc6886c54578f10")
+set(SRC_DIR_BASE "onig-6.9.3")
 set(SRC_ARC "${SRC_DIR_BASE}.tar.gz")
-set(SRC_URL "https://github.com/kkos/oniguruma/archive/${SRC_ARC}")
-set(SRC_ARC_HASH_SHA1 1002c56649cefdc227c37ad59b81e38bd2bc7180)
+set(SRC_URL "https://github.com/kkos/oniguruma/releases/download/v6.9.3/${SRC_ARC}")
+set(SRC_ARC_HASH_SHA1 f2bde879bb7334a1b0d7b5553a851a8d6374f28b)
 
 set(DOWN_DIR "${CMAKE_SOURCE_DIR}/download/oniguruma")
 set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/src")
-set(SRC_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/src/oniguruma-92354eea3ff8f07795c3ddb91cc6886c54578f10")
+set(SRC_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/src/${SRC_DIR_BASE}")
 set(BUILD_DIR "${CMAKE_SOURCE_DIR}/build/oniguruma/build_${TOOLSET}")
 set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/oniguruma_${TOOLSET}")
 if(("${CMAKE_GENERATOR}" MATCHES "Win64") OR ("${ARCHITECTURE}" MATCHES "x64") OR ("$ENV{MSYSTEM_CHOST}" STREQUAL "x86_64-w64-mingw32"))

Modified: branches/unicode_buf/teraterm/common/teraterm.h
===================================================================
--- branches/unicode_buf/teraterm/common/teraterm.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/teraterm.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -65,6 +65,9 @@
 #define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64
 #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha"
 #define BG_THEME_IMAGE_BRIGHTNESS2 "BGSrc2Alpha"
+#define BG_THEME_IMAGEFILE_NAME "ImageFile.INI"
+#define BG_THEME_THEMEFILE_SCALE "Scale.INI"
+#define BG_THEME_THEMEFILE_TILE "Tile.INI"
 
 // Added by 337 2006/03/01
 #define USE_NORMAL_BGCOLOR

Modified: branches/unicode_buf/teraterm/common/tipwin.cpp
===================================================================
--- branches/unicode_buf/teraterm/common/tipwin.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tipwin.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -59,6 +59,9 @@
 #include <stdio.h>
 #include <tchar.h>
 #include <assert.h>
+#if !defined(_CRTDBG_MAP_ALLOC)
+#define _CRTDBG_MAP_ALLOC
+#endif
 #include <crtdbg.h>
 
 #include "ttlib.h"		// for GetMessageboxFont()
@@ -65,15 +68,6 @@
 
 #include "tipwin.h"
 
-#if defined(_DEBUG) && !defined(_CRTDBG_MAP_ALLOC)
-#define malloc(l)		_malloc_dbg((l), _NORMAL_BLOCK, __FILE__, __LINE__)
-#define free(p)			_free_dbg((p), _NORMAL_BLOCK)
-#define _strdup(s)		_strdup_dbg((s), _NORMAL_BLOCK, __FILE__, __LINE__)
-#define _wcsdup(s)		_wcsdup_dbg((s), _NORMAL_BLOCK, __FILE__, __LINE__)
-#endif
-
-#define	FRAME_WIDTH	6
-
 static ATOM tip_class = 0;
 
 typedef struct tagTipWinData {
@@ -100,10 +94,10 @@
 	pTipWin->str_rect.top = 0;
 	pTipWin->str_rect.left = 0;
 	if (pTipWin->strW != NULL) {
-		DrawTextW(hdc, pTipWin->strW, pTipWin->str_len,
+		DrawTextW(hdc, pTipWin->strW, (int)pTipWin->str_len,
 				  &pTipWin->str_rect, DT_LEFT|DT_CALCRECT);
 	} else {
-		DrawTextA(hdc, pTipWin->str, pTipWin->str_len,
+		DrawTextA(hdc, pTipWin->str, (int)pTipWin->str_len,
 				  &pTipWin->str_rect, DT_LEFT|DT_CALCRECT);
 	}
 	DeleteDC(hdc);
@@ -126,46 +120,47 @@
 		case WM_ERASEBKGND:
 			return TRUE;
 
-		case WM_PAINT: {
-			HBRUSH hbr;
-			HGDIOBJ holdbr;
-			RECT cr;
-			HDC hdc;
+		case WM_PAINT:
+			{
+				HBRUSH hbr;
+				HGDIOBJ holdbr;
+				RECT cr;
+				HDC hdc;
 
-			PAINTSTRUCT ps;
-			hdc = BeginPaint(hWnd, &ps);
+				PAINTSTRUCT ps;
+				hdc = BeginPaint(hWnd, &ps);
 
-			SelectObject(hdc, pTipWin->tip_font);
-			SelectObject(hdc, GetStockObject(BLACK_PEN));
+				SelectObject(hdc, pTipWin->tip_font);
+				SelectObject(hdc, GetStockObject(BLACK_PEN));
 
-			hbr = CreateSolidBrush(pTipWin->tip_bg);
-			holdbr = SelectObject(hdc, hbr);
+				hbr = CreateSolidBrush(pTipWin->tip_bg);
+				holdbr = SelectObject(hdc, hbr);
 
-			GetClientRect(hWnd, &cr);
-			Rectangle(hdc, cr.left, cr.top, cr.right, cr.bottom);
+				GetClientRect(hWnd, &cr);
+				Rectangle(hdc, cr.left, cr.top, cr.right, cr.bottom);
 
-			SetTextColor(hdc, pTipWin->tip_text);
-			SetBkColor(hdc, pTipWin->tip_bg);
+				SetTextColor(hdc, pTipWin->tip_text);
+				SetBkColor(hdc, pTipWin->tip_bg);
 
-			{
-				RECT rect = pTipWin->str_rect;
-				rect.left = rect.left + FRAME_WIDTH;
-				rect.right = rect.right + FRAME_WIDTH;
-				rect.top = rect.top + FRAME_WIDTH;
-				rect.bottom = rect.bottom + FRAME_WIDTH;
-				if (pTipWin->strW != NULL) {
-					DrawTextW(hdc, pTipWin->strW, pTipWin->str_len, &rect, DT_LEFT);
-				} else {
-					DrawText(hdc, pTipWin->str, pTipWin->str_len, &rect, DT_LEFT);
+				{
+					RECT rect = pTipWin->str_rect;
+					rect.left = rect.left + FRAME_WIDTH;
+					rect.right = rect.right + FRAME_WIDTH;
+					rect.top = rect.top + FRAME_WIDTH;
+					rect.bottom = rect.bottom + FRAME_WIDTH;
+					if (pTipWin->strW != NULL) {
+						DrawTextW(hdc, pTipWin->strW, (int)pTipWin->str_len, &rect, DT_LEFT);
+					} else {
+						DrawText(hdc, pTipWin->str, (int)pTipWin->str_len, &rect, DT_LEFT);
+					}
 				}
-			}
 
-			SelectObject(hdc, holdbr);
-			DeleteObject(hbr);
+				SelectObject(hdc, holdbr);
+				DeleteObject(hbr);
 
-			EndPaint(hWnd, &ps);
+				EndPaint(hWnd, &ps);
+			}
 			return 0;
-		}
 
 		case WM_NCHITTEST:
 			return HTTRANSPARENT;
@@ -175,6 +170,26 @@
 			pTipWin->tip_font = NULL;
 			break;
 
+		case WM_SETTEXT:
+			{
+				LPCTSTR str = (LPCTSTR) lParam;
+				const int str_width = pTipWin->str_rect.right - pTipWin->str_rect.left;
+				const int str_height = pTipWin->str_rect.bottom - pTipWin->str_rect.top;
+
+				free((void *)(pTipWin->str));
+				pTipWin->str_len = _tcslen(str);
+				pTipWin->str = _tcsdup(str);
+				CalcStrRect(pTipWin);
+
+				SetWindowPos(hWnd, NULL,
+							 0, 0,
+							 str_width + FRAME_WIDTH * 2, str_height + FRAME_WIDTH * 2,
+				             SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
+				InvalidateRect(hWnd, NULL, FALSE);
+
+			}
+			break;
+
 		case WM_NCDESTROY:
 			if (pTipWin->auto_destroy) {
 				if (pTipWin->str != NULL) {
@@ -212,19 +227,28 @@
 	}
 }
 
+/* Create the tip window */
 static void create_tipwin(TipWin *pTipWin, int cx, int cy)
 {
+	const TCHAR *str = pTipWin->str;
 	HWND hParnetWnd = pTipWin->hParentWnd;
 	const HINSTANCE hInst = (HINSTANCE)GetWindowLongPtr(hParnetWnd, GWLP_HINSTANCE);
 	register_class(hInst);
-
+	const int str_width = pTipWin->str_rect.right - pTipWin->str_rect.left;
+	const int str_height = pTipWin->str_rect.bottom - pTipWin->str_rect.top;
 	pTipWin->tip_wnd =
 		CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST,
 					   MAKEINTRESOURCE(tip_class),
-					   NULL, WS_POPUP,
-					   cx, cy, 1, 1,
+					   str, WS_POPUP,
+					   cx, cy,
+					   str_width + FRAME_WIDTH * 2, str_height + FRAME_WIDTH * 2,
 					   hParnetWnd, NULL, hInst, pTipWin);
-	assert(pTipWin->tip_wnd != NULL);
+	
+	/*
+	 * WindowsMe(9x)\x82ł́ASSH\x94F\x8F؂̃_\x83C\x83A\x83\x8D\x83O\x82̕\\x8E\xA6\x82ł\xCD NULL \x82\xAA\x95Ԃ\xC1\x82Ă\xAD\x82邽\x82߁A
+	 * \x83A\x83T\x81[\x83V\x83\x87\x83\x93\x82\xF0\x82\xB5\x82Ȃ\xA2\x82悤\x82ɂ\xB5\x82\xBD\x81BTera Term\x82̃\x8A\x83T\x83C\x83Y\x82ł\xCD NULL \x82ł͂Ȃ\xA2\x82\xAA\x81A
+	 * \x83c\x81[\x83\x8B\x83`\x83b\x83v\x82\xAA\x95`\x89悳\x82\xEA\x82Ȃ\xA2\x81B
+	 */
 }
 
 static TipWin *TipWinCreateNoStr(HWND src, int cx, int cy)
@@ -302,6 +326,51 @@
 	InvalidateRect(hWnd, NULL, FALSE);
 }
 
+/*
+ * \x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x83c\x81[\x83\x8B\x83`\x83b\x83v\x82ɕ`\x89悵\x82\xBD\x8E\x9E\x82̉\xA1\x82Əc\x82̃T\x83C\x83Y\x82\xF0\x8E擾\x82\xB7\x82\xE9\x81B
+ *
+ * [in]
+ *   src
+ *   str
+ * [out]
+ *   width
+ *   height
+ */
+void TipWinGetTextWidthHeight(HWND src, const TCHAR *str, int *width, int *height)
+{
+	LOGFONTA logfont;
+	HFONT tip_font;
+	UINT uDpi;
+	HDC hdc;
+	RECT str_rect;
+	size_t str_len;
+
+	/* \x95\xB6\x8E\x9A\x97\xF1\x82̒\xB7\x82\xB3\x82\xF0\x8Cv\x8EZ\x82\xB7\x82\xE9 */
+	str_len = _tcslen(str);
+	
+	/* DPI\x82\xF0\x8E擾\x82\xB7\x82\xE9 */
+	uDpi = GetMonitorDpiFromWindow(src);
+
+	/* \x83t\x83H\x83\x93\x83g\x82𐶐\xAC\x82\xB7\x82\xE9 */
+	GetMessageboxFont(&logfont);
+	logfont.lfWidth = MulDiv(logfont.lfWidth, uDpi, 96);
+	logfont.lfHeight = MulDiv(logfont.lfHeight, uDpi, 96);
+	tip_font = CreateFontIndirect(&logfont);
+
+	/* \x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x95`\x89悵\x82ăT\x83C\x83Y\x82\xF0\x8B\x81\x82߂\xE9 */
+	hdc = CreateCompatibleDC(NULL);
+	SelectObject(hdc, tip_font);
+	str_rect.top = 0;
+	str_rect.left = 0;
+	DrawText(hdc, str, (int)str_len, &str_rect, DT_LEFT|DT_CALCRECT);
+	*width = str_rect.right - str_rect.left;
+	*height = str_rect.bottom - str_rect.top;
+	DeleteDC(hdc);
+
+	/* \x83t\x83H\x83\x93\x83g\x82\xF0\x94j\x8A\xFC\x82\xB7\x82\xE9 */
+	DeleteObject(tip_font);
+}
+
 void TipWinSetTextW(TipWin *tWin, const wchar_t *text)
 {
 	if (tWin != NULL) {

Modified: branches/unicode_buf/teraterm/common/tipwin.h
===================================================================
--- branches/unicode_buf/teraterm/common/tipwin.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tipwin.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -33,6 +33,8 @@
 extern "C" {
 #endif
 
+#define	FRAME_WIDTH	6
+
 typedef struct tagTipWinData TipWin;
 
 TipWin *TipWinCreateW(HWND src, int cx, int cy, const wchar_t *str);
@@ -41,6 +43,8 @@
 void TipWinSetTextA(TipWin *tWin, const char *text);
 void TipWinSetPos(TipWin *tWin, int x, int y);
 void TipWinDestroy(TipWin *tWin);
+void TipWinGetTextWidthHeight(HWND src, const TCHAR *str, int *width, int *height);
+void TipWinSetPos(TipWin *tWin, int x, int y);
 
 #if defined(UNICODE)
 #define	TipWinCreate(p1, p2, p3, p4)	TipWinCreateW(p1, p2, p3, p4)

Modified: branches/unicode_buf/teraterm/common/tmfc.cpp
===================================================================
--- branches/unicode_buf/teraterm/common/tmfc.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tmfc.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -669,11 +669,23 @@
 	return TRUE;
 }
 
+void TTCPropertyPage::OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar)
+{
+}
+
+void TTCPropertyPage::OnTimer(UINT_PTR nIDEvent)
+{
+}
+
 HBRUSH TTCPropertyPage::OnCtlColor(HDC hDC, HWND hWnd)
 {
 	return (HBRUSH)::DefWindowProc(m_hWnd, WM_CTLCOLORSTATIC, (WPARAM)hDC, (LPARAM)hWnd);
 }
 
+void TTCPropertyPage::OnHelp()
+{
+}
+
 UINT CALLBACK TTCPropertyPage::PropSheetPageProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp)
 {
 	return 0;
@@ -698,6 +710,9 @@
 		case PSN_APPLY:
 			self->OnOK();
 			break;
+		case PSN_HELP:
+			self->OnHelp();
+			break;
 		default:
 			break;
 		}
@@ -708,6 +723,12 @@
 		break;
 	case WM_CTLCOLORSTATIC:
 		return (INT_PTR)self->OnCtlColor((HDC)wp, (HWND)lp);
+	case WM_HSCROLL:
+		self->OnHScroll(LOWORD(wp), HIWORD(wp), (HWND)lp);
+		break;
+	case WM_TIMER:
+		self->OnTimer(LOWORD(wp));
+		break;
 	}
 	return FALSE;
 }

Modified: branches/unicode_buf/teraterm/common/tmfc.h
===================================================================
--- branches/unicode_buf/teraterm/common/tmfc.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tmfc.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -176,8 +176,11 @@
 	virtual ~TTCPropertyPage();
 	virtual void OnInitDialog();
 	virtual void OnOK();
+	virtual void OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar);
+	virtual void OnTimer(UINT_PTR nIDEvent);
 	virtual BOOL OnCommand(WPARAM wp, LPARAM lp);
 	virtual HBRUSH OnCtlColor(HDC hDC, HWND hWnd);
+	virtual void OnHelp();
 	HPROPSHEETPAGE CreatePropertySheetPage();
 protected:
 	PROPSHEETPAGE_V1 m_psp;

Modified: branches/unicode_buf/teraterm/common/tt-version.h
===================================================================
--- branches/unicode_buf/teraterm/common/tt-version.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tt-version.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -29,7 +29,7 @@
 #pragma once
 
 #define TT_VERSION_MAJOR             4
-#define TT_VERSION_MINOR             103
+#define TT_VERSION_MINOR             104
 #define TT_TOSTR(x)                  TT_TOSTR2(x)
 #define TT_TOSTR2(x)                 #x
 #define TT_VERSION_STR(sep)          TT_TOSTR(TT_VERSION_MAJOR) sep TT_TOSTR(TT_VERSION_MINOR)

Modified: branches/unicode_buf/teraterm/common/tt_res.h
===================================================================
--- branches/unicode_buf/teraterm/common/tt_res.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tt_res.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,6 +1,6 @@
 //{{NO_DEPENDENCIES}}
 // Microsoft Visual C++ generated include file.
-// Used by c:\work\ttssh2\teraterm\teraterm\ttermpro.rc
+// Used by ttermpro.rc
 //
 #define IDI_TTERM                       100
 #define IDR_ACC                         100
@@ -106,6 +106,8 @@
 #define IDC_ENABLE_ANSI_COLOR           1073
 #define IDC_DISABLE_PASTE_MBUTTON       1074
 #define IDC_URL_UNDERLINE               1075
+#define IDC_ALPHA_BLEND_ACTIVE_TRACKBAR 1076
+#define IDC_ALPHA_BLEND_INACTIVE_TRACKBAR 1077
 #define IDD_PRNABORTDLG                 2100
 #define IDD_FILETRANSDLG                2200
 #define IDC_TRANSFNAME                  2201
@@ -237,6 +239,7 @@
 #define IDC_DONTSHOW_CHECK              2587
 #define IDC_DAD_NOTE                    2588
 #define IDC_SELECT_ON_ACTIVATE          2589
+#define IDC_MIXED_THEME_FILE            2590
 #define ID_ACC_SENDBREAK                50001
 #define ID_ACC_COPY                     50002
 #define ID_ACC_NEWCONNECTION            50003
@@ -335,7 +338,7 @@
 #define _APS_NO_MFC                     1
 #define _APS_NEXT_RESOURCE_VALUE        126
 #define _APS_NEXT_COMMAND_VALUE         52031
-#define _APS_NEXT_CONTROL_VALUE         2589
+#define _APS_NEXT_CONTROL_VALUE         2591
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: branches/unicode_buf/teraterm/common/tttypes.h
===================================================================
--- branches/unicode_buf/teraterm/common/tttypes.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/common/tttypes.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -45,6 +45,7 @@
 #define IdPrnProcTimer       9
 #define IdCancelConnectTimer 10  // add (2007.1.10 yutaka)
 #define IdPasteDelayTimer    11
+#define IdOpacityTipTimer	12	// add (2019.9.7 yasuhide)
 
   /* Window Id */
 #define IdVT  1
@@ -402,6 +403,7 @@
 	int BGNoCopyBits;
 	int BGNoFrame;
 	char BGThemeFile[MAX_PATH];
+	int BGIgnoreThemeFile;
 } eterm_lookfeel_t;
 
 typedef struct cygterm {
@@ -816,9 +818,11 @@
 #define IdStopBit2  3
   /* Flow control ID */
 #define IdFlowX 1
-#define IdFlowHard 2
+#define IdFlowHard 2    // RTS/CTS(hardware flow)
 #define IdFlowNone 3
+#define IdFlowHardDsrDtr 4  // DSR/DTR(hardware flow)
 
+
 /* GetHostName dialog record */
 typedef struct {
 	PCHAR SetupFN; // setup file name

Modified: branches/unicode_buf/teraterm/svnrev/svnrev.cpp
===================================================================
--- branches/unicode_buf/teraterm/svnrev/svnrev.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/svnrev/svnrev.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -41,16 +41,31 @@
 	// .svn\entries \x82𒼐ړǂݍ\x9E\x82ނ̂\xF0\x82\xE2\x82߁A
 	// svnversion.exe \x83R\x83}\x83\x93\x83h\x82\xF0\x8CĂяo\x82\xB5\x82\xBD\x8C\x8B\x89ʂ\xF0\x95Ԃ\xB7
 
-	// _popen \x82̓X\x83y\x81[\x83X\x82\xAA\x8A܂܂\xEA\x82\xE9\x8Fꍇ\x82Ƀ_\x83u\x83\x8B\x83N\x83H\x81[\x83g\x82ň͂\xF1\x82ł\xE0
-	// \x82\xA4\x82܂\xAD\x93\xAE\x82\xA9\x82Ȃ\xA2\x82\xBD\x82\xDF 8.3 \x8C`\x8E\xAE\x82ɕϊ\xB7
-	DWORD r = GetShortPathName(svnversion, arg1, sizeof(arg1));
-	if (r == 0) {
-		return -1;	// svn did not exist
+	// \x93n\x82\xB3\x82ꂽ svnversion \x82\xAA\x91\xB6\x8D݂\xB7\x82\xEA\x82Ύ\xC0\x8Ds\x82\xB7\x82邪\x81A
+	// \x82\xBB\x82\xA4\x82łȂ\xAF\x82\xEA\x82\xCE "svnversion" \x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9 (PATH \x82\xA9\x82猟\x8D\x{142CC2}\xEA\x82\xE9)
+	if ((fopen_s(&fp, svnversion, "r")) == 0) {
+		DWORD r;
+
+		fclose(fp);
+
+		// _popen \x82̓X\x83y\x81[\x83X\x82\xAA\x8A܂܂\xEA\x82\xE9\x8Fꍇ\x82Ƀ_\x83u\x83\x8B\x83N\x83H\x81[\x83g\x82ň͂\xF1\x82ł\xE0
+		// \x82\xA4\x82܂\xAD\x93\xAE\x82\xA9\x82Ȃ\xA2\x82\xBD\x82\xDF 8.3 \x8C`\x8E\xAE\x82ɕϊ\xB7
+		r = GetShortPathName(svnversion, arg1, sizeof(arg1));
+		if (r == 0) {
+			return -1;	// svn did not exist
+		}
+		GetShortPathName(path, arg2, sizeof(arg2));
+
+		_snprintf_s(command, sizeof(command), _TRUNCATE, "%s -n %s", arg1, arg2);
+
 	}
-	GetShortPathName(path, arg2, sizeof(arg2));
+	else {
+		GetShortPathName(path, arg2, sizeof(arg2));
 
-	_snprintf_s(command, sizeof(command), _TRUNCATE, "%s -n %s", arg1, arg2);
-	if ((fp = _popen(command, "rt")) == NULL ) {
+		_snprintf_s(command, sizeof(command), _TRUNCATE, "svnversion -n %s", arg2);
+	}
+	
+	if ((fp = _popen(command, "rt")) == NULL) {
 		return -1;
 	}
 
@@ -58,6 +73,10 @@
 	revision = atoi(result);
 	_pclose(fp);
 
+	if (strlen(result) == 0) {
+		return -1;
+	}
+
 	if (revision == 0) {
 		revision = -1;
 	}

Modified: branches/unicode_buf/teraterm/teraterm/CMakeLists.txt
===================================================================
--- branches/unicode_buf/teraterm/teraterm/CMakeLists.txt	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/CMakeLists.txt	2019-09-12 15:58:02 UTC (rev 8124)
@@ -179,6 +179,7 @@
   ../ttpdlg
   ${ONIGURUMA_INCLUDE_DIRS}
   ${CMAKE_CURRENT_BINARY_DIR}/../ttpdlg     # for svnversion.h
+  ${SFMT_INCLUDE_DIRS}
   )
 
 if(MINGW)

Modified: branches/unicode_buf/teraterm/teraterm/addsetting.cpp
===================================================================
--- branches/unicode_buf/teraterm/teraterm/addsetting.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/addsetting.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -38,6 +38,7 @@
 #include <time.h>
 #include <tchar.h>
 #include <crtdbg.h>
+#include <math.h>
 
 #include "teraterm.h"
 #include "tttypes.h"
@@ -46,8 +47,11 @@
 #include "ttftypes.h"
 #include "dlglib.h"
 #include "compat_win.h"
+#include "helpid.h"
 #include "addsetting.h"
 
+#include "tipwin.h"
+
 #ifdef _DEBUG
 #define free(p)		_free_dbg((p), _NORMAL_BLOCK)
 #define _strdup(s)	_strdup_dbg((s), _NORMAL_BLOCK, __FILE__, __LINE__)
@@ -69,6 +73,9 @@
 };
 #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1)
 
+static TipWin *ActiveOpacityTip;
+static TipWin *InactiveOpacityTip;
+
 void CVisualPropPageDlg::SetupRGBbox(int index)
 {
 	BYTE c;
@@ -92,7 +99,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_GENERAL", UIMsg, _countof(UIMsg),
 	             _T("General"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CGeneralPropPageDlg::~CGeneralPropPageDlg()
@@ -206,6 +213,11 @@
 	ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPSERIALSPEED) == BST_CHECKED) << 5;
 }
 
+void CGeneralPropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
+
 // CSequencePropPageDlg \x83_\x83C\x83A\x83\x8D\x83O
 
 CSequencePropPageDlg::CSequencePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
@@ -215,7 +227,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_SEQUENCE", UIMsg, _countof(UIMsg),
 	             _T("Control Sequence"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CSequencePropPageDlg::~CSequencePropPageDlg()
@@ -391,6 +403,10 @@
 	ts.NotifyClipboardAccess = GetCheck(IDC_CLIPBOARD_NOTIFY);
 }
 
+void CSequencePropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
 
 // CCopypastePropPageDlg \x83_\x83C\x83A\x83\x8D\x83O
 
@@ -401,7 +417,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_COPYPASTE", UIMsg, _countof(UIMsg),
 				  _T("Copy and Paste"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CCopypastePropPageDlg::~CCopypastePropPageDlg()
@@ -607,6 +623,10 @@
 	ts.SelOnActive = (GetCheck(IDC_SELECT_ON_ACTIVATE) == BST_CHECKED);
 }
 
+void CCopypastePropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
 
 // CVisualPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O
 
@@ -617,7 +637,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_VISUAL", UIMsg, _countof(UIMsg),
 	             _T("Visual"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CVisualPropPageDlg::~CVisualPropPageDlg()
@@ -627,6 +647,13 @@
 
 // CVisualPropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89
 
+static void DestroyOpacityTip(TipWin** OpacityTip) {
+	if (*OpacityTip) {
+		TipWinDestroy(*OpacityTip);
+		(*OpacityTip) = NULL;
+	}
+}
+
 void CVisualPropPageDlg::OnInitDialog()
 {
 	char buf[MAXPATHLEN];
@@ -635,9 +662,10 @@
 
 	static const DlgTextInfo TextInfos[] = {
 		{ IDC_ALPHABLEND, "DLG_TAB_VISUAL_ALPHA" },
-		{ IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE_LABEL" },
-		{ IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE_LABEL" },
+		{ IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE" },
+		{ IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE" },
 		{ IDC_ETERM_LOOKFEEL, "DLG_TAB_VISUAL_ETERM" },
+		{ IDC_MIXED_THEME_FILE, "DLG_TAB_VISUAL_BGMIXED_THEMEFILE" },
 		{ IDC_BGIMG_CHECK, "DLG_TAB_VISUAL_BGIMG" },
 		{ IDC_BGIMG_BRIGHTNESS, "DLG_TAB_VISUAL_BGIMG_BRIGHTNESS" },
 		{ IDC_MOUSE, "DLG_TAB_VISUAL_MOUSE" },
@@ -673,8 +701,14 @@
 	// (1)AlphaBlend
 
 	SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, ts.AlphaBlendActive);
+	DestroyOpacityTip(&ActiveOpacityTip);
+	SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETRANGE, TRUE, MAKELPARAM(0, 255));
+	SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, TRUE, ts.AlphaBlendActive);
 
 	SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, ts.AlphaBlendInactive);
+	DestroyOpacityTip(&InactiveOpacityTip);
+	SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETRANGE, TRUE, MAKELPARAM(0, 255));
+	SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, TRUE, ts.AlphaBlendInactive);
 
 	// (2)[BG] BGEnable
 	SetCheck(IDC_ETERM_LOOKFEEL, ts.EtermLookfeel.BGEnable);
@@ -685,11 +719,24 @@
 	_snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.BGImgBrightness);
 	SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, ts.BGImgBrightness);
 
+	// BGEnable\x8A֌W\x82Ȃ\xAD\x81A\x83`\x83F\x83b\x83N\x83{\x83b\x83N\x83X\x82\xF0\x95t\x82\xAF\x82\xE9\x81B
+	if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
+		SetCheck(IDC_BGIMG_CHECK, BST_CHECKED);
+	} else {
+		SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
+	}
+	// \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82𖳎\x8B\x82\xB7\x82\xE9\x8Fꍇ\x82͕ǎ\x86\x82ƍ\xAC\x8D\x87\x82\xB5\x82Ȃ\xA2\x81B
+	if (ts.EtermLookfeel.BGIgnoreThemeFile) {
+		SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
+	} else {
+		SetCheck(IDC_MIXED_THEME_FILE, BST_CHECKED);
+	}
+
 	if (ts.EtermLookfeel.BGEnable) {
 		EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
+		EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
 
 		if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
-			SetCheck(IDC_BGIMG_CHECK, BST_CHECKED);
 			EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
 			EnableDlgItem(IDC_BGIMG_BUTTON, TRUE);
 
@@ -696,7 +743,6 @@
 			EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE);
 			EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
 		} else {
-			SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
 			EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
 			EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
 
@@ -703,6 +749,7 @@
 			EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
 			EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
 		}
+
 	} else {
 		EnableDlgItem(IDC_BGIMG_CHECK, FALSE);
 		EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
@@ -710,6 +757,8 @@
 
 		EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
 		EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
+
+		EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
 	}
 
 	// (3)Mouse cursor type
@@ -770,6 +819,47 @@
 	::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE));
 }
 
+void CVisualPropPageDlg::OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar)
+{
+	int pos;
+	if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR) ) {
+		switch (nSBCode) {
+			case SB_TOP:
+			case SB_BOTTOM:
+			case SB_LINEDOWN:
+			case SB_LINEUP:
+			case SB_PAGEDOWN:
+			case SB_PAGEUP:
+			case SB_THUMBPOSITION:
+			case SB_THUMBTRACK:
+				pos = SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL);
+				SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, pos);
+				break;
+			case SB_ENDSCROLL:
+			default:
+				return;
+		}
+	}
+	else if ( pScrollBar == GetDlgItem(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR) ) {
+		switch (nSBCode) {
+			case SB_TOP:
+			case SB_BOTTOM:
+			case SB_LINEDOWN:
+			case SB_LINEUP:
+			case SB_PAGEDOWN:
+			case SB_PAGEUP:
+			case SB_THUMBPOSITION:
+			case SB_THUMBTRACK:
+				pos = SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_GETPOS, NULL, NULL);
+				SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, pos);
+				break;
+			case SB_ENDSCROLL:
+			default:
+				return;
+		}
+	}
+}
+
 BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam)
 {
 	int sel;
@@ -778,6 +868,7 @@
 	case IDC_ETERM_LOOKFEEL:
 			// \x83`\x83F\x83b\x83N\x82\xB3\x82ꂽ\x82\xE7 Enable/Disable \x82\xF0\x83g\x83O\x83\x8B\x82\xB7\x82\xE9\x81B
 			if (GetCheck(IDC_ETERM_LOOKFEEL)) {
+				EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
 				EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
 				if (GetCheck(IDC_BGIMG_CHECK)) {
 					EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
@@ -805,9 +896,18 @@
 				// \x94w\x8Ci\x89摜\x82\xE0\x96\xB3\x8C\x{27B0B7}\x82\xE9\x81B
 				SetDlgItemTextT(IDC_BGIMG_EDIT, _T(""));
 				SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT);
+
+				EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
 			}
 			return TRUE;
 
+		case IDC_MIXED_THEME_FILE:
+			if (GetCheck(IDC_MIXED_THEME_FILE)) {
+				// \x94w\x8Ci\x89摜\x82̃`\x83F\x83b\x83N\x82͊O\x82\xB7\x81B
+				SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
+			}
+			return TRUE;
+
 		case IDC_BGIMG_CHECK:
 			if (GetCheck(IDC_BGIMG_CHECK)) {
 				EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
@@ -817,6 +917,8 @@
 				EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
 
 				strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
+				// \x8D\xAC\x8D\x87\x82̃`\x83F\x83b\x83N\x82͊O\x82\xB7\x81B
+				SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
 			} else {
 				EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
 				EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
@@ -889,13 +991,73 @@
 
 				::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE);
 			}
+			return TRUE;
+		case IDC_ALPHA_BLEND_ACTIVE | (EN_CHANGE << 16):
+			{
+				int pos;
+				pos = GetDlgItemInt(IDC_ALPHA_BLEND_ACTIVE);
+				SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos);
 
-			return TRUE;
+				TCHAR tipbuf[32];
+				TCHAR uimsg[MAX_UIMSG];
+				RECT rc;
+				get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile);
+				_stprintf_s(tipbuf, _countof(tipbuf), _T(uimsg), (pos / 255.0) * 100);
+
+				DestroyOpacityTip(&InactiveOpacityTip);
+				SetTimer(GetSafeHwnd(), IdOpacityTipTimer, 1000, NULL);
+				::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE), &rc);
+				if (ActiveOpacityTip == NULL) {
+					ActiveOpacityTip = TipWinCreate(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE), rc.right, rc.bottom, tipbuf);
+				}
+				else {
+					TipWinSetText(ActiveOpacityTip, tipbuf);
+					// \x83c\x81[\x83\x8B\x83`\x83b\x83v\x82̃\x8A\x83T\x83C\x83Y\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x82悤\x82Ɍ\xA9\x82\xA6\x82\xE9\x96\xE2\x91\xE8\x82̎b\x92\xE8\x91΍\xF4
+					TipWinSetText(ActiveOpacityTip, tipbuf);
+				}
+				return TRUE;
+			}
+		case IDC_ALPHA_BLEND_INACTIVE | (EN_CHANGE << 16):
+			{
+				int pos;
+				pos = GetDlgItemInt(IDC_ALPHA_BLEND_INACTIVE);
+				SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, TBM_SETPOS, TRUE, pos);
+
+				TCHAR tipbuf[32], uimsg[MAX_UIMSG];
+				RECT rc;
+				get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile);
+				_stprintf_s(tipbuf, _countof(tipbuf), _T(uimsg), (pos / 255.0) * 100);
+
+				DestroyOpacityTip(&ActiveOpacityTip);
+				SetTimer(GetSafeHwnd(), IdOpacityTipTimer, 1000, NULL);
+				::GetWindowRect(GetDlgItem(IDC_ALPHA_BLEND_INACTIVE), &rc);
+				if (InactiveOpacityTip == NULL) {
+					InactiveOpacityTip = TipWinCreate(GetDlgItem(IDC_ALPHA_BLEND_INACTIVE), rc.right, rc.bottom, tipbuf);
+				}
+				else {
+					TipWinSetText(InactiveOpacityTip, tipbuf);
+					// \x83c\x81[\x83\x8B\x83`\x83b\x83v\x82̃\x8A\x83T\x83C\x83Y\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x82悤\x82Ɍ\xA9\x82\xA6\x82\xE9\x96\xE2\x91\xE8\x82̎b\x92\xE8\x91΍\xF4
+					TipWinSetText(InactiveOpacityTip, tipbuf);
+				}
+				return TRUE;
+			}
 	}
 
 	return TTCPropertyPage::OnCommand(wParam, lParam);
 }
 
+
+void CVisualPropPageDlg::OnTimer(UINT_PTR nIDEvent)
+{
+	KillTimer(GetSafeHwnd(), nIDEvent);
+	switch (nIDEvent) {
+		case IdOpacityTipTimer:
+			DestroyOpacityTip(&ActiveOpacityTip);
+			DestroyOpacityTip(&InactiveOpacityTip);
+			break;
+	}
+}
+
 HBRUSH CVisualPropPageDlg::OnCtlColor(HDC hDC, HWND hWnd)
 {
 	if ( hWnd == GetDlgItem(IDC_SAMPLE_COLOR) ) {
@@ -963,6 +1125,27 @@
 			(i > 255) ? 255 : i;
 	}
 
+	// \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xF0\x8DŏI\x90ݒ肷\x82\xE9\x81B
+	if (ts.EtermLookfeel.BGEnable) {
+		if (GetCheck(IDC_BGIMG_CHECK)) {
+			strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
+		} else {
+			strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
+		}
+		if (GetCheck(IDC_MIXED_THEME_FILE)) {
+			// \x95ǎ\x86\x82ƍ\xAC\x8D\x87\x82̏ꍇ\x81A\x83f\x83t\x83H\x83\x8B\x83g\x82ɖ߂\xB5\x82Ă\xA8\x82\xAD\x81B
+			ts.EtermLookfeel.BGIgnoreThemeFile = FALSE;
+		} else {
+			// \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82𖳎\x8B\x82\xB7\x82\xE9\x81B
+			ts.EtermLookfeel.BGIgnoreThemeFile = TRUE;
+		}
+
+	} else {
+		// BG\x82\xAA\x96\xB3\x8C\xF8\x82̏ꍇ\x82̓f\x83t\x83H\x83\x8B\x83g\x82ɖ߂\xB5\x82Ă\xA8\x82\xAD\x81B
+		strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
+	}
+
+
 	// (3)
 	sel = GetCurSel(IDC_MOUSE_CURSOR);
 	if (sel >= 0 && sel < MOUSE_CURSOR_MAX) {
@@ -1043,8 +1226,11 @@
 	}
 }
 
+void CVisualPropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
 
-
 // CLogPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O
 
 CLogPropPageDlg::CLogPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet)
@@ -1054,7 +1240,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_Log", UIMsg, _countof(UIMsg),
 	             _T("Log"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CLogPropPageDlg::~CLogPropPageDlg()
@@ -1401,6 +1587,11 @@
 	ts.LogTimestampType = GetCurSel(IDC_OPT_TIMESTAMP_TYPE);
 }
 
+void CLogPropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
+
 /////////////////////////////
 
 // CCygwinPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O
@@ -1412,7 +1603,7 @@
 	get_lang_msgT("DLG_TABSHEET_TITLE_CYGWIN", UIMsg, _countof(UIMsg),
 	             _T("Cygwin"), ts.UILanguageFile);
 	m_psp.pszTitle = _tcsdup(UIMsg);
-	m_psp.dwFlags |= PSP_USETITLE;
+	m_psp.dwFlags |= (PSP_USETITLE | PSP_HASHELP);
 }
 
 CCygwinPropPageDlg::~CCygwinPropPageDlg()
@@ -1495,6 +1686,11 @@
 	GetDlgItemTextA(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory));
 }
 
+void CCygwinPropPageDlg::OnHelp()
+{
+	PostMessage(HVTWin, WM_USER_DLGHELP2, HlpMenuSetupAdditional, 0);
+}
+
 // CAddSettingPropSheetDlg
 CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(
 	HINSTANCE hInstance, LPCTSTR pszCaption, HWND hParentWnd) :

Modified: branches/unicode_buf/teraterm/teraterm/addsetting.h
===================================================================
--- branches/unicode_buf/teraterm/teraterm/addsetting.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/addsetting.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -49,6 +49,7 @@
 	void OnInitDialog();
 	void OnOK();
 	enum { IDD = IDD_TABSHEET_GENERAL };
+	void OnHelp();
 };
 
 // Control Sequence Page
@@ -62,6 +63,7 @@
 	void OnOK();
 	enum { IDD = IDD_TABSHEET_SEQUENCE };
 	BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	void OnHelp();
 };
 
 // Copypaste Page
@@ -75,6 +77,7 @@
 	void OnOK();
 	enum { IDD = IDD_TABSHEET_COPYPASTE };
 	BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	void OnHelp();
 };
 
 // Visual Page
@@ -89,7 +92,10 @@
 	HBRUSH OnCtlColor(HDC hDC, HWND hWnd);
 	enum { IDD = IDD_TABSHEET_VISUAL };
 	BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	void OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar);
+	void OnTimer(UINT_PTR nIDEvent);
 	void SetupRGBbox(int index);
+	void OnHelp();
 };
 
 // Log Page
@@ -103,6 +109,7 @@
 	void OnOK();
 	enum { IDD = IDD_TABSHEET_LOG };
 	BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	void OnHelp();
 };
 
 // Cygwin Page
@@ -117,6 +124,7 @@
 	enum { IDD = IDD_TABSHEET_CYGWIN };
 	cygterm_t settings;
 	BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	void OnHelp();
 };
 
 // Property Sheet

Modified: branches/unicode_buf/teraterm/teraterm/buffer.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/buffer.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/buffer.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1823,6 +1823,144 @@
 #endif
 
 /**
+ *	(x,y) \x82\xCC1\x95\xB6\x8E\x9A\x82\xAA str\x82Ɠ\xAF\x88ꂩ\x92\xB2\x82ׂ\xE9
+ *		*\x92\x8D 1\x95\xB6\x8E\x9A\x82\xAA\x95\xA1\x90\x94\x82\xCCwchar_t\x82\xA9\x82\xE7\x8D\\x90\xAC\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9
+ *
+ *	@param		y		PageStart + CursorY
+ *	@param		str		1\x95\xB6\x8E\x9A(wchar_t\x97\xF1)
+ *	@param		len		\x95\xB6\x8E\x9A\x97\xF1\x92\xB7
+ *	@retval		0=\x83}\x83b\x83`\x82\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD
+ *				\x83}\x83b\x83`\x82\xB5\x82\xBD\x95\xB6\x8E\x9A\x97\xF1\x92\xB7
+ */
+#if UNICODE_INTERNAL_BUFF
+static size_t MatchOneString(int x, int y, const wchar_t *str, size_t len)
+{
+	int match_pos = 0;
+	int TmpPtr = GetLinePtr(y);
+	const buff_char_t *b = &CodeBuffW[TmpPtr + x];
+	if (b->wc2[1] == 0) {
+		// \x83T\x83\x8D\x83Q\x81[\x83g\x83y\x83A\x82ł͂Ȃ\xA2
+		if (str[match_pos] != b->wc2[0]) {
+			return 0;
+		}
+		match_pos++;
+		len--;
+	} else {
+		// \x83T\x83\x8D\x83Q\x81[\x83g\x83y\x83A
+		if (len < 2) {
+			return 0;
+		}
+		if (str[match_pos+0] != b->wc2[0] ||
+			str[match_pos+1] != b->wc2[1]) {
+			return 0;
+		}
+		match_pos+=2;
+		len-=2;
+	}
+	if (b->CombinationCharCount16 > 0) {
+		// \x83R\x83\x93\x83r\x83l\x81[\x83V\x83\x87\x83\x93
+		int i;
+		if (len < b->CombinationCharCount16) {
+			return 0;
+		}
+		for (i = 0 ; i < (int)b->CombinationCharCount16; i++) {
+			if (str[match_pos++] != b->pCombinationChars16[i]) {
+				return 0;
+			}
+		}
+		len -= b->CombinationCharCount16;
+	}
+	return match_pos;
+}
+#endif
+
+/**
+ *	(x,y)\x82\xA9\x82\xE7 str\x82Ɠ\xAF\x88ꂩ\x92\xB2\x82ׂ\xE9
+ *
+ *	@param		y		PageStart + CursorY
+ */
+#if UNICODE_INTERNAL_BUFF
+static BOOL MatchString(int x, int y, const wchar_t *str)
+{
+	BOOL result;
+	int match_pos = 0;
+	int TmpPtr = GetLinePtr(y);
+	size_t len = wcslen(str);
+	if (len == 0) {
+		return FALSE;
+	}
+
+	for(;;) {
+		// 1\x95\xB6\x8E\x9A\x93\xAF\x88ꂩ\x92\xB2\x82ׂ\xE9
+		size_t match_len = MatchOneString(x, y, str, len);
+		if (match_len == 0) {
+			result = FALSE;
+			break;
+		}
+		len -= match_len;
+		if (len == 0) {
+			// \x91S\x95\xB6\x8E\x9A\x92\xB2\x82׏I\x82\xED\x82\xC1\x82\xBD
+			result = TRUE;
+			break;
+		}
+		str += match_len;
+
+		// \x8E\x9F\x82̕\xB6\x8E\x9A
+		x++;
+		if (x == NumOfColumns) {
+			x = 0;
+			TmpPtr = NextLinePtr(TmpPtr);
+		}
+	}
+
+	return result;
+}
+#endif
+
+/**
+ *	(sx,sy)\x82\xA9\x82\xE7(ex,ey)\x82܂ł\xC5 str \x82Ƀ}\x83b\x83`\x82\xB7\x82镶\x8E\x9A\x82\xF0\x92T\x82\xB5\x82\xC4
+ *	\x88ʒu\x82\xF0\x95Ԃ\xB7
+ *
+ *	@param		sy,ex	PageStart + CursorY
+ *	@param[out]	x		\x83}\x83b\x83`\x82\xB5\x82\xBD\x88ʒu
+ *	@param[out]	y		\x83}\x83b\x83`\x82\xB5\x82\xBD\x88ʒu
+ *	@retval		TRUE	\x83}\x83b\x83`\x82\xB5\x82\xBD
+ */
+#if UNICODE_INTERNAL_BUFF
+static BOOL BuffGetMatchPosFromString(
+	int sx, int sy, int ex, int ey, const wchar_t *str,
+	int *match_x, int *match_y)
+{
+	int IStart, IEnd;
+	int x, y;
+
+	for (y = sy; y<=ey ; y++) {
+		IStart = 0;
+		IEnd = NumOfColumns-1;
+		if (y== sy) {
+			IStart = sx;
+		}
+		if (y== ey) {
+			IEnd = ex -1;
+		}
+
+		x = IStart;
+		while (x <= IEnd) {
+			if (MatchString(x, y, str)) {
+				// \x83}\x83b\x83`\x82\xB5\x82\xBD
+				*match_x = x;
+				*match_y = y;
+				return TRUE;
+			}
+			x++;
+		}
+	}
+	return FALSE;
+}
+#endif
+
+
+/**
  *	\x98A\x91\xB1\x82\xB5\x82\xBD\x83X\x83y\x81[\x83X\x82\xF0\x83^\x83u1\x82‚ɒu\x8A\xB7\x82\xB7\x82\xE9
  *	@param[out] _str_len	\x95\xB6\x8E\x9A\x97\xF1\x92\xB7(L'\0'\x82\xF0\x8A܂\xDE)
  *	@return		\x95\xB6\x8E\x9A\x97\xF1

Modified: branches/unicode_buf/teraterm/teraterm/clipboar.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/clipboar.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/clipboar.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -48,9 +48,8 @@
 #include "clipboar.h"
 #include "tt_res.h"
 #include "../ttpmacro/fileread.h"
+#include "unicode_test.h"
 
-#define UNICODE_BUF	1
-
 // for clipboard copy
 static HGLOBAL CBCopyHandle = NULL;
 static PCHAR CBCopyPtr = NULL;
@@ -73,7 +72,7 @@
 size_t BracketStartLenW = ((sizeof(BracketStartW) / sizeof(wchar_t)) - 1);
 size_t BracketEndLenW = ((sizeof(BracketEndW) / sizeof(wchar_t)) - 1);
 
-#if UNICODE_BUF
+#if UNICODE_INTERNAL_BUFF
 typedef struct {
 	wchar_t *send_str;
 	size_t str_len;
@@ -87,7 +86,7 @@
 
 static INT_PTR CALLBACK OnClipboardDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp);
 
-#if !UNICODE_BUF
+#if !UNICODE_INTERNAL_BUFF
 PCHAR CBOpen(LONG MemSize)
 {
 	if (MemSize==0) {
@@ -791,7 +790,7 @@
 	return str_w;
 }
 
-#if 1
+#if UNICODE_INTERNAL_BUFF
 void CBStartPasteW(HWND HWin, BOOL AddCR, BOOL Bracketed)
 {
 	unsigned int StrLen = 0;
@@ -981,6 +980,7 @@
 	}
 }
 
+#if UNICODE_INTERNAL_BUFF
 void CBStartPasteB64W(HWND HWin, PCHAR header, PCHAR footer)
 {
 	size_t mb_len, b64_len, header_len = 0, footer_len = 0;
@@ -1072,6 +1072,7 @@
 	CBEndPaste();
 	return;
 }
+#endif
 
 // \x82\xB1\x82̊֐\x94\x82̓N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA8\x82\xE6\x82\xD1DDE\x83f\x81[\x83^\x82\xF0\x92[\x96\x96\x82֑\x97\x82荞\x82ށB
 //
@@ -1182,6 +1183,7 @@
 
 // \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x83f\x81[\x83^\x82\xF0\x92[\x96\x96\x82֑\x97\x82荞\x82ށB
 //
+#if UNICODE_INTERNAL_BUFF
 void CBSendW()
 {
 	clipboard_work_t *p = &cbwork;
@@ -1262,6 +1264,7 @@
 		}
 	}
 }
+#endif
 
 void CBEcho()
 {
@@ -1317,13 +1320,17 @@
 
 void CBEndPaste()
 {
-	clipboard_work_t *p = &cbwork;
 	TalkStatus = IdTalkKeyb;
 
-	if (p->send_str != NULL) {
-		free(p->send_str);
-		p->send_str = NULL;
+#if UNICODE_INTERNAL_BUFF
+	{
+		clipboard_work_t *p = &cbwork;
+		if (p->send_str != NULL) {
+			free(p->send_str);
+			p->send_str = NULL;
+		}
 	}
+#endif
 
 	if (CBMemHandle!=NULL) {
 		if (CBMemPtr!=NULL) {
@@ -1460,7 +1467,7 @@
 		case WM_INITDIALOG:
 			SetDlgTexts(hDlgWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile);
 
-#if UNICODE_BUF
+#if UNICODE_INTERNAL_BUFF
 			if (cbwork.send_str != NULL) {
 				SetDlgItemTextW(hDlgWnd, IDC_EDIT, cbwork.send_str);
 			} else {

Modified: branches/unicode_buf/teraterm/teraterm/commlib.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/commlib.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/commlib.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -224,10 +224,14 @@
 			dcb.XonChar = XON;
 			dcb.XoffChar = XOFF;
 			break;
-		case IdFlowHard:
+		case IdFlowHard:  // RTS/CTS
 			dcb.fOutxCtsFlow = TRUE;
 			dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
 			break;
+		case IdFlowHardDsrDtr:  // DSR/DTR
+			dcb.fOutxDsrFlow = TRUE;
+			dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
+			break;
 	}
 
 	switch (ts->DataBit) {
@@ -1182,7 +1186,8 @@
 	}
 	if ((cv->PortType==IdTCPIP) ||
 	    (cv->PortType==IdSerial) &&
-	    (ts->Flow!=IdFlowHard)) {
+			(!(ts->Flow == IdFlowHard || ts->Flow == IdFlowHardDsrDtr)) 
+			) { 
 		if (Lock) {
 			b = XOFF;
 		}
@@ -1192,12 +1197,17 @@
 		CommBinaryOut(cv,&b,1);
 	}
 	else if ((cv->PortType==IdSerial) &&
-	         (ts->Flow==IdFlowHard)) {
+	         (ts->Flow == IdFlowHard || ts->Flow == IdFlowHardDsrDtr)) {
+		// \x83n\x81[\x83h\x83E\x83F\x83A\x83t\x83\x8D\x81[\x82̐ݒ\xE8\x82ɉ\x9E\x82\xB6\x82Ċg\x92\xA3\x8B@\x94\\x83R\x81[\x83h\x82\xF0\x90؂\xE8\x91ւ\xA6\x82\xE9\x81B
 		if (Lock) {
 			Func = CLRRTS;
+			if (ts->Flow == IdFlowHardDsrDtr)
+				Func = CLRDTR;
 		}
 		else {
 			Func = SETRTS;
+			if (ts->Flow == IdFlowHardDsrDtr)
+				Func = SETDTR;
 		}
 		EscapeCommFunction(cv->ComID,Func);
 	}

Modified: branches/unicode_buf/teraterm/teraterm/sizetip.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/sizetip.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/sizetip.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (C) 2008-2019 TeraTerm Project
  * All rights reserved.
  *
@@ -36,7 +36,7 @@
 #include <stdio.h>
 #include <tchar.h>
 
-#include "TipWin.h"
+#include "tipwin.h"
 
 static TipWin *SizeTip;
 static int tip_enabled = 0;
@@ -54,7 +54,12 @@
 		// マルチモニタがサポートされている場合
 		HMONITOR hm;
 		MONITORINFO mi;
+		int ix, iy;
 
+		// 元の座標を保存しておく
+		ix = point->x;
+		iy = point->y;
+
 		hm = MonitorFromPoint(*point, MONITOR_DEFAULTTONULL);
 		if (hm == NULL) {
 			if (NearestMonitor) {
@@ -69,12 +74,15 @@
 
 		mi.cbSize = sizeof(MONITORINFO);
 		GetMonitorInfo(hm, &mi);
-		if (point->x < mi.rcMonitor.left + FrameWidth) {
-			point->x = mi.rcMonitor.left + FrameWidth;
+		if (ix < mi.rcMonitor.left + FrameWidth) {
+			ix = mi.rcMonitor.left + FrameWidth;
 		}
-		if (point->y < mi.rcMonitor.top + FrameWidth) {
-			point->y = mi.rcMonitor.top + FrameWidth;
+		if (iy < mi.rcMonitor.top + FrameWidth) {
+			iy = mi.rcMonitor.top + FrameWidth;
 		}
+		
+		point->x = ix;
+		point->y = iy;
 	}
 	else
 	{
@@ -88,33 +96,68 @@
 	}
 }
 
-void UpdateSizeTip(HWND src, int cx, int cy)
+/* リサイズ用ツールチップを表示する
+ *
+ * 引数:
+ *   src        ウィンドウハンドル
+ *   cx, cy     ツールチップに表示する縦横サイズ
+ *   fwSide     リサイズ時にどこのウィンドウを掴んだか
+ *   newX, newY リサイズ後の左上の座標
+ *
+ * 注意: Windows9x では動作しない
+ */
+void UpdateSizeTip(HWND src, int cx, int cy, UINT fwSide, int newX, int newY)
 {
 	TCHAR str[32];
+	int tooltip_movable = 0;
 
 	if (!tip_enabled)
 		return;
 
 	/* Generate the tip text */
-
 	_stprintf_s(str, _countof(str), _T("%dx%d"), cx, cy);
 
+	// ウィンドウの右、右下、下を掴んだ場合は、ツールチップを左上隅に配置する。
+	// それら以外はリサイズ後の左上隅に配置する。
+	if (!(fwSide == WMSZ_RIGHT || fwSide == WMSZ_BOTTOMRIGHT || fwSide == WMSZ_BOTTOM)) {
+		tooltip_movable = 1;
+	}
+
 	if (SizeTip == NULL) {
 		RECT wr;
 		POINT point;
+		int w, h;
+
+		// 文字列の縦横サイズを取得する
+		TipWinGetTextWidthHeight(src, str, &w, &h);
+
 		// ウィンドウの位置を取得
 		GetWindowRect(src, &wr);
-		// sizetipを出す位置は、ウィンドウ左上-(8,16)
-		point.x = wr.left - 16;
-		point.y = wr.top - 8;
+
+		// sizetipを出す位置は、ウィンドウ左上(X, Y)に対して、
+		// (X, Y - 文字列の高さ - FRAME_WIDTH * 2) とする。
+		point.x = wr.left;
+		point.y = wr.top - (h + FRAME_WIDTH * 2);
 		FixPosFromFrame(&point, 16, FALSE);
 		cx = point.x;
 		cy = point.y;
+
 		SizeTip = TipWinCreate(src, cx, cy, str);
+
+		//OutputDebugPrintf("Created: (%d,%d)\n", cx, cy);
+
 	} else {
 		/* Tip already exists, just set the text */
 		TipWinSetText(SizeTip, str);
 		//SetWindowText(tip_wnd, str);
+
+		//OutputDebugPrintf("Updated: (%d,%d)\n", cx, cy);
+
+		// ウィンドウの左上が移動する場合
+		if (tooltip_movable) {
+			TipWinSetPos(SizeTip, newX + FRAME_WIDTH*2, newY + FRAME_WIDTH*2);
+			//OutputDebugPrintf("Moved: (%d,%d)\n", newX, newY);
+		}
 	}
 }
 

Modified: branches/unicode_buf/teraterm/teraterm/sizetip.h
===================================================================
--- branches/unicode_buf/teraterm/teraterm/sizetip.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/sizetip.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -30,7 +30,7 @@
 extern "C" {
 #endif
 
-void UpdateSizeTip(HWND src, int cx, int cy);
+void UpdateSizeTip(HWND src, int cx, int cy, UINT fwSide, int newX, int newY);
 void EnableSizeTip(int bEnable);
 
 #ifdef __cplusplus

Modified: branches/unicode_buf/teraterm/teraterm/ttdde.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttdde.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttdde.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -884,9 +884,10 @@
 
 		val = atoi(ParamFileName);
 		switch(val) {
-			case 1:
-			case 2:
-			case 3:
+			case 1: // Xon/Xoff 
+			case 2: // RTS/CTS
+			case 3: // none
+			case 4: // DSR/DTR
 				ts.Flow = val;
 				break;
 		}

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.rc
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.rc	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.rc	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1,6 +1,6 @@
 // Microsoft Visual C++ generated resource script.
 //
-#include "tt_res.h"
+#include "../common/tt_res.h"
 
 #define APSTUDIO_READONLY_SYMBOLS
 /////////////////////////////////////////////////////////////////////////////
@@ -87,8 +87,7 @@
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,140,108,10
     CONTROL         "Display session &number",IDC_TITLEFMT_DISPSESSION,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,155,108,10
-    CONTROL         "Display &VT/TEK",IDC_TITLEFMT_DISPVTTEK,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,170,108,10
+    CONTROL         "Display &VT/TEK",IDC_TITLEFMT_DISPVTTEK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,170,108,10
     CONTROL         "Swap hostname and &title position",IDC_TITLEFMT_SWAPHOSTTITLE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,120,140,130,10
     CONTROL         "Display tcp &port number",IDC_TITLEFMT_DISPTCPPORT,
@@ -143,7 +142,8 @@
     LTEXT           "P&aste delay per line",IDC_PASTEDELAY_LABEL,11,160,70,10
     EDITTEXT        IDC_PASTEDELAY_EDIT,95,158,24,12,ES_AUTOHSCROLL | ES_NUMBER
     LTEXT           "ms",IDC_PASTEDELAY_LABEL2,123,160,23,10
-    CONTROL         "Ena&bling text selection when the window is activated by mouse",IDC_SELECT_ON_ACTIVATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,173,200,10
+    CONTROL         "Ena&bling text selection when the window is activated by mouse",IDC_SELECT_ON_ACTIVATE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,173,229,10
 END
 
 IDD_TABSHEET_VISUAL DIALOGEX 0, 0, 258, 188
@@ -150,42 +150,46 @@
 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD | WS_SYSMENU
 FONT 8, "Tahoma", 0, 0, 0x0
 BEGIN
-    LTEXT           "Window Transparency",IDC_ALPHABLEND,5,5,78,8
-    LTEXT           "&Active",IDC_ALPHA_BLEND_ACTIVE_LABEL,14,17,54,8
+    LTEXT           "Window Opacity",IDC_ALPHABLEND,5,5,78,8
+    LTEXT           "&Active",IDC_ALPHA_BLEND_ACTIVE_LABEL,7,17,60,8
     EDITTEXT        IDC_ALPHA_BLEND_ACTIVE,69,16,19,12,ES_AUTOHSCROLL | ES_NUMBER
-    LTEXT           "Ina&ctive",IDC_ALPHA_BLEND_INACTIVE_LABEL,14,31,54,8
-    EDITTEXT        IDC_ALPHA_BLEND_INACTIVE,69,30,19,12,ES_AUTOHSCROLL | ES_NUMBER
-    GROUPBOX        "",IDC_STATIC,97,2,155,54
+    CONTROL         "", IDC_ALPHA_BLEND_ACTIVE_TRACKBAR, "msctls_trackbar32", WS_TABSTOP | TBS_BOTH | TBS_NOTICKS, 4, 27, 89, 12
+    LTEXT           "Ina&ctive",IDC_ALPHA_BLEND_INACTIVE_LABEL,7,41,60,8
+    EDITTEXT        IDC_ALPHA_BLEND_INACTIVE,69,40,19,12,ES_AUTOHSCROLL | ES_NUMBER
+    CONTROL         "", IDC_ALPHA_BLEND_INACTIVE_TRACKBAR, "msctls_trackbar32", WS_TABSTOP | TBS_BOTH | TBS_NOTICKS, 4, 51, 89, 12
+    GROUPBOX        "",IDC_STATIC,97,2,155,70
     CONTROL         "&Eterm lookfeel(*)",IDC_ETERM_LOOKFEEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,99,8,66,12
-    LTEXT           "Image Brightness",IDC_BGIMG_BRIGHTNESS,166,19,56,8
-    EDITTEXT        IDC_EDIT_BGIMG_BRIGHTNESS,225,18,22,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Background &Image",IDC_BGIMG_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,104,27,73,10
-    EDITTEXT        IDC_BGIMG_EDIT,103,38,108,14,ES_AUTOHSCROLL
-    PUSHBUTTON      "...",IDC_BGIMG_BUTTON,217,38,14,14
-    LTEXT           "&Mouse cursor",IDC_MOUSE,5,46,70,8
-    COMBOBOX        IDC_MOUSE_CURSOR,15,57,80,66,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "&Font Quality",IDC_FONT_QUALITY_LABEL,102,59,61,8
-    COMBOBOX        IDC_FONT_QUALITY,167,58,80,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "AN&SI color",IDC_ANSICOLOR,5,73,43,8
-    LISTBOX         IDC_ANSI_COLOR,15,84,28,51,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "&Red",IDC_RED,45,87,22,8
-    EDITTEXT        IDC_COLOR_RED,69,85,19,14,ES_AUTOHSCROLL | ES_NUMBER
-    LTEXT           "&Green",IDC_GREEN,45,104,22,8
-    EDITTEXT        IDC_COLOR_GREEN,69,102,19,14,ES_AUTOHSCROLL | ES_NUMBER
-    LTEXT           "&Blue",IDC_BLUE,45,121,22,8
-    EDITTEXT        IDC_COLOR_BLUE,69,119,19,14,ES_AUTOHSCROLL | ES_NUMBER
-    LTEXT           "SAMPLE",IDC_SAMPLE_COLOR,90,104,25,8
+    CONTROL         "Mixed &ThemeFile to Background",IDC_MIXED_THEME_FILE,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,21,115,10
+    LTEXT           "Image Brightness",IDC_BGIMG_BRIGHTNESS,166,32,56,8
+    EDITTEXT        IDC_EDIT_BGIMG_BRIGHTNESS,225,30,22,14,ES_AUTOHSCROLL | ES_NUMBER
+    CONTROL         "Background &Image",IDC_BGIMG_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,40,73,10
+    EDITTEXT        IDC_BGIMG_EDIT,103,51,108,14,ES_AUTOHSCROLL
+    PUSHBUTTON      "...",IDC_BGIMG_BUTTON,217,51,14,14
+    LTEXT           "&Mouse cursor",IDC_MOUSE,5,67,70,8
+    COMBOBOX        IDC_MOUSE_CURSOR,13,76,80,66,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "&Font Quality",IDC_FONT_QUALITY_LABEL,102,78,61,8
+    COMBOBOX        IDC_FONT_QUALITY,167,76,80,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "AN&SI color",IDC_ANSICOLOR,5,94,43,8
+    LISTBOX         IDC_ANSI_COLOR,15,105,28,51,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "&Red",IDC_RED,45,108,22,8
+    EDITTEXT        IDC_COLOR_RED,69,106,19,14,ES_AUTOHSCROLL | ES_NUMBER
+    LTEXT           "&Green",IDC_GREEN,45,125,22,8
+    EDITTEXT        IDC_COLOR_GREEN,69,123,19,14,ES_AUTOHSCROLL | ES_NUMBER
+    LTEXT           "&Blue",IDC_BLUE,45,142,22,8
+    EDITTEXT        IDC_COLOR_BLUE,69,140,19,14,ES_AUTOHSCROLL | ES_NUMBER
+    LTEXT           "SAMPLE",IDC_SAMPLE_COLOR,90,125,25,8
     CONTROL         "Enable B&old attribute color",IDC_ENABLE_ATTR_COLOR_BOLD,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,74,105,12
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,97,105,12
     CONTROL         "Enable B&link attribute color",IDC_ENABLE_ATTR_COLOR_BLINK,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,86,105,12
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,109,105,12
     CONTROL         "Enable Re&verse attribute color",IDC_ENABLE_ATTR_COLOR_REVERSE,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,98,105,12
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,121,105,12
     CONTROL         "Enable &URL attribute color",IDC_ENABLE_URL_COLOR,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,110,105,12
-    CONTROL         "Enable A&NSI color",IDC_ENABLE_ANSI_COLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,122,105,12
-    CONTROL         "Un&derline URL string",IDC_URL_UNDERLINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,134,105,12
-    LTEXT           "(*)Need to Save setup and restart Tera Term",IDC_RESTART,15,152,237,8
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,133,105,12
+    CONTROL         "Enable A&NSI color",IDC_ENABLE_ANSI_COLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,145,105,12
+    CONTROL         "Un&derline URL string",IDC_URL_UNDERLINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,157,105,12
+    LTEXT           "(*)Need to Save setup and restart Tera Term",IDC_RESTART,15,172,237,8
 END
 
 IDD_TABSHEET_LOG DIALOGEX 0, 0, 258, 188
@@ -403,6 +407,7 @@
     BEGIN
         LEFTMARGIN, 5
         RIGHTMARGIN, 252
+        VERTGUIDE, 48
         TOPMARGIN, 5
         BOTTOMMARGIN, 185
     END
@@ -462,7 +467,7 @@
 
 1 TEXTINCLUDE 
 BEGIN
-    "tt_res.h\0"
+    "../common/tt_res.h\0"
 END
 
 2 TEXTINCLUDE 

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v10.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v10.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v10.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -63,7 +63,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation>
@@ -109,7 +109,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v11.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v11.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v11.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -62,7 +62,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -106,7 +106,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v12.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v12.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v12.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -62,7 +62,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -106,7 +106,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v14.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v14.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v14.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -64,7 +64,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -108,7 +108,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v15.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v15.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v15.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -65,7 +65,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -110,7 +110,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v16.vcxproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v16.vcxproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v16.vcxproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -65,7 +65,7 @@
     <ClCompile>
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <BrowseInformation />
@@ -110,7 +110,7 @@
       <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>MaxSpeed</Optimization>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.v9.vcproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.v9.vcproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.v9.vcproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -51,7 +51,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
 				RuntimeLibrary="1"
 				BrowseInformation="0"
@@ -145,7 +145,7 @@
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
 				StringPooling="true"
 				RuntimeLibrary="0"

Modified: branches/unicode_buf/teraterm/teraterm/ttermpro.vcproj
===================================================================
--- branches/unicode_buf/teraterm/teraterm/ttermpro.vcproj	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/ttermpro.vcproj	2019-09-12 15:58:02 UTC (rev 8124)
@@ -50,7 +50,7 @@
 				Name="VCCLCompilerTool"
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="0"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
 				RuntimeLibrary="1"
 				BrowseInformation="0"
@@ -145,7 +145,7 @@
 				AdditionalOptions="/D"_CRT_SECURE_NO_DEPRECATE""
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
+				AdditionalIncludeDirectories="$(SolutionDir)..\libs\SFMT;$(SolutionDir)..\libs\oniguruma\src;$(SolutionDir)common;$(SolutionDir)ttpfile;$(SolutionDir)ttpdlg"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
 				StringPooling="true"
 				RuntimeLibrary="0"

Modified: branches/unicode_buf/teraterm/teraterm/vtdisp.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/vtdisp.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/vtdisp.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -413,6 +413,15 @@
     strncpy_s(tmp,tmplen,fullpath,filePart - fullpath);
     strncpy_s(filename,destlen,tmp,_TRUNCATE);
   }
+
+  // \x83A\x83h\x83z\x83b\x83N\x82ł͂\xA0\x82邪\x81AImageFile.INI\x82Ȃ\xE7\x95ʖ\xBC\x82ɂ\xB7\x82\xE9\x81B
+  // ImageFile.INI\x82̓e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82Ƃ\xB5\x82Ďg\x82\xA6\x82Ȃ\xA2\x82\xBD\x82߁B
+  if (strcmp(filespec_src, BG_THEME_IMAGEFILE_DEFAULT) == 0) {
+	  if (strcmp(fd.cFileName, BG_THEME_IMAGEFILE_NAME) == 0) {
+		  _snprintf_s(fd.cFileName, sizeof(fd.cFileName), _TRUNCATE, "%s", BG_THEME_THEMEFILE_SCALE);
+	  }
+  }
+
   strncat_s(filename,destlen,fd.cFileName,_TRUNCATE);
 }
 
@@ -1465,10 +1474,21 @@
   DeleteFile(BGSrc2.fileTmp);
 }
 
-void BGInitialize(void)
+/*
+ * Eterm lookfeel\x8B@\x94\\x82ɂ\xE6\x82鏉\x8A\x{227B3C8}\x97\x9D
+ *
+ * initialize_once: 
+ *    TRUE: Tera Term\x82̋N\x93\xAE\x8E\x9E
+ *    FALSE: Tera Term\x82̋N\x93\xAE\x8E\x9E\x88ȊO
+ */
+void BGInitialize(BOOL initialize_once)
 {
   char path[MAX_PATH],config_file[MAX_PATH],tempPath[MAX_PATH];
 
+  ZeroMemory(path, sizeof(path));
+  ZeroMemory(config_file, sizeof(config_file));
+  ZeroMemory(tempPath, sizeof(tempPath));
+
   // VTColor \x82\xF0\x93ǂݍ\x9E\x82\xDD
   BGVTColor[0] = ts.VTColor[0];
   BGVTColor[1] = ts.VTColor[1];
@@ -1532,9 +1552,17 @@
 	  ts.BGImgBrightness = GetPrivateProfileInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, path);
   }
 
+  // BGEnable\x82\xAA\x90^\x82ł\xE0\x81Ainitialize_once == FALSE\x82̏ꍇ\x82͏\x89\x8A\xFA\x89\xBB\x82\xF0\x82\xB5\x82Ȃ\xA2\x81B
+  // Tera Term\x82̋N\x93\xAE\x8E\x9E\x82݂̂ɏ\x89\x8A\x{227B0B7}\x82\xE9\x81B
+  if (initialize_once) {
+	  // Tera Term\x8BN\x93\xAE\x8E\x9E\x82Ɉ\xEA\x93x\x82\xBE\x82\xAF\x93ǂށB
+	  ts.EtermLookfeel.BGIgnoreThemeFile = BGGetOnOff("BGIgnoreThemeFile", FALSE ,ts.SetupFName);
+  }
+
   if(!BGEnable)
     return;
 
+
   //\x97\x90\x90\x94\x8F\x89\x8A\xFA\x89\xBB
   // add cast (2006.2.18 yutaka)
   srand((unsigned int)time(NULL));
@@ -1586,6 +1614,14 @@
   GetPrivateProfileString(BG_SECTION,"BGThemeFile","",path,MAX_PATH,ts.SetupFName);
   RandomFile(path,config_file,sizeof(config_file));
 
+  // ImageFile.INI\x82ł͂Ȃ\xA2\x8Fꍇ\x82̓\x89\x83\x93\x83_\x83\x80\x82ɑI\x82ԁB
+  if (strstr(path, BG_THEME_IMAGEFILE_NAME) == NULL) {
+	  // \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82𖳎\x8B\x82\xB7\x82\xE9\x8Fꍇ\x82͋\xF3\x82ɂ\xB7\x82\xE9\x81B
+	  if (ts.EtermLookfeel.BGIgnoreThemeFile) {
+		ZeroMemory(config_file, sizeof(config_file));
+	  }
+  }
+
   //\x90ݒ\xE8\x82̃I\x81[\x83o\x81[\x83\x89\x83C\x83h
   if(strcmp(config_file,""))
   {
@@ -1814,7 +1850,7 @@
   CRTWidth  = GetSystemMetrics(SM_CXSCREEN);
   CRTHeight = GetSystemMetrics(SM_CYSCREEN);
 
-  BGInitialize();
+  BGInitialize(TRUE);
 #else
   InitColorTable();
 #endif  // ALPHABLEND_TYPE2

Modified: branches/unicode_buf/teraterm/teraterm/vtdisp.h
===================================================================
--- branches/unicode_buf/teraterm/teraterm/vtdisp.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/vtdisp.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -34,7 +34,7 @@
 
 /* prototypes */
 //<!--by AKASI
-void BGInitialize(void);
+void BGInitialize(BOOL initialize_once);
 void BGSetupPrimary(BOOL);
 
 void BGExchangeColor(void);

Modified: branches/unicode_buf/teraterm/teraterm/vtterm.c
===================================================================
--- branches/unicode_buf/teraterm/teraterm/vtterm.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/vtterm.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -854,6 +854,9 @@
 		MoveRight();
 	}
 	else {
+		if (CursorX == LineEnd - 1) {
+			MoveRight();
+		}
 		UpdateStr();
 		Wrap = AutoWrapMode;
 	}

Modified: branches/unicode_buf/teraterm/teraterm/vtwin.cpp
===================================================================
--- branches/unicode_buf/teraterm/teraterm/vtwin.cpp	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/teraterm/vtwin.cpp	2019-09-12 15:58:02 UTC (rev 8124)
@@ -144,6 +144,9 @@
 
 static int AutoDisconnectedPort = -1;
 
+static TipWin *OpacityTip;
+static POINT OpacityTipPts;
+
 #ifndef WM_IME_COMPOSITION
 #define WM_IME_COMPOSITION              0x010F
 #endif
@@ -176,6 +179,13 @@
 	}
 }
 
+static void DestroyTooltip(TipWin* *tooltip) {
+	if (*tooltip) {
+		TipWinDestroy(*tooltip);
+		(*tooltip) = NULL;
+	}
+}
+
 /**
  * @param[in]	alpha	0-255
  */
@@ -1523,7 +1533,7 @@
 
 	/* background and ANSI color */
 #ifdef ALPHABLEND_TYPE2
-	BGInitialize();
+	BGInitialize(FALSE);
 	BGSetupPrimary(TRUE);
 	// 2006/03/17 by 337 : Alpha\x92l\x82\xE0\x91\xA6\x8E\x9E\x95ύX
 	// Layered\x91\x8B\x82ɂȂ\xC1\x82Ă\xA2\x82Ȃ\xA2\x8Fꍇ\x82͌\xF8\x89ʂ\xAA\x96\xB3\x82\xA2
@@ -2535,6 +2545,9 @@
 		if (InTitleBar) {
 			int delta = zDelta < 0 ? -1 : 1;
 			int newAlpha = Alpha;
+			TCHAR tipbuf[32];
+			TCHAR uimsg[MAX_UIMSG];
+
 			newAlpha += delta * ts.MouseWheelScrollLine;
 			if (newAlpha > 255)
 				newAlpha = 255;
@@ -2541,6 +2554,26 @@
 			else if (newAlpha < 0)
 				newAlpha = 0;
 			SetWindowAlpha(newAlpha);
+
+			get_lang_msg("TOOLTIP_TITLEBAR_OPACITY", uimsg, sizeof(uimsg), "Opacity %.1f %%", ts.UILanguageFile);
+			_stprintf_s(tipbuf, _countof(tipbuf), _T(uimsg), (newAlpha / 255.0) * 100);
+			::SetTimer(HVTWin, IdOpacityTipTimer, 1000, NULL);
+
+			if (OpacityTipPts.x != pt.x ||
+			    OpacityTipPts.y != pt.y) {
+				DestroyTooltip(&OpacityTip);
+			}
+
+			if (OpacityTip == NULL) {
+				OpacityTip = TipWinCreate(HVTWin, pt.x, pt.y, tipbuf);
+				OpacityTipPts.x = pt.x;
+				OpacityTipPts.y = pt.y;
+			} else {
+				TipWinSetText(OpacityTip, tipbuf);
+				// \x83c\x81[\x83\x8B\x83`\x83b\x83v\x82̃\x8A\x83T\x83C\x83Y\x82\xAA\x8E\xB8\x94s\x82\xB5\x82\xBD\x82悤\x82Ɍ\xA9\x82\xA6\x82\xE9\x96\xE2\x91\xE8\x82̎b\x92\xE8\x91΍\xF4
+				TipWinSetText(OpacityTip, tipbuf);
+			}
+
 			return TRUE;
 		}
 	}
@@ -2794,7 +2827,7 @@
 	if (h <= 0)
 		h = 1;
 
-	UpdateSizeTip(HVTWin, w, h);
+	UpdateSizeTip(HVTWin, w, h, fwSide, pRect->left, pRect->top);
 
 	fixed_width = w * FontWidth + margin_width;
 	fixed_height = h * FontHeight + margin_height;
@@ -2963,6 +2996,7 @@
 			break;
 		case IdProtoTimer:
 			ProtoDlgTimeOut();
+			break;
 		case IdDblClkTimer:
 			AfterDblClk = FALSE;
 			break;
@@ -3002,6 +3036,9 @@
 		case IdPrnProcTimer:
 			PrnFileDirectProc();
 			break;
+		case IdOpacityTipTimer:
+			DestroyTooltip(&OpacityTip);
+			break;
 	}
 }
 
@@ -3742,7 +3779,8 @@
 
 LRESULT CVTWindow::OnDlgHelp(WPARAM wParam, LPARAM lParam)
 {
-	OpenHelp(HH_HELP_CONTEXT, HelpId, ts.UILanguageFile);
+	DWORD help_id = (wParam == 0) ? HelpId : wParam;
+	OpenHelp(HH_HELP_CONTEXT, help_id, ts.UILanguageFile);
 	return 0;
 }
 
@@ -4205,6 +4243,7 @@
 				default:
 					return FALSE;
 			}
+			break;
 		case WM_CLOSE:
 			TTEndDialog(hDlgWnd, 0);
 			return TRUE;
@@ -4574,7 +4613,7 @@
 			break;
 		case IDOK:
 #ifdef ALPHABLEND_TYPE2
-			BGInitialize();
+			BGInitialize(FALSE);
 			BGSetupPrimary(TRUE);
 #else
 			DispApplyANSIColor();
@@ -4648,7 +4687,7 @@
 		// Eterm lookfeel\x82̉\xE6\x96ʏ\xEE\x95\xF1\x82\xE0\x8DX\x90V\x82\xB7\x82邱\x82ƂŁA\x83\x8A\x83A\x83\x8B\x83^\x83C\x83\x80\x82ł̔w\x8Ci\x90F\x95ύX\x82\xAA
 		// \x89”\\x82ƂȂ\xE9\x81B(2006.2.24 yutaka)
 #ifdef ALPHABLEND_TYPE2
-		BGInitialize();
+		BGInitialize(FALSE);
 		BGSetupPrimary(TRUE);
 #endif
 

Modified: branches/unicode_buf/teraterm/ttpdlg/dlg_res.h
===================================================================
--- branches/unicode_buf/teraterm/ttpdlg/dlg_res.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/ttpdlg/dlg_res.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -170,6 +170,7 @@
 #define IDC_TERMRUSSFONTLABEL           1075
 #define IDC_TERMRUSSFONT                1076
 #define IDC_GENLANG_UI                  1077
+#define IDC_SFMT_VERSION                1078
 #define IDC_GENHELP                     1099
 #define IDD_TERMDLG                     1100
 #define IDD_WINLISTDLG                  1200
@@ -189,7 +190,7 @@
 #define _APS_NO_MFC                     1
 #define _APS_NEXT_RESOURCE_VALUE        103
 #define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1078
+#define _APS_NEXT_CONTROL_VALUE         1079
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: branches/unicode_buf/teraterm/ttpdlg/ttdlg.c
===================================================================
--- branches/unicode_buf/teraterm/ttpdlg/ttdlg.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/ttpdlg/ttdlg.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -54,6 +54,9 @@
 #include "oniguruma.h"
 #undef ONIG_EXTERN
 
+// SFMT: SIMD-oriented Fast Mersenne Twister
+#include "SFMT_version_for_teraterm.h"
+
 #include <winsock2.h>
 #undef EFFECT_ENABLED	// \x83G\x83t\x83F\x83N\x83g\x82̗L\x8C\xF8\x89”\xDB
 #undef TEXTURE_ENABLED	// \x83e\x83N\x83X\x83`\x83\x83\x82̗L\x8C\xF8\x89”\xDB
@@ -78,7 +81,7 @@
 
 static char UILanguageFile[MAX_PATH];
 
-static const char *ProtocolFamilyList[] = { "UNSPEC", "IPv6", "IPv4", NULL };
+static const char *ProtocolFamilyList[] = { "AUTO", "IPv6", "IPv4", NULL };
 static PCHAR NLListRcv[] = {"CR","CR+LF", "LF", "AUTO", NULL};
 static PCHAR NLList[] = {"CR","CR+LF", "LF", NULL};
 static PCHAR TermList[] =
@@ -1103,7 +1106,7 @@
 static PCHAR DataList[] = {"7 bit","8 bit",NULL};
 static PCHAR ParityList[] = {"none", "odd", "even", "mark", "space", NULL};
 static PCHAR StopList[] = {"1 bit", "1.5 bit", "2 bit", NULL};
-static PCHAR FlowList[] = {"Xon/Xoff","hardware","none",NULL};
+static PCHAR FlowList[] = {"Xon/Xoff", "RTS/CTS", "DSR/DTR", "none", NULL};
 
 static INT_PTR CALLBACK SerialDlg(HWND Dialog, UINT Message, WPARAM wParam, LPARAM lParam)
 {
@@ -1128,6 +1131,7 @@
 	WORD ComPortTable[MAXCOMPORT];
 	static char *ComPortDesc[MAXCOMPORT];
 	int comports;
+	WORD Flow;
 
 	switch (Message) {
 		case WM_INITDIALOG:
@@ -1190,8 +1194,23 @@
 			SetDropDownList(Dialog, IDC_SERIALDATA, DataList, ts->DataBit);
 			SetDropDownList(Dialog, IDC_SERIALPARITY, ParityList, ts->Parity);
 			SetDropDownList(Dialog, IDC_SERIALSTOP, StopList, ts->StopBit);
-			SetDropDownList(Dialog, IDC_SERIALFLOW, FlowList, ts->Flow);
 
+			/* 
+			 * value               display
+			 * 1 IdFlowX           1 Xon/Xoff
+			 * 2 IdFlowHard        2 RTS/CTS
+			 * 3 IdFlowNone        4 none
+			 * 4 IdFlowHardDsrDtr  3 DSR/DTR
+			 */
+			Flow = ts->Flow;
+			if (Flow == 3) {
+				Flow = 4;
+			}
+			else if (Flow == 4) {
+				Flow = 3;
+			}
+			SetDropDownList(Dialog, IDC_SERIALFLOW, FlowList, Flow);
+
 			SetDlgItemInt(Dialog,IDC_SERIALDELAYCHAR,ts->DelayPerChar,FALSE);
 			SendDlgItemMessage(Dialog, IDC_SERIALDELAYCHAR, EM_LIMITTEXT,4, 0);
 
@@ -1227,7 +1246,21 @@
 							ts->StopBit = w;
 						}
 						if ((w = (WORD)GetCurSel(Dialog, IDC_SERIALFLOW)) > 0) {
-							ts->Flow = w;
+							/*
+							 * display    value
+							 * 1 Xon/Xoff 1 IdFlowX
+							 * 2 RTS/CTS  2 IdFlowHard
+							 * 3 DSR/DTR  4 IdFlowHardDsrDtr
+							 * 4 none     3 IdFlowNone
+							 */
+							Flow = w;
+							if (Flow == 3) {
+								Flow = 4;
+							}
+							else if (Flow == 4) {
+								Flow = 3;
+							}
+							ts->Flow = Flow;
 						}
 
 						ts->DelayPerChar = GetDlgItemInt(Dialog,IDC_SERIALDELAYCHAR,NULL,FALSE);
@@ -2243,6 +2276,10 @@
 			_snprintf_s(buf, sizeof(buf), _TRUNCATE, "Oniguruma %s", onig_version());
 			SetDlgItemTextA(Dialog, IDC_ONIGURUMA_LABEL, buf);
 
+			// SFMT\x82̃o\x81[\x83W\x83\x87\x83\x93\x82\xF0\x90ݒ肷\x82\xE9
+			_snprintf_s(buf, sizeof(buf), _TRUNCATE, "SFMT %s", SFMT_VERSION);
+			SetDlgItemTextA(Dialog, IDC_SFMT_VERSION, buf);
+
 			// \x83r\x83\x8B\x83h\x82\xB5\x82\xBD\x82Ƃ\xAB\x82Ɏg\x82\xED\x82ꂽ\x83R\x83\x93\x83p\x83C\x83\x89\x82\xF0\x90ݒ肷\x82\xE9\x81B(2009.3.3 yutaka)
 			GetCompilerInfo(tmpbuf, sizeof(tmpbuf));
 			_snprintf_s(buf, sizeof(buf), _TRUNCATE, "Built using %s", tmpbuf);

Modified: branches/unicode_buf/teraterm/ttpdlg/ttpdlg.rc
===================================================================
--- branches/unicode_buf/teraterm/ttpdlg/ttpdlg.rc	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/ttpdlg/ttpdlg.rc	2019-09-12 15:58:02 UTC (rev 8124)
@@ -141,7 +141,7 @@
     CONTROL         "&Stop bits:",IDC_SERIALSTOP_LABEL,"Static",SS_LEFTNOWORDWRAP,15,69,54,8
     COMBOBOX        IDC_SERIALSTOP,75,67,48,40,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     CONTROL         "&Flow control:",IDC_SERIALFLOW_LABEL,"Static",SS_LEFTNOWORDWRAP,15,84,54,8
-    COMBOBOX        IDC_SERIALFLOW,75,82,48,40,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_SERIALFLOW,75,82,48,53,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Transmit delay",IDC_SERIALDELAY,19,104,152,32
     LTEXT           "msec/&char",IDC_SERIALDELAYCHAR_LABEL,53,118,42,10
     EDITTEXT        IDC_SERIALDELAYCHAR,29,116,20,12,ES_AUTOHSCROLL | ES_NUMBER
@@ -188,7 +188,7 @@
     COMBOBOX        IDC_HOSTNAME,95,8,133,54,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_GROUP | WS_TABSTOP
     RTEXT           "TCP &port#:",IDC_HOSTTCPPORTLABEL,42,26,51,8,NOT WS_GROUP
     EDITTEXT        IDC_HOSTTCPPORT,95,24,30,12,ES_NUMBER
-    RTEXT           "Protoco&l:",IDC_HOSTTCPPROTOCOLLABEL,135,26,46,8
+    RTEXT           "IP versio&n:",IDC_HOSTTCPPROTOCOLLABEL,126,26,56,8
     COMBOBOX        IDC_HOSTTCPPROTOCOL,184,24,44,41,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_GROUP | WS_TABSTOP
     CONTROL         "T&elnet",IDC_HOSTTELNET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,39,31,8
     RTEXT           "Po&rt:",IDC_HOSTCOMLABEL,58,64,34,8,NOT WS_GROUP
@@ -217,7 +217,7 @@
     PUSHBUTTON      "&Help",IDC_DIRHELP,115,34,36,14
 END
 
-IDD_ABOUTDLG DIALOGEX 20, 20, 187, 124
+IDD_ABOUTDLG DIALOGEX 20, 20, 187, 138
 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "About Tera Term"
 FONT 14, "System", 0, 0, 0x0
@@ -228,20 +228,18 @@
     CONTROL         "(C) 2004-2019 TeraTerm Project",IDC_PROJECT_LABEL,
                     "Static",SS_LEFTNOWORDWRAP | WS_GROUP,43,22,135,8
     LTEXT           "Includes:",IDC_INLUCDE_LABEL,38,38,140,8
-    CONTROL         "Tera Term Pro version 2.3",IDC_TT23_LABEL,
-                    "Static",SS_LEFTNOWORDWRAP | WS_GROUP,38,47,140,8
+    CONTROL         "Tera Term Pro version 2.3",IDC_TT23_LABEL,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,38,47,140,8
     CONTROL         "Copyright (C) 1994-1998 T. Teranishi",IDC_TT23_RIGHTS_LABEL,
                     "Static",SS_LEFTNOWORDWRAP | WS_GROUP,43,56,135,8
-    CONTROL         "IPv6 extention version 0.81",IDC_IPV6_LABEL,
-                    "Static",SS_LEFTNOWORDWRAP | WS_GROUP,38,65,140,8
-    CONTROL         "(C) 2000-2003 Jun-ya KATO",IDC_IPV6_RIGHTS_LABEL,
-                    "Static",SS_LEFTNOWORDWRAP | WS_GROUP,43,74,135,8
+    CONTROL         "IPv6 extention version 0.81",IDC_IPV6_LABEL,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,38,65,140,8
+    CONTROL         "(C) 2000-2003 Jun-ya KATO",IDC_IPV6_RIGHTS_LABEL,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,43,74,135,8
     LTEXT           "Oniguruma: ",IDC_ONIGURUMA_LABEL,38,83,140,8
-    LTEXT           "Built using Microsoft Visual C++",IDC_BUILDTOOL,7,95,172,8
-    LTEXT           "Build time: ",IDC_BUILDTIME,7,103,172,8
-    LTEXT           "Author:",IDC_AUTHOR_LABEL,7,112,28,8
-    LTEXT           "https://ttssh2.osdn.jp/",IDC_AUTHOR_URL,36,112,143,8,SS_NOTIFY | WS_TABSTOP
+    LTEXT           "Built using Microsoft Visual C++",IDC_BUILDTOOL,7,109,172,8
+    LTEXT           "Build time: ",IDC_BUILDTIME,7,117,172,8
+    LTEXT           "Author:",IDC_AUTHOR_LABEL,7,126,28,8
+    LTEXT           "https://ttssh2.osdn.jp/",IDC_AUTHOR_URL,36,126,143,8,SS_NOTIFY | WS_TABSTOP
     DEFPUSHBUTTON   "OK",IDOK,145,5,32,14,WS_GROUP
+    LTEXT           "SFMT:",IDC_SFMT_VERSION,38,93,141,8
 END
 
 IDD_GENDLG DIALOGEX 20, 20, 162, 80
@@ -402,7 +400,7 @@
 //
 
 #ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
+GUIDELINES DESIGNINFO 
 BEGIN
     IDD_HOSTDLG, DIALOG
     BEGIN
@@ -414,6 +412,7 @@
     IDD_ABOUTDLG, DIALOG
     BEGIN
         RIGHTMARGIN, 186
+        BOTTOMMARGIN, 124
     END
 
     IDD_GENDLG, DIALOG

Modified: branches/unicode_buf/teraterm/ttpset/ttset.c
===================================================================
--- branches/unicode_buf/teraterm/ttpset/ttset.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/teraterm/ttpset/ttset.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -1070,6 +1070,10 @@
 		ts->Flow = IdFlowX;
 	else if (_stricmp(Temp, "hard") == 0)
 		ts->Flow = IdFlowHard;
+	else if (_stricmp(Temp, "rtscts") == 0)  // hard\x82\xC6rtscts\x82͓\xAF\x82\xB6\x88Ӗ\xA1
+		ts->Flow = IdFlowHard;
+	else if (_stricmp(Temp, "dsrdtr") == 0)
+		ts->Flow = IdFlowHardDsrDtr;
 	else
 		ts->Flow = IdFlowNone;
 
@@ -2638,6 +2642,9 @@
 	case IdFlowHard:
 		strncpy_s(Temp, sizeof(Temp), "hard", _TRUNCATE);
 		break;
+	case IdFlowHardDsrDtr:
+		strncpy_s(Temp, sizeof(Temp), "dsrdtr", _TRUNCATE);
+		break;
 	default:
 		strncpy_s(Temp, sizeof(Temp), "none", _TRUNCATE);
 	}
@@ -3048,6 +3055,8 @@
 	WritePrivateProfileString(BG_SECTION, BG_DESTFILE, ts->BGImageFilePath, Temp);
 	WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, Temp, ts->BGImgBrightness);
 	WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS2, Temp, ts->BGImgBrightness);
+	WriteOnOff(ETERM_SECTION, "BGIgnoreThemeFile", FName,
+		ts->EtermLookfeel.BGIgnoreThemeFile);
 
 #ifdef USE_NORMAL_BGCOLOR
 	// UseNormalBGColor

Added: branches/unicode_buf/tests/#39334.ttl
===================================================================
--- branches/unicode_buf/tests/#39334.ttl	                        (rev 0)
+++ branches/unicode_buf/tests/#39334.ttl	2019-09-12 15:58:02 UTC (rev 8124)
@@ -0,0 +1,17 @@
+strdim msg 10
+msg[0] = 'line1 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45[' 
+msg[1] = 'line2 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[2] = 'line3 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[3] = 'line4 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[4] = 'line5 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[5] = 'line6 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[6] = 'line7 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[7] = 'line8 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[8] = 'line9 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+msg[9] = 'line10 4309tu 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45['
+
+getver ver
+listbox 'select asf asf asfsa dfsa fsadf asdf sadf a 3045j j345yj345 oyj453jy 45jy 4hj y[h5w4 [ioyhj45wojh45f ' ver msg
+sprintf2 var "%d" result
+messagebox var "result"
+

Modified: branches/unicode_buf/ttssh2/ttxssh/auth.c
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/auth.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/auth.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -38,7 +38,7 @@
 #include <fcntl.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <Lmcons.h>		// for UNLEN
+#include <lmcons.h>		// for UNLEN
 #include <crtdbg.h>
 
 #include "resource.h"
@@ -46,6 +46,7 @@
 #include "libputty.h"
 #include "tipwin.h"
 #include "auth.h"
+#include "helpid.h"
 
 #if defined(_DEBUG) && !defined(_CRTDBG_MAP_ALLOC)
 #define malloc(l) _malloc_dbg((l), _NORMAL_BLOCK, __FILE__, __LINE__)
@@ -280,6 +281,7 @@
 		{ IDC_SSHPASSWORDCAPTION, "DLG_AUTH_PASSWORD" },
 		{ IDC_REMEMBER_PASSWORD, "DLG_AUTH_REMEMBER_PASSWORD" },
 		{ IDC_FORWARD_AGENT, "DLG_AUTH_FWDAGENT" },
+		{ IDC_SSHAUTHMETHOD, "DLG_AUTH_METHOD" },
 		{ IDC_SSHUSEPASSWORD, "DLG_AUTH_METHOD_PASSWORD" },
 		{ IDC_SSHUSERSA, "DLG_AUTH_METHOD_RSA" },
 		{ IDC_SSHUSERHOSTS, "DLG_AUTH_METHOD_RHOST" },
@@ -993,6 +995,12 @@
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDCLOSE:
+			// \x94F\x8Fؒ\x86\x82Ƀl\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A\x93\x96\x8AY\x83\x81\x83b\x83Z\x81[\x83W\x82Ń_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x81B
+			pvar->auth_state.auth_dialog = NULL;
+			EndDialog(dlg, 0);
+			return TRUE;
+
 		case IDC_SSHUSERNAME:
 			// \x83\x86\x81[\x83U\x96\xBC\x82\xAA\x83t\x83H\x81[\x83J\x83X\x82\xF0\x8E\xB8\x82\xC1\x82\xBD\x82Ƃ\xAB (2007.9.29 maya)
 			if (!(pvar->ssh_state.status_flags & STATUS_DONT_SEND_USER_NAME) &&
@@ -1315,6 +1323,8 @@
 
 void AUTH_advance_to_next_cred(PTInstVar pvar)
 {
+	logprintf(LOG_LEVEL_VERBOSE, "User authentication will be shown by %d method.", pvar->auth_state.cur_cred.method);
+
 	pvar->auth_state.failed_method = pvar->auth_state.cur_cred.method;
 
 	if (pvar->auth_state.cur_cred.method == SSH_AUTH_NONE) {
@@ -1427,6 +1437,12 @@
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDCLOSE:
+			// \x94F\x8Fؒ\x86\x82Ƀl\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A\x93\x96\x8AY\x83\x81\x83b\x83Z\x81[\x83W\x82Ń_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x81B
+			pvar->auth_state.auth_dialog = NULL;
+			EndDialog(dlg, 0);
+			return TRUE;
+
 		default:
 			return FALSE;
 		}
@@ -1476,10 +1492,12 @@
 	const static DlgTextInfo text_info[] = {
 		{ 0, "DLG_AUTHSETUP_TITLE" },
 		{ IDC_SSHAUTHBANNER, "DLG_AUTHSETUP_BANNER" },
+		{ IDC_SSH_USERNAME, "DLG_AUTHSETUP_USERNAME" },
 		{ IDC_SSH_NO_USERNAME, "DLG_AUTHSETUP_NO_USERNAME" },
 		{ IDC_SSH_DEFAULTUSERNAME, "DLG_AUTHSETUP_DEFAULT_USERNAME" },
 		{ IDC_SSH_WINDOWS_USERNAME, "DLG_AUTHSETUP_LOGON_USERNAME" },
 		{ IDC_SSH_WINDOWS_USERNAME_TEXT, "DLG_AUTHSETUP_LOGON_USERNAME_TEXT" },
+		{ IDC_SSH_AUTHMETHOD, "DLG_AUTHSETUP_METHOD" },
 		{ IDC_SSHUSEPASSWORD, "DLG_AUTHSETUP_METHOD_PASSWORD" },
 		{ IDC_SSHUSERSA, "DLG_AUTHSETUP_METHOD_RSA" },
 		{ IDC_SSHUSERHOSTS, "DLG_AUTHSETUP_METHOD_RHOST" },
@@ -1491,6 +1509,7 @@
 		{ IDC_CHECKAUTH, "DLG_AUTHSETUP_CHECKAUTH" },
 		{ IDOK, "BTN_OK" },
 		{ IDCANCEL, "BTN_CANCEL" },
+		{ IDC_SSHAUTHSETUP_HELP, "BTN_HELP" },
 	};
 
 	SetI18DlgStrs("TTSSH", dlg, text_info, _countof(text_info), pvar->ts->UILanguageFile);
@@ -1618,6 +1637,10 @@
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDC_SSHAUTHSETUP_HELP:
+			PostMessage(GetParent(dlg), WM_USER_DLGHELP2, HlpMenuSetupSshauth, 0);
+			return TRUE;
+
 		case IDC_CHOOSERSAFILE:
 			choose_RSA_key_file(dlg, pvar);
 			return TRUE;
@@ -1808,6 +1831,17 @@
 	}
 }
 
+// TCP\x83Z\x83b\x83V\x83\x87\x83\x93\x82\xAA\x83N\x83\x8D\x81[\x83Y\x82\xB3\x82ꂽ\x8Fꍇ\x81A\x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x82悤\x82Ɏw\x8E\xA6\x82\xF0\x8Fo\x82\xB7\x81B
+// AUTH_notify_disconnecting()\x82Ƃ͈قȂ\xE8\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x82݂̂ŁA
+// SSH\x83T\x81[\x83o\x82ɒʒm\x82͏o\x82\xB3\x82Ȃ\xA2\x81B
+void AUTH_notify_closing_on_exit(PTInstVar pvar)
+{
+	if (pvar->auth_state.auth_dialog != NULL) {
+		logprintf(LOG_LEVEL_INFO, "%s: Notify closing message to the authentication dialog.", __FUNCTION__);
+		PostMessage(pvar->auth_state.auth_dialog, WM_COMMAND, IDCLOSE, 0);
+	}
+}
+
 void AUTH_end(PTInstVar pvar)
 {
 	destroy_malloced_string(&pvar->auth_state.user);

Modified: branches/unicode_buf/ttssh2/ttxssh/auth.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/auth.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/auth.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -71,6 +71,7 @@
 void AUTH_get_auth_info(PTInstVar pvar, char *dest, int len);
 void AUTH_notify_disconnecting(PTInstVar pvar);
 void AUTH_notify_end_error(PTInstVar pvar);
+void AUTH_notify_closing_on_exit(PTInstVar pvar);
 void AUTH_end(PTInstVar pvar);
 void destroy_malloced_string(char **str);
 void init_password_control(PTInstVar pvar, HWND dlg, int item, BOOL *UseControlChar);

Modified: branches/unicode_buf/ttssh2/ttxssh/fwdui.c
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/fwdui.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/fwdui.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -40,6 +40,7 @@
 #include "dlglib.h"
 
 #include "servicenames.h"
+#include "helpid.h"
 
 #undef DialogBoxParam
 #define DialogBoxParam(p1,p2,p3,p4,p5) \
@@ -526,6 +527,9 @@
 	GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg);
 	SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHFWDSETUP_HELP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("BTN_HELP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHFWDSETUP_HELP, pvar->ts->UIMsg);
 
 	FWD_get_request_specs(pvar, requests, num_specs);
 
@@ -1130,6 +1134,10 @@
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDC_SSHFWDSETUP_HELP:
+			PostMessage(GetParent(dlg), WM_USER_DLGHELP2, HlpMenuSetupSshforward, 0);
+			return TRUE;
+
 		case IDC_ADD:
 			add_forwarding_entry(pvar, dlg);
 			return TRUE;

Modified: branches/unicode_buf/ttssh2/ttxssh/hosts.c
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/hosts.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/hosts.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -66,6 +66,10 @@
 static char base64[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
 
+BOOL HOSTS_resume_session_after_known_hosts(PTInstVar pvar);
+void HOSTS_cancel_session_after_known_hosts(PTInstVar pvar);
+
+
 static char **parse_multi_path(char *buf)
 {
 	int i;
@@ -108,6 +112,11 @@
 	key_init(&pvar->hosts_state.hostkey);
 	pvar->hosts_state.hosts_dialog = NULL;
 	pvar->hosts_state.file_names = NULL;
+
+	/*
+	 * \x91O\x89\xF1\x82̃I\x83v\x83V\x83\x87\x83\x93\x8Ew\x92\xE8(/nosecuritywarning)\x82\xAA\x8Ec\x82\xE7\x82Ȃ\xA2\x82悤\x82ɏ\x89\x8A\x{227B0B5}\x82Ă\xA8\x82\xAD\x81B
+	 */
+	pvar->nocheck_known_hosts = FALSE;
 }
 
 void HOSTS_open(PTInstVar pvar)
@@ -1811,11 +1820,11 @@
 				add_host_key(pvar);
 			}
 
-			if (SSHv1(pvar)) {
-				SSH_notify_host_OK(pvar);
-			} else { // SSH2
-				// SSH2\x82ł͂\xA0\x82Ƃ\xC5 SSH_notify_host_OK() \x82\xF0\x8CĂԁB
-			}
+			/*
+			 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̂\xBD\x82߂Ɉꎞ\x92\xE2\x8E~\x82\xB5\x82Ă\xA2\x82\xBD
+			 * SSH\x83T\x81[\x83o\x82Ƃ̃l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x8DĊJ\x82\xB3\x82\xB9\x82\xE9\x81B
+			 */
+			HOSTS_resume_session_after_known_hosts(pvar);
 
 			pvar->hosts_state.hosts_dialog = NULL;
 
@@ -1824,11 +1833,27 @@
 
 		case IDCANCEL:			/* kill the connection */
 canceled:
+			/*
+			 * known_hosts\x82\xF0\x83L\x83\x83\x83\x93\x83Z\x83\x8B\x82\xB7\x82邽\x82߁A\x8DĊJ\x97p\x82̃\x8A\x83\\x81[\x83X\x82\xF0\x94j\x8A\xFC\x82\xB5\x82Ă\xA8\x82\xAD\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
 			pvar->hosts_state.hosts_dialog = NULL;
 			notify_closed_connection(pvar, "authentication cancelled");
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDCLOSE:
+			/*
+			 * known_hosts\x92\x86\x82ɃT\x81[\x83o\x91\xA4\x82\xA9\x82\xE7\x83l\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A
+			 * \x83_\x83C\x83A\x83\x8D\x83O\x82݂̂\xF0\x95‚\xB6\x82\xE9\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
+			pvar->hosts_state.hosts_dialog = NULL;
+			EndDialog(dlg, 0);
+			return TRUE;
+
 		case IDC_FP_HASH_ALG_MD5:
 			hosts_dlg_set_fingerprint(pvar, dlg, SSH_DIGEST_MD5);
 			return TRUE;
@@ -1964,11 +1989,11 @@
 				delete_different_key(pvar);
 			}
 
-			if (SSHv1(pvar)) {
-				SSH_notify_host_OK(pvar);
-			} else { // SSH2
-				// SSH2\x82ł͂\xA0\x82Ƃ\xC5 SSH_notify_host_OK() \x82\xF0\x8CĂԁB
-			}
+			/*
+			 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̂\xBD\x82߂Ɉꎞ\x92\xE2\x8E~\x82\xB5\x82Ă\xA2\x82\xBD
+			 * SSH\x83T\x81[\x83o\x82Ƃ̃l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x8DĊJ\x82\xB3\x82\xB9\x82\xE9\x81B
+			 */
+			HOSTS_resume_session_after_known_hosts(pvar);
 
 			pvar->hosts_state.hosts_dialog = NULL;
 
@@ -1977,11 +2002,27 @@
 
 		case IDCANCEL:			/* kill the connection */
 canceled:
+			/*
+			 * known_hosts\x82\xF0\x83L\x83\x83\x83\x93\x83Z\x83\x8B\x82\xB7\x82邽\x82߁A\x8DĊJ\x97p\x82̃\x8A\x83\\x81[\x83X\x82\xF0\x94j\x8A\xFC\x82\xB5\x82Ă\xA8\x82\xAD\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
 			pvar->hosts_state.hosts_dialog = NULL;
 			notify_closed_connection(pvar, "authentication cancelled");
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDCLOSE:
+			/*
+			 * known_hosts\x92\x86\x82ɃT\x81[\x83o\x91\xA4\x82\xA9\x82\xE7\x83l\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A
+			 * \x83_\x83C\x83A\x83\x8D\x83O\x82݂̂\xF0\x95‚\xB6\x82\xE9\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
+			pvar->hosts_state.hosts_dialog = NULL;
+			EndDialog(dlg, 0);
+			return TRUE;
+
 		case IDC_FP_HASH_ALG_MD5:
 			hosts_dlg_set_fingerprint(pvar, dlg, SSH_DIGEST_MD5);
 			return TRUE;
@@ -2118,11 +2159,11 @@
 				add_host_key(pvar);
 			}
 
-			if (SSHv1(pvar)) {
-				SSH_notify_host_OK(pvar);
-			} else { // SSH2
-				// SSH2\x82ł͂\xA0\x82Ƃ\xC5 SSH_notify_host_OK() \x82\xF0\x8CĂԁB
-			}
+			/*
+			 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̂\xBD\x82߂Ɉꎞ\x92\xE2\x8E~\x82\xB5\x82Ă\xA2\x82\xBD
+			 * SSH\x83T\x81[\x83o\x82Ƃ̃l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x8DĊJ\x82\xB3\x82\xB9\x82\xE9\x81B
+			 */
+			HOSTS_resume_session_after_known_hosts(pvar);
 
 			pvar->hosts_state.hosts_dialog = NULL;
 
@@ -2131,11 +2172,27 @@
 
 		case IDCANCEL:			/* kill the connection */
 canceled:
+			/*
+			 * known_hosts\x82\xF0\x83L\x83\x83\x83\x93\x83Z\x83\x8B\x82\xB7\x82邽\x82߁A\x8DĊJ\x97p\x82̃\x8A\x83\\x81[\x83X\x82\xF0\x94j\x8A\xFC\x82\xB5\x82Ă\xA8\x82\xAD\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
 			pvar->hosts_state.hosts_dialog = NULL;
 			notify_closed_connection(pvar, "authentication cancelled");
 			EndDialog(dlg, 0);
 			return TRUE;
 
+		case IDCLOSE:
+			/*
+			 * known_hosts\x92\x86\x82ɃT\x81[\x83o\x91\xA4\x82\xA9\x82\xE7\x83l\x83b\x83g\x83\x8F\x81[\x83N\x90ؒf\x82\xB3\x82ꂽ\x8Fꍇ\x81A
+			 * \x83_\x83C\x83A\x83\x8D\x83O\x82݂̂\xF0\x95‚\xB6\x82\xE9\x81B
+			 */
+			HOSTS_cancel_session_after_known_hosts(pvar);
+
+			pvar->hosts_state.hosts_dialog = NULL;
+			EndDialog(dlg, 0);
+			return TRUE;
+
 		case IDC_FP_HASH_ALG_MD5:
 			hosts_dlg_set_fingerprint(pvar, dlg, SSH_DIGEST_MD5);
 			return TRUE;
@@ -2176,7 +2233,15 @@
 void HOSTS_do_unknown_host_dialog(HWND wnd, PTInstVar pvar)
 {
 	if (pvar->hosts_state.hosts_dialog == NULL) {
-		HWND cur_active = GetActiveWindow();
+		/* known_hosts\x82̓ǂݍ\x9E\x82ݎ\x9E\x81AID_SSHASYNCMESSAGEBOX \x82\xF0\x8Eg\x82\xC1\x82\xBD
+		 * MessageBox \x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x8Fꍇ\x81A\x83I\x81[\x83i\x81[\x82Ȃ\xB5(no owner)\x82ɂȂ邽\x82߁A
+		 * MessageBox \x82\xAATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x81B
+		 * \x82\xBB\x82̏\xF3\x91Ԃ\xC5 GetActiveWindow() \x82\xF0\x8CĂяo\x82\xB7\x82ƁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xCC
+		 * \x83I\x81[\x83i\x81[\x82\xAA MessageBox \x82ƂȂ\xC1\x82āATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82Ă\xB5\x82܂\xA4\x81B
+		 * \x82\xBB\x82\xB1\x82ŁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̃I\x81[\x83i\x81[\x82͏\xED\x82\xC9 Tera Term \x82\xF0\x8Ew\x82\xB5\x8E\xA6\x82\xB7
+		 * \x82悤\x82ɂ\xB7\x82\xE9\x81B
+		 */
+		HWND cur_active = NULL;
 
 		DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHUNKNOWNHOST),
 		               cur_active != NULL ? cur_active : wnd,
@@ -2187,7 +2252,15 @@
 void HOSTS_do_different_key_dialog(HWND wnd, PTInstVar pvar)
 {
 	if (pvar->hosts_state.hosts_dialog == NULL) {
-		HWND cur_active = GetActiveWindow();
+		/* known_hosts\x82̓ǂݍ\x9E\x82ݎ\x9E\x81AID_SSHASYNCMESSAGEBOX \x82\xF0\x8Eg\x82\xC1\x82\xBD
+		 * MessageBox \x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x8Fꍇ\x81A\x83I\x81[\x83i\x81[\x82Ȃ\xB5(no owner)\x82ɂȂ邽\x82߁A
+		 * MessageBox \x82\xAATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x81B
+		 * \x82\xBB\x82̏\xF3\x91Ԃ\xC5 GetActiveWindow() \x82\xF0\x8CĂяo\x82\xB7\x82ƁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xCC
+		 * \x83I\x81[\x83i\x81[\x82\xAA MessageBox \x82ƂȂ\xC1\x82āATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82Ă\xB5\x82܂\xA4\x81B
+		 * \x82\xBB\x82\xB1\x82ŁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̃I\x81[\x83i\x81[\x82͏\xED\x82\xC9 Tera Term \x82\xF0\x8Ew\x82\xB5\x8E\xA6\x82\xB7
+		 * \x82悤\x82ɂ\xB7\x82\xE9\x81B
+		 */
+		HWND cur_active = NULL;
 
 		DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHDIFFERENTKEY),
 		               cur_active != NULL ? cur_active : wnd,
@@ -2198,7 +2271,15 @@
 void HOSTS_do_different_type_key_dialog(HWND wnd, PTInstVar pvar)
 {
 	if (pvar->hosts_state.hosts_dialog == NULL) {
-		HWND cur_active = GetActiveWindow();
+		/* known_hosts\x82̓ǂݍ\x9E\x82ݎ\x9E\x81AID_SSHASYNCMESSAGEBOX \x82\xF0\x8Eg\x82\xC1\x82\xBD
+		 * MessageBox \x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82\xE9\x8Fꍇ\x81A\x83I\x81[\x83i\x81[\x82Ȃ\xB5(no owner)\x82ɂȂ邽\x82߁A
+		 * MessageBox \x82\xAATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82邱\x82Ƃ\xAA\x82\xA0\x82\xE9\x81B
+		 * \x82\xBB\x82̏\xF3\x91Ԃ\xC5 GetActiveWindow() \x82\xF0\x8CĂяo\x82\xB7\x82ƁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xCC
+		 * \x83I\x81[\x83i\x81[\x82\xAA MessageBox \x82ƂȂ\xC1\x82āATera Term\x82̗\xA0\x82ɉB\x82\xEA\x82Ă\xB5\x82܂\xA4\x81B
+		 * \x82\xBB\x82\xB1\x82ŁAknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̃I\x81[\x83i\x81[\x82͏\xED\x82\xC9 Tera Term \x82\xF0\x8Ew\x82\xB5\x8E\xA6\x82\xB7
+		 * \x82悤\x82ɂ\xB7\x82\xE9\x81B
+		 */
+		HWND cur_active = NULL;
 
 		DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHDIFFERENTTYPEKEY),
 		               cur_active != NULL ? cur_active : wnd,
@@ -2206,16 +2287,24 @@
 	}
 }
 
-//
-// \x83T\x81[\x83o\x82\xA9\x82瑗\x82\xE7\x82\xEA\x82Ă\xAB\x82\xBD\x83z\x83X\x83g\x8C\xF6\x8AJ\x8C\xAE\x82̑Ó\x96\x90\xAB\x82\xF0\x83`\x83F\x83b\x83N\x82\xB7\x82\xE9
-//   key: \x83T\x81[\x83o\x82\xA9\x82\xE7\x82̌\xF6\x8AJ\x8C\xAE
-//
-// SSH2\x91Ή\x9E\x82\xF0\x92lj\xC1 (2006.3.24 yutaka)
-//
+/*
+ * \x83T\x81[\x83o\x82\xA9\x82瑗\x82\xE7\x82\xEA\x82Ă\xAB\x82\xBD\x83z\x83X\x83g\x8C\xF6\x8AJ\x8C\xAE\x82̑Ó\x96\x90\xAB\x82\xF0\x83`\x83F\x83b\x83N\x82\xB5\x81A
+ * \x95K\x97v\x82ɉ\x9E\x82\xB6\x82\xC4 known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8CĂяo\x82\xB7\x81B
+ *
+ *   hostname: \x90ڑ\xB1\x90\xE6\x82̃z\x83X\x83g\x96\xBC
+ *   tcpport: \x90ڑ\xB1\x90\xE6\x83|\x81[\x83g\x94ԍ\x86 
+ *   key: \x83T\x81[\x83o\x82\xA9\x82\xE7\x82̌\xF6\x8AJ\x8C\xAE
+ *
+ * return:
+ *    TRUE:  known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82͕s\x97v
+ *    FALSE: known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8CĂяo\x82\xB5\x82\xBD
+ *
+ */
 BOOL HOSTS_check_host_key(PTInstVar pvar, char *hostname, unsigned short tcpport, Key *key)
 {
 	int found_different_key = 0, found_different_type_key = 0;
 	Key key2; // known_hosts\x82ɓo\x98^\x82\xB3\x82\xEA\x82Ă\xA2\x82錮
+	DWORD id;
 
 	pvar->dns_key_check = DNS_VERIFY_NONE;
 
@@ -2224,12 +2313,8 @@
 	 && _stricmp(pvar->hosts_state.prefetched_hostname, hostname) == 0
 	 && HOSTS_compare_public_key(&pvar->hosts_state.hostkey, key) == 1) {
 
-		if (SSHv1(pvar)) {
-			SSH_notify_host_OK(pvar);
-		} else {
-			// SSH2\x82ł͂\xA0\x82Ƃ\xC5 SSH_notify_host_OK() \x82\xF0\x8CĂԁB
-		}
-		return TRUE;
+		 // \x89\xBD\x82\xE0\x82\xB9\x82\xB8\x82ɖ߂\xE9\x81B		
+		 return TRUE;
 	}
 
 	// \x90\xE6\x93ǂ݂\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xA2\x8Fꍇ\x82́A\x82\xB1\x82̎\x9E\x93_\x82Ńt\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x93ǂݍ\x9E\x82\xDE
@@ -2245,13 +2330,6 @@
 				if (match == 1) {
 					finish_read_host_files(pvar, 0);
 					// \x82\xB7\x82ׂẴG\x83\x93\x83g\x83\x8A\x82\xF0\x8EQ\x8FƂ\xB5\x82āA\x8D\x87\x92v\x82\xB7\x82\xE9\x83L\x81[\x82\xAA\x8C\xA9\x82‚\xA9\x82\xC1\x82\xBD\x82\xE7\x96߂\xE9\x81B
-					// SSH2\x82̏ꍇ\x82͂\xB1\x82\xB1\x82ł͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B(2006.3.29 yutaka)
-					if (SSHv1(pvar)) {
-						SSH_notify_host_OK(pvar);
-					} else {
-						// SSH2\x82ł͂\xA0\x82Ƃ\xC5 SSH_notify_host_OK() \x82\xF0\x8CĂԁB
-					}
-
 					// About TTSSH \x83_\x83C\x83A\x83\x8D\x83O\x82ł̕\\x8E\xA6\x82̂\xBD\x82߂ɁA\x82\xB1\x82\xB1\x82ŕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xAD\x81B
 					key_copy(&pvar->hosts_state.hostkey, key);
 
@@ -2280,6 +2358,7 @@
 
 	// "/nosecuritywarning"\x82\xAA\x8Ew\x92肳\x82\xEA\x82Ă\xA2\x82\xE9\x8Fꍇ\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB3\x82\xB9\x82\xB8\x82\xC9 return success \x82\xB7\x82\xE9\x81B
 	if (pvar->nocheck_known_hosts == TRUE) {
+		 // \x89\xBD\x82\xE0\x82\xB9\x82\xB8\x82ɖ߂\xE9\x81B		
 		return TRUE;
 	}
 
@@ -2291,19 +2370,79 @@
 	// \x82\xB3\x82\xB9\x82\xE9\x95K\x97v\x82\xAA\x82\xA0\x82邽\x82߁A\x92\xBC\x90ڃR\x81[\x83\x8B\x82ɕύX\x82\xB7\x82\xE9\x81B
 	// \x82\xB1\x82\xEA\x82ɂ\xE6\x82\xE8known_hosts\x82̊m\x94F\x82\xF0\x91҂\xBD\x82\xB8\x82ɁA\x83T\x81[\x83o\x82փ\x86\x81[\x83U\x8F\xEE\x95\xF1\x82𑗂\xC1\x82Ă\xB5\x82܂\xA4\x96\xE2\x91\xE8\x82\xF0\x89\xF1\x94\xF0\x82\xB7\x82\xE9\x81B
 	// (2007.10.1 yutaka)
+	/*
+	 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82͔񓯊\xFA\x82ŕ\\x8E\xA6\x82\xB3\x82\xB9\x82\xE9\x82̂\xAA\x90\xB3\x82\xB5\x82\xA9\x82\xC1\x82\xBD\x81B
+	 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x95\\x8E\xA6\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x8F\xF3\x91ԂŁA\x83T\x81[\x83o\x82\xA9\x82\xE7\x90ؒf\x82\xF0\x8Ds\x82\xA4\x82ƁA
+	 * TTXCloseTCP\x82\xAA\x8CĂяo\x82\xB3\x82\xEA\x81ATTSSH\x82̃\x8A\x83\\x81[\x83X\x82\xAA\x89\xF0\x95\xFA\x82\xB3\x82\xEA\x82Ă\xB5\x82܂\xA4\x81B
+	 * SSH\x83n\x83\x93\x83h\x83\x89\x82̉\x84\x92\xB7\x82\xC5known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8Fo\x82\xB5\x82Ď~\x82܂\xC1\x82Ă\xA2\x82邽\x82߁A
+	 * \x8F\x88\x97\x9D\x8DĊJ\x8C\xE3\x82ɕs\x90\xB3\x83A\x83N\x83Z\x83X\x82ŗ\x8E\x82\xBF\x82\xE9\x81B
+	 * (2019.9.3 yutaka)
+	 */
 	if (found_different_key) {
-		HOSTS_do_different_key_dialog(pvar->NotificationWindow, pvar);
+		// TTXProcessCommand \x82\xA9\x82\xE7 HOSTS_do_different_key_dialog() \x82\xF0\x8CĂяo\x82\xB7\x81B
+		id = ID_SSHDIFFERENTKEY;
 	}
 	else if (found_different_type_key) {
-		HOSTS_do_different_type_key_dialog(pvar->NotificationWindow, pvar);
+		// TTXProcessCommand \x82\xA9\x82\xE7 HOSTS_do_different_type_key_dialog() \x82\xF0\x8CĂяo\x82\xB7\x81B
+		id = ID_SSHDIFFERENT_TYPE_KEY;
 	}
 	else {
-		HOSTS_do_unknown_host_dialog(pvar->NotificationWindow, pvar);
+		// TTXProcessCommand \x82\xA9\x82\xE7 HOSTS_do_unknown_host_dialog() \x82\xF0\x8CĂяo\x82\xB7\x81B
+		id = ID_SSHUNKNOWNHOST;
 	}
 
-	return TRUE;
+	PostMessage(pvar->NotificationWindow, WM_COMMAND, id, 0);
+
+	logprintf(LOG_LEVEL_INFO, "Calling known_hosts dialog...(%s)", 
+		id == ID_SSHDIFFERENTKEY ? "SSHDIFFERENTKEY" : 
+		id == ID_SSHDIFFERENT_TYPE_KEY ? "SSHDIFFERENT_TYPE_KEY" : "SSHUNKNOWNHOST"
+		);
+
+	return FALSE;
 }
 
+/*
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82Ń\x86\x81[\x83U\x8F\xB3\x94F\x8C\xE3\x81ASSH\x83T\x81[\x83o\x82Ƃ̃l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x8DĊJ\x82\xB7\x82\xE9\x81B
+ */
+BOOL HOSTS_resume_session_after_known_hosts(PTInstVar pvar)
+{
+	enum ssh_kex_known_hosts type;
+	int ret = FALSE;
+
+	type = pvar->contents_after_known_hosts.kex_type;
+	if (type == SSH1_PUBLIC_KEY_KNOWN_HOSTS) {
+		ret = handle_server_public_key_after_known_hosts(pvar);
+
+	} else if (type == SSH2_DH_KEX_REPLY_KNOWN_HOSTS) {
+		ret = handle_SSH2_dh_kex_reply_after_known_hosts(pvar);
+
+	} else if (type == SSH2_DH_GEX_REPLY_KNOWN_HOSTS) {
+		ret = handle_SSH2_dh_gex_reply_after_known_hosts(pvar);
+
+	} else if (type == SSH2_ECDH_KEX_REPLY_KNOWN_HOSTS) {
+		ret = handle_SSH2_ecdh_kex_reply_after_known_hosts(pvar);
+
+	}
+
+	return (ret);
+}
+
+/*
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xCCSSH\x82\xB2\x82Ƃ̃L\x83\x83\x83\x93\x83Z\x83\x8B\x8F\x88\x97\x9D
+ */
+void HOSTS_cancel_session_after_known_hosts(PTInstVar pvar)
+{
+	enum ssh_kex_known_hosts type;
+
+	type = pvar->contents_after_known_hosts.kex_type;
+	if (type != NONE_KNOWN_HOSTS) {
+		handle_SSH2_canel_reply_after_known_hosts(pvar);
+	}
+
+	return;
+}
+
+
 void HOSTS_notify_disconnecting(PTInstVar pvar)
 {
 	if (pvar->hosts_state.hosts_dialog != NULL) {
@@ -2313,6 +2452,17 @@
 	}
 }
 
+// TCP\x83Z\x83b\x83V\x83\x87\x83\x93\x82\xAA\x83N\x83\x8D\x81[\x83Y\x82\xB3\x82ꂽ\x8Fꍇ\x81Aknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x82悤\x82Ɏw\x8E\xA6\x82\xF0\x8Fo\x82\xB7\x81B
+// HOSTS_notify_disconnecting()\x82Ƃ͈قȂ\xE8\x81A\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95‚\xB6\x82\xE9\x82݂̂ŁA
+// SSH\x83T\x81[\x83o\x82ɒʒm\x82͏o\x82\xB3\x82Ȃ\xA2\x81B
+void HOSTS_notify_closing_on_exit(PTInstVar pvar)
+{
+	if (pvar->hosts_state.hosts_dialog != NULL) {
+		logprintf(LOG_LEVEL_INFO, "%s: Notify closing message to the known_hosts dialog.", __FUNCTION__);
+		PostMessage(pvar->hosts_state.hosts_dialog, WM_COMMAND, IDCLOSE, 0);
+	}
+}
+
 void HOSTS_end(PTInstVar pvar)
 {
 	int i;

Modified: branches/unicode_buf/ttssh2/ttxssh/hosts.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/hosts.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/hosts.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -69,7 +69,9 @@
 #endif
 void HOSTS_do_unknown_host_dialog(HWND wnd, PTInstVar pvar);
 void HOSTS_do_different_key_dialog(HWND wnd, PTInstVar pvar);
+void HOSTS_do_different_type_key_dialog(HWND wnd, PTInstVar pvar);
 void HOSTS_notify_disconnecting(PTInstVar pvar);
+void HOSTS_notify_closing_on_exit(PTInstVar pvar);
 void HOSTS_end(PTInstVar pvar);
 
 int HOSTS_compare_public_key(Key *src, Key *key);

Modified: branches/unicode_buf/ttssh2/ttxssh/resource.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/resource.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/resource.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -233,6 +233,16 @@
 #define IDC_SSH_DEFAULTUSERNAME         1238
 #define IDC_SSH_WINDOWS_USERNAME        1239
 #define IDC_SSH_WINDOWS_USERNAME_TEXT   1241
+#define IDC_SSHAUTHMETHOD               1242
+#define IDC_SSH_AUTHMETHOD              1243
+#define IDC_SSH_USERNAME                1244
+#define IDC_LOGLEVEL                    1245
+#define IDC_LOGLEVEL_VALUE              1246
+#define IDC_LOGLEVEL_UNIT               1247
+#define IDC_SSHKEYGENSETUP_HELP         1248
+#define IDC_SSHSETUP_HELP               1249
+#define IDC_SSHFWDSETUP_HELP            1250
+#define IDC_SSHAUTHSETUP_HELP           1251
 
 // Next default values for new objects
 // 
@@ -240,7 +250,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        118
 #define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1242
+#define _APS_NEXT_CONTROL_VALUE         1252
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

Modified: branches/unicode_buf/ttssh2/ttxssh/ssh.c
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ssh.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ssh.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -139,6 +139,7 @@
 static void ssh2_scp_get_packetlist(Channel_t *c, unsigned char **buf, unsigned int *buflen);
 static void ssh2_scp_free_packetlist(Channel_t *c);
 static void get_window_pixel_size(PTInstVar pvar, int *x, int *y);
+static BOOL store_contents_for_known_hosts(PTInstVar pvar, enum ssh_kex_known_hosts kex_type, UINT_PTR offset);
 
 // \x83}\x83N\x83\x8D
 #define remained_payload(pvar) ((pvar)->ssh_state.payload + payload_current_offset(pvar))
@@ -351,7 +352,10 @@
 			c->scp.thread = INVALID_HANDLE_VALUE;
 		}
 
-		ssh2_scp_free_packetlist(c);
+		// SCP\x8E\xF3\x90M\x82̏ꍇ\x82̂݁ASCP\x97p\x83\x8A\x83X\x83g\x82̊J\x95\xFA\x82\xF0\x8Ds\x82\xA4\x81B
+		// Windows9x\x82ŗ\x8E\x82\xBF\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B
+		if (c->scp.dir == FROMREMOTE) 
+			ssh2_scp_free_packetlist(c);
 	}
 	if (c->type == TYPE_AGENT) {
 		buffer_free(c->agent_msg);
@@ -1666,6 +1670,9 @@
 	return FALSE;
 }
 
+/*
+ * SSH1\x83T\x81[\x83o\x82\xA9\x82瑗\x82\xE7\x82\xEA\x82Ă\xAB\x82\xBD\x8C\xAE\x82\xF0\x83`\x83F\x83b\x83N\x82\xB5\x82āA\x8DŌ\xE3\x82\xC9known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x81B
+ */
 static BOOL handle_server_public_key(PTInstVar pvar)
 {
 	int server_key_public_exponent_len;
@@ -1680,6 +1687,7 @@
 	char *inmsg;
 	Key hostkey;
 	int supported_types;
+	int ret;
 
 	logputs(LOG_LEVEL_VERBOSE, "SSH_SMSG_PUBLIC_KEY was received.");
 
@@ -1744,6 +1752,10 @@
 	                                   supported_types))
 		return FALSE;
 
+	// \x8C㔼\x8F\x88\x97\x9D\x97p\x82̃f\x81[\x83^\x82\xF0\x91ޔ\xF0\x82\xB5\x82Ă\xA8\x82\xAD
+	if (store_contents_for_known_hosts(pvar, SSH1_PUBLIC_KEY_KNOWN_HOSTS, 0) == FALSE)
+		return FALSE;
+
 	/* this must be the LAST THING in this function, since it can cause
 	   host_is_OK to be called. */
 	hostkey.type = KEY_RSA1;
@@ -1750,11 +1762,31 @@
 	hostkey.bits = get_uint32(inmsg + host_key_bits_pos);
 	hostkey.exp = inmsg + host_key_bits_pos + 4;
 	hostkey.mod = inmsg + host_key_public_modulus_pos;
-	HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, &hostkey);
 
+	ret = HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, &hostkey);
+	if (ret == TRUE) {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82͕s\x97v\x82Ȃ̂ŁA
+		 * \x91\xB1\x82\xAB\x82̏\x88\x97\x9D\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B
+		 */
+		ret = handle_server_public_key_after_known_hosts(pvar);
+
+	} else {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82\xBD\x82̂ŁA
+		 * \x88ȍ~\x81A\x89\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B
+		 */
+
+	}
+
 	return FALSE;
 }
 
+BOOL handle_server_public_key_after_known_hosts(PTInstVar pvar)
+{
+	SSH_notify_host_OK(pvar);
+
+	return TRUE;
+}
+
 /*
 The ID must have already been found to start with "SSH-". It must
 be null-terminated.
@@ -2933,6 +2965,10 @@
 	if ((pvar->ssh_state.status_flags & STATUS_HOST_OK) == 0) {
 		pvar->ssh_state.status_flags |= STATUS_HOST_OK;
 		send_session_key(pvar);
+		// \x83\x86\x81[\x83U\x94F\x8F؂\xF0\x8Ds\x82\xC1\x82Ă悢\x83^\x83C\x83~\x83\x93\x83O\x82ɂȂ\xC1\x82Ă\xA9\x82\xE7\x81A\x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8Fo\x8C\xBB\x82\xB3\x82\xB9\x82\xE9\x81B
+		// STATUS_HOST_OK\x82\xAA\x97\xA7\x82\xBF\x81ASTATUS_DONT_SEND_USER_NAME\x82\xAA\x97\x8E\x82\xBF\x82Ă\xA2\x82Ȃ\xA2\x82ƁA
+		// \x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82͎\xC0\x8E\xBF\x8Eg\x82\xA6\x82Ȃ\xA2\x82̂ŁA\x82\xB1\x82̃^\x83C\x83~\x83\x93\x83O\x82Ŗ\xE2\x91\xE8\x82Ȃ\xA2\x81B
+		AUTH_advance_to_next_cred(pvar);
 	}
 }
 
@@ -5829,33 +5865,64 @@
 	return TRUE;
 }
 
-//
-// Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEXDH_REPLY:31)
-//
+static BOOL store_contents_for_known_hosts(PTInstVar pvar, enum ssh_kex_known_hosts kex_type, UINT_PTR offset)
+{
+	pvar->contents_after_known_hosts.payload = malloc(pvar->ssh_state.payloadlen);
+	if (pvar->contents_after_known_hosts.payload == NULL)
+		return FALSE;
+	memcpy(pvar->contents_after_known_hosts.payload, pvar->ssh_state.payload, pvar->ssh_state.payloadlen);
+	pvar->contents_after_known_hosts.payload_len = pvar->ssh_state.payloadlen;
+	pvar->contents_after_known_hosts.payload_offset = offset;
+
+	pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = FALSE;
+
+	// \x8F\xEE\x95񂪃Z\x83b\x83g\x82\xB3\x82\xEA\x82Ă\xA2\x82邩\x82ǂ\xA4\x82\xA9\x82̔\xBB\x92\xE8\x82Ɏg\x82\xA4\x82\xBD\x82߁A\x8DŌ\xE3\x82ɐݒ肷\x82\xE9\x81B
+	pvar->contents_after_known_hosts.kex_type = kex_type;
+
+	return TRUE;
+}
+
+static void clear_contents_for_known_hosts(PTInstVar pvar)
+{
+	pvar->contents_after_known_hosts.kex_type = NONE_KNOWN_HOSTS;
+	if (pvar->contents_after_known_hosts.payload) {
+		free(pvar->contents_after_known_hosts.payload);
+		pvar->contents_after_known_hosts.payload = NULL;
+	}
+	pvar->contents_after_known_hosts.payload_len = 0;
+	pvar->contents_after_known_hosts.payload_offset = 0;
+
+	/* \x82\xB1\x82\xB1\x82ł͈Ӑ}\x93I\x82ɃN\x83\x8A\x83A\x82\xB5\x82Ȃ\xA2\x81B
+	 * pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = FALSE;
+	 */
+}
+
+/*
+ * Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEXDH_REPLY:31)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̑O\x94\xBC\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x82Ƃ\xB1\x82\xEB\x82܂ŁB
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82ł̏\xB3\x94F\x8C\xE3\x82̏\x88\x97\x9D\x82͌㔼\x82ցB
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
 static BOOL handle_SSH2_dh_kex_reply(PTInstVar pvar)
 {
 	char *data;
 	int len;
-	int offset = 0;
 	char *server_host_key_blob;
-	int bloblen, siglen;
-	BIGNUM *server_public = NULL;
-	char *signature;
-	int dh_len, share_len;
+	int bloblen;
 	char *dh_buf = NULL;
-	BIGNUM *share_key = NULL;
-	char *hash;
 	char *emsg = NULL, emsg_tmp[1024];  // error message
-	int hashlen;
 	Key *hostkey = NULL;  // hostkey
 	BOOL result = FALSE;
+	int ret;
 
 	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEXDH_REPLY was received.");
 
 	memset(&hostkey, 0, sizeof(hostkey));
 
-	// TODO: buffer overrun check
-
 	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
 	data = pvar->ssh_state.payload;
 	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
@@ -5887,14 +5954,108 @@
 		emsg = emsg_tmp;
 		goto error;
 	}
-	HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
-	if (pvar->socket == INVALID_SOCKET) {
+
+	// \x8C㔼\x8F\x88\x97\x9D\x97p\x82̃f\x81[\x83^\x82\xF0\x91ޔ\xF0\x82\xB5\x82Ă\xA8\x82\xAD
+	if (store_contents_for_known_hosts(pvar, SSH2_DH_KEX_REPLY_KNOWN_HOSTS,
+							(unsigned char *)data - pvar->ssh_state.payload) == FALSE)
+		goto error;
+
+	/*
+	 * Tera Term(SSH\x83N\x83\x89\x83C\x83A\x83\x93\x83g)\x91\xA4\x82͂\xB1\x82ꂩ\x82\xE7 known_hosts \x82ŃT\x81[\x83o\x82Ƃ̐ڑ\xB1\x82\xF0
+	 * \x8E󂯓\xFC\x82\xEA\x82\xE9\x82̂\xA9\x82\xF0\x8C\x88\x82߂邪\x81ASSH\x83T\x81[\x83o\x91\xA4\x82͂\xB7\x82łɌ\xAE\x82̏\x80\x94\x{142A82}ł\xAB\x82Ă\xA2\x82\xE9\x89”\\x90\xAB\x82\xAA\x82\xA0\x82\xE8\x81A
+	 * SSH2_MSG_NEWKEYS \x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x82\xA2\x82‘\x97\x82\xE7\x82\xEA\x82Ă\xAD\x82邩\x95\xAA\x82\xA9\x82\xE7\x82Ȃ\xA2\x81B
+	 * known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x95\\x8E\xA6\x92\x86\x82ɂ\xA8\x82\xA2\x82āA\x93\x96\x8AY\x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8E󂯕t\x82\xAF\x82\xE7\x82\xEA\x82\xE9\x82悤\x82\xC9
+	 * \x82\xB5\x82Ă\xA8\x82\xAD\x95K\x97v\x82\xAA\x82\xA0\x82\xE9\x81B
+	 */
+	SSH2_dispatch_init(3);
+	SSH2_dispatch_add_message(SSH2_MSG_NEWKEYS);
+
+	/*
+	 * \x82\xB1\x82̂\xA0\x82\xC6 known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x94񓯊\xFA\x82ŌĂяo\x82\xB5\x81A\x82\xA2\x82\xC1\x82\xBD\x82\xF1SSH\x83T\x81[\x83o\x82Ƃ\xCC
+	 * \x83l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x88ꎞ\x92\xE2\x8E~\x82\xB3\x82\xB9\x82\xE9\x81B
+	 */
+	ret = HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
+	if (ret == TRUE) {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82͕s\x97v\x82Ȃ̂ŁA
+		 * \x91\xB1\x82\xAB\x82̏\x88\x97\x9D\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B
+		 */
+		ret = handle_SSH2_dh_kex_reply_after_known_hosts(pvar);
+
+	} else {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82\xBD\x82̂ŁA
+		 * \x88ȍ~\x81A\x89\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B
+		 */
+
+	}
+
+	result = TRUE;
+
+error:
+	key_free(hostkey);
+
+	if (emsg)
+		notify_fatal_error(pvar, emsg, TRUE);
+
+	return result;
+}
+
+/*
+ * Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEXDH_REPLY:31)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̌㔼\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xA9\x82\xE7\x8CĂяo\x82\xB3\x82\xEA\x81ASSH\x83T\x81[\x83o\x82ɃL\x81[\x8F\xEE\x95\xF1\x82𑗐M\x82\xB7\x82\xE9\x81B
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
+BOOL handle_SSH2_dh_kex_reply_after_known_hosts(PTInstVar pvar)
+{
+	char *data;
+	int len;
+	int offset = 0;
+	char *server_host_key_blob;
+	int bloblen, siglen;
+	BIGNUM *server_public = NULL;
+	char *signature;
+	int dh_len, share_len;
+	char *dh_buf = NULL;
+	BIGNUM *share_key = NULL;
+	char *hash;
+	char *emsg = NULL, emsg_tmp[1024];  // error message
+	int hashlen;
+	Key *hostkey = NULL;  // hostkey
+	BOOL result = FALSE;
+
+	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEXDH_REPLY is continued after known_hosts.");
+
+	memset(&hostkey, 0, sizeof(hostkey));
+
+	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
+	data = pvar->contents_after_known_hosts.payload;
+	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
+	len = pvar->contents_after_known_hosts.payload_len - 1;
+
+	bloblen = get_uint32_MSBfirst(data);
+	data += 4;
+	server_host_key_blob = data; // for hash
+
+	hostkey = key_from_blob(data, bloblen);
+	if (hostkey == NULL) {
 		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
-					"%s: Server disconnected", __FUNCTION__);
+					"%s: key_from_blob error", __FUNCTION__);
 		emsg = emsg_tmp;
 		goto error;
 	}
+	data += bloblen;
 
+	if (hostkey->type != pvar->hostkey_type) {  // \x83z\x83X\x83g\x83L\x81[\x82̎\xED\x95ʔ\xE4\x8Ar
+		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
+		            "%s: type mismatch for decoded server_host_key_blob (kex:%s blob:%s)", /*__FUNCTION__*/"handle_SSH2_dh_kex_reply",
+		            get_ssh_keytype_name(pvar->hostkey_type), get_ssh_keytype_name(hostkey->type));
+		emsg = emsg_tmp;
+		goto error;
+	}
+
 	server_public = BN_new();
 	if (server_public == NULL) {
 		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
@@ -5980,17 +6141,139 @@
 	if (emsg)
 		notify_fatal_error(pvar, emsg, TRUE);
 
+	clear_contents_for_known_hosts(pvar);
+
+	/* 
+	 * SSH2_MSG_NEWKEYS \x82\xF0\x8E\xF3\x90M\x82\xB5\x82Ă\xA2\x82\xBD\x82\xE7\x81A\x8E\xA9\x95\xAA\x82ŏ\x88\x97\x9D\x82\xF0\x8CĂяo\x82\xB7\x81B
+	 */
+	if (pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received) {
+		pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = FALSE;
+		handle_SSH2_newkeys(pvar);
+	}
+
 	return result;
 }
 
+void handle_SSH2_canel_reply_after_known_hosts(PTInstVar pvar)
+{
+	clear_contents_for_known_hosts(pvar);
+}
 
-//
-// Diffie-Hellman Group and Key Exchange Reply(SSH2_MSG_KEX_DH_GEX_REPLY:33)
-//
+/*
+ * Diffie-Hellman Group and Key Exchange Reply(SSH2_MSG_KEX_DH_GEX_REPLY:33)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̑O\x94\xBC\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x82Ƃ\xB1\x82\xEB\x82܂ŁB
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82ł̏\xB3\x94F\x8C\xE3\x82̏\x88\x97\x9D\x82͌㔼\x82ցB
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
 static BOOL handle_SSH2_dh_gex_reply(PTInstVar pvar)
 {
 	char *data;
 	int len;
+	char *server_host_key_blob;
+	int bloblen;
+	char *dh_buf = NULL;
+	char *emsg = NULL, emsg_tmp[1024];  // error message
+	Key *hostkey = NULL;  // hostkey
+	BOOL result = FALSE;
+	int ret;
+
+	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_DH_GEX_REPLY was received.");
+
+	memset(&hostkey, 0, sizeof(hostkey));
+
+	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
+	data = pvar->ssh_state.payload;
+	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
+	len = pvar->ssh_state.payloadlen - 1;
+
+	// for debug
+	push_memdump("DH_GEX_REPLY", "key exchange: receiving", data, len);
+
+	bloblen = get_uint32_MSBfirst(data);
+	data += 4;
+	server_host_key_blob = data; // for hash
+
+	push_memdump("DH_GEX_REPLY", "server_host_key_blob", server_host_key_blob, bloblen);
+
+	hostkey = key_from_blob(data, bloblen);
+	if (hostkey == NULL) {
+		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
+					"%s: key_from_blob error", __FUNCTION__);
+		emsg = emsg_tmp;
+		goto error;
+	}
+	data += bloblen;
+
+	// known_hosts\x91Ή\x9E (2006.3.20 yutaka)
+	if (hostkey->type != pvar->hostkey_type) {  // \x83z\x83X\x83g\x83L\x81[\x82̎\xED\x95ʔ\xE4\x8Ar
+		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
+		            "%s: type mismatch for decoded server_host_key_blob (kex:%s blob:%s)", /*__FUNCTION__*/"handle_SSH2_dh_gex_reply",
+		            get_ssh_keytype_name(pvar->hostkey_type), get_ssh_keytype_name(hostkey->type));
+		emsg = emsg_tmp;
+		goto error;
+	}
+
+	// \x8C㔼\x8F\x88\x97\x9D\x97p\x82̃f\x81[\x83^\x82\xF0\x91ޔ\xF0\x82\xB5\x82Ă\xA8\x82\xAD
+	if (store_contents_for_known_hosts(pvar, SSH2_DH_GEX_REPLY_KNOWN_HOSTS,
+							(unsigned char *)data - pvar->ssh_state.payload) == FALSE)
+		goto error;
+
+	/*
+	 * Tera Term(SSH\x83N\x83\x89\x83C\x83A\x83\x93\x83g)\x91\xA4\x82͂\xB1\x82ꂩ\x82\xE7 known_hosts \x82ŃT\x81[\x83o\x82Ƃ̐ڑ\xB1\x82\xF0
+	 * \x8E󂯓\xFC\x82\xEA\x82\xE9\x82̂\xA9\x82\xF0\x8C\x88\x82߂邪\x81ASSH\x83T\x81[\x83o\x91\xA4\x82͂\xB7\x82łɌ\xAE\x82̏\x80\x94\x{142A82}ł\xAB\x82Ă\xA2\x82\xE9\x89”\\x90\xAB\x82\xAA\x82\xA0\x82\xE8\x81A
+	 * SSH2_MSG_NEWKEYS \x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x82\xA2\x82‘\x97\x82\xE7\x82\xEA\x82Ă\xAD\x82邩\x95\xAA\x82\xA9\x82\xE7\x82Ȃ\xA2\x81B
+	 * known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x95\\x8E\xA6\x92\x86\x82ɂ\xA8\x82\xA2\x82āA\x93\x96\x8AY\x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8E󂯕t\x82\xAF\x82\xE7\x82\xEA\x82\xE9\x82悤\x82\xC9
+	 * \x82\xB5\x82Ă\xA8\x82\xAD\x95K\x97v\x82\xAA\x82\xA0\x82\xE9\x81B
+	 */
+	SSH2_dispatch_init(3);
+	SSH2_dispatch_add_message(SSH2_MSG_NEWKEYS);
+
+	/*
+	 * \x82\xB1\x82̂\xA0\x82\xC6 known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x94񓯊\xFA\x82ŌĂяo\x82\xB5\x81A\x82\xA2\x82\xC1\x82\xBD\x82\xF1SSH\x83T\x81[\x83o\x82Ƃ\xCC
+	 * \x83l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x88ꎞ\x92\xE2\x8E~\x82\xB3\x82\xB9\x82\xE9\x81B
+	 */
+	ret = HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
+	if (ret == TRUE) {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82͕s\x97v\x82Ȃ̂ŁA
+		 * \x91\xB1\x82\xAB\x82̏\x88\x97\x9D\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B
+		 */
+		ret = handle_SSH2_dh_gex_reply_after_known_hosts(pvar);
+
+	} else {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82\xBD\x82̂ŁA
+		 * \x88ȍ~\x81A\x89\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B
+		 */
+
+	}
+
+	result = TRUE;
+
+error:
+	key_free(hostkey);
+
+	if (emsg)
+		notify_fatal_error(pvar, emsg, TRUE);
+
+	return result;
+}
+
+/*
+ * Diffie-Hellman Group and Key Exchange Reply(SSH2_MSG_KEX_DH_GEX_REPLY:33)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̌㔼\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xA9\x82\xE7\x8CĂяo\x82\xB3\x82\xEA\x81ASSH\x83T\x81[\x83o\x82ɃL\x81[\x8F\xEE\x95\xF1\x82𑗐M\x82\xB7\x82\xE9\x81B
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
+BOOL handle_SSH2_dh_gex_reply_after_known_hosts(PTInstVar pvar)
+{
+	char *data;
+	int len;
 	int offset = 0;
 	char *server_host_key_blob;
 	int bloblen, siglen;
@@ -6005,16 +6288,14 @@
 	Key *hostkey = NULL;  // hostkey
 	BOOL result = FALSE;
 
-	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_DH_GEX_REPLY was received.");
+	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_DH_GEX_REPLY is continued after known_hosts.");
 
 	memset(&hostkey, 0, sizeof(hostkey));
 
-	// TODO: buffer overrun check
-
 	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
-	data = pvar->ssh_state.payload;
+	data = pvar->contents_after_known_hosts.payload;
 	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
-	len = pvar->ssh_state.payloadlen - 1;
+	len = pvar->contents_after_known_hosts.payload_len - 1;
 
 	// for debug
 	push_memdump("DH_GEX_REPLY", "key exchange: receiving", data, len);
@@ -6042,13 +6323,6 @@
 		emsg = emsg_tmp;
 		goto error;
 	}
-	HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
-	if (pvar->socket == INVALID_SOCKET) {
-		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
-					"%s: Server disconnected", __FUNCTION__);
-		emsg = emsg_tmp;
-		goto error;
-	}
 
 	server_public = BN_new();
 	if (server_public == NULL) {
@@ -6140,17 +6414,134 @@
 	if (emsg)
 		notify_fatal_error(pvar, emsg, TRUE);
 
+	clear_contents_for_known_hosts(pvar);
+
+	/* 
+	 * SSH2_MSG_NEWKEYS \x82\xF0\x8E\xF3\x90M\x82\xB5\x82Ă\xA2\x82\xBD\x82\xE7\x81A\x8E\xA9\x95\xAA\x82ŏ\x88\x97\x9D\x82\xF0\x8CĂяo\x82\xB7\x81B
+	 */
+	if (pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received) {
+		pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = FALSE;
+		handle_SSH2_newkeys(pvar);
+	}
+
 	return result;
 }
 
 
-//
-// Elliptic Curve Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEX_ECDH_REPLY:31)
-//
+/*
+ * Elliptic Curve Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEX_ECDH_REPLY:31)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̑O\x94\xBC\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9\x82Ƃ\xB1\x82\xEB\x82܂ŁB
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82ł̏\xB3\x94F\x8C\xE3\x82̏\x88\x97\x9D\x82͌㔼\x82ցB
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
 static BOOL handle_SSH2_ecdh_kex_reply(PTInstVar pvar)
 {
 	char *data;
 	int len;
+	char *server_host_key_blob;
+	int bloblen;
+	char *emsg = NULL, emsg_tmp[1024];  // error message
+	Key *hostkey = NULL;  // hostkey
+	BOOL result = FALSE;
+	int ret;
+
+	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_ECDH_REPLY was received.");
+
+	memset(&hostkey, 0, sizeof(hostkey));
+
+	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
+	data = pvar->ssh_state.payload;
+	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
+	len = pvar->ssh_state.payloadlen - 1;
+
+	// for debug
+	push_memdump("KEX_ECDH_REPLY", "key exchange: receiving", data, len);
+
+	bloblen = get_uint32_MSBfirst(data);
+	data += 4;
+	server_host_key_blob = data; // for hash
+
+	push_memdump("KEX_ECDH_REPLY", "server_host_key_blob", server_host_key_blob, bloblen);
+
+	hostkey = key_from_blob(data, bloblen);
+	if (hostkey == NULL) {
+		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
+					"%s: key_from_blob error", __FUNCTION__);
+		emsg = emsg_tmp;
+		goto error;
+	}
+	data += bloblen;
+
+	// known_hosts\x91Ή\x9E (2006.3.20 yutaka)
+	if (hostkey->type != pvar->hostkey_type) {  // \x83z\x83X\x83g\x83L\x81[\x82̎\xED\x95ʔ\xE4\x8Ar
+		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
+		            "%s: type mismatch for decoded server_host_key_blob (kex:%s blob:%s)", /*__FUNCTION__*/"handle_SSH2_ecdh_kex_reply",
+		            get_ssh_keytype_name(pvar->hostkey_type), get_ssh_keytype_name(hostkey->type));
+		emsg = emsg_tmp;
+		goto error;
+	}
+
+	// \x8C㔼\x8F\x88\x97\x9D\x97p\x82̃f\x81[\x83^\x82\xF0\x91ޔ\xF0\x82\xB5\x82Ă\xA8\x82\xAD
+	if (store_contents_for_known_hosts(pvar, SSH2_ECDH_KEX_REPLY_KNOWN_HOSTS,
+							(unsigned char *)data - pvar->ssh_state.payload) == FALSE)
+		goto error;
+
+	/*
+	 * Tera Term(SSH\x83N\x83\x89\x83C\x83A\x83\x93\x83g)\x91\xA4\x82͂\xB1\x82ꂩ\x82\xE7 known_hosts \x82ŃT\x81[\x83o\x82Ƃ̐ڑ\xB1\x82\xF0
+	 * \x8E󂯓\xFC\x82\xEA\x82\xE9\x82̂\xA9\x82\xF0\x8C\x88\x82߂邪\x81ASSH\x83T\x81[\x83o\x91\xA4\x82͂\xB7\x82łɌ\xAE\x82̏\x80\x94\x{142A82}ł\xAB\x82Ă\xA2\x82\xE9\x89”\\x90\xAB\x82\xAA\x82\xA0\x82\xE8\x81A
+	 * SSH2_MSG_NEWKEYS \x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x82\xA2\x82‘\x97\x82\xE7\x82\xEA\x82Ă\xAD\x82邩\x95\xAA\x82\xA9\x82\xE7\x82Ȃ\xA2\x81B
+	 * known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x95\\x8E\xA6\x92\x86\x82ɂ\xA8\x82\xA2\x82āA\x93\x96\x8AY\x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8E󂯕t\x82\xAF\x82\xE7\x82\xEA\x82\xE9\x82悤\x82\xC9
+	 * \x82\xB5\x82Ă\xA8\x82\xAD\x95K\x97v\x82\xAA\x82\xA0\x82\xE9\x81B
+	 */
+	SSH2_dispatch_init(3);
+	SSH2_dispatch_add_message(SSH2_MSG_NEWKEYS);
+
+	/*
+	 * \x82\xB1\x82̂\xA0\x82\xC6 known_hosts \x83_\x83C\x83A\x83\x8D\x83O\x82\xF0\x94񓯊\xFA\x82ŌĂяo\x82\xB5\x81A\x82\xA2\x82\xC1\x82\xBD\x82\xF1SSH\x83T\x81[\x83o\x82Ƃ\xCC
+	 * \x83l\x83S\x83V\x83G\x81[\x83V\x83\x87\x83\x93\x82\xF0\x88ꎞ\x92\xE2\x8E~\x82\xB3\x82\xB9\x82\xE9\x81B
+	 */
+	ret = HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
+	if (ret == TRUE) {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82͕s\x97v\x82Ȃ̂ŁA
+		 * \x91\xB1\x82\xAB\x82̏\x88\x97\x9D\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B
+		 */
+		ret = handle_SSH2_ecdh_kex_reply_after_known_hosts(pvar);
+
+	} else {
+		/* known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82̌Ăяo\x82\xB5\x82\xBD\x82̂ŁA
+		 * \x88ȍ~\x81A\x89\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B
+		 */
+
+	}
+
+	result = TRUE;
+
+error:
+	key_free(hostkey);
+
+	if (emsg)
+		notify_fatal_error(pvar, emsg, TRUE);
+
+	return result;
+}
+
+/*
+ * Elliptic Curve Diffie-Hellman Key Exchange Reply(SSH2_MSG_KEX_ECDH_REPLY:31)
+ *
+ * known_hosts\x8F\x88\x97\x9D\x82̌㔼\x81F
+ * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82\xA9\x82\xE7\x8CĂяo\x82\xB3\x82\xEA\x81ASSH\x83T\x81[\x83o\x82ɃL\x81[\x8F\xEE\x95\xF1\x82𑗐M\x82\xB7\x82\xE9\x81B
+ *
+ * return TRUE: \x90\xAC\x8C\xF7
+ *        FALSE: \x8E\xB8\x94s
+ */
+BOOL handle_SSH2_ecdh_kex_reply_after_known_hosts(PTInstVar pvar)
+{
+	char *data;
+	int len;
 	int offset = 0;
 	char *server_host_key_blob;
 	int bloblen, siglen;
@@ -6166,16 +6557,14 @@
 	Key *hostkey = NULL;  // hostkey
 	BOOL result = FALSE;
 
-	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_ECDH_REPLY was received.");
+	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_KEX_ECDH_REPLY is continued after known_hosts.");
 
 	memset(&hostkey, 0, sizeof(hostkey));
 
-	// TODO: buffer overrun check
-
 	// \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x82̌\xE3\x82ɑ\xB1\x82\xAD\x83y\x83C\x83\x8D\x81[\x83h\x82̐擪
-	data = pvar->ssh_state.payload;
+	data = pvar->contents_after_known_hosts.payload;
 	// \x83y\x83C\x83\x8D\x81[\x83h\x82̒\xB7\x82\xB3; \x83\x81\x83b\x83Z\x81[\x83W\x83^\x83C\x83v\x95\xAA\x82\xCC 1 \x83o\x83C\x83g\x82\xF0\x8C\xB8\x82炷
-	len = pvar->ssh_state.payloadlen - 1;
+	len = pvar->contents_after_known_hosts.payload_len - 1;
 
 	// for debug
 	push_memdump("KEX_ECDH_REPLY", "key exchange: receiving", data, len);
@@ -6203,13 +6592,6 @@
 		emsg = emsg_tmp;
 		goto error;
 	}
-	HOSTS_check_host_key(pvar, pvar->ssh_state.hostname, pvar->ssh_state.tcpport, hostkey);
-	if (pvar->socket == INVALID_SOCKET) {
-		_snprintf_s(emsg_tmp, sizeof(emsg_tmp), _TRUNCATE,
-					"%s: Server disconnected", __FUNCTION__);
-		emsg = emsg_tmp;
-		goto error;
-	}
 
 	/* Q_S, server public key */
 	group = EC_KEY_get0_group(pvar->ecdh_client_key);
@@ -6319,10 +6701,21 @@
 	if (emsg)
 		notify_fatal_error(pvar, emsg, TRUE);
 
+	clear_contents_for_known_hosts(pvar);
+
+	/* 
+	 * SSH2_MSG_NEWKEYS \x82\xF0\x8E\xF3\x90M\x82\xB5\x82Ă\xA2\x82\xBD\x82\xE7\x81A\x8E\xA9\x95\xAA\x82ŏ\x88\x97\x9D\x82\xF0\x8CĂяo\x82\xB7\x81B
+	 */
+	if (pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received) {
+		pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = FALSE;
+		handle_SSH2_newkeys(pvar);
+	}
+
 	return result;
 }
 
 
+
 // KEX\x82ɂ\xA8\x82\xA2\x82ăT\x81[\x83o\x82\xA9\x82\xE7\x95Ԃ\xC1\x82Ă\xAD\x82\xE9 31 \x94ԃ\x81\x83b\x83Z\x81[\x83W\x82ɑ΂\xB7\x82\xE9\x83n\x83\x93\x83h\x83\x89
 static BOOL handle_SSH2_dh_common_reply(PTInstVar pvar)
 {
@@ -6392,6 +6785,17 @@
 	int type = (1 << SSH_AUTH_PASSWORD) | (1 << SSH_AUTH_RSA) |
 	           (1 << SSH_AUTH_TIS) | (1 << SSH_AUTH_PAGEANT);
 
+
+	/*
+	 * known_hosts\x83_\x83C\x83A\x83\x8D\x83O\x95\\x8E\xA6\x92\x86\x82\xC9 SSH2_MSG_NEWKEYS \x82\xF0\x8E󂯎\xE6\x82\xC1\x82\xBD\x8Fꍇ\x82\xCD
+	 * \x8F\x88\x97\x9D\x82\xF0\x89\x84\x8A\x{20B30B9}\x82\xE9\x81B
+	 */
+	if (pvar->contents_after_known_hosts.kex_type != NONE_KNOWN_HOSTS) {
+		pvar->contents_after_known_hosts.SSH2_MSG_NEWKEYS_received = TRUE;
+		logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_NEWKEYS was postponed while known_hosts dialog is running.");
+		return TRUE;
+	}
+
 	logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_NEWKEYS was received(DH key generation is completed).");
 
 	// \x83\x8D\x83O\x8D̎\xE6\x82̏I\x97\xB9 (2005.3.7 yutaka)

Modified: branches/unicode_buf/ttssh2/ttxssh/ssh.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ssh.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ssh.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -915,4 +915,32 @@
 	int ref_count;
 };
 
+/*  
+ * SSH bottom half after known_hosts
+ */
+enum ssh_kex_known_hosts {
+	NONE_KNOWN_HOSTS = 0,
+	SSH1_PUBLIC_KEY_KNOWN_HOSTS,
+	SSH2_DH_KEX_REPLY_KNOWN_HOSTS,
+	SSH2_DH_GEX_REPLY_KNOWN_HOSTS,
+	SSH2_ECDH_KEX_REPLY_KNOWN_HOSTS,
+};
+
+typedef struct bottom_half_known_hosts {
+	enum ssh_kex_known_hosts kex_type;
+
+	unsigned char *payload;
+	int payload_len;
+	UINT_PTR payload_offset;
+
+	BOOL SSH2_MSG_NEWKEYS_received;	
+} bottom_half_known_hosts_t;
+
+void handle_SSH2_canel_reply_after_known_hosts(PTInstVar pvar);
+
+BOOL handle_server_public_key_after_known_hosts(PTInstVar pvar);
+BOOL handle_SSH2_dh_kex_reply_after_known_hosts(PTInstVar pvar);
+BOOL handle_SSH2_dh_gex_reply_after_known_hosts(PTInstVar pvar);
+BOOL handle_SSH2_ecdh_kex_reply_after_known_hosts(PTInstVar pvar);
+
 #endif

Modified: branches/unicode_buf/ttssh2/ttxssh/ttxssh-version.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ttxssh-version.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ttxssh-version.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -31,6 +31,6 @@
 #include "tt-version.h"
 
 #define TTSSH_VERSION_MAJOR             2
-#define TTSSH_VERSION_MINOR             89
+#define TTSSH_VERSION_MINOR             90
 #define TTSSH_VERSION_STR(sep)          TT_TOSTR(TTSSH_VERSION_MAJOR) sep TT_TOSTR(TTSSH_VERSION_MINOR)
 #define TTSSH_RES_VERSION_STR           TTSSH_VERSION_STR(", ") ", 0, 0"

Modified: branches/unicode_buf/ttssh2/ttxssh/ttxssh.c
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ttxssh.c	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ttxssh.c	2019-09-12 15:58:02 UTC (rev 8124)
@@ -43,6 +43,7 @@
 #include "keyfiles.h"
 #include "arc4random.h"
 #include "auth.h"
+#include "helpid.h"
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -57,7 +58,7 @@
 #include <commctrl.h>
 #include <commdlg.h>
 #include <winsock2.h>
-static char *ProtocolFamilyList[] = { "UNSPEC", "IPv6", "IPv4", NULL };
+static char *ProtocolFamilyList[] = { "AUTO", "IPv6", "IPv4", NULL };
 
 #include <lmcons.h>
 
@@ -135,6 +136,14 @@
 	pvar->protocol_major = 0;
 	pvar->protocol_minor = 0;
 
+	/*
+	 * pvar->contents_after_known_hosts \x82͈Ӑ}\x93I\x82\xC9
+	 * init_TTSSH()\x82\xE2uninit_TTSSH()\x82ł͏\x89\x8A\xFA\x89\xBB\x82\xE2\x89\xF0\x95\xFA\x82\xF0\x82\xB5\x82Ȃ\xA2\x81B
+	 * \x82Ȃ\xBA\x82Ȃ\xE7\x82΁Aknown_hosts\x83_\x83C\x83A\x83\x8D\x83O\x82Ŏg\x97p\x82\xB7\x82邽\x82߂ł\xA0\x82\xE8\x81A
+	 * \x83_\x83C\x83A\x83\x8D\x83O\x82̕\\x8E\xA6\x92\x86\x82\xC9 TTXCloseTCP() \x82\xAA\x8CĂяo\x82\xB3\x82\xEA\x82邱\x82Ƃɂ\xE6\x82\xE8\x81A
+	 * pvar->contents_after_known_hosts \x82\xAA\x8F\x89\x8A\xFA\x89\xBB\x82\xE2\x89\xF0\x95\xFA\x82\xB3\x82\xEA\x82Ă͍\xA2\x82邩\x82\xE7\x82ł\xA0\x82\xE9\x81B
+	 */
+
 	PKT_init(pvar);
 	SSH_init(pvar);
 	CRYPT_init(pvar);
@@ -795,7 +804,11 @@
 
 		if (pvar->NotificationWindow == NULL) {
 			pvar->NotificationWindow = hWnd;
-			AUTH_advance_to_next_cred(pvar);
+			// AUTH_advance_to_next_cred()\x82̌Ăяo\x82\xB5\x82\xF0\x8D폜\x82\xB7\x82\xE9\x81B
+			// NotificationWindow\x82Ƀn\x83\x93\x83h\x83\x8B\x82͐ݒ肵\x82Ă\xA8\x82\xAD\x82\xAA\x81A\x82\xB1\x82̃^\x83C\x83~\x83\x93\x83O\x82ł\xCD
+			// \x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82\xF0\x8Fo\x82\xB7\x82̂͑\x81\x82\xB7\x82\xAC\x82\xBD\x81BProxy\x82\xE2NAT\x8Co\x97R\x82ŃT\x81[\x83o\x82ɐڑ\xB1
+			// \x82ł\xAB\x82Ȃ\xA2\x8Fꍇ\x81A\x82\xB7\x82łɐؒf\x8F\xF3\x91Ԃɂ\xE0\x8Aւ\xED\x82炸\x81A\x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82\xAA
+			// \x95\\x8E\xA6\x82\xB3\x82ꂽ\x82܂܂ƂȂ\xC1\x82Ă\xA2\x82\xBD\x81B
 		}
 	}
 
@@ -885,12 +898,24 @@
 	            pvar->socket, MAKELPARAM(FD_CLOSE, 0));
 }
 
+// non-fatal\x82\xA8\x82\xE6\x82\xD1fatal\x8E\x9E\x82̃G\x83\x89\x81[\x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8Ao\x82\xA6\x82Ă\xA8\x82\xAD\x81B
+// \x88\xEA\x93x\x81A\x8Ao\x82\xA6\x82\xBD\x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x82\xA0\x82\xEA\x82΁A\x89\xFC\x8Ds\x82\xF0\x8B\xB2\x82\xF1\x82Œlj\xC1\x82\xB5\x82Ă\xA2\x82\xAD\x81B
 static void add_err_msg(PTInstVar pvar, char *msg)
 {
 	if (pvar->err_msg != NULL) {
-		int buf_len = strlen(pvar->err_msg) + 3 + strlen(msg);
-		char *buf = (char *) malloc(buf_len);
+		int buf_len;
+		char *buf;
 
+		// \x82\xB7\x82łɓ\xAF\x82\xB6\x83\x81\x83b\x83Z\x81[\x83W\x82\xAA\x93o\x98^\x8Dς݂̏ꍇ\x82͒lj\xC1\x82\xB5\x82Ȃ\xA2\x81B
+		if (strstr(pvar->err_msg, msg)) 
+			return;
+		
+		buf_len = strlen(pvar->err_msg) + 3 + strlen(msg);
+		buf = malloc(buf_len);
+		// \x83\x81\x83\x82\x83\x8A\x82\xAA\x8Am\x95ۂł\xAB\x82Ȃ\xA2\x8Fꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2\x81B
+		if (buf == NULL) 
+			return;
+
 		strncpy_s(buf, buf_len, pvar->err_msg, _TRUNCATE);
 		strncat_s(buf, buf_len, "\n\n", _TRUNCATE);
 		strncat_s(buf, buf_len, msg, _TRUNCATE);
@@ -897,6 +922,7 @@
 		free(pvar->err_msg);
 		pvar->err_msg = buf;
 	} else {
+		// \x83\x81\x83\x82\x83\x8A\x82\xAA\x8Am\x95ۂł\xAB\x82Ȃ\xA2\x8Fꍇ\x82́A_strdup()\x82\xCDNULL\x82\xF0\x95Ԃ\xB7\x81B
 		pvar->err_msg = _strdup(msg);
 	}
 }
@@ -1126,6 +1152,10 @@
 
 		logputs(LOG_LEVEL_VERBOSE, "Terminating SSH session...");
 
+		// \x94F\x8F؃_\x83C\x83A\x83\x8D\x83O\x82\xAA\x8Ec\x82\xC1\x82Ă\xA2\x82\xEA\x82Ε‚\xB6\x82\xE9\x81B
+		HOSTS_notify_closing_on_exit(pvar);
+		AUTH_notify_closing_on_exit(pvar);
+
 		*hooks->Precv = pvar->Precv;
 		*hooks->Psend = pvar->Psend;
 		*hooks->PWSAAsyncSelect = pvar->PWSAAsyncSelect;
@@ -2729,11 +2759,22 @@
 	GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg);
 	SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_SSHSETUP_HELP, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("BTN_HELP", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_SSHSETUP_HELP, pvar->ts->UIMsg);
 
 	GetDlgItemText(dlg, IDC_HOSTKEY_ROTATION_STATIC, uimsg, sizeof(uimsg));
 	UTIL_get_lang_msg("DLG_SSHSETUP_HOSTKEY_ROTATION", pvar, uimsg);
 	SetDlgItemText(dlg, IDC_HOSTKEY_ROTATION_STATIC, pvar->ts->UIMsg);
 
+	GetDlgItemText(dlg, IDC_LOGLEVEL, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_LOGLEVEL", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_LOGLEVEL, pvar->ts->UIMsg);
+	GetDlgItemText(dlg, IDC_LOGLEVEL_UNIT, uimsg, sizeof(uimsg));
+	UTIL_get_lang_msg("DLG_SSHSETUP_LOGLEVEL_UNIT", pvar, uimsg);
+	SetDlgItemText(dlg, IDC_LOGLEVEL_UNIT, pvar->ts->UIMsg);
+
+
 	SendMessage(compressionControl, TBM_SETRANGE, TRUE, MAKELONG(0, 9));
 	SendMessage(compressionControl, TBM_SETPOS, TRUE,
 	            pvar->settings.CompressionLevel);
@@ -2895,6 +2936,15 @@
 		ch = 0;
 	SendMessage(hostkeyRotationControlList, CB_SETCURSEL, ch, 0);
 
+	// LogLevel
+	{
+		char buf[10];
+		_snprintf_s(buf, sizeof(buf), _TRUNCATE,
+		            "%d", pvar->settings.LogLevel);
+		SetDlgItemText(dlg, IDC_LOGLEVEL_VALUE, buf);
+	}
+
+
 }
 
 void get_teraterm_dir_relative_name(char *buf, int bufsize,
@@ -3157,6 +3207,13 @@
 	if (!(i >= 0 && i < SSH_UPDATE_HOSTKEYS_MAX))
 		i = 0;
 	pvar->settings.UpdateHostkeys = i;
+
+	// get LogLevel
+	SendMessage(GetDlgItem(dlg, IDC_LOGLEVEL_VALUE), WM_GETTEXT, sizeof(buf), (LPARAM)buf);
+	i = atoi(buf);
+	if (i < 0)
+		i = 0;
+	pvar->settings.LogLevel = i;
 }
 
 static void move_cur_sel_delta(HWND listbox, int delta)
@@ -3273,6 +3330,9 @@
 								   UI things can send this message */
 			EndDialog(dlg, 0);
 			return TRUE;
+		case IDC_SSHSETUP_HELP:
+			PostMessage(GetParent(dlg), WM_USER_DLGHELP2, HlpMenuSetupSsh, 0);
+			return TRUE;
 		// Cipher order
 		case IDC_SSHMOVECIPHERUP:
 			move_cur_sel_delta(GetDlgItem(dlg, IDC_SSHCIPHERPREFS), -1);
@@ -4229,6 +4289,9 @@
 		GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg));
 		UTIL_get_lang_msg("BTN_CLOSE", pvar, uimsg);
 		SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg);
+		GetDlgItemText(dlg, IDC_SSHKEYGENSETUP_HELP, uimsg, sizeof(uimsg));
+		UTIL_get_lang_msg("BTN_HELP", pvar, uimsg);
+		SetDlgItemText(dlg, IDC_SSHKEYGENSETUP_HELP, pvar->ts->UIMsg);
 		GetDlgItemText(dlg, IDC_BCRYPT_KDF_CHECK, uimsg, sizeof(uimsg));
 		UTIL_get_lang_msg("DLG_KEYGEN_BCRYPT_KDF", pvar, uimsg);
 		SetDlgItemText(dlg, IDC_BCRYPT_KDF_CHECK, pvar->ts->UIMsg);
@@ -4396,6 +4459,10 @@
 			EndDialog(dlg, 0); // dialog close
 			return TRUE;
 
+		case IDC_SSHKEYGENSETUP_HELP:
+			PostMessage(GetParent(dlg), WM_USER_DLGHELP2, HlpMenuSetupSshkeygen, 0);
+			return TRUE;
+
 		// if radio button pressed...
 		case IDC_RSA1_TYPE | (BN_CLICKED << 16):
 			if (isFixedLengthKey(key_type)) {
@@ -5056,6 +5123,10 @@
 		UTIL_SetDialogFont();
 		HOSTS_do_different_key_dialog(hWin, pvar);
 		return 1;
+	case ID_SSHDIFFERENT_TYPE_KEY:
+		UTIL_SetDialogFont();
+		HOSTS_do_different_type_key_dialog(hWin, pvar);
+		return 1;
 	case ID_SSHASYNCMESSAGEBOX:
 		if (pvar->err_msg != NULL) {
 			char *msg = pvar->err_msg;

Modified: branches/unicode_buf/ttssh2/ttxssh/ttxssh.h
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ttxssh.h	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ttxssh.h	2019-09-12 15:58:02 UTC (rev 8124)
@@ -108,6 +108,7 @@
 #define ID_SSHUNKNOWNHOST     62502
 #define ID_SSHDIFFERENTKEY    62503
 #define ID_SSHASYNCMESSAGEBOX 62504
+#define ID_SSHDIFFERENT_TYPE_KEY 62505
 
 #define OPTION_NONE     0
 #define OPTION_CLEAR    1
@@ -342,6 +343,8 @@
 	// dialog resource
 	HFONT hFontFixed;		// hosts.c\x93\xE0\x82̃_\x83C\x83A\x83\x8D\x83O\x97p
 
+	bottom_half_known_hosts_t contents_after_known_hosts;
+
 } TInstVar;
 
 // \x83o\x81[\x83W\x83\x87\x83\x93\x82ɍ\x87\x82킹\x82Ď\xA9\x93\xAE\x95ύX\x82\xB3\x82\xEA\x82\xE9\x81B \x97\xE1: TTSSH_2-81_TS_data

Modified: branches/unicode_buf/ttssh2/ttxssh/ttxssh.rc
===================================================================
--- branches/unicode_buf/ttssh2/ttxssh/ttxssh.rc	2019-09-12 15:34:32 UTC (rev 8123)
+++ branches/unicode_buf/ttssh2/ttxssh/ttxssh.rc	2019-09-12 15:58:02 UTC (rev 8124)
@@ -67,6 +67,7 @@
     CONTROL         "Remember password in &memory",IDC_REMEMBER_PASSWORD,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,61,132,10
     CONTROL         "F&orward agent",IDC_FORWARD_AGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,75,132,10
+    GROUPBOX        "Authentication methods ",IDC_SSHAUTHMETHOD,6,89,295,132
     CONTROL         "Use p&lain password to log in",IDC_SSHUSEPASSWORD,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,102,252,10
     CONTROL         "Use &RSA/DSA/ECDSA/ED25519 key to log in",IDC_SSHUSERSA,
@@ -85,7 +86,6 @@
     PUSHBUTTON      "...",IDC_CHOOSEHOSTRSAFILE,276,171,13,13
     DEFPUSHBUTTON   "OK",IDOK,199,227,50,14,WS_GROUP
     PUSHBUTTON      "&Disconnect",IDCANCEL,255,227,47,14
-    GROUPBOX        "Authentication methods ",IDC_STATIC,6,89,295,132
 END
 
 IDD_HOSTDLG DIALOGEX 20, 20, 240, 128
@@ -104,7 +104,7 @@
     EDITTEXT        IDC_HOSTTCPPORT,198,28,30,12,ES_NUMBER | WS_GROUP
     RTEXT           "SSH &version:",IDC_SSH_VERSION_LABEL,124,46,61,8
     COMBOBOX        IDC_SSH_VERSION,188,45,40,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    RTEXT           "Proto&col:",IDC_HOSTTCPPROTOCOLLABEL,135,63,46,8
+    RTEXT           "IP versio&n:",IDC_HOSTTCPPROTOCOLLABEL,126,63,56,8
     COMBOBOX        IDC_HOSTTCPPROTOCOL,185,62,44,43,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Po&rt:",IDC_HOSTCOMLABEL,58,89,34,8,NOT WS_GROUP
     COMBOBOX        IDC_HOSTCOM,95,87,133,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_GROUP | WS_TABSTOP
@@ -145,7 +145,6 @@
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,236,187,10
     CONTROL         "&Verify hostkey fingerprint by DNS",IDC_VERIFYHOSTKEYDNS,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,250,187,10
-    LTEXT           "All options take effect the next time a session is started.",IDC_NOTICEBANNER,216,250,187,12
     GROUPBOX        "K&EX order (SSH2 only)",IDC_KEX_ORDER,216,8,187,98
     LISTBOX         IDC_SSHKEX_LIST,230,20,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
     PUSHBUTTON      "Move Up(&3)",IDC_SSHKEX_MOVEUP,242,85,58,13,WS_GROUP
@@ -162,6 +161,10 @@
     LISTBOX         IDC_SSHCOMP_LIST,429,123,159,60,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
     PUSHBUTTON      "Move Up(&9)",IDC_SSHCOMP_MOVEUP,441,187,58,13,WS_GROUP
     PUSHBUTTON      "Move Down(&0)",IDC_SSHCOMP_MOVEDOWN,515,187,58,13
+    RTEXT           "&LogLevel",IDC_LOGLEVEL,221,223,43,8
+    EDITTEXT        IDC_LOGLEVEL_VALUE,270,220,30,14,ES_AUTOHSCROLL
+    LTEXT           "(0 to turn off)",IDC_LOGLEVEL_UNIT,307,223,93,8
+    LTEXT           "All options take effect the next time a session is started.",IDC_NOTICEBANNER,216,246,187,12
     LTEXT           "None",IDC_COMPRESSNONE,499,210,18,8
     LTEXT           "Highest",IDC_COMPRESSHIGH,576,210,25,8
     RTEXT           "&Compression level:",IDC_COMPRESSLABEL,422,218,62,13
@@ -169,6 +172,7 @@
     LTEXT           "SSH1: 'Compression level' determines compression on/off.\nSSH2: 'Compression order' and 'Compression level' determines compression on/off.",IDC_COMPRESSNOTE,423,245,188,25
     DEFPUSHBUTTON   "OK",IDOK,48,266,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,118,266,50,14
+    PUSHBUTTON      "Help",IDC_SSHSETUP_HELP,186,266,50,14
 END
 
 IDD_SSHUNKNOWNHOST DIALOGEX 0, 0, 260, 276
@@ -219,13 +223,13 @@
 FONT 8, "Tahoma", 0, 0, 0x0
 BEGIN
     LTEXT           "Select defaults for authentication:",IDC_SSHAUTHBANNER,6,7,166,10
-    GROUPBOX        "User name",IDC_STATIC,6,22,295,88
+    GROUPBOX        "User name",IDC_SSH_USERNAME,6,22,295,88
     CONTROL         "&Do not enter username",IDC_SSH_NO_USERNAME,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,35,152,10
     CONTROL         "U&se default username",IDC_SSH_DEFAULTUSERNAME,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,50,152,10
     CONTROL         "Us&e logon username",IDC_SSH_WINDOWS_USERNAME,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,78,152,10
     EDITTEXT        IDC_SSHUSERNAME,35,62,145,12,ES_AUTOHSCROLL | WS_GROUP
     LTEXT           "Current username is ""%s""",IDC_SSH_WINDOWS_USERNAME_TEXT,35,93,128,10
-    GROUPBOX        "Authentication methods ",IDC_STATIC,6,120,295,200
+    GROUPBOX        "Authentication methods ",IDC_SSH_AUTHMETHOD,6,120,295,200
     CONTROL         "Use p&lain password to log in",IDC_SSHUSEPASSWORD,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,134,120,10
     CONTROL         "Use &RSA/DSA/ECDSA/ED25519 key to log in",IDC_SSHUSERSA,
@@ -244,8 +248,9 @@
     PUSHBUTTON      "...",IDC_CHOOSEHOSTRSAFILE,210,246,15,14
     CONTROL         "&Check the enabled authentication methods before login (SSH2)",IDC_CHECKAUTH,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,303,281,10
-    DEFPUSHBUTTON   "OK",IDOK,195,324,50,14,WS_GROUP
-    PUSHBUTTON      "Cancel",IDCANCEL,251,324,50,14
+    DEFPUSHBUTTON   "OK",IDOK,128,324,50,14,WS_GROUP
+    PUSHBUTTON      "Cancel",IDCANCEL,190,324,50,14
+    PUSHBUTTON      "Help",IDC_SSHAUTHSETUP_HELP,251,324,50,14
 END
 
 IDD_SSHFWDSETUP DIALOGEX 0, 0, 309, 185
@@ -260,9 +265,10 @@
     PUSHBUTTON      "&Remove",IDC_REMOVE,195,105,50,14
     CONTROL         "Display remote &X applications on local X server",IDC_SSHFWDX11,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,139,274,14
-    DEFPUSHBUTTON   "OK",IDOK,86,164,50,14,WS_GROUP
-    PUSHBUTTON      "Cancel",IDCANCEL,173,164,50,14
+    DEFPUSHBUTTON   "OK",IDOK,53,164,50,14,WS_GROUP
+    PUSHBUTTON      "Cancel",IDCANCEL,143,164,50,14
     GROUPBOX        "X Forwarding",IDC_XFORWARD,6,130,296,27
+    PUSHBUTTON      "Help",IDC_SSHFWDSETUP_HELP,232,164,50,14
 END
 
 IDD_SSHFWDEDIT DIALOGEX 0, 0, 309, 175
@@ -317,7 +323,7 @@
 FONT 8, "Tahoma", 0, 0, 0x0
 BEGIN
     DEFPUSHBUTTON   "&Generate",IDOK,199,7,50,14
-    PUSHBUTTON      "Close",IDCANCEL,199,24,50,14
+    PUSHBUTTON      "Close",IDCANCEL,199,23,50,14
     GROUPBOX        "Key type",IDC_KEYTYPE,11,7,130,47
     CONTROL         "RS&A1",IDC_RSA1_TYPE,"Button",BS_AUTORADIOBUTTON,17,17,35,10
     CONTROL         "&RSA",IDC_RSA_TYPE,"Button",BS_AUTORADIOBUTTON,57,17,30,10
@@ -340,6 +346,7 @@
     EDITTEXT        IDC_BCRYPT_KDF_ROUNDS,182,117,25,12,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP
     PUSHBUTTON      "Save publ&ic key",IDC_SAVE_PUBLIC_KEY,49,135,68,14
     PUSHBUTTON      "Save &private key",IDC_SAVE_PRIVATE_KEY,133,135,68,14
+    PUSHBUTTON      "Help",IDC_SSHKEYGENSETUP_HELP,199,40,50,14
 END
 
 IDD_SSHSCP DIALOGEX 0, 0, 279, 125
@@ -494,7 +501,8 @@
     BEGIN
         LEFTMARGIN, 7
         RIGHTMARGIN, 612
-        TOPMARGIN, 4
+        VERTGUIDE, 146
+        TOPMARGIN, 7
         BOTTOMMARGIN, 282
     END
 


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