overhaul IFS handling, fix bugs reported by Stephane Chazelas and mikeserv

now we’re at: 486 passed testsuite items, 0 failed
ifs.sh still: # tests 6856 passed 6856 failed 0
This commit is contained in:
tg
2014-10-03 17:32:12 +00:00
parent de53d2df1c
commit 968dc7a764
6 changed files with 441 additions and 37 deletions

4
exec.c
View File

@@ -23,7 +23,7 @@
#include "sh.h"
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.132 2014/06/24 18:38:31 tg Exp $");
__RCSID("$MirOS: src/bin/mksh/exec.c,v 1.133 2014/10/03 17:32:11 tg Exp $");
#ifndef MKSH_DEFAULT_EXECSHELL
#define MKSH_DEFAULT_EXECSHELL "/bin/sh"
@@ -635,7 +635,7 @@ comexec(struct op *t, struct tbl * volatile tp, const char **ap,
for (i = 0; t->vars[i]; i++) {
/* do NOT lookup in the new var/fn block just created */
e->loc = l_expand;
cp = evalstr(t->vars[i], DOASNTILDE);
cp = evalstr(t->vars[i], DOASNTILDE | DOASNFIELD);
e->loc = l_assign;
if (Flag(FXTRACE)) {
const char *ccp;