on master help sign in
Print ANSI-reset code before newline
fee57d7sharkdp
src/printer.rs+4−2
@@ -309,11 +309,13 @@ impl<'a> Printer for InteractivePrinter<'a> {
309
309
310 for &(style, region) in regions.iter() {
310 for &(style, region) in regions.iter() {
311 let text = &*self.preprocess(region, &mut cursor_total);
311 let text = &*self.preprocess(region, &mut cursor_total);
312+ let text_trimmed = text.trim_end_matches(|c| c == '\r' || c == '\n');
312 write!(
313 write!(
313 handle,
314 handle,
314 "{}",
315 "{}",
315− as_terminal_escaped(style, &*text, true_color, colored_output, italics,)
316+ as_terminal_escaped(style, text_trimmed, true_color, colored_output, italics,)
316 )?;
317 )?;
318+ write!(handle, "{}", &text[text_trimmed.len()..])?;
317 }
319 }
318
320
319 if line.bytes().next_back() != Some(b'\n') {
321 if line.bytes().next_back() != Some(b'\n') {
@@ -342,7 +344,7 @@ impl<'a> Printer for InteractivePrinter<'a> {
342 // Regular text.
344 // Regular text.
343 (text, false) => {
345 (text, false) => {
344 let text = self.preprocess(
346 let text = self.preprocess(
345− text.trim_right_matches(|c| c == '\r' || c == '\n'),
347+ text.trim_end_matches(|c| c == '\r' || c == '\n'),
346 &mut cursor_total,
348 &mut cursor_total,
347 );
349 );
348
350