version 1.80, 2020/04/13 08:26:27 |
version 1.81, 2020/04/13 10:59:58 |
|
|
cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag, |
cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag, |
int xflag, int rflag, const char *cflag, int Eflag) |
int xflag, int rflag, const char *cflag, int Eflag) |
{ |
{ |
struct cmd_find_state *current = &item->shared->current; |
struct cmdq_shared *shared = cmdq_get_shared(item); |
|
struct cmd_find_state *current = &shared->current; |
|
struct cmd_find_state target; |
enum cmd_find_type type; |
enum cmd_find_type type; |
int flags; |
int flags; |
struct client *c = item->client, *c_loop; |
struct client *c = cmdq_get_client(item), *c_loop; |
struct session *s; |
struct session *s; |
struct winlink *wl; |
struct winlink *wl; |
struct window_pane *wp; |
struct window_pane *wp; |
|
|
type = CMD_FIND_SESSION; |
type = CMD_FIND_SESSION; |
flags = CMD_FIND_PREFER_UNATTACHED; |
flags = CMD_FIND_PREFER_UNATTACHED; |
} |
} |
if (cmd_find_target(&item->target, item, tflag, type, flags) != 0) |
if (cmd_find_target(&target, item, tflag, type, flags) != 0) |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
s = item->target.s; |
s = target.s; |
wl = item->target.wl; |
wl = target.wl; |
wp = item->target.wp; |
wp = target.wp; |
|
|
if (wl != NULL) { |
if (wl != NULL) { |
if (wp != NULL) |
if (wp != NULL) |
|
|
environ_update(s->options, c->environ, s->environ); |
environ_update(s->options, c->environ, s->environ); |
|
|
c->session = s; |
c->session = s; |
if (~item->shared->flags & CMDQ_SHARED_REPEAT) |
if (~shared->flags & CMDQ_SHARED_REPEAT) |
server_client_set_key_table(c, NULL); |
server_client_set_key_table(c, NULL); |
tty_update_client_offset(c); |
tty_update_client_offset(c); |
status_timer_start(c); |
status_timer_start(c); |