diff --git a/src/core/exec.c b/src/core/exec.c index 7ce38443..217ed039 100644 --- a/src/core/exec.c +++ b/src/core/exec.c @@ -142,6 +142,16 @@ static int process_on_failure ( int rc ) { return ( rc != 0 ); } +/** + * Process next command regardless of status from previous command + * + * @v rc Status of previous command + * @ret process Process next command + */ +static int process_always ( int rc __unused ) { + return 1; +} + /** * Find command terminator * @@ -166,6 +176,10 @@ static int command_terminator ( char **tokens, /* Short-circuit logical AND */ *process_next = process_on_success; return i; + } else if ( strcmp ( tokens[i], ";" ) == 0 ) { + /* Process next command unconditionally */ + *process_next = process_always; + return i; } }