mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
..
This commit is contained in:
parent
6eac3c0818
commit
2e389f710c
1 changed files with 7 additions and 6 deletions
|
|
@ -87,18 +87,19 @@ fn casefold_impl(path: PathBuf) -> io::Result<PathBuf> {
|
|||
let mut names = vec![];
|
||||
for entry in std::fs::read_dir(parent)? {
|
||||
let entry = entry?;
|
||||
if let m = entry.metadata()?
|
||||
let n = entry.file_name(); // TODO: use `file_name_ref()` when stabilized
|
||||
|
||||
if n == name {
|
||||
return Ok(PathBuf::from(OsString::from_vec(cstr.into_bytes())));
|
||||
} else if let m = entry.metadata()?
|
||||
&& m.ino() == meta.ino()
|
||||
&& m.dev() == meta.dev()
|
||||
{
|
||||
names.push(entry.file_name());
|
||||
names.push(n);
|
||||
}
|
||||
}
|
||||
|
||||
if names.iter().find(|&n| n == name).is_some() {
|
||||
// Exact match
|
||||
Ok(PathBuf::from(OsString::from_vec(cstr.into_bytes())))
|
||||
} else if names.len() == 1 {
|
||||
if names.len() == 1 {
|
||||
// No hardlink that shares the same inode
|
||||
Ok(parent.join(&names[0]))
|
||||
} else if let mut it = names.iter().enumerate().filter(|&(_, n)| n.eq_ignore_ascii_case(name))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue