From: Denis Vlasenko Date: Tue, 12 Feb 2008 10:12:18 +0000 (-0000) Subject: msh: stop trying to parse variables in "msh SCRIPT VAR=val param". X-Git-Tag: 1_10_0~189 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fee2d0c2567f9fad6a0a278b4598053a41180012;p=oweals%2Fbusybox.git msh: stop trying to parse variables in "msh SCRIPT VAR=val param". They should be passed as ordinary parameters. --- diff --git a/shell/msh.c b/shell/msh.c index ee54ef2d4..65556043d 100644 --- a/shell/msh.c +++ b/shell/msh.c @@ -5337,19 +5337,22 @@ int msh_main(int argc, char **argv) if (signal(SIGINT, SIG_IGN) != SIG_IGN) signal(SIGINT, onintr); + +/* Handle "msh SCRIPT VAR=val params..." */ +/* Disabled: bash does not do it! */ +#if 0 + argv++; + /* skip leading args of the form VAR=val */ + while (*argv && assign(*argv, !COPYV)) { + argc--; + argv++; + } + argv--; +#endif dolv = argv; dolc = argc; dolv[0] = name; - if (dolc > 1) { - for (ap = ++argv; --argc > 0;) { - *ap = *argv++; - if (assign(*ap, !COPYV)) { - dolc--; /* keyword */ - } else { - ap++; - } - } - } + setval(lookup("#"), putn((--dolc < 0) ? (dolc = 0) : dolc)); DBGPRINTF(("MSH_MAIN: begin FOR loop, interactive %d, global_env.iop %p, iostack %p\n", interactive, global_env.iop, iostack));