From c8b6342d3c2a167dec16931815926e9e4387e7ef Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 13 Jan 2005 04:49:19 +0000 Subject: Many small edits. --- src/cmd/mk/mkfile.test | 4 ++-- src/cmd/mk/parse.c | 37 ++++++++++++++++--------------------- src/cmd/mk/shell.c | 2 ++ 3 files changed, 20 insertions(+), 23 deletions(-) (limited to 'src/cmd/mk') diff --git a/src/cmd/mk/mkfile.test b/src/cmd/mk/mkfile.test index b5bd6dbb..8a4e4b96 100644 --- a/src/cmd/mk/mkfile.test +++ b/src/cmd/mk/mkfile.test @@ -1,9 +1,9 @@ -|$PLAN9/bin/rc +MKSHELL=$PLAN9/bin/rc use-rc:V: for(i in a b c) echo $i -|/bin/sh +MKSHELL=/bin/sh use-sh:V: for i in a b c do diff --git a/src/cmd/mk/parse.c b/src/cmd/mk/parse.c index 2d1816b9..48bad3d8 100644 --- a/src/cmd/mk/parse.c +++ b/src/cmd/mk/parse.c @@ -91,18 +91,18 @@ cp = wtos(tail, ' '); print("assign %s to %s\n", head->s, cp); free(cp); */ setvar(head->s, (void *) tail); symlook(head->s, S_WESET, (void *)""); + if(strcmp(head->s, "MKSHELL") == 0){ + if((err = setshell(tail)) != nil){ + SYNERR(hline); + fprint(2, "%s\n", err); + Exit(); + break; + } + } } if(attr) symlook(head->s, S_NOEXPORT, (void *)""); break; - case 'S': - if((err = setshell(tail)) != nil){ - SYNERR(hline); - fprint(2, "%s\n", err); - Exit(); - break; - } - break; default: SYNERR(hline); fprint(2, "expected one of :<=\n"); @@ -144,19 +144,14 @@ rhead(char *line, Word **h, Word **t, int *attr, char **prog) int n; Word *w; - if(*line == '|'){ - sep = 'S'; /* shell */ - p = line+1; - }else{ - p = shellt->charin(line,":=<"); - if(p == 0) - return('?'); - sep = *p; - *p++ = 0; - if(sep == '<' && *p == '|'){ - sep = '|'; - p++; - } + p = shellt->charin(line,":=<"); + if(p == 0) + return('?'); + sep = *p; + *p++ = 0; + if(sep == '<' && *p == '|'){ + sep = '|'; + p++; } *attr = 0; *prog = 0; diff --git a/src/cmd/mk/shell.c b/src/cmd/mk/shell.c index a4ac3f93..dd41ad12 100644 --- a/src/cmd/mk/shell.c +++ b/src/cmd/mk/shell.c @@ -41,6 +41,7 @@ initshell(void) { shellcmd = stow(shells[0]->name); shellt = shells[0]; + setvar("MKSHELL", shellcmd); } void @@ -72,5 +73,6 @@ popshell(void) shellstack = s->next; shellt = s->t; shellcmd = s->w; + setvar("MKSHELL", shellcmd); free(s); } -- cgit v1.2.3