From 0ddd388a29c0653f13981f181917929d7068b5a6 Mon Sep 17 00:00:00 2001 From: eth-p <32112321+eth-p@users.noreply.github.com> Date: Thu, 5 Jul 2018 14:30:06 -0700 Subject: [PATCH] Improve logic for SGR sequence passthrough --- src/printer.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 6af4cd2f..9fb4ac0a 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -164,9 +164,13 @@ impl<'a> Printer<'a> { match chunk { // ANSI escape passthrough. (text, true) => { - if text.chars().last().unwrap() == 'm' { - self.ansi_prefix_sgr.push_str(text); + if text.chars().last().map_or(false, |c| c == 'm') { ansi_prefix.push_str(text); + if text == "\x1B[0m" { + self.ansi_prefix_sgr = "\x1B[0m".to_owned(); + } else { + self.ansi_prefix_sgr.push_str(text); + } } else { ansi_prefix.push_str(text); }