|
|
@ -367,10 +367,9 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|
|
|
match chunk {
|
|
|
|
match chunk {
|
|
|
|
// ANSI escape passthrough.
|
|
|
|
// ANSI escape passthrough.
|
|
|
|
(text, true) => {
|
|
|
|
(text, true) => {
|
|
|
|
let is_ansi_csi =
|
|
|
|
let is_ansi_csi = text.starts_with("\x1B[");
|
|
|
|
text.chars().skip(1).nth(0).map_or(false, |c| c == '[');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if is_ansi_csi && text.chars().last().map_or(false, |c| c == 'm') {
|
|
|
|
if is_ansi_csi && text.ends_with('m') {
|
|
|
|
// It's an ANSI SGR sequence.
|
|
|
|
// It's an ANSI SGR sequence.
|
|
|
|
// We should be mostly safe to just append these together.
|
|
|
|
// We should be mostly safe to just append these together.
|
|
|
|
ansi_prefix.push_str(text);
|
|
|
|
ansi_prefix.push_str(text);
|
|
|
|