diff options
author | Denis Vlasenko | 2009-04-05 01:46:59 +0000 |
---|---|---|
committer | Denis Vlasenko | 2009-04-05 01:46:59 +0000 |
commit | 16a0c74f638d2d730525856d391078f2ea662aeb (patch) | |
tree | 7a2bec11e284438bb0e73d939a1909dc5a5d2a90 /shell/hush.c | |
parent | 0bb4a23506c07c2b696a91661d38b86860e2e7be (diff) | |
download | busybox-16a0c74f638d2d730525856d391078f2ea662aeb.zip busybox-16a0c74f638d2d730525856d391078f2ea662aeb.tar.gz |
hush: fix hush-misc/break5.tests NOMMU failure
function old new delta
hush_main 1118 1144 +26
re_execute_shell 188 204 +16
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 42/0) Total: 42 bytes
Diffstat (limited to 'shell/hush.c')
-rw-r--r-- | shell/hush.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/shell/hush.c b/shell/hush.c index 13e9623..3388ad7 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -2345,8 +2345,8 @@ static void re_execute_shell(const char *s) char **argv, **pp; unsigned cnt; - /* hush -$<pid> -?<exitcode> ... -c <cmd> NULL */ - cnt = 6; + /* hush -$<pid> -?<exitcode> -D<depth> ... -c <cmd> NULL */ + cnt = 7; for (cur = G.top_var; cur; cur = cur->next) { if (!cur->flg_export || cur->flg_read_only) cnt += 2; @@ -2356,6 +2356,7 @@ static void re_execute_shell(const char *s) *pp++ = (char *) applet_name; *pp++ = xasprintf("-$%u", G.root_pid); *pp++ = xasprintf("-?%u", G.last_return_code); + *pp++ = xasprintf("-D%u", G.depth_of_loop); for (cur = G.top_var; cur; cur = cur->next) { if (cur->varstr == hush_version_str) continue; @@ -5009,7 +5010,7 @@ int hush_main(int argc, char **argv) while (1) { opt = getopt(argc, argv, "c:xins" #if !BB_MMU - "$:?:R:V:" + "$:?:D:R:V:" #endif ); if (opt <= 0) @@ -5041,6 +5042,9 @@ int hush_main(int argc, char **argv) case '?': G.last_return_code = xatoi_u(optarg); break; + case 'D': + G.depth_of_loop = xatoi_u(optarg); + break; case 'R': case 'V': set_local_var(xstrdup(optarg), 0, opt == 'R'); |