From a63aac0b11c1bc8e54eed95f2fce6fd6dbb41ca8 Mon Sep 17 00:00:00 2001 From: sin Date: Sat, 31 Jan 2015 22:02:59 +0000 Subject: Add 't' command to sort output by entry's mtime --- noice.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'noice.c') diff --git a/noice.c b/noice.c index 5358111..04115cf 100644 --- a/noice.c +++ b/noice.c @@ -56,6 +56,7 @@ enum action { SEL_PGUP, SEL_SH, SEL_CD, + SEL_MTIME, }; struct key { @@ -68,8 +69,11 @@ struct key { struct entry { char *name; mode_t mode; + time_t t; }; +int mtimeorder; + /* * Layout: * .--------- @@ -231,6 +235,8 @@ entrycmp(const void *va, const void *vb) a = (struct entry *)va; b = (struct entry *)vb; + if (mtimeorder) + return b->t - a->t; return strcmp(a->name, b->name); } @@ -487,6 +493,7 @@ dentfill(char *path, struct entry **dents, if (r == -1) printerr(1, "lstat"); (*dents)[n].mode = sb.st_mode; + (*dents)[n].t = sb.st_mtime; n++; } @@ -809,6 +816,9 @@ moretyping: filter = xstrdup(ifilter); /* Reset filter */ DPRINTF_S(path); goto out; + case SEL_MTIME: + mtimeorder = !mtimeorder; + goto out; } } -- cgit v1.2.3