From 3c3f5ab2a39bec862df1d72a4741826ee356fb40 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 25 Jul 2017 13:27:02 -0700 Subject: [PATCH] Fix ordering of ls -t, which was backwards --- src/ls/ls.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ls/ls.rs b/src/ls/ls.rs index d22b524ad..dfa55abc1 100644 --- a/src/ls/ls.rs +++ b/src/ls/ls.rs @@ -31,6 +31,7 @@ use std::fs; use std::fs::{DirEntry, FileType, Metadata}; use std::path::{Path, PathBuf}; use std::io::Write; +use std::cmp::Reverse; #[cfg(unix)] use std::collections::HashMap; @@ -191,9 +192,10 @@ fn sort_entries(entries: &mut Vec, options: &getopts::Matches) { entries.sort_by_key(|k| get_metadata(k, options).map(|md| md.ctime()).unwrap_or(0)); } else { entries.sort_by_key(|k| { - get_metadata(k, options) + // Newest first + Reverse(get_metadata(k, options) .and_then(|md| md.modified()) - .unwrap_or(std::time::UNIX_EPOCH) + .unwrap_or(std::time::UNIX_EPOCH)) }); } } else if options.opt_present("S") { @@ -213,9 +215,10 @@ fn sort_entries(entries: &mut Vec, options: &getopts::Matches) { let mut reverse = options.opt_present("r"); if options.opt_present("t") { entries.sort_by_key(|k| { - get_metadata(k, options) + // Newest first + Reverse(get_metadata(k, options) .and_then(|md| md.modified()) - .unwrap_or(std::time::UNIX_EPOCH) + .unwrap_or(std::time::UNIX_EPOCH)) }); } else if options.opt_present("S") { entries.sort_by_key(|k| get_metadata(k, options).map(|md| md.file_size()).unwrap_or(0));