mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2025-06-14 22:15:13 +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:
@ -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};
|
||||
|
Reference in New Issue
Block a user