Revision: 7632 https://osdn.net/projects/ttssh2/scm/svn/commits/7632 Author: zmatsuo Date: 2019-04-27 02:18:36 +0900 (Sat, 27 Apr 2019) Log Message: ----------- Merge branch 'ssh_auth_dialog' into trunk Modified Paths: -------------- trunk/doc/en/html/menu/setup-sshauth.html trunk/doc/en/html/setup/teraterm-ini.html trunk/doc/en/html/usage/ssh.html trunk/doc/ja/html/image/Authentication.png trunk/doc/ja/html/menu/setup-sshauth.html trunk/doc/ja/html/setup/teraterm-ini.html trunk/doc/ja/html/usage/ssh.html trunk/installer/release/lang/English.lng trunk/installer/release/lang/French.lng trunk/installer/release/lang/German.lng trunk/installer/release/lang/Japanese.lng trunk/installer/release/lang/Korean.lng trunk/installer/release/lang/Russian.lng trunk/installer/release/lang/Simplified Chinese.lng trunk/installer/release/lang/Traditional Chinese.lng trunk/teraterm/teraterm/CMakeLists.txt trunk/ttssh2/ttxssh/auth.c trunk/ttssh2/ttxssh/auth.h trunk/ttssh2/ttxssh/resource.h trunk/ttssh2/ttxssh/ttxssh.c trunk/ttssh2/ttxssh/ttxssh.h trunk/ttssh2/ttxssh/ttxssh.rc -------------- next part -------------- Modified: trunk/doc/en/html/menu/setup-sshauth.html =================================================================== --- trunk/doc/en/html/menu/setup-sshauth.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/en/html/menu/setup-sshauth.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -15,7 +15,34 @@ <dl> <dt id="DefaultUserName">User name</dt> <dd> - Specify user name to be used for SSH connection. + Specify user name to be used for SSH connection.<br /> + When <a href="#CheckAuthListFirst">Check the supported authentication methods before login</a> was checked, you can not change user name. + <ul> + <li> + <dl> + <dt>Do not enter username</dt> + <dd> + Do not enter username. + </dd> + </li> + + <li> + <dl> + <dt>Use following username</dt> + <dd> + Use the username entered in the edit box.<br /> + However, nothing will be input if the edit box is empty. + </dd> + </li> + + <li> + <dl> + <dt>Use system username</dt> + <dd> + User system username, Windows logon username. + </dd> + </li> + </ul> </dd> <dt id="DefaultAuthMethod">Specify default authentication method.</dt> Modified: trunk/doc/en/html/setup/teraterm-ini.html =================================================================== --- trunk/doc/en/html/setup/teraterm-ini.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/en/html/setup/teraterm-ini.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -1621,6 +1621,12 @@ <td></td> </tr> <tr> + <td id="DefaultUserType"><a href="../menu/setup-sshauth.html#DefaultUserType">DefaultUserType</a></td> + <td style="width:250px;">1</td> + <td style="width:250px;"><-</td> + <td></td> + </tr> + <tr> <td id="DisablePopupMessage">DisablePopupMessage</td> <td style="width:250px;">0</td> <td style="width:250px;"><-</td> Modified: trunk/doc/en/html/usage/ssh.html =================================================================== --- trunk/doc/en/html/usage/ssh.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/en/html/usage/ssh.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -49,7 +49,8 @@ </p> <p id="ssh_auth_dialog"> - Once connected, then you will be prompted to select authentication method in a dialog. + Once connected, then you will be prompted to select authentication method in a dialog.<br /> + You can change default value in <a href="../menu/setup-sshauth.html">"TTSSH: Authentication Setup" dialog</a> </p> <div class="img"><img src="../image/Authentication.png" alt="Authentication method"></div> <p> @@ -66,6 +67,23 @@ <li>When the Pageant is used, check the [Use Pageant] and input your user name.</li> </ul> + <h3 id="username_input">Inputing Username</h3> + <p> + When this dialog is displayed, + username was entered according the <a href="../menu/setup-sshauth.html#DefaultUserName">setting</a>. + </p> + <p> + In addition, when the username is entered, or when the focus is moved from the input field after inputing username, + the server is accessed according to the <a href="../menu/setup-sshauth.html#CheckAuthListFirst">setting</a>. + </p> + <p> + You can select an option by pushing the button next to the username field. + <dl> + <dt>Paste Windows usename</dt> + <dd>Windows username was entered</dd> + </dl> + </p> + <h3 id="passwd_input">Inputing Password and Passphrase</h3> <p> The password and passphrase input box differs from normal dialog box. @@ -74,7 +92,27 @@ <li>Control character(0x01 - 0x1F) can be inputted by Control + A - Z, [, \, ], ^ and _.</li> <li>Control + V can not be used because the key equals SYN (0x16). Please use Shift + Insert combination for pasting.</li> </ul> + <p> + You can select an option by pushing the button next to the username field. + <dl> + <dt>Paste from clipboard</dt> + <dd>Paste from clipboard to password input box</dd> + <dt>Paste from clipboard and clear clipboard</dt> + <dd>Paste from clipboard to password input box, And clear clipboard</dd> + + <dt>Use control charactors</dt> + <dd>If checked, you can enter control characters, + but you can not perform operations such as paste clipboard paste with Control + V. + If it is not checked, you can not enter control characters, + but you can perform operations such as paste the clipboard with Control + V. + </dd> + + <dt>Show passphrase</dt> + <dd>You can choose to display the passphrase or not</dd> + </dl> + </p> + <h2 id="securitywarning">Security Warning</h2> <h3 id="known_hosts">ssh_known_hosts file</h3> Modified: trunk/doc/ja/html/image/Authentication.png =================================================================== (Binary files differ) Modified: trunk/doc/ja/html/menu/setup-sshauth.html =================================================================== --- trunk/doc/ja/html/menu/setup-sshauth.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/ja/html/menu/setup-sshauth.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -15,7 +15,34 @@ <dl> <dt id="DefaultUserName">User name</dt> <dd> - SSH \x90ڑ\xB1\x82ŗp\x82\xA2\x82郆\x81[\x83U\x96\xBC\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B + \x83\x86\x81[\x83U\x96\xBC\x82̎w\x92肪\x82Ȃ\xA2\x82Ƃ\xAB\x82Ƀf\x83t\x83H\x83\x8B\x83g\x82Ŏg\x97p\x82\xB7\x82郆\x81[\x83U\x96\xBC\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B<br /> + <a href="#CheckAuthListFirst">Check the supported authentication methods before login</a>\x82\xAA\x83`\x83F\x83b\x83N\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x82ƁA\x83\x86\x81[\x83U\x96\xBC\x82͕ύX\x82ł\xAB\x82Ȃ\xAD\x82Ȃ\xE8\x82܂\xB7\x81B + <ul> + <li> + <dl> + <dt>\x93\xFC\x97͂\xB5\x82Ȃ\xA2</dt> + <dd> + \x93\xFC\x97͂\xB5\x82܂\xB9\x82\xF1\x81B + </dd> + </li> + + <li> + <dl> + <dt>\x8E\x9F\x82̃\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p</dt> + <dd> + \x83G\x83f\x83B\x83b\x83g\x83{\x83b\x83N\x83X\x82ɓ\xFC\x97͂\xB3\x82ꂽ\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B<br /> + \x82\xBD\x82\xBE\x82\xB5\x81A\x83G\x83f\x83B\x83b\x83g\x83{\x83b\x83N\x83X\x82\xAA\x8B\xF3\x82̏ꍇ\x82͉\xBD\x82\xE0\x93\xFC\x97͂\xB3\x82\xEA\x82܂\xB9\x82\xF1 + </dd> + </li> + + <li> + <dl> + <dt>\x83V\x83X\x83e\x83\x80\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p</dt> + <dd> + \x83V\x83X\x83e\x83\x80\x83\x86\x81[\x83U\x96\xBC(Windows\x82̃\x8D\x83O\x83I\x83\x93\x83\x86\x81[\x83U)\x82\xF0\x8Eg\x97p\x82\xB5\x82܂\xB7\x81B + </dd> + </li> + </ul> </dd> <dt id="DefaultAuthMethod">\x83f\x83t\x83H\x83\x8B\x83g\x82Ŏg\x97p\x82\xB7\x82\xE9\x94F\x8Fؕ\xFB\x96@\x82\xF0\x90ݒ肵\x82܂\xB7\x81B</dt> Modified: trunk/doc/ja/html/setup/teraterm-ini.html =================================================================== --- trunk/doc/ja/html/setup/teraterm-ini.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/ja/html/setup/teraterm-ini.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -1627,6 +1627,12 @@ <td></td> </tr> <tr> + <td id="DefaultUserType"><a href="../menu/setup-sshauth.html#DefaultUserType">DefaultUserType</a></td> + <td style="width:250px;">1</td> + <td style="width:250px;"><-</td> + <td></td> + </tr> + <tr> <td id="DisablePopupMessage">DisablePopupMessage</td> <td style="width:250px;">0</td> <td style="width:250px;"><-</td> Modified: trunk/doc/ja/html/usage/ssh.html =================================================================== --- trunk/doc/ja/html/usage/ssh.html 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/doc/ja/html/usage/ssh.html 2019-04-26 17:18:36 UTC (rev 7632) @@ -3,7 +3,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> - <TITLE>SSH \x90ڑ\xB1</title> + <title>SSH \x90ڑ\xB1</title> <META http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="../style.css" type="text/css"> </head> @@ -48,7 +48,8 @@ </p> <p id="ssh_auth_dialog"> - \x90ڑ\xB1\x82\xB7\x82\xE9\x82ƁA\x8D\xA1\x93x\x82͔F\x8Fؕ\xFB\x96@\x82\xF0\x91I\x91\xF0\x82\xB7\x82\xE9\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x8C\xBB\x82\xEA\x82܂\xB7\x81B + \x90ڑ\xB1\x82\xB7\x82\xE9\x82ƁA\x8D\xA1\x93x\x82͔F\x8Fؕ\xFB\x96@\x82\xF0\x91I\x91\xF0\x82\xB7\x82\xE9\x83_\x83C\x83A\x83\x8D\x83O\x82\xAA\x8C\xBB\x82\xEA\x82܂\xB7\x81B<br /> + \x83f\x83t\x83H\x83\x8B\x83g\x92l\x82\xF0<a href="../menu/setup-sshauth.html">"TTSSH: Authentication Setup" \x83_\x83C\x83A\x83\x8D\x83O\x83{\x83b\x83N\x83X</a>\x82Őݒ肷\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B </p> <div class="img"><img src="../image/Authentication.png" alt="\x94F\x8Fؕ\xFB\x96@"></div> <p> @@ -65,15 +66,54 @@ <li>Pageant \x82\xF0\x97p\x82\xA2\x82ĔF\x8F\xB7\x82\xE9\x8Fꍇ\x82́uUse Pageant\x81v\x82Ƀ`\x83F\x83b\x83N\x82\xF0\x82\xAF\x81A\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x93\xFC\x97͂\xB5\x82܂\xB7\x81B</li> </ul> + <h3 id="username_input">\x83\x86\x81[\x83U\x81[\x96\xBC\x93\xFC\x97\xCD</h3> + <p> + \x82\xB1\x82̃_\x83C\x83A\x83\x8D\x83O\x82\xAA\x95\\x8E\xA6\x82\xB3\x82ꂽ\x82Ƃ\xAB\x82\xC9 + <a href="../menu/setup-sshauth.html#DefaultUserName">\x90ݒ\xE8</a>\x82ɂ\xE6\x82\xC1\x82Ă\xA0\x82炩\x82\xB6\x82\xDF + \x83\x86\x81[\x83U\x81[\x96\xBC\x82\xAA\x93\xFC\x97͂\xB3\x82\xEA\x82܂\xB7\x81B + </p> + <p> + \x82܂\xBD\x81A + \x83\x86\x81[\x83U\x81[\x96\xBC\x82\xAA\x93\xFC\x97͂\xB3\x82\xEA\x82Ă\xA2\x82\xBD\x8E\x9E\x81A\x82܂\xBD\x82́A\x83\x86\x81[\x83U\x81[\x96\xBC\x82\xF0\x93\xFC\x97͂\xB5\x82ē\xFC\x97͗\x93\x82\xA9\x82\xE7\x83t\x83H\x81[\x83J\x83X\x82\xAA\x88ړ\xAE\x82\xB5\x82\xBD\x8E\x9E\x81A + <a href="../menu/setup-sshauth.html#CheckAuthListFirst">\x90ݒ\xE8</a>\x82ɂ\xE6\x82\xC1\x82ăT\x81[\x83o\x81[\x82փA\x83N\x83Z\x83X\x82\xB5\x82܂\xB7\x81B + </p> + <p> + \x83\x86\x81[\x83U\x81[\x96\xBC\x82̓\xFC\x97͗\x93\x82̉\xA1\x82̃{\x83^\x83\x93\x82\xF0\x89\x9F\x82\xB7\x82ƃI\x83v\x83V\x83\x87\x83\x93\x82\xF0\x91I\x91\xF0\x82ł\xAB\x82܂\xB7\x81B + <dl> + <dt>Paste Windows usename</dt> + <dd>Windows\x82̃\x86\x81[\x83U\x81[\x96\xBC\x82\xF0\x93\xFC\x97͂\xB5\x82܂\xB7\x81B</dd> + </dl> + </p> + <h3 id="passwd_input">\x83p\x83X\x83\x8F\x81[\x83h / \x83p\x83X\x83t\x83\x8C\x81[\x83Y\x93\xFC\x97\xCD</h3> <p> \x83p\x83X\x83\x8F\x81[\x83h / \x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82̓\xFC\x97͗\x93\x82́A\x92ʏ\xED\x82̃_\x83C\x83A\x83\x8D\x83O\x82ƈႢ\x88ȉ\xBA\x82̂悤\x82ȓ\xAE\x8D\xEC\x82ƂȂ\xE8\x82܂\xB7\x81B </p> <ul> - <li>Control + A \x81` Z, [, \, ], ^, _ \x82Ő\xA7\x8C䕶\x8E\x9A (0x01 - 0x1F) \x82\xF0\x93\xFC\x97͂ł\xAB\x82܂\xB7\x81B</li> + <li>Control + A \x81` Z, [, \, ], ^, _ \x82Ő\xA7\x8C䕶\x8E\x9A (0x01 - 0x1F) \x82\xF0\x93\xFC\x97͂ł\xAB\x82܂\xB7\x81B\x82\xB1\x82̓\xAE\x8D삪\x83f\x83t\x83H\x83\x8B\x83g\x82ł\xB7</li> <li>Control + V \x82\xCD SYN (0x16) \x82̓\xFC\x97͂ƂȂ\xE8\x82܂\xB7\x82̂ŁA\x93\\x82\xE8\x95t\x82\xAF\x82ɂ͗\x98\x97p\x82ł\xAB\x82܂\xB9\x82\xF1\x81B\x93\\x82\xE8\x95t\x82\xAF\x82\xF0\x8Ds\x82\xA4\x82ɂ\xCD Shift + Insert \x82\xF0\x8Eg\x97p\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B</li> </ul> + <p> + \x93\xFC\x97͗\x93\x82̉\xA1\x82̃{\x83^\x83\x93\x82\xF0\x89\x9F\x82\xB7\x82ƃI\x83v\x83V\x83\x87\x83\x93\x82\xF0\x91I\x91\xF0\x82ł\xAB\x82܂\xB7\x81B + <dl> + <dt>Paste from clipboard</dt> + <dd>\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82\xF0\x83y\x81[\x83X\x83g\x82\xB5\x82܂\xB7\x81B</dd> + <dt>Paste from clipboard and clear clipboard</dt> + <dd>\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82\xF0\x83y\x81[\x83X\x83g\x82\xB5\x82ăN\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xF0\x8B\xF3\x82ɂ\xB5\x82܂\xB7\x81B</dd> + + <dt>Use control charactors</dt> + <dd>\x83`\x83F\x83b\x83N\x82\xAA\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9\x82Ɛ\xA7\x8C䕶\x8E\x9A\x82\xF0\x93\xFC\x97͂\xB7\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x82\xAA\x81A + Control + V\x82ŃN\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82̃y\x81[\x83X\x83g\x93\x99\x82̑\x80\x8D\xEC\x82͂ł\xAB\x82܂\xB9\x82\xF1\x81B + \x83`\x83F\x83b\x83N\x82\xAA\x93\xFC\x82\xC1\x82Ă\xA2\x82Ȃ\xA2\x82Ɛ\xA7\x8C䕶\x8E\x9A\x82\xF0\x93\xFC\x97͂ł\xAB\x82܂\xB9\x82A + Control + V\x82ŃN\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82̃y\x81[\x83X\x83g\x93\x99\x82̑\x80\x8D삪\x89\\x82ł\xB7\x81B + </dd> + + <dt>Show passphrase</dt> + <dd>\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82\xF0\x95\\x8E\xA6\x82\xB7\x82邩\x81A\x95\x9A\x8E\x9A\x82ɂ\xB7\x82邩\x91I\x91\xF0\x82ł\xAB\x82܂\xB7</dd> + </dl> + </p> + <h2 id="securitywarning">\x83Z\x83L\x83\x85\x83\x8A\x83e\x83B\x8Cx\x8D\x90</h2> <h3 id="known_hosts">ssh_known_hosts \x83t\x83@\x83C\x83\x8B</h3> Modified: trunk/installer/release/lang/English.lng =================================================================== --- trunk/installer/release/lang/English.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/English.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) [Tera Term] DLG_SYSTEM_FONT=System,14,0 @@ -581,7 +581,12 @@ DLG_AUTH_BANNER2=Authentication required. DLG_AUTH_BANNER2_FAILED=Authentication failed. Please retry. DLG_AUTH_USERNAME=User &name: +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=&Passphrase: +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase DLG_AUTH_REMEMBER_PASSWORD=Remember password on &memory DLG_AUTH_FWDAGENT=F&orward agent DLG_AUTH_METHOD_PASSWORD=Use p&lain password to log in @@ -601,7 +606,10 @@ ; 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_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" 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) Modified: trunk/installer/release/lang/French.lng =================================================================== --- trunk/installer/release/lang/French.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/French.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (French language) by Francois MOCQ (2010-07-21) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=Authentification requise. DLG_AUTH_BANNER2_FAILED=Authentification \xE9chou\xE9e. R\xE9essayez. DLG_AUTH_USERNAME=&Nom d'utilisateur: +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=&Phrase secr\xE8te: +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +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_PASSWORD=Utiliser mot de passe pour la connexion @@ -604,7 +609,10 @@ ; dlg auth setup DLG_AUTHSETUP_TITLE=TTSSH: Configuration de l'authentification DLG_AUTHSETUP_BANNER=Configuration par d\xE9faut: -DLG_AUTHSETUP_USERNAME=Nom d'utilisateur: +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" 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) Modified: trunk/installer/release/lang/German.lng =================================================================== --- trunk/installer/release/lang/German.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/German.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (German language) by Frederik Schwarzer (2010-05-17) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=Authentifikation notwendig. DLG_AUTH_BANNER2_FAILED=Authentifikation fehlgeschlagen. Bitte versuchen Sie es erneut. DLG_AUTH_USERNAME=Benutzername: +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=Passphrase: +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase DLG_AUTH_REMEMBER_PASSWORD=Passphrase speichern DLG_AUTH_FWDAGENT=F&orward agent DLG_AUTH_METHOD_PASSWORD=Passwortauthentifikation verwenden @@ -604,7 +609,10 @@ ; dlg auth setup DLG_AUTHSETUP_TITLE=TTSSH: Authentifikation-Einstellungen DLG_AUTHSETUP_BANNER=Standard-Einstellungen f\xFCr Authentifikation: -DLG_AUTHSETUP_USERNAME=Benutzername: +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" DLG_AUTHSETUP_METHOD_PASSWORD=Passwortauthentifikation verwenden DLG_AUTHSETUP_METHOD_RSA=DSA/RSA/ECDSA/ED25519-Schl\xFCssel verwenden DLG_AUTHSETUP_METHOD_RHOST=rhosts verwenden (SSH1) Modified: trunk/installer/release/lang/Japanese.lng =================================================================== --- trunk/installer/release/lang/Japanese.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/Japanese.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) [Tera Term] DLG_SYSTEM_FONT=\x82l\x82r \x82o\x83S\x83V\x83b\x83N,12,128 @@ -581,7 +581,12 @@ DLG_AUTH_BANNER2=\x94F\x8F\xAA\x95K\x97v\x82ł\xB7. DLG_AUTH_BANNER2_FAILED=\x94F\x8FɎ\xB8\x94s\x82\xB5\x82܂\xB5\x82\xBD. \x8DĎ\x8E\x8Ds\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2. DLG_AUTH_USERNAME=\x83\x86\x81[\x83U\x96\xBC(&N): +DLG_AUTH_PASTE_WINDOWS_USERNAME=\x83V\x83X\x83e\x83\x80\x83\x86\x81[\x83U\x96\xBC\x82\xF0\x83y\x81[\x83X\x83g(&W) DLG_AUTH_PASSWORD=\x83p\x83X\x83t\x83\x8C\x81[\x83Y(&P): +DLG_AUTH_PASTE_CLIPBOARD=\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83y\x81[\x83X\x83g(&C) +DLG_AUTH_CLEAR_CLIPBOARD=\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83y\x81[\x83X\x83g\x82\xB5\x82\xBD\x8C\xE3\x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xF0\x83N\x83\x8A\x83A\x82\xB7\x82\xE9(&E) +DLG_AUTH_USE_CONTORL_CHARACTERS=\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82ɐ\xA7\x8C\xE4\x83R\x81[\x83h\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9(&T) +DLG_AUTH_SHOW_PASSPHRASE=\x83p\x83X\x83t\x83\x8C\x81[\x83Y\x82\xF0\x95\\x8E\xA6\x82\xB7\x82\xE9(&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_PASSWORD=\x83v\x83\x8C\x83C\x83\x93\x83p\x83X\x83\x8F\x81[\x83h\x82\xF0\x8Eg\x82\xA4(&L) @@ -601,7 +606,10 @@ ; 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_USERNAME=\x83\x86\x81[\x83U\x96\xBC(&N): +DLG_AUTHSETUP_NO_USERNAME=\x93\xFC\x97͂\xB5\x82Ȃ\xA2(&D) +DLG_AUTHSETUP_USERNAME=\x8E\x9F\x82̃\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p(&N): +DLG_AUTHSETUP_SYSTEM_USERNAME=\x83V\x83X\x83e\x83\x80\x82̃\x86\x81[\x83U\x96\xBC\x82\xF0\x8Eg\x97p(&E): +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=\x8C\xBB\x8D݂̃\x8D\x83O\x83C\x83\x93\x83\x86\x81[\x83U\x96\xBC "%s" 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) Modified: trunk/installer/release/lang/Korean.lng =================================================================== --- trunk/installer/release/lang/Korean.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/Korean.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (Korean language) by Daehong Kim (2013-07-25) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=\xC0\xCE\xC1\xF5\xC0\xCC \xC7ʿ\xE4\xC7\xD4. DLG_AUTH_BANNER2_FAILED=\xC0\xCF\xC1\xF5 \xBD\xC7\xC6\xD0. \xB4ٽ\xC3 \xBDõ\xB5\xC7\xD8\xC1ּ\xBC\xBF\xE4. DLG_AUTH_USERNAME=\xBB\xE7\xBF\xEB\xC0\xDA \xC0̸\xA7(&N): +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=\xBE\xCFȣ(&P): +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +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_PASSWORD=\xC0Ϲ\xDD\xC5ؽ\xBAƮ \xBE\xCFȣ \xB7α\xD7\xC0\xCE(&L) @@ -604,7 +609,10 @@ ; 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=\xBB\xE7\xBF\xEB\xC0\xDA \xC0̸\xA7(&N): +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" 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) Modified: trunk/installer/release/lang/Russian.lng =================================================================== --- trunk/installer/release/lang/Russian.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/Russian.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (Russian language) by Ryumik Sergey (2017-07-19) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=\xD2\xF0\xE5\xE1\xF3\xE5\xF2\xF1\xFF \xE0\xF3\xF2\xE5\xED\xF2\xE8\xF4\xE8\xEA\xE0\xF6\xE8\xFF. DLG_AUTH_BANNER2_FAILED=\xCE\xF8\xE8\xE1\xEA\xE0 \xE0\xF3\xF2\xE5\xED\xF2\xE8\xF4\xE8\xEA\xE0\xF6\xE8\xE8. \xCF\xEE\xE2\xF2\xEE\xF0\xE8\xF2\xE5 \xEF\xEE\xEF\xFB\xF2\xEA\xF3. DLG_AUTH_USERNAME=&\xC8\xEC\xFF \xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xE5\xEB\xFF: +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=&\xD4\xF0\xE0\xE7\xE0 \xEF\xE0\xF0\xEE\xEB\xFF: +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +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_PASSWORD=&\xC2\xF5\xEE\xE4 \xF1 \xEF\xF0\xEE\xF1\xF2\xFB\xEC \xEF\xE0\xF0\xEE\xEB\xE5\xEC @@ -604,7 +609,10 @@ ; 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=&\xC8\xEC\xFF: +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" 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) Modified: trunk/installer/release/lang/Simplified Chinese.lng =================================================================== --- trunk/installer/release/lang/Simplified Chinese.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/Simplified Chinese.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (Simplified Chinese language) by LiShaohui (2017-04-11) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=\xD0\xE8Ҫ\xC8\xCF֤\xA1\xA3 DLG_AUTH_BANNER2_FAILED=\xC8\xCF֤ʧ\xB0ܣ\xAC\xC7\xEB\xD6\xD8\xCAԡ\xA3 DLG_AUTH_USERNAME=\xD3û\xA7\xC3\xFB(&N)\xA3\xBA +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=\xC3\xDC\xC2\xEB(&P)\xA3\xBA +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +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_PASSWORD=ʹ\xD3ü\xC4\xC3\xDC\xC2\xEB\xC0\xB4\xB5\xC7¼(&L) @@ -604,7 +609,10 @@ ; 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=\xD3û\xA7\xC3\xFB(&N)\xA3\xBA +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" 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) Modified: trunk/installer/release/lang/Traditional Chinese.lng =================================================================== --- trunk/installer/release/lang/Traditional Chinese.lng 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/installer/release/lang/Traditional Chinese.lng 2019-04-26 17:18:36 UTC (rev 7632) @@ -1,4 +1,4 @@ -; Updated by TeraTerm Project (2019-04-22) +; Updated by TeraTerm Project (2019-04-24) ; Last translated (Traditional Chinese language) by kikiqqp (2014-09-20) [Tera Term] @@ -582,7 +582,12 @@ DLG_AUTH_BANNER2=\xBBݭn\xBB{\xC3ҡC DLG_AUTH_BANNER2_FAILED=\xBB{\xC3ҥ\xA2\xB1ѡA\xBDЭ\xAB\xB8աC DLG_AUTH_USERNAME=\xA5Τ\xE1\xA6W(&N)\xA1G +DLG_AUTH_PASTE_WINDOWS_USERNAME=Paste &Windows Username DLG_AUTH_PASSWORD=\xB1K\xBDX(&P)\xA1G +DLG_AUTH_PASTE_CLIPBOARD=Paste from &clipboard +DLG_AUTH_CLEAR_CLIPBOARD=Paste from clipboard and cl&ear clipboard +DLG_AUTH_USE_CONTORL_CHARACTERS=Use control charac&ters +DLG_AUTH_SHOW_PASSPHRASE=&Show passphrase DLG_AUTH_REMEMBER_PASSWORD=\xB0O\xA6\xED\xB1K\xBDX(&M) DLG_AUTH_FWDAGENT=\xA5N\xB2z\xC2\xE0\xB5o(&O) DLG_AUTH_METHOD_PASSWORD=\xA8ϥ\xCE²\xB3檺\xB1K\xBDX\xA8ӵn\xBF\xFD(&L) @@ -604,7 +609,10 @@ ; dlg auth setup DLG_AUTHSETUP_TITLE=TTSSH\xA1G\xBB{\xC3ҳ]\xA9w DLG_AUTHSETUP_BANNER=\xB3]\xA9w\xC0q\xBB{\xBB{\xC3Ҹ\xEA\xB0T\xA1G -DLG_AUTHSETUP_USERNAME=\xA5Τ\xE1\xA6W(&N)\xA1G +DLG_AUTHSETUP_NO_USERNAME=&Do not enter username +DLG_AUTHSETUP_USERNAME=U&se following username +DLG_AUTHSETUP_SYSTEM_USERNAME=Us&e system username +DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT=urrent username is "%s" DLG_AUTHSETUP_METHOD_PASSWORD=\xA8ϥ\xCE²\xB3檺\xB1K\xBDX\xA8ӵn\xBF\xFD(&L) DLG_AUTHSETUP_METHOD_RSA=\xA8ϥ\xCE &RSA/DSA/ECDSA/ED25519 \xB1K\xC6_\xB5n\xBF\xFD DLG_AUTHSETUP_METHOD_RHOST=\xA8ϥ\xCE r&hosts \xB5n\xBF\xFD(SSH1) Modified: trunk/teraterm/teraterm/CMakeLists.txt =================================================================== --- trunk/teraterm/teraterm/CMakeLists.txt 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/teraterm/teraterm/CMakeLists.txt 2019-04-26 17:18:36 UTC (rev 7632) @@ -198,7 +198,8 @@ ) # copy .lng files -if(${CMAKE_GENERATOR} MATCHES "Visual Studio 15 2017") +if(${MSVC_VERSION} GREATER_EQUAL 1910) + # Visual Studio 2017以上の時 add_custom_target( copy_lang ALL DEPENDS Modified: trunk/ttssh2/ttxssh/auth.c =================================================================== --- trunk/ttssh2/ttxssh/auth.c 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/auth.c 2019-04-26 17:18:36 UTC (rev 7632) @@ -38,6 +38,7 @@ #include <fcntl.h> #include <stdlib.h> #include <errno.h> +#include <Lmcons.h> // for UNLEN #include <crtdbg.h> #include "resource.h" @@ -85,8 +86,17 @@ WNDPROC ProcOrg; PTInstVar pvar; TipWin *tipwin; + BOOL *UseControlChar; } TPasswordControlData; +static void password_wnd_proc_close_tooltip(TPasswordControlData *data) +{ + if (data->tipwin != NULL) { + TipWinDestroy(data->tipwin); + data->tipwin = NULL; + } +} + static LRESULT CALLBACK password_wnd_proc(HWND control, UINT msg, WPARAM wParam, LPARAM lParam) { @@ -94,7 +104,9 @@ TPasswordControlData *data = (TPasswordControlData *)GetWindowLongPtr(control, GWLP_USERDATA); switch (msg) { case WM_CHAR: - if ((GetKeyState(VK_CONTROL) & 0x8000) != 0) { + if ((data->UseControlChar == NULL || *data->UseControlChar == TRUE) && + (GetKeyState(VK_CONTROL) & 0x8000) != 0) + { // \x90\xA7\x8C䕶\x8E\x9A\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9 && CTRL\x83L\x81[\x82\xAA\x89\x9F\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9 TCHAR chars[] = { (TCHAR) wParam, 0 }; SendMessage(control, EM_REPLACESEL, (WPARAM) TRUE, @@ -118,17 +130,11 @@ return 0; } else { - if (data->tipwin != NULL) { - TipWinDestroy(data->tipwin); - data->tipwin = NULL; - } + password_wnd_proc_close_tooltip(data); } break; case WM_KILLFOCUS: - if (data->tipwin != NULL) { - TipWinDestroy(data->tipwin); - data->tipwin = NULL; - } + password_wnd_proc_close_tooltip(data); break; } @@ -137,10 +143,7 @@ if (msg == WM_NCDESTROY) { SetWindowLongPtr(control, GWLP_WNDPROC, (LONG_PTR)data->ProcOrg); - if (data->tipwin != NULL) { - TipWinDestroy(data->tipwin); - data->tipwin = NULL; - } + password_wnd_proc_close_tooltip(data); free(data); } @@ -147,7 +150,7 @@ return result; } -void init_password_control(PTInstVar pvar, HWND dlg, int item) +void init_password_control(PTInstVar pvar, HWND dlg, int item, BOOL *UseControlChar) { HWND passwordControl = GetDlgItem(dlg, item); TPasswordControlData *data = (TPasswordControlData *)malloc(sizeof(TPasswordControlData)); @@ -154,6 +157,7 @@ data->ProcOrg = (WNDPROC)GetWindowLongPtr(passwordControl, GWLP_WNDPROC); data->pvar = pvar; data->tipwin = NULL; + data->UseControlChar = UseControlChar; SetWindowLongPtr(passwordControl, GWLP_WNDPROC, (LONG_PTR)password_wnd_proc); SetWindowLongPtr(passwordControl, GWLP_USERDATA, (LONG_PTR)data); SetFocus(passwordControl); @@ -171,7 +175,7 @@ EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), (!TIS_enabled && !PAGEANT_enabled)); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), (!TIS_enabled && !PAGEANT_enabled)); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), (!TIS_enabled && !PAGEANT_enabled)); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), (!TIS_enabled && !PAGEANT_enabled)); for (i = IDC_CHOOSERSAFILE; i <= IDC_RSAFILENAME; i++) { EnableWindow(GetDlgItem(dlg, i), RSA_enabled); @@ -242,62 +246,32 @@ } } -static void init_auth_dlg(PTInstVar pvar, HWND dlg) +static void init_auth_dlg(PTInstVar pvar, HWND dlg, BOOL *UseControlChar) { + const static DlgTextInfo text_info[] = { + { 0, "DLG_AUTH_TITLE" }, + { IDC_SSHAUTHBANNER, "DLG_AUTH_BANNER" }, + { IDC_SSHAUTHBANNER2, "DLG_AUTH_BANNER2" }, + { IDC_SSHUSERNAMELABEL, "DLG_AUTH_USERNAME" }, + { IDC_SSHPASSWORDCAPTION, "DLG_AUTH_PASSWORD" }, + { IDC_REMEMBER_PASSWORD, "DLG_AUTH_REMEMBER_PASSWORD" }, + { IDC_FORWARD_AGENT, "DLG_AUTH_FWDAGENT" }, + { IDC_SSHUSEPASSWORD, "DLG_AUTH_METHOD_PASSWORD" }, + { IDC_SSHUSERSA, "DLG_AUTH_METHOD_RSA" }, + { IDC_SSHUSERHOSTS, "DLG_AUTH_METHOD_RHOST" }, + { IDC_SSHUSEPAGEANT, "DLG_AUTH_METHOD_PAGEANT" }, + { IDC_RSAFILENAMELABEL, "DLG_AUTH_PRIVATEKEY" }, + { IDC_LOCALUSERNAMELABEL, "DLG_AUTH_LOCALUSER" }, + { IDC_HOSTRSAFILENAMELABEL, "DLG_AUTH_HOST_PRIVATEKEY" }, + { IDOK, "BTN_OK" }, + { IDCANCEL, "BTN_DISCONNECT" }, + }; int default_method = pvar->session_settings.DefaultAuthMethod; - char uimsg[MAX_UIMSG]; - GetWindowText(dlg, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_TITLE", pvar, uimsg); - SetWindowText(dlg, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHAUTHBANNER, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_BANNER", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHAUTHBANNER, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHAUTHBANNER2, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_BANNER2", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHAUTHBANNER2, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERNAMELABEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_USERNAME", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERNAMELABEL, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHPASSWORDCAPTION, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_PASSWORD", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHPASSWORDCAPTION, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_REMEMBER_PASSWORD, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_REMEMBER_PASSWORD", pvar, uimsg); - SetDlgItemText(dlg, IDC_REMEMBER_PASSWORD, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_FORWARD_AGENT, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_FWDAGENT", pvar, uimsg); - SetDlgItemText(dlg, IDC_FORWARD_AGENT, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSEPASSWORD, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_METHOD_PASSWORD", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSEPASSWORD, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERSA, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_METHOD_RSA", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERSA, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERHOSTS, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_METHOD_RHOST", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERHOSTS, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSEPAGEANT, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_METHOD_PAGEANT", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSEPAGEANT, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_CHOOSERSAFILE, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_PRIVATEKEY", pvar, uimsg); - SetDlgItemText(dlg, IDC_CHOOSERSAFILE, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_LOCALUSERNAMELABEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_LOCALUSER", pvar, uimsg); - SetDlgItemText(dlg, IDC_LOCALUSERNAMELABEL, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_CHOOSEHOSTRSAFILE, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_HOST_PRIVATEKEY", pvar, uimsg); - SetDlgItemText(dlg, IDC_CHOOSEHOSTRSAFILE, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("BTN_OK", pvar, uimsg); - SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("BTN_DISCONNECT", pvar, uimsg); - SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); + SetI18DlgStrs("TTSSH", dlg, text_info, _countof(text_info), pvar->ts->UILanguageFile); init_auth_machine_banner(pvar, dlg); - init_password_control(pvar, dlg, IDC_SSHPASSWORD); + init_password_control(pvar, dlg, IDC_SSHPASSWORD, UseControlChar); // \x94F\x8F؎\xB8\x94s\x8C\xE3\x82̓\x89\x83x\x83\x8B\x82\xF0\x8F\x91\x82\xAB\x8A\xB7\x82\xA6 if (pvar->auth_state.failed_method != SSH_AUTH_NONE) { @@ -333,6 +307,7 @@ if (pvar->auth_state.user != NULL) { SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->auth_state.user); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE); } else if (strlen(pvar->ssh2_username) > 0) { @@ -339,12 +314,38 @@ SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->ssh2_username); if (pvar->ssh2_autologin == 1) { EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE); } } - else if (pvar->session_settings.DefaultUserName[0] != 0) { - SetDlgItemText(dlg, IDC_SSHUSERNAME, - pvar->session_settings.DefaultUserName); + else { + switch(pvar->session_settings.DefaultUserType) { + case 0: + // \x93\xFC\x97͂\xB5\x82Ȃ\xA2 + break; + case 1: + // use DefaultUserName + if (pvar->session_settings.DefaultUserName[0] == 0) { + // \x81u\x93\xFC\x97͂\xB5\x82Ȃ\xA2\x81v\x82ɂ\xB5\x82Ă\xA8\x82\xAD + pvar->session_settings.DefaultUserType = 0; + } else { + SetDlgItemText(dlg, IDC_SSHUSERNAME, + pvar->session_settings.DefaultUserName); + } + break; + case 2: { + TCHAR user_name[UNLEN+1]; + DWORD len = _countof(user_name); + BOOL r = GetUserName(user_name, &len); + if (r != 0) { + SetDlgItemText(dlg, IDC_SSHUSERNAME, user_name); + } + break; + } + default: + // \x93\xFC\x97͂\xB5\x82Ȃ\xA2\x82ɂ\xB5\x82Ă\xA8\x82\xAD + pvar->session_settings.DefaultUserType = 0; + } } if (strlen(pvar->ssh2_password) > 0) { @@ -352,7 +353,7 @@ if (pvar->ssh2_autologin == 1) { EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); } } @@ -379,7 +380,7 @@ } else if (pvar->ssh2_authmethod == SSH_AUTH_TIS) { CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSETIS); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); SetDlgItemText(dlg, IDC_SSHPASSWORD, ""); // /auth=pageant \x82\xF0\x92lj\xC1 @@ -386,7 +387,7 @@ } else if (pvar->ssh2_authmethod == SSH_AUTH_PAGEANT) { CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPAGEANT); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); SetDlgItemText(dlg, IDC_SSHPASSWORD, ""); } else { @@ -798,6 +799,8 @@ PTInstVar pvar; // LOGFONT logfont; // HFONT font; + static BOOL UseControlChar; + static BOOL ShowPassPhrase; switch (msg) { case WM_INITDIALOG: @@ -805,7 +808,9 @@ pvar->auth_state.auth_dialog = dlg; SetWindowLong(dlg, DWL_USER, lParam); - init_auth_dlg(pvar, dlg); + UseControlChar = TRUE; + ShowPassPhrase = FALSE; + init_auth_dlg(pvar, dlg, &UseControlChar); #if 0 font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0); GetObject(font, sizeof(LOGFONT), &logfont); @@ -836,6 +841,7 @@ DlgAuthFont = NULL; } #endif + // SSH2 autologin\x82\xAA\x97L\x8C\xF8\x82̏ꍇ\x82́A\x83^\x83C\x83}\x82\xF0\x8Ed\x8A|\x82\xAF\x82\xE9\x81B (2004.12.1 yutaka) if (pvar->ssh2_autologin == 1) { autologin_sent_none = FALSE; @@ -918,6 +924,7 @@ // \x83\x86\x81[\x83U\x96\xBC\x82\xF0\x95ύX\x82\xB3\x82\xB9\x82Ȃ\xA2 EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); // \x94F\x8F\x81\x83\\x83b\x83h none \x82𑗂\xE9 do_SSH2_userauth(pvar); @@ -1011,6 +1018,7 @@ // \x83\x86\x81[\x83U\x96\xBC\x82\xF0\x95ύX\x82\xB3\x82\xB9\x82Ȃ\xA2 EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); // \x94F\x8F\x81\x83\\x83b\x83h none \x82𑗂\xE9 do_SSH2_userauth(pvar); @@ -1041,14 +1049,115 @@ pvar->session_settings.ForwardAgent = IsDlgButtonChecked(dlg, IDC_FORWARD_AGENT); return TRUE; - case IDC_FROM_CLIPBOARD: { - char *clipboard = GetClipboardTextA(dlg, TRUE); - if (clipboard != NULL) { - SetDlgItemTextA(dlg, IDC_SSHPASSWORD, clipboard); - free(clipboard); - SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDOK), TRUE); - return FALSE; + case IDC_SSHPASSWORD_OPTION: { + TCHAR uimsg[MAX_UIMSG]; + HMENU hMenu= CreatePopupMenu(); + GetI18nStrT("TTSSH", "DLG_AUTH_PASTE_CLIPBOARD", + uimsg, _countof(uimsg), + "Paste from &clipboard", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 1, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_CLEAR_CLIPBOARD", + uimsg, _countof(uimsg), + "Paste from &clipboard and cl&ear clipboard", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 2, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_USE_CONTORL_CHARACTERS", + uimsg, _countof(uimsg), + "Use control charac&ters", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING | (UseControlChar ? MFS_CHECKED : 0), 3, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_SHOW_PASSPHRASE", + uimsg, _countof(uimsg), + "&Show passphrase", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING | (ShowPassPhrase ? MFS_CHECKED : 0), 4, uimsg); + RECT rect; + HWND hWndButton = GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION); + GetWindowRect(hWndButton, &rect); + int result = TrackPopupMenu(hMenu, TPM_RETURNCMD, rect.left, rect.bottom, 0 , hWndButton, NULL); + DestroyMenu(hMenu); + switch(result) { + case 1: + case 2: { + // \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83y\x81[\x83X\x83g + BOOL clear_clipboard = result == 2; + char *clipboard = GetClipboardTextA(dlg, clear_clipboard); + if (clipboard != NULL) { + SetDlgItemTextA(dlg, IDC_SSHPASSWORD, clipboard); + free(clipboard); + SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); + return FALSE; + } + return TRUE; } + case 3: + // \x90\xA7\x8C\xE4\x83R\x81[\x83h\x8Eg\x97p/\x96\xA2\x8Eg\x97p + UseControlChar = !UseControlChar; + break; + case 4: + // \x83p\x83X\x83t\x83\x8C\x81[\x83Y\x95\\x8E\xA6/\x94\xF1\x95\\x8E\xA6 + ShowPassPhrase = !ShowPassPhrase; + { + // \x95\x9A\x82\xB9\x8E\x9A on/off \x82\xF0\x90\xE8\x91ւ\xA6\x82\xE9 + HWND hWnd = GetDlgItem(dlg, IDC_SSHPASSWORD); + static wchar_t password_char; + if (password_char == 0) { + wchar_t c = (wchar_t)SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, 0); + password_char = c; + } + if (ShowPassPhrase) { + SendMessage(hWnd, EM_SETPASSWORDCHAR, 0, 0); + } else { +#if !defined(UNICODE) + if (password_char < 0x100) { + SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); + } else { + // TODO W\x8Cn\x92\xBC\x8CĂ\xD1 \x81\xAB\x82\xA4\x82܂\xAD\x82\xA2\x82\xA9\x82Ȃ\xA2 + //SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); + SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)'*', 0); + } +#else + SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); +#endif + } + //InvalidateRect(hWnd, NULL, TRUE); + SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); + return TRUE; + } + break; + } + break; + } + + case IDC_USERNAME_OPTION: { + TCHAR uimsg[MAX_UIMSG]; + HMENU hMenu= CreatePopupMenu(); + GetI18nStrT("TTSSH", "DLG_AUTH_PASTE_WINDOWS_USERNAME", + uimsg, _countof(uimsg), + "Paste &Windows username", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 1, uimsg); + RECT rect; + HWND hWndButton = GetDlgItem(dlg, IDC_USERNAME_OPTION); + GetWindowRect(hWndButton, &rect); + int result = TrackPopupMenu(hMenu, TPM_RETURNCMD, rect.left, rect.bottom, 0 , hWndButton, NULL); + DestroyMenu(hMenu); + switch (result) { + case 1: { + TCHAR user_name[UNLEN+1]; + DWORD len = _countof(user_name); + BOOL r = GetUserName(user_name, &len); + if (r != 0) { + SetDlgItemText(dlg, IDC_SSHUSERNAME, user_name); + SendDlgItemMessage(dlg, IDC_SSHUSERNAME, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHUSERNAME), TRUE); + } + break; + } + } return TRUE; } @@ -1225,7 +1334,7 @@ SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); init_auth_machine_banner(pvar, dlg); - init_password_control(pvar, dlg, IDC_SSHPASSWORD); + init_password_control(pvar, dlg, IDC_SSHPASSWORD, NULL); if (pvar->auth_state.TIS_prompt != NULL) { if (strlen(pvar->auth_state.TIS_prompt) > 10000) { @@ -1363,50 +1472,32 @@ static void init_default_auth_dlg(PTInstVar pvar, HWND dlg) { - char uimsg[MAX_UIMSG]; + int id; + TCHAR user_name[UNLEN+1]; + DWORD len; + TCHAR uimsg[MAX_UIMSG]; + TCHAR uimsg2[MAX_UIMSG]; + const static DlgTextInfo text_info[] = { + { 0, "DLG_AUTHSETUP_TITLE" }, + { IDC_SSHAUTHBANNER, "DLG_AUTHSETUP_BANNER" }, + { IDC_SSH_NO_USERNAME, "DLG_AUTHSETUP_NO_USERNAME" }, + { IDC_SSH_DEFAULTUSERNAME, "DLG_AUTHSETUP_USERNAME" }, + { IDC_SSH_WINDOWS_USERNAME, "DLG_AUTHSETUP_SYSTEM_USERNAME" }, + { IDC_SSH_WINDOWS_USERNAME_TEXT, "DLG_AUTHSETUP_SYSTEM_USERNAME_TEXT" }, + { IDC_SSHUSEPASSWORD, "DLG_AUTHSETUP_METHOD_PASSWORD" }, + { IDC_SSHUSERSA, "DLG_AUTHSETUP_METHOD_RSA" }, + { IDC_SSHUSERHOSTS, "DLG_AUTHSETUP_METHOD_RHOST" }, + { IDC_SSHUSETIS, "DLG_AUTHSETUP_METHOD_CHALLENGE" }, + { IDC_SSHUSEPAGEANT, "DLG_AUTHSETUP_METHOD_PAGEANT" }, + { IDC_RSAFILENAMELABEL, "DLG_AUTH_PRIVATEKEY" }, + { IDC_LOCALUSERNAMELABEL, "DLG_AUTH_LOCALUSER" }, + { IDC_HOSTRSAFILENAMELABEL, "DLG_AUTH_HOST_PRIVATEKEY" }, + { IDC_CHECKAUTH, "DLG_AUTHSETUP_CHECKAUTH" }, + { IDOK, "BTN_OK" }, + { IDCANCEL, "BTN_CANCEL" }, + }; - GetWindowText(dlg, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_TITLE", pvar, uimsg); - SetWindowText(dlg, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHAUTHBANNER, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_BANNER", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHAUTHBANNER, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERNAMELABEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_USERNAME", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERNAMELABEL, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSEPASSWORD, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_METHOD_PASSWORD", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSEPASSWORD, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERSA, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_METHOD_RSA", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERSA, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSERHOSTS, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_METHOD_RHOST", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSERHOSTS, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSETIS, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_METHOD_CHALLENGE", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_SSHUSEPAGEANT, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_METHOD_PAGEANT", pvar, uimsg); - SetDlgItemText(dlg, IDC_SSHUSEPAGEANT, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_CHOOSERSAFILE, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_PRIVATEKEY", pvar, uimsg); - SetDlgItemText(dlg, IDC_CHOOSERSAFILE, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_LOCALUSERNAMELABEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_LOCALUSER", pvar, uimsg); - SetDlgItemText(dlg, IDC_LOCALUSERNAMELABEL, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_CHOOSEHOSTRSAFILE, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTH_HOST_PRIVATEKEY", pvar, uimsg); - SetDlgItemText(dlg, IDC_CHOOSEHOSTRSAFILE, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDC_CHECKAUTH, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("DLG_AUTHSETUP_CHECKAUTH", pvar, uimsg); - SetDlgItemText(dlg, IDC_CHECKAUTH, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("BTN_OK", pvar, uimsg); - SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); - GetDlgItemText(dlg, IDCANCEL, uimsg, sizeof(uimsg)); - UTIL_get_lang_msg("BTN_CANCEL", pvar, uimsg); - SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); + SetI18DlgStrs("TTSSH", dlg, text_info, _countof(text_info), pvar->ts->UILanguageFile); switch (pvar->settings.DefaultAuthMethod) { case SSH_AUTH_RSA: @@ -1443,6 +1534,22 @@ if (pvar->settings.CheckAuthListFirst) { CheckDlgButton(dlg, IDC_CHECKAUTH, TRUE); } + + if (pvar->session_settings.DefaultUserName[0] == 0) { + // \x8B\xF3\x82Ȃ̂Łu\x93\xFC\x97͂\xB5\x82Ȃ\xA2\x81v\x82ɂ\xB5\x82Ă\xA8\x82\xAD + pvar->session_settings.DefaultUserType = 0; + } + id = pvar->settings.DefaultUserType == 1 ? IDC_SSH_DEFAULTUSERNAME : + pvar->settings.DefaultUserType == 2 ? IDC_SSH_WINDOWS_USERNAME : + IDC_SSH_NO_USERNAME; + CheckRadioButton(dlg, IDC_SSH_NO_USERNAME, IDC_SSH_WINDOWS_USERNAME, id); + + len = _countof(user_name); + GetUserName(user_name, &len); + + GetDlgItemText(dlg, IDC_SSH_WINDOWS_USERNAME_TEXT, uimsg, _countof(uimsg)); + _stprintf_s(uimsg2, _countof(uimsg2), uimsg, user_name); + SetDlgItemText(dlg, IDC_SSH_WINDOWS_USERNAME_TEXT, uimsg2); } static BOOL end_default_auth_dlg(PTInstVar pvar, HWND dlg) @@ -1474,6 +1581,9 @@ GetDlgItemText(dlg, IDC_LOCALUSERNAME, pvar->settings.DefaultRhostsLocalUserName, sizeof(pvar->settings.DefaultRhostsLocalUserName)); + pvar->settings.DefaultUserType = + IsDlgButtonChecked(dlg, IDC_SSH_DEFAULTUSERNAME) ? 1 : + IsDlgButtonChecked(dlg, IDC_SSH_WINDOWS_USERNAME) ? 2 : 0; if (IsDlgButtonChecked(dlg, IDC_CHECKAUTH)) { pvar->settings.CheckAuthListFirst = TRUE; Modified: trunk/ttssh2/ttxssh/auth.h =================================================================== --- trunk/ttssh2/ttxssh/auth.h 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/auth.h 2019-04-26 17:18:36 UTC (rev 7632) @@ -73,7 +73,7 @@ void AUTH_notify_end_error(PTInstVar pvar); void AUTH_end(PTInstVar pvar); void destroy_malloced_string(char **str); -void init_password_control(PTInstVar pvar, HWND dlg, int item); +void init_password_control(PTInstVar pvar, HWND dlg, int item, BOOL *UseControlChar); #define AUTH_get_cur_cred(pvar) (&(pvar)->auth_state.cur_cred) Modified: trunk/ttssh2/ttxssh/resource.h =================================================================== --- trunk/ttssh2/ttxssh/resource.h 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/resource.h 2019-04-26 17:18:36 UTC (rev 7632) @@ -117,7 +117,6 @@ #define IDC_ECDSA256_TYPE 1067 #define IDC_HISTORY_LABEL 1068 #define IDC_ECDSA384_TYPE 1068 -#define IDC_EDIT1 1069 #define IDC_FINGER_PRINT 1069 #define IDC_SENDFILE_EDIT 1069 #define IDC_PASSWD 1069 @@ -177,7 +176,6 @@ #define IDC_RECVFILE_TO 1101 #define IDC_CHOOSEHOSTRSAFILE 1102 #define IDC_HOSTRSAFILENAME 1103 -#define IDC_EDIT3 1103 #define IDC_FP_RANDOMART 1103 #define IDC_CONFIRM_PASSWD 1103 #define IDC_TTSSH_ICON 1104 @@ -201,7 +199,6 @@ #define IDC_SSHUSEPAGEANT 1205 #define IDC_SSHUSETIS2 1206 #define IDC_REMEMBERPASSWORD 1207 -#define IDC_EDIT2 1208 #define IDC_SENDFILE_TO 1208 #define IDC_SFTP_CONSOLE 1208 #define IDC_REMOVEKEY_EDIT 1208 @@ -227,15 +224,22 @@ #define IDC_SSHDYNFROMPORT 1228 #define IDC_SSHFWDLOCALDYNAMIC_LISTEN 1229 #define IDC_SSHDYNLISTENADDR 1230 -#define IDC_FROM_CLIPBOARD 1231 +#define IDC_SSHPASSWORD_OPTION 1231 +#define IDC_USERNAME_OPTION 1232 +#define IDC_HOSTRSAFILENAMELABEL 1235 +#define IDC_RSAFILENAMELABEL 1236 +#define IDC_SSH_NO_USERNAME 1237 +#define IDC_SSH_DEFAULTUSERNAME 1238 +#define IDC_SSH_WINDOWS_USERNAME 1239 +#define IDC_SSH_WINDOWS_USERNAME_TEXT 1241 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 115 +#define _APS_NEXT_RESOURCE_VALUE 118 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1232 +#define _APS_NEXT_CONTROL_VALUE 1242 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif Modified: trunk/ttssh2/ttxssh/ttxssh.c =================================================================== --- trunk/ttssh2/ttxssh/ttxssh.c 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/ttxssh.c 2019-04-26 17:18:36 UTC (rev 7632) @@ -446,6 +446,8 @@ } READ_STD_STRING_OPTION(DefaultUserName); + settings->DefaultUserType = GetPrivateProfileInt("TTSSH", "DefaultUserType", 1, fileName); + READ_STD_STRING_OPTION(DefaultForwarding); READ_STD_STRING_OPTION(DefaultRhostsLocalUserName); READ_STD_STRING_OPTION(DefaultRhostsHostPrivateKeyFile); @@ -570,6 +572,8 @@ _itoa(settings->CompressionLevel, buf, 10); WritePrivateProfileString("TTSSH", "Compression", buf, fileName); + _itoa(settings->DefaultUserType, buf, 10); + WritePrivateProfileString("TTSSH", "DefaultUserType", buf, fileName); WritePrivateProfileString("TTSSH", "DefaultUserName", settings->DefaultUserName, fileName); @@ -4398,8 +4402,8 @@ } #endif - init_password_control(pvar, dlg, IDC_KEY_EDIT); - init_password_control(pvar, dlg, IDC_CONFIRM_EDIT); + init_password_control(pvar, dlg, IDC_KEY_EDIT, NULL); + init_password_control(pvar, dlg, IDC_CONFIRM_EDIT, NULL); // default key type SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0); Modified: trunk/ttssh2/ttxssh/ttxssh.h =================================================================== --- trunk/ttssh2/ttxssh/ttxssh.h 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/ttxssh.h 2019-04-26 17:18:36 UTC (rev 7632) @@ -136,6 +136,8 @@ typedef struct _TS_SSH { BOOL Enabled; int CompressionLevel; /* 0 = NONE, else 1-9 */ + + int DefaultUserType; /* 0/1/2 = no input/DefaultUserName/Windows logon user */ char DefaultUserName[256]; /* this next option is a string of digits. Each digit represents a Modified: trunk/ttssh2/ttxssh/ttxssh.rc =================================================================== --- trunk/ttssh2/ttxssh/ttxssh.rc 2019-04-26 17:16:12 UTC (rev 7631) +++ trunk/ttssh2/ttxssh/ttxssh.rc 2019-04-26 17:18:36 UTC (rev 7632) @@ -19,10 +19,8 @@ // \x89p\x8C\xEA (\x95č\x91) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) -#endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // @@ -51,42 +49,41 @@ DEFPUSHBUTTON "OK",IDOK,112,310,50,14 END -IDD_SSHAUTH DIALOGEX 0, 0, 330, 262 +IDD_SSHAUTH DIALOGEX 0, 0, 307, 247 STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "SSH Authentication" FONT 8, "Tahoma", 0, 0, 0x0 BEGIN LTEXT "Logging in to %s",IDC_SSHAUTHBANNER,6,3,166,10 - LTEXT "Authentication required.",IDC_SSHAUTHBANNER2,6,16,296,10 - RTEXT "User &name:",IDC_SSHUSERNAMELABEL,13,31,57,8,0,WS_EX_RIGHT - EDITTEXT IDC_SSHUSERNAME,75,29,145,12,ES_AUTOHSCROLL - RTEXT "&Passphrase:",IDC_SSHPASSWORDCAPTION,14,48,56,8,0,WS_EX_RIGHT - EDITTEXT IDC_SSHPASSWORD,75,46,145,12,ES_PASSWORD | ES_AUTOHSCROLL - PUSHBUTTON "&From Clipboard",IDC_FROM_CLIPBOARD,225,46,60,14 + LTEXT "Authentication required.",IDC_SSHAUTHBANNER2,6,16,281,10 + LTEXT "User &name:",IDC_SSHUSERNAMELABEL,17,31,46,8 + EDITTEXT IDC_SSHUSERNAME,73,29,146,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_USERNAME_OPTION,224,28,14,14,BS_BITMAP + LTEXT "&Passphrase:",IDC_SSHPASSWORDCAPTION,17,46,47,8 + EDITTEXT IDC_SSHPASSWORD,73,44,146,12,ES_PASSWORD | ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SSHPASSWORD_OPTION,224,43,14,14 CONTROL "Remember password in &memory",IDC_REMEMBER_PASSWORD, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,61,132,10 - CONTROL "F&orward agent",IDC_FORWARD_AGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,75,74,132,10 + "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 CONTROL "Use p&lain password to log in",IDC_SSHUSEPASSWORD, - "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,94,219,10 + "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,102,252,10 CONTROL "Use &RSA/DSA/ECDSA/ED25519 key to log in",IDC_SSHUSERSA, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,122,152,10 - CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,149,99,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,16,115,251,10 + CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,140,250,10 CONTROL "Use SSH1:challenge/response(&TIS) / SSH2:keyboard-interactive to log in",IDC_SSHUSETIS, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,193,300,10 - CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,219,276,10 - PUSHBUTTON "Private &key file:",IDC_CHOOSERSAFILE,169,120,58,14,WS_GROUP - EDITTEXT IDC_RSAFILENAME,231,121,89,13,ES_AUTOHSCROLL - RTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,120,150,91,8,0,WS_EX_RIGHT - EDITTEXT IDC_LOCALUSERNAME,214,148,106,13,ES_AUTOHSCROLL - PUSHBUTTON "Host private key &file:",IDC_CHOOSEHOSTRSAFILE,92,164,73,14 - EDITTEXT IDC_HOSTRSAFILENAME,169,164,151,13,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,96,242,50,14,WS_GROUP - PUSHBUTTON "&Disconnect",IDCANCEL,183,242,50,14 - GROUPBOX "",IDC_STATIC,6,85,320,25 - GROUPBOX "",IDC_STATIC,6,113,320,25 - GROUPBOX "",IDC_STATIC,6,140,320,42 - GROUPBOX "",IDC_STATIC,6,184,320,25 - GROUPBOX "",IDC_STATIC,6,210,320,25 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,187,252,10 + CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,203,249,8 + LTEXT "Private &key file:",IDC_RSAFILENAMELABEL,29,129,88,8 + EDITTEXT IDC_RSAFILENAME,122,127,150,13,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CHOOSERSAFILE,276,127,13,13,WS_GROUP + LTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,29,155,88,8 + EDITTEXT IDC_LOCALUSERNAME,122,153,106,13,ES_AUTOHSCROLL + LTEXT "Host private key &file:",IDC_HOSTRSAFILENAMELABEL,28,173,88,8 + EDITTEXT IDC_HOSTRSAFILENAME,122,171,151,13,ES_AUTOHSCROLL + 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 @@ -214,37 +211,39 @@ DEFPUSHBUTTON "&Disconnect",IDCANCEL,145,256,50,14,WS_GROUP END -IDD_SSHAUTHSETUP DIALOGEX 0, 0, 330, 228 +IDD_SSHAUTHSETUP DIALOGEX 0, 0, 305, 345 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "TTSSH: Authentication Setup" FONT 8, "Tahoma", 0, 0, 0x0 BEGIN LTEXT "Select defaults for authentication:",IDC_SSHAUTHBANNER,6,7,166,10 - LTEXT "User &name:",IDC_SSHUSERNAMELABEL,13,24,57,8,0,WS_EX_RIGHT - EDITTEXT IDC_SSHUSERNAME,75,22,145,12,ES_AUTOHSCROLL + GROUPBOX "User name",IDC_STATIC,6,22,295,88 + CONTROL "&Do not enter username",IDC_SSH_NO_USERNAME,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,35,152,10 + CONTROL "U&se following username",IDC_SSH_DEFAULTUSERNAME,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,50,152,10 + CONTROL "Us&e system username",IDC_SSH_WINDOWS_USERNAME,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,78,152,10 + EDITTEXT IDC_SSHUSERNAME,35,62,145,12,ES_AUTOHSCROLL + LTEXT "Current username is ""%s""",IDC_SSH_WINDOWS_USERNAME_TEXT,35,93,128,10 + GROUPBOX "Authentication methods ",IDC_STATIC,6,120,295,200 CONTROL "Use p&lain password to log in",IDC_SSHUSEPASSWORD, - "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,45,120,10 + "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,134,120,10 CONTROL "Use &RSA/DSA/ECDSA/ED25519 key to log in",IDC_SSHUSERSA, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,73,152,10 - CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,100,99,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,148,152,10 + CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,191,99,10 CONTROL "Use SSH1:challenge/response(&TIS) / SSH2:keyboard-interactive to log in",IDC_SSHUSETIS, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,144,300,10 - CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,171,278,10 - PUSHBUTTON "Private &key file:",IDC_CHOOSERSAFILE,169,72,58,14,WS_GROUP - EDITTEXT IDC_RSAFILENAME,231,73,89,13,ES_AUTOHSCROLL - RTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,118,100,91,8,0,WS_EX_RIGHT - EDITTEXT IDC_LOCALUSERNAME,214,99,106,13,ES_AUTOHSCROLL - PUSHBUTTON "Host private key &file:",IDC_CHOOSEHOSTRSAFILE,92,114,73,14 - EDITTEXT IDC_HOSTRSAFILENAME,169,115,151,13,ES_AUTOHSCROLL + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,271,282,10 + CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,19,286,278,10 + LTEXT "Private &key file:",IDC_RSAFILENAMELABEL,35,160,144,8 + EDITTEXT IDC_RSAFILENAME,46,172,153,13,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CHOOSERSAFILE,207,172,15,14,WS_GROUP + LTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,35,206,91,8 + EDITTEXT IDC_LOCALUSERNAME,46,219,106,13,ES_AUTOHSCROLL + LTEXT "Host private key &file:",IDC_HOSTRSAFILENAMELABEL,35,234,165,8 + EDITTEXT IDC_HOSTRSAFILENAME,46,247,151,13,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CHOOSEHOSTRSAFILE,210,246,15,14 CONTROL "&Check the enabled authentication methods before login (SSH2)",IDC_CHECKAUTH, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,192,281,10 - DEFPUSHBUTTON "OK",IDOK,96,207,50,14,WS_GROUP - PUSHBUTTON "Cancel",IDCANCEL,183,207,50,14 - GROUPBOX "",IDC_STATIC,6,36,320,25 - GROUPBOX "",IDC_STATIC,6,64,320,25 - GROUPBOX "",IDC_STATIC,6,91,320,42 - GROUPBOX "",IDC_STATIC,6,135,320,25 - GROUPBOX "",IDC_STATIC,6,162,320,25 + "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 END IDD_SSHFWDSETUP DIALOGEX 0, 0, 309, 185 @@ -449,7 +448,7 @@ // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN IDD_ABOUTDIALOG, DIALOG BEGIN @@ -463,8 +462,23 @@ BEGIN LEFTMARGIN, 6 RIGHTMARGIN, 302 + VERTGUIDE, 17 + VERTGUIDE, 28 + VERTGUIDE, 40 + VERTGUIDE, 73 + VERTGUIDE, 117 + VERTGUIDE, 122 + VERTGUIDE, 219 + VERTGUIDE, 224 + VERTGUIDE, 276 + VERTGUIDE, 287 TOPMARGIN, 3 - BOTTOMMARGIN, 256 + BOTTOMMARGIN, 241 + HORZGUIDE, 35 + HORZGUIDE, 50 + HORZGUIDE, 133 + HORZGUIDE, 159 + HORZGUIDE, 177 END IDD_HOSTDLG, DIALOG @@ -501,9 +515,12 @@ IDD_SSHAUTHSETUP, DIALOG BEGIN LEFTMARGIN, 6 - RIGHTMARGIN, 302 + RIGHTMARGIN, 301 + VERTGUIDE, 19 + VERTGUIDE, 35 + VERTGUIDE, 46 TOPMARGIN, 7 - BOTTOMMARGIN, 221 + BOTTOMMARGIN, 338 END IDD_SSHFWDSETUP, DIALOG @@ -602,7 +619,10 @@ 2 TEXTINCLUDE BEGIN - "#include ""afxres.h""\r\n" + "#include <windows.h>\r\n" + "#ifndef IDC_STATIC\r\n" + "#define IDC_STATIC -1\r\n" + "#endif\r\n" "\0" END @@ -623,8 +643,27 @@ // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_SECURETT ICON "ttsecure.ico" + IDI_SECURETT_GREEN ICON "ttsecure_green.ico" + IDI_SECURETT_YELLOW ICON "ttsecure_yellow.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_SSHAUTH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_SSHAUTHSETUP AFX_DIALOG_LAYOUT +BEGIN + 0 +END + #endif // \x89p\x8C\xEA (\x95č\x91) resources /////////////////////////////////////////////////////////////////////////////