fix: Ignoring absolute path with -X option

This commit is contained in:
Teemu Pätsi
2025-03-07 01:18:31 +02:00
committed by andy.boot
parent d876cc28a7
commit c2a4c4573a

View File

@@ -175,6 +175,20 @@ fn ignore_file(entry: &DirEntry, walk_data: &WalkData) -> bool {
return true;
}
// Entry is inside an ignored absolute path
for ignored_path in walk_data.ignore_directories.iter() {
match std::fs::canonicalize(ignored_path) {
Ok(absolute_ignored_path) => {
let absolute_entry_path =
std::fs::canonicalize(&entry.path()).unwrap_or(PathBuf::new());
if absolute_entry_path.starts_with(absolute_ignored_path) {
return true;
}
}
Err(_) => continue,
}
}
(is_dot_file && walk_data.ignore_hidden) || is_ignored_path
}