commit a919ad8340ba788c54d34b437c347ee8b0a5e922 from: rsc date: Wed Aug 10 18:54:14 2005 UTC set exit status commit - 17e9283bd8833da47aab4ccb66c3e965c947cffd commit + a919ad8340ba788c54d34b437c347ee8b0a5e922 blob - 909bfeb6492cf2136aab87b5dd5915e796479d42 blob + bace6d09de63fc347bf310dedc4dc495db77a5c0 --- src/cmd/9p.c +++ src/cmd/9p.c @@ -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': @@ -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){ @@ -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); @@ -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); @@ -430,6 +434,6 @@ xls(int argc, char **argv) } free(d); } - threadexitsall(0); + threadexitsall(err); }