aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/dirread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/dirread.c')
-rw-r--r--src/lib9/dirread.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib9/dirread.c b/src/lib9/dirread.c
index f4610f68..5151b132 100644
--- a/src/lib9/dirread.c
+++ b/src/lib9/dirread.c
@@ -24,10 +24,10 @@ countde(char *p, int n)
de = (struct dirent*)p;
if(de->d_reclen <= 4+2+2+1 || p+de->d_reclen > e)
break;
- if(de->d_namlen == 1 && de->d_name[0]=='.')
- de->d_namlen = 0;
- else if(de->d_namlen == 2 && de->d_name[0]=='.' && de->d_name[1]=='.')
- de->d_namlen = 0;
+ if(de->d_name[0]=='.' && de->d_name[1]==0)
+ 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++;
p += de->d_reclen;
@@ -59,7 +59,7 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
for(i=0; i<n; i++){
de = (struct dirent*)p;
if(stat(de->d_name, &st) < 0)
- de->d_namlen = 0;
+ de->d_name[0] = 0;
else
nstr += _p9dir(&st, de->d_name, nil, nil, nil);
p += de->d_reclen;
@@ -78,7 +78,7 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
m = 0;
for(i=0; i<n; i++){
de = (struct dirent*)p;
- if(de->d_namlen != 0 && stat(de->d_name, &st) >= 0)
+ if(de->d_name[0] != 0 && stat(de->d_name, &st) >= 0)
_p9dir(&st, de->d_name, &d[m++], &str, estr);
p += de->d_reclen;
}
@@ -108,7 +108,7 @@ dirread(int fd, Dir **dp)
if(buf == nil)
return -1;
- n = getdents(fd, buf, st.st_blksize);
+ n = getdents(fd, (struct dirent*)buf, st.st_blksize);
if(n < 0){
free(buf);
return -1;
@@ -141,7 +141,7 @@ dirreadall(int fd, Dir **d)
return -1;
}
buf = nbuf;
- n = getdents(fd, buf+ts, st.st_blksize);
+ n = getdents(fd, (struct dirent*)(buf+ts), st.st_blksize);
if(n <= 0)
break;
ts += n;