hush: fix a case where return in sourced file has no effect
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
20704f0662
commit
68d5cb5dac
@ -5554,6 +5554,10 @@ static void parse_and_run_stream(struct in_str *inp, int end_trigger)
|
|||||||
debug_printf_exec("parse_and_run_stream: run_and_free_list\n");
|
debug_printf_exec("parse_and_run_stream: run_and_free_list\n");
|
||||||
run_and_free_list(pipe_list);
|
run_and_free_list(pipe_list);
|
||||||
empty = 0;
|
empty = 0;
|
||||||
|
#if ENABLE_HUSH_FUNCTIONS
|
||||||
|
if (G.flag_return_in_progress == 1)
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
shell/hush_test/hush-misc/return1.right
Normal file
1
shell/hush_test/hush-misc/return1.right
Normal file
@ -0,0 +1 @@
|
|||||||
|
Ok:0
|
4
shell/hush_test/hush-misc/return1.tests
Executable file
4
shell/hush_test/hush-misc/return1.tests
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
echo "true && return; echo Should not be printed" >return_sourced
|
||||||
|
. ./return_sourced
|
||||||
|
rm return_sourced
|
||||||
|
echo Ok:$?
|
Loading…
x
Reference in New Issue
Block a user