aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/mk/varsub.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2007-03-26 17:27:08 +0000
committerrsc <devnull@localhost>2007-03-26 17:27:08 +0000
commit6c4c5c5b959ec8a2e85510bdf85339582f638f36 (patch)
tree29e27c708e67bf46d8ee4f5580a09dbc06f34ae6 /src/cmd/mk/varsub.c
parentedd308cfa28421761db073542ecd538a13949d13 (diff)
downloadplan9port-6c4c5c5b959ec8a2e85510bdf85339582f638f36.tar.gz
plan9port-6c4c5c5b959ec8a2e85510bdf85339582f638f36.tar.bz2
plan9port-6c4c5c5b959ec8a2e85510bdf85339582f638f36.zip
fix empty string interpolation bugs (Michael Teichgräber)
Diffstat (limited to 'src/cmd/mk/varsub.c')
-rw-r--r--src/cmd/mk/varsub.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/cmd/mk/varsub.c b/src/cmd/mk/varsub.c
index 223ba78d..f858a92a 100644
--- a/src/cmd/mk/varsub.c
+++ b/src/cmd/mk/varsub.c
@@ -5,7 +5,7 @@ static Word *expandvar(char**);
static Bufblock *varname(char**);
static Word *extractpat(char*, char**, char*, char*);
static int submatch(char*, Word*, Word*, int*, char**);
-static Word *varmatch(char *, char**);
+static Word *varmatch(char *);
Word *
varsub(char **s)
@@ -20,7 +20,7 @@ varsub(char **s)
if(b == 0)
return 0;
- w = varmatch(b->start, s);
+ w = varmatch(b->start);
freebuf(b);
return w;
}
@@ -57,11 +57,10 @@ varname(char **s)
}
static Word*
-varmatch(char *name, char **s)
+varmatch(char *name)
{
Word *w;
Symtab *sym;
- char *cp;
sym = symlook(name, S_VAR, 0);
if(sym){
@@ -70,9 +69,6 @@ varmatch(char *name, char **s)
if(w->s && *w->s)
return wdup(w);
}
- for(cp = *s; *cp == ' ' || *cp == '\t'; cp++) /* skip trailing whitespace */
- ;
- *s = cp;
return 0;
}
@@ -92,7 +88,7 @@ expandvar(char **s)
cp = *s;
if (*cp == '}') { /* ${name} variant*/
(*s)++; /* skip the '}' */
- w = varmatch(buf->start, s);
+ w = varmatch(buf->start);
freebuf(buf);
return w;
}