aboutsummaryrefslogtreecommitdiff
path: root/bin/ls/ls.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2006-03-24 16:47:22 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2006-03-24 16:47:22 +0000
commit86cca1e75ed02a39d8fd8785fa8db8de71a72cfb (patch)
treec4865cf0466ba36ae8f51f934ab849fe528005ff /bin/ls/ls.c
parentbea12be630bd7c9b064f75895420238044c79491 (diff)
Fix a bug such that if you enabled sorting by size (-S) and enabled a
flag to use a time other than modtime (-c, -u, or -U), the output would actually be sorted by the specified time rather than size. This does alter the behavior in the case where both -S and -t are specified. Now, -S is always preferred. Previously, -t was preferred if one of -c, -u, or -U was specified, and -S was preferred otherwise. Perhaps -S and -t should override each other (last one specified wins).
Notes
Notes: svn path=/head/; revision=157100
Diffstat (limited to 'bin/ls/ls.c')
-rw-r--r--bin/ls/ls.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/bin/ls/ls.c b/bin/ls/ls.c
index 4a752ce2f989..053803cf2ec5 100644
--- a/bin/ls/ls.c
+++ b/bin/ls/ls.c
@@ -416,27 +416,27 @@ main(int argc, char *argv[])
if (f_reversesort) {
if (!f_timesort && !f_sizesort)
sortfcn = revnamecmp;
+ else if (f_sizesort)
+ sortfcn = revsizecmp;
else if (f_accesstime)
sortfcn = revacccmp;
else if (f_birthtime)
sortfcn = revbirthcmp;
else if (f_statustime)
sortfcn = revstatcmp;
- else if (f_sizesort)
- sortfcn = revsizecmp;
else /* Use modification time. */
sortfcn = revmodcmp;
} else {
if (!f_timesort && !f_sizesort)
sortfcn = namecmp;
+ else if (f_sizesort)
+ sortfcn = sizecmp;
else if (f_accesstime)
sortfcn = acccmp;
else if (f_birthtime)
sortfcn = birthcmp;
else if (f_statustime)
sortfcn = statcmp;
- else if (f_sizesort)
- sortfcn = sizecmp;
else /* Use modification time. */
sortfcn = modcmp;
}