commit 3a3cd240920e9fef6a3c5c07521f71368c2e69ed
parent 96c8c5f389f358da904ed3e9c07b0ba76cb21644
Author: Markus Teich <markus.teich@stusta.mhn.de>
Date: Fri, 4 Oct 2013 11:12:11 +0100
ls: add option to reverse the sort order
Now you can list directory contents ordered by mtime with the
latest file displayed last in the output.
Diffstat:
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ls.1 b/ls.1
@@ -24,6 +24,9 @@ print the index number of each file.
lists detailed information about each file, including their type, permissions,
links, owner, group, size, and modification time.
.TP
+.B \-r
+reverses the sort order.
+.TP
.B \-t
sorts files by modification time instead of by name.
.TP
diff --git a/ls.c b/ls.c
@@ -35,6 +35,7 @@ static bool iflag = false;
static bool lflag = false;
static bool tflag = false;
static bool Uflag = false;
+static int sortorder = 1;
static bool first = true;
static bool many;
@@ -63,6 +64,9 @@ main(int argc, char *argv[])
case 'l':
lflag = true;
break;
+ case 'r':
+ sortorder = -1;
+ break;
case 't':
tflag = true;
break;
@@ -94,9 +98,9 @@ entcmp(const void *va, const void *vb)
const Entry *a = va, *b = vb;
if(tflag)
- return b->mtime - a->mtime;
+ return sortorder * (b->mtime - a->mtime);
else
- return strcmp(a->name, b->name);
+ return sortorder * (strcmp(a->name, b->name));
}
void