tremove searching print; check fids in use; handle addr correctly again - 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 07494878dc5ae11652cbe221cf9e2a20da94ca96
 (DIR) parent c91cfa9177ba734a4906dce29810845d3557650c
 (HTM) Author: rsc <devnull@localhost>
       Date:   Thu, 27 Jan 2005 20:36:04 +0000
       
       remove searching print; check fids in use; handle addr correctly again
       
       Diffstat:
         M src/cmd/acme/addr.c                 |       1 -
         M src/cmd/acme/fsys.c                 |      18 ++++++++++++++++--
         M src/cmd/acme/xfid.c                 |       8 +++++++-
       
       3 files changed, 23 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/acme/addr.c b/src/cmd/acme/addr.c
       t@@ -138,7 +138,6 @@ regexp(uint showerr, Text *t, Range lim, Range r, Rune *pat, int dir, int *found
                                q = Infinity;
                        else
                                q = lim.q1;
       -warning(nil, "searching %d-%d\n", r.q1, q);
                        found = rxexecute(t, nil, r.q1, q, &sel);
                }
                if(!found && showerr)
 (DIR) diff --git a/src/cmd/acme/fsys.c b/src/cmd/acme/fsys.c
       t@@ -160,10 +160,24 @@ fsysproc(void *v)
                        if(fcall[x->fcall.type] == 0)
                                x = respond(x, &t, "bad fcall type");
                        else{
       -                        if(x->fcall.type==Tversion || x->fcall.type==Tauth)
       +                        switch(x->fcall.type){
       +                        case Tversion:
       +                        case Tauth:
       +                        case Tflush:
                                        f = nil;
       -                        else
       +                                break;
       +                        case Tattach:
       +                                f = newfid(x->fcall.fid);
       +                                break;
       +                        default:
                                        f = newfid(x->fcall.fid);
       +                                if(!f->busy){
       +                                        x->f = f;
       +                                        x = respond(x, &t, "fid not in use");
       +                                        continue;
       +                                }
       +                                break;
       +                        }
                                x->f = f;
                                x  = (*fcall[x->fcall.type])(x, f);
                        }
 (DIR) diff --git a/src/cmd/acme/xfid.c b/src/cmd/acme/xfid.c
       t@@ -103,8 +103,14 @@ xfidopen(Xfid *x)
                        q = FILE(x->f->qid);
                        switch(q){
                        case QWaddr:
       +                        if(w->nopen[q]++ == 0){
       +                                w->addr = range(0, 0);
       +                                w->limit = range(-1,-1);
       +                        }
       +                        break;
       +                case QWdata:
       +                case QWxdata:
                                w->nopen[q]++;
       -                        w->limit = range(-1,-1);
                                break;
                        case QWevent:
                                if(w->nopen[q]++ == 0){