URI: 
       tvac: plan9 compatibility - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 948cc14e076b2165b646f941e1e6a51be1590c4c
   DIR parent 62e69a48c7a6c5c2bc78b59be839977c3337dc56
  HTML Author: Russ Cox <rsc@swtch.com>
       Date:   Sat, 14 Jun 2008 23:12:20 -0400
       
       vac: plan9 compatibility
       
       Diffstat:
         M src/cmd/vac/file.c                  |       5 +----
         M src/cmd/vac/unvac.c                 |      10 ++++++++--
       
       2 files changed, 9 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/src/cmd/vac/file.c b/src/cmd/vac/file.c
       t@@ -952,7 +952,6 @@ filemetaalloc(VacFile *fp, VacDir *dir, u32int start)
                                start = 0;
                }
                
       -        b = nil;
                if(start > nb)
                        start = nb;
                for(bo=start; bo<nb; bo++){
       t@@ -969,7 +968,6 @@ filemetaalloc(VacFile *fp, VacDir *dir, u32int start)
                                goto Found;
                        }
                        vtblockput(b);
       -                b = nil;
                }
        
                /* No block found, extend the file by one metablock. */
       t@@ -1179,7 +1177,6 @@ vacfileflush(VacFile *f, int recursive)
                 */
                if(filelock(f) < 0)
                        return -1;
       -        fileunlock(f);
                vtfilelock(f->source, -1);
                if(vtfileflush(f->source) < 0)
                        ret = -1;
       t@@ -1304,7 +1301,7 @@ vacfilecreate(VacFile *fp, char *elem, ulong mode)
                dir->ctime = dir->mtime;
                dir->atime = dir->mtime;
                dir->mode = mode;
       -        if((bo = filemetaalloc(fp, &ff->dir, NilBlock)) < 0)
       +        if((bo = filemetaalloc(fp, &ff->dir, NilBlock)) == NilBlock)
                        goto Err;
        
                /*
   DIR diff --git a/src/cmd/vac/unvac.c b/src/cmd/vac/unvac.c
       t@@ -2,6 +2,10 @@
        #include <fcall.h>        /* dirmodefmt */
        #include "vac.h"
        
       +#ifndef PLAN9PORT
       +#pragma varargck type "t" ulong
       +#endif
       +
        VacFs *fs;
        int tostdout;
        int nwant;
       t@@ -160,12 +164,13 @@ unvac(VacFile *f, char *name, VacDir *vdir)
                                        mode9 = vdir->mode&0777;
                                        if(mode&ModeDir)
                                                mode9 |= DMDIR;
       -                                if(mode&ModeLink)
       -                                        mode9 |= DMSYMLINK;
                                        if(mode&ModeAppend)
                                                mode9 |= DMAPPEND;
                                        if(mode&ModeExclusive)
                                                mode9 |= DMEXCL;
       +#ifdef PLAN9PORT
       +                                if(mode&ModeLink)
       +                                        mode9 |= DMSYMLINK;
                                        if(mode&ModeNamedPipe)
                                                mode9 |= DMNAMEDPIPE;
                                        if(mode&ModeSetUid)
       t@@ -174,6 +179,7 @@ unvac(VacFile *f, char *name, VacDir *vdir)
                                                mode9 |= DMSETGID;
                                        if(mode&ModeDevice)
                                                mode9 |= DMDEVICE;
       +#endif
                                        print("%M %-10s %-10s %11lld %t %s\n",
                                                mode9, vdir->uid, vdir->gid, vdir->size,
                                                vdir->mtime, name);