Skip to content

Commit

Permalink
Use more accurate time to fix inconsistent sorting
Browse files Browse the repository at this point in the history
  • Loading branch information
ariasuni committed Nov 22, 2018
1 parent 485611e commit 649744d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/fs/fields.rs
Expand Up @@ -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,
Expand Down
8 changes: 4 additions & 4 deletions src/fs/filter.rs
Expand Up @@ -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),
Expand Down

0 comments on commit 649744d

Please sign in to comment.