[Ttssh2-commit] [6799] SSHv1 で端末サイズ変更時にピクセル単位での値も送るようにした。

Back to archive index

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);



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