svnno****@sourc*****
svnno****@sourc*****
2017年 6月 12日 (月) 19:43:29 JST
Revision: 6799 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6799 Author: doda Date: 2017-06-12 19:43:28 +0900 (Mon, 12 Jun 2017) Log Message: ----------- SSHv1 で端末サイズ変更時にピクセル単位での値も送るようにした。 Modified Paths: -------------- trunk/doc/en/html/about/history.html trunk/doc/ja/html/about/history.html trunk/ttssh2/ttxssh/ssh.c -------------- next part -------------- Modified: trunk/doc/en/html/about/history.html =================================================================== --- trunk/doc/en/html/about/history.html 2017-06-12 10:43:25 UTC (rev 6798) +++ trunk/doc/en/html/about/history.html 2017-06-12 10:43:28 UTC (rev 6799) @@ -2918,6 +2918,8 @@ <!--li>Bug fixes <ul> <li>\x83p\x83X\x83\x8F\x81[\x83h\x94F\x8F؎\x9E\x82̃p\x83X\x83\x8F\x81[\x83h\x95ύX\x83_\x83C\x83A\x83\x8D\x83O\x82ŃL\x83\x83\x83\x93\x83Z\x83\x8B\x82\xB5\x82\xBD\x8E\x9E\x82ɁA\x83f\x83o\x83b\x83O\x83\x8D\x83O\x82ɃS\x83~\x82\xAA\x8Fo\x97͂\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + <li>SSHv1 \x90ڑ\xB1\x8E\x9E\x82̃E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y\x95ύX\x92ʒm\x82ŁA\x90\xB3\x82\xB5\x82\xA2\x83E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y(\x83s\x83N\x83Z\x83\x8B\x90\x94)\x82\xF0\x92ʒm\x82\xB7\x82\xE9\x82悤\x82ɏC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + <li>When the window size change is notified, the right window size(pixel) can be reported.</li> </ul> </li--> Modified: trunk/doc/ja/html/about/history.html =================================================================== --- trunk/doc/ja/html/about/history.html 2017-06-12 10:43:25 UTC (rev 6798) +++ trunk/doc/ja/html/about/history.html 2017-06-12 10:43:28 UTC (rev 6799) @@ -2924,6 +2924,7 @@ <li>\x83o\x83O\x8FC\x90\xB3 <ul> <li>\x83p\x83X\x83\x8F\x81[\x83h\x94F\x8F؎\x9E\x82̃p\x83X\x83\x8F\x81[\x83h\x95ύX\x83_\x83C\x83A\x83\x8D\x83O\x82ŃL\x83\x83\x83\x93\x83Z\x83\x8B\x82\xB5\x82\xBD\x8E\x9E\x82ɁA\x83f\x83o\x83b\x83O\x83\x8D\x83O\x82ɃS\x83~\x82\xAA\x8Fo\x97͂\xB3\x82\xEA\x82\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + <li>SSHv1 \x90ڑ\xB1\x8E\x9E\x82̃E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y\x95ύX\x92ʒm\x82ŁA\x90\xB3\x82\xB5\x82\xA2\x83E\x83B\x83\x93\x83h\x83E\x83T\x83C\x83Y(\x83s\x83N\x83Z\x83\x8B\x90\x94)\x82\xF0\x92ʒm\x82\xB7\x82\xE9\x82悤\x82ɏC\x90\xB3\x82\xB5\x82\xBD\x81B</li> </ul> </li> Modified: trunk/ttssh2/ttxssh/ssh.c =================================================================== --- trunk/ttssh2/ttxssh/ssh.c 2017-06-12 10:43:25 UTC (rev 6798) +++ trunk/ttssh2/ttxssh/ssh.c 2017-06-12 10:43:28 UTC (rev 6799) @@ -127,8 +127,8 @@ static BOOL SSH_agent_response(PTInstVar pvar, Channel_t *c, int local_channel_num, unsigned char *data, unsigned int buflen); 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); - // // Global request confirm // @@ -2197,13 +2197,16 @@ static const int msgs[] = { SSH_SMSG_SUCCESS, SSH_SMSG_FAILURE }; static const SSHPacketHandler handlers[] = { handle_pty_success, handle_pty_failure }; + int x, y; + get_window_pixel_size(pvar, &x, &y); + set_uint32(outmsg, len); memcpy(outmsg + 4, pvar->ts->TermType, len); set_uint32(outmsg + 4 + len, pvar->ssh_state.win_rows); set_uint32(outmsg + 4 + len + 4, pvar->ssh_state.win_cols); - set_uint32(outmsg + 4 + len + 8, 0); - set_uint32(outmsg + 4 + len + 12, 0); + set_uint32(outmsg + 4 + len + 8, x); + set_uint32(outmsg + 4 + len + 12, y); memcpy(outmsg + 4 + len + 16, ssh_ttymodes, sizeof(ssh_ttymodes)); finish_send_packet(pvar); @@ -2815,7 +2818,7 @@ } } -void get_window_pixel_size(PTInstVar pvar, int *x, int *y) +static void get_window_pixel_size(PTInstVar pvar, int *x, int *y) { RECT r; @@ -2838,6 +2841,8 @@ pvar->ssh_state.win_cols = cols; pvar->ssh_state.win_rows = rows; + get_window_pixel_size(pvar, &x, &y); + if (SSHv1(pvar)) { if (get_handler(pvar, SSH_SMSG_STDOUT_DATA) == handle_data) { unsigned char FAR *outmsg = @@ -2845,8 +2850,8 @@ set_uint32(outmsg, rows); set_uint32(outmsg + 4, cols); - set_uint32(outmsg + 8, 0); - set_uint32(outmsg + 12, 0); + set_uint32(outmsg + 8, x); + set_uint32(outmsg + 12, y); finish_send_packet(pvar); } @@ -2873,7 +2878,6 @@ buffer_put_char(msg, 0); // wantconfirm buffer_put_int(msg, pvar->ssh_state.win_cols); // columns buffer_put_int(msg, pvar->ssh_state.win_rows); // lines - get_window_pixel_size(pvar, &x, &y); buffer_put_int(msg, x); // window width (pixel): buffer_put_int(msg, y); // window height (pixel): len = buffer_len(msg);