maintain $path and $PATH simultaneously
diff --git a/src/cmd/rc/exec.c b/src/cmd/rc/exec.c
index ebed11d..9ab7c29 100644
--- a/src/cmd/rc/exec.c
+++ b/src/cmd/rc/exec.c
@@ -117,6 +117,7 @@
Trapinit();
Vinit();
itoa(num, mypid=getpid());
+ pathinit();
setvar("pid", newword(num, (word *)0));
setvar("cflag", flag['c']?newword(flag['c'][0], (word *)0)
:(word *)0);
@@ -369,7 +370,7 @@
runq->pc++;
poplist();
}
-char *list2str(word *words){
+char *_list2str(word *words, int c){
char *value, *s, *t;
int len=0;
word *ap;
@@ -379,12 +380,15 @@
s=value;
for(ap=words;ap;ap=ap->next){
for(t=ap->word;*t;) *s++=*t++;
- *s++=' ';
+ *s++=c;
}
if(s==value) *s='\0';
else s[-1]='\0';
return value;
}
+char *list2str(word *words){
+ return _list2str(words, ' ');
+}
void Xmatch(void){
word *p;
char *subject;
@@ -464,6 +468,8 @@
freewords(v->val);
v->val=runq->argv->words;
v->changed=1;
+ if(v->changefn)
+ v->changefn(v);
runq->argv->words=0;
poplist();
}