From 2819212f8997fbea813fdfed1e8c6bd62674dd23 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Mon, 2 Nov 2020 10:37:49 -0500 Subject: [PATCH] printer: tweak binary detection message format This roughly matches similar changes made in GNU grep recently. --- CHANGELOG.md | 13 +++++++++++++ crates/printer/src/standard.rs | 11 +++++------ tests/binary.rs | 16 ++++++++-------- tests/misc.rs | 6 +++--- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d41ef210..d102b0dfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ TBD === Unreleased changes. Release notes have not yet been written. +In this release, a small tweak has been made to the output format when a binary +file is detected. Previously, it looked like this: + +``` +Binary file FOO matches (found "\0" byte around offset XXX) +``` + +Now it looks like this: + +``` +FOO: binary file matches (found "\0" byte around offset XXX) +``` + Bug fixes: * [BUG #1277](https://github.com/BurntSushi/ripgrep/issues/1277): diff --git a/crates/printer/src/standard.rs b/crates/printer/src/standard.rs index a0e9668af..d68447553 100644 --- a/crates/printer/src/standard.rs +++ b/crates/printer/src/standard.rs @@ -1358,25 +1358,24 @@ impl<'a, M: Matcher, W: WriteColor> StandardImpl<'a, M, W> { let bin = self.searcher.binary_detection(); if let Some(byte) = bin.quit_byte() { - self.write(b"WARNING: stopped searching binary file ")?; if let Some(path) = self.path() { self.write_spec(self.config().colors.path(), path.as_bytes())?; - self.write(b" ")?; + self.write(b": ")?; } let remainder = format!( - "after match (found {:?} byte around offset {})\n", + "WARNING: stopped searching binary file after match \ + (found {:?} byte around offset {})\n", [byte].as_bstr(), offset, ); self.write(remainder.as_bytes())?; } else if let Some(byte) = bin.convert_byte() { - self.write(b"Binary file ")?; if let Some(path) = self.path() { self.write_spec(self.config().colors.path(), path.as_bytes())?; - self.write(b" ")?; + self.write(b": ")?; } let remainder = format!( - "matches (found {:?} byte around offset {})\n", + "binary file matches (found {:?} byte around offset {})\n", [byte].as_bstr(), offset, ); diff --git a/tests/binary.rs b/tests/binary.rs index 89914165b..d93712eb6 100644 --- a/tests/binary.rs +++ b/tests/binary.rs @@ -40,7 +40,7 @@ rgtest!(after_match1_implicit, |dir: Dir, mut cmd: TestCommand| { let expected = "\ hay:1:The Project Gutenberg EBook of A Study In Scarlet, by Arthur Conan Doyle -WARNING: stopped searching binary file hay after match (found \"\\0\" byte around offset 9741) +hay: WARNING: stopped searching binary file after match (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -53,7 +53,7 @@ rgtest!(after_match1_explicit, |dir: Dir, mut cmd: TestCommand| { let expected = "\ 1:The Project Gutenberg EBook of A Study In Scarlet, by Arthur Conan Doyle -Binary file matches (found \"\\0\" byte around offset 9741) +binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -64,7 +64,7 @@ rgtest!(after_match1_stdin, |_: Dir, mut cmd: TestCommand| { let expected = "\ 1:The Project Gutenberg EBook of A Study In Scarlet, by Arthur Conan Doyle -Binary file matches (found \"\\0\" byte around offset 9741) +binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.pipe(HAY)); }); @@ -85,7 +85,7 @@ rgtest!(after_match1_implicit_binary, |dir: Dir, mut cmd: TestCommand| { let expected = "\ hay:1:The Project Gutenberg EBook of A Study In Scarlet, by Arthur Conan Doyle -Binary file hay matches (found \"\\0\" byte around offset 9741) +hay: binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -200,7 +200,7 @@ rgtest!(after_match2_implicit, |dir: Dir, mut cmd: TestCommand| { let expected = "\ hay:1:The Project Gutenberg EBook of A Study In Scarlet, by Arthur Conan Doyle -WARNING: stopped searching binary file hay after match (found \"\\0\" byte around offset 9741) +hay: WARNING: stopped searching binary file after match (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -240,7 +240,7 @@ rgtest!(before_match1_explicit, |dir: Dir, mut cmd: TestCommand| { cmd.args(&["--no-mmap", "-n", "Heaven", "hay"]); let expected = "\ -Binary file matches (found \"\\0\" byte around offset 9741) +binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -253,7 +253,7 @@ rgtest!(before_match1_implicit_binary, |dir: Dir, mut cmd: TestCommand| { cmd.args(&["--no-mmap", "-n", "--binary", "Heaven", "-g", "hay"]); let expected = "\ -Binary file hay matches (found \"\\0\" byte around offset 9741) +hay: binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); @@ -288,7 +288,7 @@ rgtest!(before_match2_explicit, |dir: Dir, mut cmd: TestCommand| { cmd.args(&["--no-mmap", "-n", "a medical student", "hay"]); let expected = "\ -Binary file matches (found \"\\0\" byte around offset 9741) +binary file matches (found \"\\0\" byte around offset 9741) "; eqnice!(expected, cmd.stdout()); }); diff --git a/tests/misc.rs b/tests/misc.rs index a61be0b58..c892da5b1 100644 --- a/tests/misc.rs +++ b/tests/misc.rs @@ -788,7 +788,7 @@ rgtest!(unrestricted3, |dir: Dir, mut cmd: TestCommand| { cmd.arg("-uuu").arg("foo"); let expected = "\ -Binary file hay matches (found \"\\0\" byte around offset 3) +hay: binary file matches (found \"\\0\" byte around offset 3) "; eqnice!(expected, cmd.stdout()); }); @@ -1001,7 +1001,7 @@ rgtest!(binary_convert, |dir: Dir, mut cmd: TestCommand| { cmd.arg("--no-mmap").arg("foo").arg("file"); let expected = "\ -Binary file matches (found \"\\0\" byte around offset 3) +binary file matches (found \"\\0\" byte around offset 3) "; eqnice!(expected, cmd.stdout()); }); @@ -1011,7 +1011,7 @@ rgtest!(binary_convert_mmap, |dir: Dir, mut cmd: TestCommand| { cmd.arg("--mmap").arg("foo").arg("file"); let expected = "\ -Binary file matches (found \"\\0\" byte around offset 3) +binary file matches (found \"\\0\" byte around offset 3) "; eqnice!(expected, cmd.stdout()); });