Trim some code by moving the ioctl(TIOCGWINSZ) after SIGWINCH from the client

into the server.

This is another (the second of four) protocol version changes coming this
morning, so again the server should be killed before upgrading.
This commit is contained in:
Nicholas Marriott
2009-09-23 06:12:58 +00:00
parent 64caf59e84
commit 962fa20b36
4 changed files with 33 additions and 62 deletions

View File

@@ -34,7 +34,6 @@
#include "tmux.h"
void client_send_environ(struct client_ctx *);
void client_handle_winch(struct client_ctx *);
int
client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags)
@@ -100,8 +99,6 @@ server_started:
if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) == -1)
fatal("ioctl(TIOCGWINSZ)");
data.flags = flags;
data.sx = ws.ws_col;
data.sy = ws.ws_row;
if (getcwd(data.cwd, sizeof data.cwd) == NULL)
*data.cwd = '\0';
@@ -169,8 +166,10 @@ client_main(struct client_ctx *cctx)
waitpid(WAIT_ANY, NULL, WNOHANG);
sigchld = 0;
}
if (sigwinch)
client_handle_winch(cctx);
if (sigwinch) {
client_write_server(cctx, MSG_RESIZE, NULL, 0);
sigwinch = 0;
}
if (sigcont) {
siginit();
client_write_server(cctx, MSG_WAKEUP, NULL, 0);
@@ -238,22 +237,6 @@ out:
}
}
void
client_handle_winch(struct client_ctx *cctx)
{
struct msg_resize_data data;
struct winsize ws;
if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) == -1)
fatal("ioctl failed");
data.sx = ws.ws_col;
data.sy = ws.ws_row;
client_write_server(cctx, MSG_RESIZE, &data, sizeof data);
sigwinch = 0;
}
int
client_msg_dispatch(struct client_ctx *cctx)
{