add some qid type checking Reference: /n/atom/patch/applied/fossilqidtype Date: Fri Mar 7 18:01:52 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/fossil/file.c Fri Mar 7 18:01:42 2014 +++ /sys/src/cmd/fossil/file.c Fri Mar 7 18:01:43 2014 @@ -961,6 +961,24 @@ } int +fileIsAppend(File *f) +{ + return (f->dir.mode & ModeAppend) != 0; +} + +int +fileIsExclusive(File *f) +{ + return (f->dir.mode & ModeExclusive) != 0; +} + +int +fileIsTemporary(File *f) +{ + return (f->dir.mode & ModeTemporary) != 0; +} + +int fileIsRoot(File *f) { return f == f->fs->file; --- /sys/src/cmd/fossil/fs.h Fri Mar 7 18:01:44 2014 +++ /sys/src/cmd/fossil/fs.h Fri Mar 7 18:01:45 2014 @@ -45,6 +45,9 @@ int fileGetSize(File*, uvlong*); File *fileIncRef(File*); int fileIsDir(File*); +int fileIsTemporary(File*); +int fileIsAppend(File*); +int fileIsExclusive(File*); int fileIsRoFs(File*); int fileIsRoot(File*); int fileMapBlock(File*, ulong, uchar[VtScoreSize], ulong); --- /sys/src/cmd/fossil/9p.c Fri Mar 7 18:01:47 2014 +++ /sys/src/cmd/fossil/9p.c Fri Mar 7 18:01:48 2014 @@ -867,6 +867,12 @@ qid.type = QTFILE; if(fileIsDir(file)) qid.type = QTDIR; + if(fileIsAppend(file)) + qid.type |= QTAPPEND; + if(fileIsTemporary(file)) + qid.type |= QTTMP; + if(fileIsExclusive(file)) + qid.type |= QTEXCL; qid.vers = fileGetMcount(file); qid.path = fileGetId(file); r->wqid[r->nwqid++] = qid;