URI: 
       tacme: report close failure during Put - 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 0b349f6f34f1fff58ab9748277a093f70df2be33
   DIR parent 4af8158b5351cc0ed7fc0ebb5e7b31c64069363d
  HTML Author: Russ Cox <rsc@swtch.com>
       Date:   Thu, 19 Dec 2019 14:51:18 -0500
       
       acme: report close failure during Put
       
       Diffstat:
         M src/cmd/acme/exec.c                 |       8 ++++++--
       
       1 file changed, 6 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/src/cmd/acme/exec.c b/src/cmd/acme/exec.c
       t@@ -699,7 +699,7 @@ putfile(File *f, int q0, int q1, Rune *namer, int nname)
                Rune *r;
                Biobuf *b;
                char *s, *name;
       -        int i, fd, q;
       +        int i, fd, q, ret;
                Dir *d, *d1;
                Window *w;
                int isapp;
       t@@ -762,9 +762,13 @@ putfile(File *f, int q0, int q1, Rune *namer, int nname)
                        warning(nil, "can't write file %s: %r\n", name);
                        goto Rescue2;
                }
       -        Bterm(b);
       +        ret = Bterm(b);
                free(b);
                b = nil;
       +        if(ret < 0) {
       +                warning(nil, "can't write file %s: %r\n", name);
       +                goto Rescue2; // flush or close failed
       +        }
                if(runeeq(namer, nname, f->name, f->nname)){
                        if(q0!=0 || q1!=f->b.nc){
                                f->mod = TRUE;