tclean up mkfile; fix winctlprint bug reported by peter canning - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 627bae9c76134c3db23162ce718b0c2725d26441
 (DIR) parent f755d504015485c32e893b474ca42493a9f3dd67
 (HTM) Author: rsc <devnull@localhost>
       Date:   Tue,  4 Jan 2005 21:39:23 +0000
       
       clean up mkfile; fix winctlprint bug reported by peter canning
       
       Diffstat:
         M src/cmd/acme/dat.h                  |       2 +-
         M src/cmd/acme/mkfile                 |      10 ----------
         M src/cmd/acme/wind.c                 |      10 +++++-----
         M src/cmd/acme/xfid.c                 |      14 +++++++++-----
       
       4 files changed, 15 insertions(+), 21 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/acme/dat.h b/src/cmd/acme/dat.h
       t@@ -285,7 +285,7 @@ void        winevent(Window*, char*, ...);
        void        winmousebut(Window*);
        void        winaddincl(Window*, Rune*, int);
        void        wincleartag(Window*);
       -void        winctlprint(Window*, char*, int);
       +char        *winctlprint(Window*, char*, int);
        
        struct Column
        {
 (DIR) diff --git a/src/cmd/acme/mkfile b/src/cmd/acme/mkfile
       t@@ -1,5 +1,3 @@
       -# Acme is up-to-date w.r.t. sources as of 29 February 2004
       -
        <$PLAN9/src/mkhdr
        
        TARG=acme
       t@@ -30,14 +28,6 @@ HFILES=dat.h\
                edit.h\
                fns.h\
        
       -UPDATE=\
       -        mkfile\
       -        $HFILES\
       -        ${OFILES:%.$O=%.c}\
       -
       -SHORTLIB=complete plumb fs mux thread frame draw bio 9
        <$PLAN9/src/mkone
        
       -LDFLAGS=$LDFLAGS -L$X11/lib -lX11
       -
        edit.$O ecmd.$O elog.$O:        edit.h
 (DIR) diff --git a/src/cmd/acme/wind.c b/src/cmd/acme/wind.c
       t@@ -543,15 +543,15 @@ winclean(Window *w, int conservative)        /* as it stands, conservative is always TR
                return TRUE;
        }
        
       -void
       +char*
        winctlprint(Window *w, char *buf, int fonts)
        {
       -        int n;
       -
       -        n = sprint(buf, "%11d %11d %11d %11d %11d ", w->id, w->tag.file->b.nc,
       +        sprint(buf, "%11d %11d %11d %11d %11d ", w->id, w->tag.file->b.nc,
                        w->body.file->b.nc, w->isdir, w->dirty);
                if(fonts)
       -                sprint(buf+n, "%11d %q %11d" , Dx(w->body.fr.r), w->body.reffont->f->name, w->body.fr.maxtab);
       +                return smprint("%s%11d %q %11d ", buf, Dx(w->body.fr.r), 
       +                        w->body.reffont->f->name, w->body.fr.maxtab);
       +        return buf;
        }
        
        void
 (DIR) diff --git a/src/cmd/acme/xfid.c b/src/cmd/acme/xfid.c
       t@@ -255,7 +255,7 @@ xfidread(Xfid *x)
                int n, q;
                uint off;
                char *b;
       -        char buf[128];
       +        char buf[256];
                Window *w;
        
                q = FILE(x->f->qid);
       t@@ -295,18 +295,22 @@ xfidread(Xfid *x)
                        break;
        
                case QWctl:
       -                winctlprint(w, buf, 1);
       -                goto Readbuf;
       +                b = winctlprint(w, buf, 1);
       +                goto Readb;
        
                Readbuf:
       -                n = strlen(buf);
       +                b = buf;
       +        Readb:
       +                n = strlen(b);
                        if(off > n)
                                off = n;
                        if(off+x->fcall.count > n)
                                x->fcall.count = n-off;
                        fc.count = x->fcall.count;
       -                fc.data = buf+off;
       +                fc.data = b+off;
                        respond(x, &fc, nil);
       +                if(b != buf)
       +                        free(b);
                        break;
        
                case QWevent: