Peter Milne writes:

Just upgraded from 0.6 to 1.00-pre8

Dot command handling handled args correctly (same as bash) in 0.60,
but failed in 1.00:

I fixed this by reverting the dotcmd function back to previous 0.60
instantiation,
please consider using the older version.

Thanks


Peter
This commit is contained in:
Eric Andersen 2004-04-12 19:12:13 +00:00
parent e3efc9230c
commit 1e6aba967c

View File

@ -8125,21 +8125,40 @@ find_dot_file(char *name)
/* NOTREACHED */
}
int
dotcmd(int argc, char **argv)
static int dotcmd(int argc, char **argv)
{
struct strlist *sp;
volatile struct shparam saveparam;
exitstatus = 0;
for (sp = cmdenviron; sp; sp = sp->next)
setvareq(bb_xstrdup(sp->text), VSTRFIXED | VTEXTFIXED);
if (argc >= 2) { /* That's what SVR2 does */
char *fullname;
struct stackmark smark;
setstackmark(&smark);
fullname = find_dot_file(argv[1]);
if (argc > 2) {
saveparam = shellparam;
shellparam.malloc = 0;
shellparam.nparam = argc - 2;
shellparam.p = argv + 2;
};
setinputfile(fullname, 1);
commandname = fullname;
cmdloop(0);
popfile();
if (argc > 2) {
freeparam(&shellparam);
shellparam = saveparam;
};
popstackmark(&smark);
}
return exitstatus;