Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam
2016-10-13 12:01:11 +01:00
11 changed files with 92 additions and 21 deletions

12
cmd.c
View File

@ -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);
}