aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-find.c5
-rw-r--r--cmd-queue.c6
-rw-r--r--server-client.c3
3 files changed, 5 insertions, 9 deletions
diff --git a/cmd-find.c b/cmd-find.c
index edd43a8b..44f50bf7 100644
--- a/cmd-find.c
+++ b/cmd-find.c
@@ -974,9 +974,8 @@ cmd_find_target(struct cmd_find_state *fs, struct cmdq_item *item,
fs->current = &current;
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);