hush: fix another case where empty "for" wasn't setting exitcode to 0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
a8e7441176
commit
a5db1d7354
1
shell/ash_test/ash-misc/empty_for1.right
Normal file
1
shell/ash_test/ash-misc/empty_for1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Zero:0
|
5
shell/ash_test/ash-misc/empty_for1.tests
Executable file
5
shell/ash_test/ash-misc/empty_for1.tests
Executable file
@ -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: "$@" */
|
}; /* argv list with one element: "$@" */
|
||||||
char **vals;
|
char **vals;
|
||||||
|
|
||||||
|
G.last_exitcode = rcode = EXIT_SUCCESS;
|
||||||
vals = (char**)encoded_dollar_at_argv;
|
vals = (char**)encoded_dollar_at_argv;
|
||||||
if (pi->next->res_word == RES_IN) {
|
if (pi->next->res_word == RES_IN) {
|
||||||
/* if no variable values after "in" we skip "for" */
|
/* if no variable values after "in" we skip "for" */
|
||||||
if (!pi->next->cmds[0].argv) {
|
if (!pi->next->cmds[0].argv) {
|
||||||
G.last_exitcode = rcode = EXIT_SUCCESS;
|
|
||||||
debug_printf_exec(": null FOR: exitcode EXIT_SUCCESS\n");
|
debug_printf_exec(": null FOR: exitcode EXIT_SUCCESS\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
1
shell/hush_test/hush-misc/empty_for1.right
Normal file
1
shell/hush_test/hush-misc/empty_for1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Zero:0
|
5
shell/hush_test/hush-misc/empty_for1.tests
Executable file
5
shell/hush_test/hush-misc/empty_for1.tests
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
false
|
||||||
|
for v; do
|
||||||
|
exit 2
|
||||||
|
done
|
||||||
|
echo Zero:$?
|
Loading…
Reference in New Issue
Block a user