Fix tarfs again.
[rsc] --rw-rw-r-- M 155802 glenda sys 2703 Oct 20 20:50 sys/src/cmd/tapefs/tarfs.c
/n/sourcesdump/2005/1020/plan9/sys/src/cmd/tapefs/tarfs.c:58,67 -
/n/sourcesdump/2005/1021/plan9/sys/src/cmd/tapefs/tarfs.c:58,69
/* the mode test is ugly but sometimes necessary */
if (dblock.dbuf.linkflag == '5'
|| (f.mode&0170000) == 040000
- || strrchr(dblock.dbuf.name, '\0')[-1] == '/')
+ || strrchr(dblock.dbuf.name, '\0')[-1] == '/'){
f.mode |= DMDIR;
+ f.size = 0;
+ }
f.mode &= DMDIR|0777;
- linkflg = dblock.dbuf.linkflag=='5' || dblock.dbuf.linkflag=='1';
+ linkflg = dblock.dbuf.linkflag=='s' || dblock.dbuf.linkflag=='1';
isabs = dblock.dbuf.name[0]=='/';
if (chksum != checksum()){
fprint(1, "bad checksum on %.28s\n", dblock.dbuf.name);
[sys] --rwxrwxr-x M 155802 glenda sys 94363 Oct 20 23:17 386/bin/fs/tarfs
/sys/src/cmd/tapefs/tarfs.c:populate
|