mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
log: add message when a binary file is skipped
The way we do this is a little hokey but I believe it is correct. Fixes #2246
This commit is contained in:
parent
fded2a5fe1
commit
0e6e9417f1
@ -77,6 +77,8 @@ Bug fixes:
|
||||
Fix gitignore parsing bug where a trailing `\/` resulted in an error.
|
||||
* [BUG #2243](https://github.com/BurntSushi/ripgrep/issues/2243):
|
||||
Fix `--sort` flag for values other than `path`.
|
||||
* [BUG #2246](https://github.com/BurntSushi/ripgrep/issues/2246):
|
||||
Add note in `--debug` logs when binary files are ignored.
|
||||
* [BUG #2337](https://github.com/BurntSushi/ripgrep/issues/2337):
|
||||
Improve docs to mention that `--stats` is always implied by `--json`.
|
||||
* [BUG #2381](https://github.com/BurntSushi/ripgrep/issues/2381):
|
||||
|
@ -755,6 +755,23 @@ impl<'p, 's, M: Matcher, W: io::Write> Sink for JSONSink<'p, 's, M, W> {
|
||||
Ok(!self.should_quit())
|
||||
}
|
||||
|
||||
fn binary_data(
|
||||
&mut self,
|
||||
searcher: &Searcher,
|
||||
binary_byte_offset: u64,
|
||||
) -> Result<bool, io::Error> {
|
||||
if searcher.binary_detection().quit_byte().is_some() {
|
||||
if let Some(ref path) = self.path {
|
||||
log::debug!(
|
||||
"ignoring {path}: found binary data at \
|
||||
offset {binary_byte_offset}",
|
||||
path = path.display(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn begin(&mut self, _searcher: &Searcher) -> Result<bool, io::Error> {
|
||||
self.json.wtr.reset_count();
|
||||
self.start_time = Instant::now();
|
||||
|
@ -884,9 +884,18 @@ impl<'p, 's, M: Matcher, W: WriteColor> Sink for StandardSink<'p, 's, M, W> {
|
||||
|
||||
fn binary_data(
|
||||
&mut self,
|
||||
_searcher: &Searcher,
|
||||
searcher: &Searcher,
|
||||
binary_byte_offset: u64,
|
||||
) -> Result<bool, io::Error> {
|
||||
if searcher.binary_detection().quit_byte().is_some() {
|
||||
if let Some(ref path) = self.path {
|
||||
log::debug!(
|
||||
"ignoring {path}: found binary data at \
|
||||
offset {binary_byte_offset}",
|
||||
path = path.as_path().display(),
|
||||
);
|
||||
}
|
||||
}
|
||||
self.binary_byte_offset = Some(binary_byte_offset);
|
||||
Ok(true)
|
||||
}
|
||||
|
@ -688,6 +688,23 @@ impl<'p, 's, M: Matcher, W: WriteColor> Sink for SummarySink<'p, 's, M, W> {
|
||||
Ok(!self.should_quit())
|
||||
}
|
||||
|
||||
fn binary_data(
|
||||
&mut self,
|
||||
searcher: &Searcher,
|
||||
binary_byte_offset: u64,
|
||||
) -> Result<bool, io::Error> {
|
||||
if searcher.binary_detection().quit_byte().is_some() {
|
||||
if let Some(ref path) = self.path {
|
||||
log::debug!(
|
||||
"ignoring {path}: found binary data at \
|
||||
offset {binary_byte_offset}",
|
||||
path = path.as_path().display(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn begin(&mut self, _searcher: &Searcher) -> Result<bool, io::Error> {
|
||||
if self.path.is_none() && self.summary.config.kind.requires_path() {
|
||||
return Err(io::Error::error_message(format!(
|
||||
|
@ -344,7 +344,7 @@ impl<'a> PrinterPath<'a> {
|
||||
}
|
||||
|
||||
/// Return this path as an actual `Path` type.
|
||||
fn as_path(&self) -> &Path {
|
||||
pub(crate) fn as_path(&self) -> &Path {
|
||||
#[cfg(unix)]
|
||||
fn imp<'p>(p: &'p PrinterPath<'_>) -> &'p Path {
|
||||
use std::{ffi::OsStr, os::unix::ffi::OsStrExt};
|
||||
|
@ -425,7 +425,6 @@ rgtest!(f411_parallel_search_stats, |dir: Dir, mut cmd: TestCommand| {
|
||||
dir.create("sherlock_2", SHERLOCK);
|
||||
|
||||
let lines = cmd.arg("-j2").arg("--stats").arg("Sherlock").stdout();
|
||||
dbg!(&lines);
|
||||
assert!(lines.contains("4 matched lines"));
|
||||
assert!(lines.contains("2 files contained matches"));
|
||||
assert!(lines.contains("2 files searched"));
|
||||
|
Loading…
Reference in New Issue
Block a user