aboutsummaryrefslogtreecommitdiff
path: root/cmd-attach-session.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-10-27 23:27:26 +0000
committerThomas Adam <thomas@xteddy.org>2015-10-27 23:27:26 +0000
commitda1f6fc2c8477c99e986061bcdd7c3e854a60076 (patch)
treef5934e2f96c43f80bad7e3a219230d6337c9d208 /cmd-attach-session.c
parent147b5ae5145dc29e9bf4d0ebbc635939b6fdc60b (diff)
parent44657bf932b068aff5ce1019a4e8a2e7b00b5321 (diff)
downloadrtmux-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.c22
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();