diff options
author | Peter S Panov <peter@sipan.org> | 2017-06-29 00:57:33 +0000 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2017-07-03 06:52:52 -0400 |
commit | 4047d9db710026b7f003243032f52d7c99c41ded (patch) | |
tree | 31a683ad965249ea5eabfe9052a6aa25d9a2badb /ignore/src/overrides.rs | |
parent | 4683a325fae596db75176d188034c6623e91db79 (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.rs | 33 |
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()); + } } |