diff --git a/ignore/src/gitignore.rs b/ignore/src/gitignore.rs index c44910ff..5523fa6d 100644 --- a/ignore/src/gitignore.rs +++ b/ignore/src/gitignore.rs @@ -311,7 +311,7 @@ impl GitignoreBuilder { Ok(line) => line, Err(err) => { errs.push(Error::Io(err).tagged(path, lineno)); - continue; + break; } }; if let Err(err) = self.add_line(Some(path.to_path_buf()), &line) { diff --git a/ignore/src/walk.rs b/ignore/src/walk.rs index a1ac2de5..f82b2335 100644 --- a/ignore/src/walk.rs +++ b/ignore/src/walk.rs @@ -451,7 +451,7 @@ impl WalkBuilder { pub fn add_ignore>(&mut self, path: P) -> Option { let mut builder = GitignoreBuilder::new(""); let mut errs = PartialErrorBuilder::default(); - errs.maybe_push_ignore_io(builder.add(path)); + errs.maybe_push(builder.add(path)); match builder.build() { Ok(gi) => { self.ig_builder.add_ignore(gi); } Err(err) => { errs.push(err); } diff --git a/tests/tests.rs b/tests/tests.rs index 59cefb59..5c5546d3 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -893,6 +893,13 @@ clean!(regression_206, "test", ".", |wd: WorkDir, mut cmd: Command| { assert_eq!(lines, format!("{}:test\n", path("foo/bar.txt"))); }); +// See: https://github.com/BurntSushi/ripgrep/issues/228 +clean!(regression_228, "test", ".", |wd: WorkDir, mut cmd: Command| { + wd.create_dir("foo"); + cmd.arg("--ignore-file").arg("foo"); + wd.assert_err(&mut cmd); +}); + // See: https://github.com/BurntSushi/ripgrep/issues/20 sherlock!(feature_20_no_filename, "Sherlock", ".", |wd: WorkDir, mut cmd: Command| {