Skip to content

Commit 649744d

Browse files
committed
Use more accurate time to fix inconsistent sorting
1 parent 485611e commit 649744d

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/fs/fields.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ pub struct DeviceIDs {
167167

168168

169169
/// One of a file’s timestamps (created, accessed, or modified).
170-
#[derive(Copy, Clone)]
170+
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
171171
pub struct Time {
172172
pub seconds: time_t,
173173
pub nanoseconds: time_t,

src/fs/filter.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ impl SortField {
245245

246246
SortField::Size => a.metadata.len().cmp(&b.metadata.len()),
247247
SortField::FileInode => a.metadata.ino().cmp(&b.metadata.ino()),
248-
SortField::ModifiedDate => a.metadata.mtime().cmp(&b.metadata.mtime()),
249-
SortField::AccessedDate => a.metadata.atime().cmp(&b.metadata.atime()),
250-
SortField::CreatedDate => a.metadata.ctime().cmp(&b.metadata.ctime()),
251-
SortField::ModifiedAge => b.metadata.mtime().cmp(&a.metadata.mtime()), // flip b and a
248+
SortField::ModifiedDate => a.modified_time().cmp(&b.modified_time()),
249+
SortField::AccessedDate => a.accessed_time().cmp(&b.accessed_time()),
250+
SortField::CreatedDate => a.created_time().cmp(&b.created_time()),
251+
SortField::ModifiedAge => b.modified_time().cmp(&a.modified_time()), // flip b and a
252252

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

0 commit comments

Comments
 (0)