diff options
Diffstat (limited to 'builtins/source.def')
-rw-r--r-- | builtins/source.def | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/builtins/source.def b/builtins/source.def index 72627db..71908b8 100644 --- a/builtins/source.def +++ b/builtins/source.def @@ -80,6 +80,8 @@ extern int errno; #endif /* !errno */ extern int posixly_correct; +extern int last_command_exit_value; +extern int executing_command_builtin; static void maybe_pop_dollar_vars __P((void)); @@ -151,6 +153,11 @@ source_builtin (list) if (source_searches_cwd == 0) { builtin_error (_("%s: file not found"), list->word->word); + if (posixly_correct && interactive_shell == 0 && executing_command_builtin == 0) + { + last_command_exit_value = 1; + jump_to_top_level (EXITPROG); + } return (EXECUTION_FAILURE); } else |