=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-switch-client.c,v retrieving revision 1.61 retrieving revision 1.62 diff -c -r1.61 -r1.62 *** src/usr.bin/tmux/cmd-switch-client.c 2020/04/13 08:26:27 1.61 --- src/usr.bin/tmux/cmd-switch-client.c 2020/04/13 10:59:58 1.62 *************** *** 1,4 **** ! /* $OpenBSD: cmd-switch-client.c,v 1.61 2020/04/13 08:26:27 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-switch-client.c,v 1.62 2020/04/13 10:59:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 48,53 **** --- 48,56 ---- cmd_switch_client_exec(struct cmd *self, struct cmdq_item *item) { struct args *args = cmd_get_args(self); + struct cmdq_shared *shared = cmdq_get_shared(item); + struct cmd_find_state *current = &shared->current; + struct cmd_find_state target; const char *tflag = args_get(args, 't'); enum cmd_find_type type; int flags; *************** *** 69,79 **** type = CMD_FIND_SESSION; flags = CMD_FIND_PREFER_UNATTACHED; } ! if (cmd_find_target(&item->target, item, tflag, type, flags) != 0) return (CMD_RETURN_ERROR); ! s = item->target.s; ! wl = item->target.wl; ! wp = item->target.wp; if (args_has(args, 'r')) c->flags ^= CLIENT_READONLY; --- 72,82 ---- type = CMD_FIND_SESSION; flags = CMD_FIND_PREFER_UNATTACHED; } ! if (cmd_find_target(&target, item, tflag, type, flags) != 0) return (CMD_RETURN_ERROR); ! s = target.s; ! wl = target.wl; ! wp = target.wp; if (args_has(args, 'r')) c->flags ^= CLIENT_READONLY; *************** *** 111,117 **** return (CMD_RETURN_ERROR); } } else { ! if (item->client == NULL) return (CMD_RETURN_NORMAL); if (wl != NULL && wp != NULL) { w = wl->window; --- 114,120 ---- return (CMD_RETURN_ERROR); } } else { ! if (cmdq_get_client(item) == NULL) return (CMD_RETURN_NORMAL); if (wl != NULL && wp != NULL) { w = wl->window; *************** *** 124,130 **** } if (wl != NULL) { session_set_current(s, wl); ! cmd_find_from_session(&item->shared->current, s, 0); } } --- 127,133 ---- } if (wl != NULL) { session_set_current(s, wl); ! cmd_find_from_session(current, s, 0); } } *************** *** 134,140 **** if (c->session != NULL && c->session != s) c->last_session = c->session; c->session = s; ! if (~item->shared->flags & CMDQ_SHARED_REPEAT) server_client_set_key_table(c, NULL); tty_update_client_offset(c); status_timer_start(c); --- 137,143 ---- if (c->session != NULL && c->session != s) c->last_session = c->session; c->session = s; ! if (~shared->flags & CMDQ_SHARED_REPEAT) server_client_set_key_table(c, NULL); tty_update_client_offset(c); status_timer_start(c);