diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-10-27 23:27:26 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-10-27 23:27:26 +0000 |
commit | da1f6fc2c8477c99e986061bcdd7c3e854a60076 (patch) | |
tree | f5934e2f96c43f80bad7e3a219230d6337c9d208 /cmd-attach-session.c | |
parent | 147b5ae5145dc29e9bf4d0ebbc635939b6fdc60b (diff) | |
parent | 44657bf932b068aff5ce1019a4e8a2e7b00b5321 (diff) | |
download | rtmux-da1f6fc2c8477c99e986061bcdd7c3e854a60076.tar.gz rtmux-da1f6fc2c8477c99e986061bcdd7c3e854a60076.tar.bz2 rtmux-da1f6fc2c8477c99e986061bcdd7c3e854a60076.zip |
Merge branch 'obsd-master'
Conflicts:
Makefile
client.c
server-client.c
server.c
tmux.c
tmux.h
Diffstat (limited to 'cmd-attach-session.c')
-rw-r--r-- | cmd-attach-session.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c index a7ef1cd9..a3623ec4 100644 --- a/cmd-attach-session.c +++ b/cmd-attach-session.c @@ -113,21 +113,15 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, if (c->session != NULL) { if (dflag) { - /* - * Can't use server_write_session in case attaching to - * the same session as currently attached to. - */ TAILQ_FOREACH(c_loop, &clients, entry) { if (c_loop->session != s || c == c_loop) continue; - server_write_client(c, MSG_DETACH, - c_loop->session->name, - strlen(c_loop->session->name) + 1); + proc_send_s(c->peer, MSG_DETACH, s->name); } } if (!Eflag) { - update = options_get_string(&s->options, + update = options_get_string(s->options, "update-environment"); environ_update(update, &c->environ, &s->environ); } @@ -150,12 +144,15 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, c->flags |= CLIENT_READONLY; if (dflag) { - server_write_session(s, MSG_DETACH, s->name, - strlen(s->name) + 1); + TAILQ_FOREACH(c_loop, &clients, entry) { + if (c_loop->session != s || c == c_loop) + continue; + proc_send_s(c->peer, MSG_DETACH, s->name); + } } if (!Eflag) { - update = options_get_string(&s->options, + update = options_get_string(s->options, "update-environment"); environ_update(update, &c->environ, &s->environ); } @@ -168,7 +165,8 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, server_redraw_client(c); s->curw->flags &= ~WINLINK_ALERTFLAGS; - server_write_ready(c); + if (~c->flags & CLIENT_CONTROL) + proc_send(c->peer, MSG_READY, -1, NULL, 0); cmdq->client_exit = 0; } recalculate_sizes(); |