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.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.c')
-rw-r--r-- | cmd.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -455,12 +455,15 @@ cmd_prepare_state_flag(char c, const char *target, enum cmd_entry_flag flag, current = &parent->state.tflag; else if (c == 's') current = &parent->state.sflag; - } else { + } + if (current == NULL || !cmd_find_valid_state(current)) { error = cmd_find_current(&tmp, cmdq, targetflags); if (error != 0 && ~targetflags & CMD_FIND_QUIET) return (-1); current = &tmp; } + if (!cmd_find_empty_state(current) && !cmd_find_valid_state(current)) + fatalx("invalid current state"); switch (flag) { case CMD_NONE: @@ -557,6 +560,13 @@ cmd_prepare_state(struct cmd *cmd, struct cmd_q *cmdq, struct cmd_q *parent) if (error != 0) return (error); + if (!cmd_find_empty_state(&state->tflag) && + !cmd_find_valid_state(&state->tflag)) + fatalx("invalid -t state"); + if (!cmd_find_empty_state(&state->sflag) && + !cmd_find_valid_state(&state->sflag)) + fatalx("invalid -s state"); + return (0); } |