hush: fix another case where empty "for" wasn't setting exitcode to 0
No binary (build failed)
—
(log yok)
| @@ -0,0 +1 @@ | |
| + | Zero:0 |
| @@ -0,0 +1,5 @@ | |
| + | false |
| + | for v; do |
| + | exit 2 |
| + | done |
| + | echo Zero:$? |
| @@ -9391,11 +9391,11 @@ static int run_list(struct pipe *pi) | |
| }; /* argv list with one element: "$@" */ | |
| char **vals; | |
| + | G.last_exitcode = rcode = EXIT_SUCCESS; |
| vals = (char**)encoded_dollar_at_argv; | |
| if (pi->next->res_word == RES_IN) { | |
| /* if no variable values after "in" we skip "for" */ | |
| if (!pi->next->cmds[0].argv) { | |
| - | G.last_exitcode = rcode = EXIT_SUCCESS; |
| debug_printf_exec(": null FOR: exitcode EXIT_SUCCESS\n"); | |
| break; | |
| } | |
| @@ -0,0 +1 @@ | |
| + | Zero:0 |
| @@ -0,0 +1,5 @@ | |
| + | false |
| + | for v; do |
| + | exit 2 |
| + | done |
| + | echo Zero:$? |