commit - 683c5e534ad7902669f8d92537f9e370380248de
commit + 1c8efa18ee49ae70138ae4cbc7b9fff5c17a89c8
blob - 5aa5c449efbc10d123d6222e15dbd796caca607e
blob + 4105e8788bac632ac3fa72c1a974873af6ffa020
--- src/lib9/dirread.c
+++ src/lib9/dirread.c
de->d_name[0] = 0;
else if(de->d_name[0]=='.' && de->d_name[1]=='.' && de->d_name[2]==0)
de->d_name[0] = 0;
- else
- m++;
+ m++;
p += de->d_reclen;
}
return m;
p = buf;
nstr = 0;
+
for(i=0; i<n; i++){
de = (struct dirent*)p;
- if(stat(de->d_name, &st) < 0)
+ if(de->d_name[0] == 0)
+ /* nothing */ {}
+ else if(stat(de->d_name, &st) < 0)
de->d_name[0] = 0;
else
nstr += _p9dir(&st, de->d_name, nil, nil, nil);
blob - 41d3f9d6fea27e46d7f2e494840b41785d908bc4
blob + 270c3cddf04043ca3151ea2bccf28094132b0cca
--- src/lib9/rfork.c
+++ src/lib9/rfork.c
int
p9rfork(int flags)
{
+ int pid;
+
+ if((flags&(RFPROC|RFFDG|RFMEM)) == (RFPROC|RFFDG)){
+ /* check other flags before we commit */
+ flags &= ~(RFPROC|RFFDG);
+ if(flags & ~(RFNOTEG)){
+ werrstr("unknown flags %08ux in rfork", flags);
+ return -1;
+ }
+ pid = fork();
+ if(pid != 0)
+ return pid;
+ }
+
if(flags&RFPROC){
werrstr("cannot use rfork to fork -- use ffork");
return -1;