diff options
author | Thomas Adam <thomas@xteddy.org> | 2016-11-02 14:01:10 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2016-11-02 14:01:10 +0000 |
commit | 15b6774f9b9649a0bf3dfe736dd91f4791e5b0fb (patch) | |
tree | c5db51196543e2a924427f27a83a89875ba6dc0b /cmd.c | |
parent | 5da94182ae37cfdbec131b0c2ea01a8606431650 (diff) | |
parent | 382e09bed1bcf83eed98a36afa15f7dc9de18e72 (diff) | |
download | rtmux-15b6774f9b9649a0bf3dfe736dd91f4791e5b0fb.tar.gz rtmux-15b6774f9b9649a0bf3dfe736dd91f4791e5b0fb.tar.bz2 rtmux-15b6774f9b9649a0bf3dfe736dd91f4791e5b0fb.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd.c')
-rw-r--r-- | cmd.c | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -450,8 +450,11 @@ cmd_prepare_state_flag(char c, const char *target, enum cmd_entry_flag flag, log_debug("%s: flag %c %d %#x", __func__, c, flag, targetflags); error = cmd_find_current(¤t, item, targetflags); - if (error != 0 && ~targetflags & CMD_FIND_QUIET) - return (-1); + if (error != 0) { + if (~targetflags & CMD_FIND_QUIET) + return (-1); + cmd_find_clear_state(¤t, NULL, 0); + } if (!cmd_find_empty_state(¤t) && !cmd_find_valid_state(¤t)) fatalx("invalid current state"); @@ -466,8 +469,8 @@ cmd_prepare_state_flag(char c, const char *target, enum cmd_entry_flag flag, case CMD_SESSION_WITHPANE: error = cmd_find_target(fs, ¤t, item, target, CMD_FIND_SESSION, targetflags); - if (error != 0 && ~targetflags & CMD_FIND_QUIET) - return (-1); + if (error != 0) + goto error; break; case CMD_MOVEW_R: error = cmd_find_target(fs, ¤t, item, target, @@ -481,21 +484,27 @@ cmd_prepare_state_flag(char c, const char *target, enum cmd_entry_flag flag, case CMD_WINDOW_INDEX: error = cmd_find_target(fs, ¤t, item, target, CMD_FIND_WINDOW, targetflags); - if (error != 0 && ~targetflags & CMD_FIND_QUIET) - return (-1); + if (error != 0) + goto error; break; case CMD_PANE: case CMD_PANE_CANFAIL: case CMD_PANE_MARKED: error = cmd_find_target(fs, ¤t, item, target, CMD_FIND_PANE, targetflags); - if (error != 0 && ~targetflags & CMD_FIND_QUIET) - return (-1); + if (error != 0) + goto error; break; default: fatalx("unknown %cflag %d", c, flag); } return (0); + +error: + if (~targetflags & CMD_FIND_QUIET) + return (-1); + cmd_find_clear_state(fs, NULL, 0); + return (0); } int |