diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c113df4..1b5c3c1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ ## `bat` as a library - Make `bat::PrettyPrinter::syntaxes()` iterate over new `bat::Syntax` struct instead of `&syntect::parsing::SyntaxReference`. See #2222 (@Enselic) +- Clear highlights after printing, see #1919 and #1920 (@rhysd) # v0.21.0 diff --git a/src/pretty_printer.rs b/src/pretty_printer.rs index 28644513..0d68ba40 100644 --- a/src/pretty_printer.rs +++ b/src/pretty_printer.rs @@ -263,8 +263,8 @@ impl<'a> PrettyPrinter<'a> { /// If you want to call 'print' multiple times, you have to call the appropriate /// input_* methods again. pub fn print(&mut self) -> Result { - self.config.highlighted_lines = - HighlightedLineRanges(LineRanges::from(self.highlighted_lines.clone())); + let highlight_lines = std::mem::take(&mut self.highlighted_lines); + self.config.highlighted_lines = HighlightedLineRanges(LineRanges::from(highlight_lines)); self.config.term_width = self .term_width .unwrap_or_else(|| Term::stdout().size().1 as usize);