From fee2d0c2567f9fad6a0a278b4598053a41180012 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 12 Feb 2008 10:12:18 +0000 Subject: [PATCH] msh: stop trying to parse variables in "msh SCRIPT VAR=val param". They should be passed as ordinary parameters. --- shell/msh.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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)); -- 2.25.1