summaryrefslogtreecommitdiffstats
path: root/ignore/src/overrides.rs
diff options
context:
space:
mode:
authorPeter S Panov <peter@sipan.org>2017-06-29 00:57:33 +0000
committerAndrew Gallant <jamslam@gmail.com>2017-07-03 06:52:52 -0400
commit4047d9db710026b7f003243032f52d7c99c41ded (patch)
tree31a683ad965249ea5eabfe9052a6aa25d9a2badb /ignore/src/overrides.rs
parent4683a325fae596db75176d188034c6623e91db79 (diff)
add --iglob flag
Working with Chris Stadler, implemented https://github.com/BurntSushi/ripgrep/issues/163#issuecomment-300012592
Diffstat (limited to 'ignore/src/overrides.rs')
-rw-r--r--ignore/src/overrides.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/ignore/src/overrides.rs b/ignore/src/overrides.rs
index faf05f31..453066f9 100644
--- a/ignore/src/overrides.rs
+++ b/ignore/src/overrides.rs
@@ -137,6 +137,16 @@ impl OverrideBuilder {
try!(self.builder.add_line(None, glob));
Ok(self)
}
+
+ /// Toggle whether the globs should be matched case insensitively or not.
+ ///
+ /// This is disabled by default.
+ pub fn case_insensitive(
+ &mut self, yes: bool
+ ) -> Result<&mut OverrideBuilder, Error> {
+ try!(self.builder.case_insensitive(yes));
+ Ok(self)
+ }
}
#[cfg(test)]
@@ -220,4 +230,27 @@ mod tests {
let ov = ov(&["!/bar"]);
assert!(ov.matched("./foo/bar", false).is_none());
}
+
+ #[test]
+ fn case_insensitive() {
+ let ov = OverrideBuilder::new(ROOT)
+ .case_insensitive(true).unwrap()
+ .add("*.html").unwrap()
+ .build().unwrap();
+ assert!(ov.matched("foo.html", false).is_whitelist());
+ assert!(ov.matched("foo.HTML", false).is_whitelist());
+ assert!(ov.matched("foo.htm", false).is_ignore());
+ assert!(ov.matched("foo.HTM", false).is_ignore());
+ }
+
+ #[test]
+ fn default_case_sensitive() {
+ let ov = OverrideBuilder::new(ROOT)
+ .add("*.html").unwrap()
+ .build().unwrap();
+ assert!(ov.matched("foo.html", false).is_whitelist());
+ assert!(ov.matched("foo.HTML", false).is_ignore());
+ assert!(ov.matched("foo.htm", false).is_ignore());
+ assert!(ov.matched("foo.HTM", false).is_ignore());
+ }
}