URI: 
       tset exit status - 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 a919ad8340ba788c54d34b437c347ee8b0a5e922
   DIR parent 17e9283bd8833da47aab4ccb66c3e965c947cffd
  HTML Author: rsc <devnull@localhost>
       Date:   Wed, 10 Aug 2005 18:54:14 +0000
       
       set exit status
       
       Diffstat:
         M src/cmd/9p.c                        |      10 +++++++---
       
       1 file changed, 7 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/src/cmd/9p.c b/src/cmd/9p.c
       t@@ -355,13 +355,14 @@ dircmp(const void *va, const void *vb)
        void
        xls(int argc, char **argv)
        {
       -        char *name, *xname, *f[4], buf[4096];
       +        char *err, *name, *xname, *f[4], buf[4096];
                int nf, i, j, l;
                int lflag, dflag, n, len[4];
                Dir *d;
                CFid *fid;
                CFsys *fs;
       -        
       +
       +        err = nil;
                lflag = dflag = 0;
                ARGBEGIN{
                case 'l':
       t@@ -383,6 +384,7 @@ xls(int argc, char **argv)
                        if((d = fsdirstat(fs, xname)) == nil){
                                fprint(2, "dirstat %s: %r\n", name);
                                fsunmount(fs);
       +                        err = "errors";
                                continue;
                        }
                        if((d->mode&DMDIR) && !dflag){
       t@@ -390,6 +392,7 @@ xls(int argc, char **argv)
                                        fprint(2, "open %s: %r\n", name);
                                        fsunmount(fs);
                                        free(d);
       +                                err = "errors";
                                        continue;
                                }
                                free(d);
       t@@ -398,6 +401,7 @@ xls(int argc, char **argv)
                                if(n < 0){
                                        fprint(2, "dirreadall %s: %r\n", name);
                                        fsunmount(fs);
       +                                err = "errors";
                                        continue;
                                }
                                qsort(d, n, sizeof d[0], dircmp);
       t@@ -430,6 +434,6 @@ xls(int argc, char **argv)
                        }
                        free(d);
                }
       -        threadexitsall(0);
       +        threadexitsall(err);
        }