1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-08-10 05:59:25 +02:00

Don't traverse directory stack if we don't need to.

This commit is contained in:
Andrew Gallant
2016-09-15 12:40:28 -04:00
parent 7cefc55238
commit f5c85827ce

View File

@@ -82,7 +82,10 @@ pub struct Ignore {
overrides: Overrides,
/// A file type matcher.
types: Types,
/// Whether to ignore hidden files or not.
ignore_hidden: bool,
/// When true, don't look at .gitignore or .agignore files for ignore
/// rules.
no_ignore: bool,
}
@@ -207,17 +210,19 @@ impl Ignore {
debug!("{} ignored because it is hidden", path.display());
return true;
}
if !self.no_ignore {
for id in self.stack.iter().rev().filter_map(|id| id.as_ref()) {
let mat = id.matched(path, is_dir);
if let Some(is_ignored) = self.ignore_match(path, mat) {
if is_ignored {
return true;
}
// If this path is whitelisted by an ignore, then fallthrough
// and let the file type matcher have a say.
// If this path is whitelisted by an ignore, then
// fallthrough and let the file type matcher have a say.
break;
}
}
}
let mat = self.types.matched(path, is_dir);
if let Some(is_ignored) = self.ignore_match(path, mat) {
return is_ignored;