diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-04-22 12:01:19 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-04-22 12:01:19 +0100 |
commit | e802b683ea0ebfa377a5bb8a6b03454c1edbe2d5 (patch) | |
tree | 7a495bed6d4d979974826a11707f1c2585173768 /cmd-new-session.c | |
parent | b08e451c916fd942b9d24706583ccedf307e0877 (diff) | |
parent | 55cd4c7bc756509f241788f7f73676676ef538f6 (diff) | |
download | rtmux-e802b683ea0ebfa377a5bb8a6b03454c1edbe2d5.tar.gz rtmux-e802b683ea0ebfa377a5bb8a6b03454c1edbe2d5.tar.bz2 rtmux-e802b683ea0ebfa377a5bb8a6b03454c1edbe2d5.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-new-session.c')
-rw-r--r-- | cmd-new-session.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/cmd-new-session.c b/cmd-new-session.c index 0808b60c..1813288d 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -44,7 +44,7 @@ const struct cmd_entry cmd_new_session_entry = { "[-s session-name] " CMD_TARGET_SESSION_USAGE " [-x width] " "[-y height] [command]", - .tflag = CMD_SESSION_CANFAIL, + .target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, .flags = CMD_STARTSERVER, .exec = cmd_new_session_exec @@ -57,7 +57,7 @@ const struct cmd_entry cmd_has_session_entry = { .args = { "t:", 0, 0 }, .usage = CMD_TARGET_SESSION_USAGE, - .tflag = CMD_SESSION, + .target = { 't', CMD_FIND_SESSION, 0 }, .flags = 0, .exec = cmd_new_session_exec @@ -83,8 +83,8 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) if (self->entry == &cmd_has_session_entry) { /* - * cmd_prepare() will fail if the session cannot be found, - * hence always return success here. + * cmd_find_target() will fail if the session cannot be found, + * so always return success here. */ return (CMD_RETURN_NORMAL); } @@ -102,16 +102,9 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) } if ((as = session_find(newname)) != NULL) { if (args_has(args, 'A')) { - /* - * This item is now destined for - * attach-session. Because attach-session will - * have already been prepared, copy this - * session into its tflag so it can be used. - */ - cmd_find_from_session(&item->state.tflag, as); return (cmd_attach_session(item, - args_has(args, 'D'), 0, NULL, - args_has(args, 'E'))); + newname, args_has(args, 'D'), + 0, NULL, args_has(args, 'E'))); } cmdq_error(item, "duplicate session: %s", newname); return (CMD_RETURN_ERROR); @@ -121,7 +114,7 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) /* Is this going to be part of a session group? */ group = args_get(args, 't'); if (group != NULL) { - groupwith = item->state.tflag.s; + groupwith = item->target.s; if (groupwith == NULL) { if (!session_check_name(group)) { cmdq_error(item, "bad group name: %s", group); @@ -324,8 +317,10 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) free(cp); } - if (!detached) + if (!detached) { c->flags |= CLIENT_ATTACHED; + cmd_find_from_session(&item->shared->current, s); + } if (to_free != NULL) free((void *)to_free); |