version 1.85, 2013/03/21 16:14:09 |
version 1.86, 2013/03/21 18:47:01 |
|
|
/* Check the client is good to accept input. */ |
/* Check the client is good to accept input. */ |
if ((c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0) |
if ((c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0) |
return; |
return; |
|
|
if (c->session == NULL) |
if (c->session == NULL) |
return; |
return; |
s = c->session; |
s = c->session; |
|
|
if (c->flags & CLIENT_SUSPENDED) |
if (c->flags & CLIENT_SUSPENDED) |
return; |
return; |
|
|
|
if (c->flags & CLIENT_CONTROL) |
|
return; |
|
|
tty_region(&c->tty, 0, c->tty.sy - 1); |
tty_region(&c->tty, 0, c->tty.sy - 1); |
|
|
status = options_get_number(oo, "status"); |
status = options_get_number(oo, "status"); |
|
|
struct window_pane *wp; |
struct window_pane *wp; |
int flags, redraw; |
int flags, redraw; |
|
|
if (c->flags & CLIENT_SUSPENDED) |
if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED)) |
return; |
return; |
|
|
flags = c->tty.flags & TTY_FREEZE; |
flags = c->tty.flags & TTY_FREEZE; |
|
|
if (datalen != 0) |
if (datalen != 0) |
fatalx("bad MSG_RESIZE size"); |
fatalx("bad MSG_RESIZE size"); |
|
|
|
if (c->flags & CLIENT_CONTROL) |
|
break; |
if (tty_resize(&c->tty)) { |
if (tty_resize(&c->tty)) { |
recalculate_sizes(); |
recalculate_sizes(); |
server_redraw_client(c); |
server_redraw_client(c); |
|
|
|
|
if (data->flags & IDENTIFY_CONTROL) { |
if (data->flags & IDENTIFY_CONTROL) { |
c->stdin_callback = control_callback; |
c->stdin_callback = control_callback; |
c->flags |= (CLIENT_CONTROL|CLIENT_SUSPENDED); |
c->flags |= CLIENT_CONTROL; |
server_write_client(c, MSG_STDIN, NULL, 0); |
server_write_client(c, MSG_STDIN, NULL, 0); |
|
|
c->tty.fd = -1; |
c->tty.fd = -1; |
|
|
|
|
tty_resize(&c->tty); |
tty_resize(&c->tty); |
|
|
c->flags |= CLIENT_TERMINAL; |
if (!(data->flags & IDENTIFY_CONTROL)) |
|
c->flags |= CLIENT_TERMINAL; |
} |
} |
|
|
/* Handle shell message. */ |
/* Handle shell message. */ |