commit - c988c8adf1d997d87ab792f68be0932fed74e9cd
commit + 0efbfd36f554a534750bbebb1e68a76aada3faa6
blob - ed80f5a6c428a2bddda1634f70dd374f0b0a18a4
blob + 6d329d6da8720d8f46981de348504b67c6e9f362
--- src/cmd/9p.c
+++ src/cmd/9p.c
a = (Dir*)va;
b = (Dir*)vb;
return strcmp(a->name, b->name);
+}
+
+static int
+timecmp(const void *va, const void *vb)
+{
+ Dir *a, *b;
+
+ a = (Dir*)va;
+ b = (Dir*)vb;
+ if(a->mtime < b->mtime)
+ return -1;
+ else if(a->mtime > b->mtime)
+ return 1;
+ else
+ return 0;
}
char *dot[] = { "." };
{
char *err, *name, *xname, *f[4], buf[4096];
int nf, i, j, l, sort;
- int lflag, dflag, n, len[4];
+ int lflag, dflag, tflag, n, len[4];
Dir *d;
CFid *fid;
CFsys *fs;
err = nil;
- sort = 0;
- lflag = dflag = 0;
+ sort = 1;
+ lflag = dflag = tflag = 0;
ARGBEGIN{
case 'n':
sort = 0;
case 'd':
dflag = 1;
break;
+ case 't':
+ tflag = 1;
+ break;
}ARGEND
fmtinstall('D', dirfmt);
err = "errors";
continue;
}
- if(sort)
- qsort(d, n, sizeof d[0], dircmp);
+ if(sort){
+ if(tflag)
+ qsort(d, n, sizeof d[0], timecmp);
+ else
+ qsort(d, n, sizeof d[0], dircmp);
+ }
for(j=0; j<4; j++)
len[j] = 0;
for(i=0; i<n; i++){