aboutsummaryrefslogtreecommitdiffstats
path: root/noice.c
diff options
context:
space:
mode:
Diffstat (limited to 'noice.c')
-rw-r--r--noice.c10
1 files changed, 10 insertions, 0 deletions
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;
}
}
Un proyecto texto-plano.xyz