Extract entry extension only when there is an extension filter

This commit is contained in:
Matthias Reitinger 2017-10-03 17:29:38 +02:00 committed by David Peter
parent 83db8673cf
commit 32a321aafd
1 changed files with 5 additions and 8 deletions

View File

@ -307,14 +307,11 @@ fn scan(root: &Path, pattern: Arc<Regex>, base: &Path, config: Arc<FdOptions>) {
}
// Filter out unwanted extensions.
match (&config.extension, entry.path().extension()) {
(&None, _) => (),
(&Some(_), None) => return ignore::WalkState::Continue,
(&Some(ref e1), Some(e2)) => {
if e1 != &e2.to_string_lossy().to_lowercase() {
return ignore::WalkState::Continue;
}
},
if let Some(ref filter_ext) = config.extension {
let entry_ext = entry.path().extension().map(|e| e.to_string_lossy().to_lowercase());
if entry_ext.map_or(false, |ext| ext != *filter_ext) {
return ignore::WalkState::Continue;
}
}
let path_rel_buf = match fshelper::path_relative_from(entry.path(), &*base) {