summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/hush.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 533c56d..7167de7 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -50,7 +50,6 @@
*
* TODOs:
* grep for "TODO" and fix (some of them are easy)
- * $var refs in function do not pick up values set by "var=val func"
* builtins: ulimit
* follow IFS rules more precisely, including update semantics
*
@@ -100,10 +99,9 @@
# undef CONFIG_FEATURE_SH_STANDALONE
# undef ENABLE_FEATURE_SH_STANDALONE
# undef IF_FEATURE_SH_STANDALONE
-# define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
-# define ENABLE_FEATURE_SH_STANDALONE 0
# define IF_FEATURE_SH_STANDALONE(...)
# define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
+# define ENABLE_FEATURE_SH_STANDALONE 0
#endif
#if !ENABLE_HUSH_INTERACTIVE
@@ -4111,8 +4109,11 @@ static int run_list(struct pipe *pi)
}
#endif
#if ENABLE_HUSH_FUNCTIONS
- if (G.flag_return_in_progress == 1)
- goto check_jobs_and_break;
+ if (G.flag_return_in_progress == 1) {
+ /* same as "goto check_jobs_and_break" */
+ checkjobs(NULL);
+ break;
+ }
#endif
} else if (pi->followup == PIPE_BG) {
/* What does bash do with attempts to background builtins? */