[patch] applied: rcfn

0 views
Skip to first unread message

9cha...@cat-v.org

unread,
Jul 6, 2008, 8:33:25 PM7/6/08
to plan9c...@googlegroups.com
Created Jul 6 18:33 by rsc
Processed Jul 7 00:33 by geoff

Fix two rc fn-saving bugs mentioned on 9fans.
Also, please

rm /sys/src/cmd/rc/fmtquote.c
update /sys/src/cmd/rc/fmtquote.c

Thanks.

--
/sys/src/cmd/rc/exec.c
exec.c.orig:751,760 - /n/sources/patch/applied/rcfn/exec.c:751,762
}
deglob(runq->argv->words->word);
runq->local = newvar(strdup(runq->argv->words->word), runq->local);
- runq->local->val = copywords(runq->argv->next->words, (word *)0);
+ poplist();
+ globlist();
+ runq->local->val = runq->argv->words;
runq->local->changed = 1;
+ runq->argv->words = 0;
poplist();
- poplist();
}

void
exec.c.orig:790,795 - /n/sources/patch/applied/rcfn/exec.c:792,798
word *a;
int end;
end = runq->code[runq->pc].i;
+ globlist();
for(a = runq->argv->words;a;a = a->next){
v = gvlook(a->word);
if(v->fn)

/sys/src/cmd/rc/io.c
io.c.orig:91,97 - /n/sources/patch/applied/rcfn/io.c:91,97
pwrd(io *f, char *s)
{
char *t;
- for(t = s;*t;t++) if(!wordchr(*t)) break;
+ for(t = s;*t;t++) if(*t >= 0 && needsrcquote(*t)) break;
if(t==s || *t)
pquo(f, s);
else pstr(f, s);

/sys/src/cmd/rc/plan9.c
plan9.c.orig:275,281 - /n/sources/patch/applied/rcfn/plan9.c:275,281
else{
if(v->fn){
fd = openfd(f);
- pfmt(fd, "fn %s %s\n", v->name, v->fn[v->pc-1].s);
+ pfmt(fd, "fn %q %s\n", v->name, v->fn[v->pc-1].s);
closeio(fd);
}
close(f);

/sys/src/cmd/rc/simple.c
simple.c.orig:466,472 - /n/sources/patch/applied/rcfn/simple.c:466,472
found = 0;
v = gvlook(a->word);
if(v->fn)
- pfmt(out, "fn %s %s\n", v->name, v->fn[v->pc-1].s);
+ pfmt(out, "fn %q %s\n", v->name, v->fn[v->pc-1].s);
else{
for(bp = Builtin;bp->name;bp++)
if(strcmp(a->word, bp->name)==0){

/sys/src/cmd/rc/win32.c
win32.c.orig:211,217 - /n/sources/patch/applied/rcfn/win32.c:211,217
else{
if(v->fn){
fd = openfd(f);
- pfmt(fd, "fn %s %s\n", v->name, v->fn[v->pc-1].s);
+ pfmt(fd, "fn %q %s\n", v->name, v->fn[v->pc-1].s);
closeio(fd);
}
close(f);

Reply all
Reply to author
Forward
0 new messages