diff --git a/src/enums.rs b/src/enums.rs index ac641b5..c625b8b 100644 --- a/src/enums.rs +++ b/src/enums.rs @@ -58,10 +58,10 @@ use std::fmt::Display; impl Display for AnsiSequence { fn fmt(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { write!(formatter, "\u{1b}")?; - + use AnsiSequence::*; match self { - CursorPos(line, col) + CursorPos(line, col) => write!(formatter, "[{};{}H", line, col), CursorUp(amt) => write!(formatter, "[{}A", amt), @@ -86,6 +86,8 @@ impl Display for AnsiSequence { 1 => write!(formatter, "[{}m", vec[0]), 2 => write!(formatter, "[{};{}m", vec[0], vec[1]), 3 => write!(formatter, "[{};{};{}m", vec[0], vec[1], vec[2]), + 5 => write!(formatter, "[{};{};{};{};{}m", vec[0], vec[1], + vec[2], vec[3], vec[4]), _ => unreachable!() } }, diff --git a/src/parsers/tests.rs b/src/parsers/tests.rs index 9adc546..5b37a51 100644 --- a/src/parsers/tests.rs +++ b/src/parsers/tests.rs @@ -59,6 +59,7 @@ test_parser!(erase_line, "\u{1b}[K"); test_parser!(set_video_mode_a, "\u{1b}[4m"); test_parser!(set_video_mode_b, "\u{1b}[4;42m"); test_parser!(set_video_mode_c, "\u{1b}[4;31;42m"); +test_parser!(set_video_mode_d, "\u{1b}[4;31;42;42;42m"); test_parser!(reset_mode, "\u{1b}[=13l"); test_parser!(set_mode, "\u{1b}[=7h");