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:
Denys Vlasenko 2011-03-24 02:50:03 +01:00
parent 20704f0662
commit 68d5cb5dac
3 changed files with 9 additions and 0 deletions

View File

@ -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");
run_and_free_list(pipe_list);
empty = 0;
#if ENABLE_HUSH_FUNCTIONS
if (G.flag_return_in_progress == 1)
break;
#endif
}
}

View File

@ -0,0 +1 @@
Ok:0

View File

@ -0,0 +1,4 @@
echo "true && return; echo Should not be printed" >return_sourced
. ./return_sourced
rm return_sourced
echo Ok:$?