From 85334457f30521c1f79687a514fc99a7cd5644cc Mon Sep 17 00:00:00 2001 From: sxyazi Date: Mon, 15 Jan 2024 20:31:31 +0800 Subject: [PATCH] fix: ensure that `LINK` and `ORPHAN` cannot coexist --- yazi-shared/src/fs/cha.rs | 2 -- yazi-shared/src/fs/file.rs | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/yazi-shared/src/fs/cha.rs b/yazi-shared/src/fs/cha.rs index fd0eea22..a1b116ba 100644 --- a/yazi-shared/src/fs/cha.rs +++ b/yazi-shared/src/fs/cha.rs @@ -38,8 +38,6 @@ impl From for Cha { let mut ck = ChaKind::empty(); if m.is_dir() { ck |= ChaKind::DIR; - } else if m.is_symlink() { - ck |= ChaKind::LINK; } #[cfg(unix)] diff --git a/yazi-shared/src/fs/file.rs b/yazi-shared/src/fs/file.rs index 6216f77a..0f558794 100644 --- a/yazi-shared/src/fs/file.rs +++ b/yazi-shared/src/fs/file.rs @@ -31,13 +31,14 @@ impl File { let (is_link, mut link_to) = (meta.is_symlink(), None); if is_link { - ck |= ChaKind::LINK; meta = fs::metadata(&url).await.unwrap_or(meta); link_to = fs::read_link(&url).await.map(Url::from).ok(); } if is_link && meta.is_symlink() { ck |= ChaKind::ORPHAN; + } else if is_link { + ck |= ChaKind::LINK; } if url.is_hidden() {