summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko2009-05-27 18:07:29 +0200
committerDenys Vlasenko2009-05-27 18:07:29 +0200
commite6f6d829403156797fabc4690d497fdf7cd6f7d1 (patch)
treed2118b46c4bfca2ae806f24d28046eda9190eab5 /shell
parent20cc390b9bb33cd0ab05c8bbfcd24babad7ec204 (diff)
downloadbusybox-1_14_1.zip
busybox-1_14_1.tar.gz
hush: more fixes from trunk; bump version to 1.14.11_14_1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r--shell/Config.in7
-rw-r--r--shell/hush.c8
2 files changed, 12 insertions, 3 deletions
diff --git a/shell/Config.in b/shell/Config.in
index 6cc11ce..57969f0 100644
--- a/shell/Config.in
+++ b/shell/Config.in
@@ -232,6 +232,13 @@ config HUSH_FUNCTIONS
help
Enable support for shell functions in hush. +800 bytes.
+config HUSH_EXPORT_N
+ bool "Support export '-n' option"
+ default n
+ depends on HUSH
+ help
+ Enable support for export '-n' option in hush. It is a bash extension.
+
config LASH
bool "lash (deprecated: aliased to hush)"
default n
diff --git a/shell/hush.c b/shell/hush.c
index 8c3e7c5..735cb4c 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
*
@@ -4110,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? */