Skip to content
Permalink
Browse files

Use more accurate time to fix inconsistent sorting

  • Loading branch information...
ariasuni committed Nov 20, 2018
1 parent 485611e commit 649744dc825b8e21c1b86bd3b11c122cf7b8d3ba
Showing with 5 additions and 5 deletions.
  1. +1 −1 src/fs/fields.rs
  2. +4 −4 src/fs/filter.rs
@@ -167,7 +167,7 @@ pub struct DeviceIDs {


/// One of a file’s timestamps (created, accessed, or modified).
#[derive(Copy, Clone)]
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct Time {
pub seconds: time_t,
pub nanoseconds: time_t,
@@ -245,10 +245,10 @@ impl SortField {

SortField::Size => a.metadata.len().cmp(&b.metadata.len()),
SortField::FileInode => a.metadata.ino().cmp(&b.metadata.ino()),
SortField::ModifiedDate => a.metadata.mtime().cmp(&b.metadata.mtime()),
SortField::AccessedDate => a.metadata.atime().cmp(&b.metadata.atime()),
SortField::CreatedDate => a.metadata.ctime().cmp(&b.metadata.ctime()),
SortField::ModifiedAge => b.metadata.mtime().cmp(&a.metadata.mtime()), // flip b and a
SortField::ModifiedDate => a.modified_time().cmp(&b.modified_time()),
SortField::AccessedDate => a.accessed_time().cmp(&b.accessed_time()),
SortField::CreatedDate => a.created_time().cmp(&b.created_time()),
SortField::ModifiedAge => b.modified_time().cmp(&a.modified_time()), // flip b and a

SortField::FileType => match a.type_char().cmp(&b.type_char()) { // todo: this recomputes
Ordering::Equal => natord::compare(&*a.name, &*b.name),

0 comments on commit 649744d

Please sign in to comment.
You can’t perform that action at this time.