diff options
-rw-r--r-- | shell/ash_test/ash-misc/empty_for1.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/empty_for1.tests | 5 | ||||
-rw-r--r-- | shell/hush.c | 2 | ||||
-rw-r--r-- | shell/hush_test/hush-misc/empty_for1.right | 1 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/empty_for1.tests | 5 |
5 files changed, 13 insertions, 1 deletions
diff --git a/shell/ash_test/ash-misc/empty_for1.right b/shell/ash_test/ash-misc/empty_for1.right new file mode 100644 index 000000000..46ffcece7 --- /dev/null +++ b/shell/ash_test/ash-misc/empty_for1.right | |||
@@ -0,0 +1 @@ | |||
Zero:0 | |||
diff --git a/shell/ash_test/ash-misc/empty_for1.tests b/shell/ash_test/ash-misc/empty_for1.tests new file mode 100755 index 000000000..5a2554d54 --- /dev/null +++ b/shell/ash_test/ash-misc/empty_for1.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | false | ||
2 | for v; do | ||
3 | exit 2 | ||
4 | done | ||
5 | echo Zero:$? | ||
diff --git a/shell/hush.c b/shell/hush.c index 14681aa48..d17f7f29e 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -9391,11 +9391,11 @@ static int run_list(struct pipe *pi) | |||
9391 | }; /* argv list with one element: "$@" */ | 9391 | }; /* argv list with one element: "$@" */ |
9392 | char **vals; | 9392 | char **vals; |
9393 | 9393 | ||
9394 | G.last_exitcode = rcode = EXIT_SUCCESS; | ||
9394 | vals = (char**)encoded_dollar_at_argv; | 9395 | vals = (char**)encoded_dollar_at_argv; |
9395 | if (pi->next->res_word == RES_IN) { | 9396 | if (pi->next->res_word == RES_IN) { |
9396 | /* if no variable values after "in" we skip "for" */ | 9397 | /* if no variable values after "in" we skip "for" */ |
9397 | if (!pi->next->cmds[0].argv) { | 9398 | if (!pi->next->cmds[0].argv) { |
9398 | G.last_exitcode = rcode = EXIT_SUCCESS; | ||
9399 | debug_printf_exec(": null FOR: exitcode EXIT_SUCCESS\n"); | 9399 | debug_printf_exec(": null FOR: exitcode EXIT_SUCCESS\n"); |
9400 | break; | 9400 | break; |
9401 | } | 9401 | } |
diff --git a/shell/hush_test/hush-misc/empty_for1.right b/shell/hush_test/hush-misc/empty_for1.right new file mode 100644 index 000000000..46ffcece7 --- /dev/null +++ b/shell/hush_test/hush-misc/empty_for1.right | |||
@@ -0,0 +1 @@ | |||
Zero:0 | |||
diff --git a/shell/hush_test/hush-misc/empty_for1.tests b/shell/hush_test/hush-misc/empty_for1.tests new file mode 100755 index 000000000..5a2554d54 --- /dev/null +++ b/shell/hush_test/hush-misc/empty_for1.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | false | ||
2 | for v; do | ||
3 | exit 2 | ||
4 | done | ||
5 | echo Zero:$? | ||