diff options
-rw-r--r-- | cmd-find.c | 5 | ||||
-rw-r--r-- | cmd-queue.c | 6 | ||||
-rw-r--r-- | server-client.c | 3 |
3 files changed, 5 insertions, 9 deletions
@@ -974,9 +974,8 @@ cmd_find_target(struct cmd_find_state *fs, struct cmdq_item *item, fs->current = ¤t; log_debug("%s: current is from client", __func__); } else - return (-1); - if (!cmd_find_empty_state(fs->current) && - !cmd_find_valid_state(fs->current)) + goto error; + if (!cmd_find_valid_state(fs->current)) fatalx("invalid current find state"); /* An empty or NULL target is the current. */ diff --git a/cmd-queue.c b/cmd-queue.c index a7a29b58..99ec6055 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -203,14 +203,14 @@ cmdq_fire_command(struct cmdq_item *item) flags = !!(cmd->flags & CMD_CONTROL); cmdq_guard(item, "begin", flags); + if (item->client == NULL) + item->client = cmd_find_client(item, NULL, 1); + if (cmd_prepare_state(cmd, item) != 0) { retval = CMD_RETURN_ERROR; goto out; } - if (item->client == NULL) - item->client = cmd_find_client(item, NULL, 1); - retval = cmd->entry->exec(cmd, item); if (retval == CMD_RETURN_ERROR) goto out; diff --git a/server-client.c b/server-client.c index 63f9e5bf..875f7ef7 100644 --- a/server-client.c +++ b/server-client.c @@ -950,9 +950,6 @@ retry: if (KEYC_IS_MOUSE(key) && m->valid && wp != NULL) { cmd_find_from_winlink_pane(&fs, s->curw, wp); cmd_find_log_state(__func__, &fs); - - if (!cmd_find_valid_state(&fs)) - fatalx("invalid key state"); key_bindings_dispatch(bd, c, m, &fs); } else key_bindings_dispatch(bd, c, m, NULL); |