diff options
author | Thomas Adam <thomas@xteddy.org> | 2016-10-13 12:01:11 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2016-10-13 12:01:11 +0100 |
commit | 6270392d0448b9c949dcc6698962446ff5988383 (patch) | |
tree | daa1be979c7b8fbd8e18c1fdcb0a9ba8d2fcc01e /cmd-find.c | |
parent | 6551f4bb3b651aa2dba77a98cc42828737b88306 (diff) | |
parent | 4d9e6ea3106ea06afa4583254549d525b31ed277 (diff) | |
download | rtmux-6270392d0448b9c949dcc6698962446ff5988383.tar.gz rtmux-6270392d0448b9c949dcc6698962446ff5988383.tar.bz2 rtmux-6270392d0448b9c949dcc6698962446ff5988383.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-find.c')
-rw-r--r-- | cmd-find.c | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -802,6 +802,15 @@ cmd_find_clear_state(struct cmd_find_state *fs, struct cmd_q *cmdq, int flags) fs->idx = -1; } +/* Check if state is empty/ */ +int +cmd_find_empty_state(struct cmd_find_state *fs) +{ + if (fs->s == NULL && fs->wl == NULL && fs->w == NULL && fs->wp == NULL) + return (1); + return (0); +} + /* Check if a state if valid. */ int cmd_find_valid_state(struct cmd_find_state *fs) @@ -958,12 +967,19 @@ cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current, cmd_find_clear_state(fs, cmdq, flags); /* Find current state. */ - if (server_check_marked() && (flags & CMD_FIND_DEFAULT_MARKED)) + if (server_check_marked() && (flags & CMD_FIND_DEFAULT_MARKED)) { fs->current = &marked_pane; - else if (cmd_find_valid_state(&cmdq->current)) + log_debug(" current is marked pane"); + } else if (cmd_find_valid_state(&cmdq->current)) { fs->current = &cmdq->current; - else + log_debug(" current is from queue"); + } else { fs->current = current; + log_debug(" current is from argument"); + } + if (!cmd_find_empty_state(fs->current) && + !cmd_find_valid_state(fs->current)) + fatalx("invalid current find state"); /* An empty or NULL target is the current. */ if (target == NULL || *target == '\0') |