1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00

Omit context separators when using a contextless option like -c or -l

Fixes #693
This commit is contained in:
dana 2017-11-27 12:50:24 -06:00 committed by Andrew Gallant
parent 7ae1f373c2
commit d73a75d6cd
2 changed files with 27 additions and 6 deletions

View File

@ -153,14 +153,16 @@ impl Args {
/// Retrieve the configured file separator.
pub fn file_separator(&self) -> Option<Vec<u8>> {
let use_heading_sep =
self.heading
&& !self.count
&& !self.files_with_matches
&& !self.files_without_matches;
let contextless =
self.count
|| self.files_with_matches
|| self.files_without_matches;
let use_heading_sep = self.heading && !contextless;
if use_heading_sep {
Some(b"".to_vec())
} else if self.before_context > 0 || self.after_context > 0 {
} else if !contextless
&& (self.before_context > 0 || self.after_context > 0) {
Some(self.context_separator.clone())
} else {
None

View File

@ -1799,6 +1799,25 @@ fn regression_568_leading_hyphen_option_arguments() {
assert_eq!(lines, "foo -n -baz\n");
}
// See: https://github.com/BurntSushi/ripgrep/issues/693
#[test]
fn regression_693_context_option_in_contextless_mode() {
let wd = WorkDir::new("regression_693_context_option_in_contextless_mode");
wd.create("foo", "xyz\n");
wd.create("bar", "xyz\n");
let mut cmd = wd.command();
cmd.arg("-C1").arg("-c").arg("--sort-files").arg("xyz");
let lines: String = wd.stdout(&mut cmd);
let expected = "\
bar:1
foo:1
";
assert_eq!(lines, expected);
}
#[test]
fn type_list() {
let wd = WorkDir::new("type_list");