From 82f450569f110cc06445e67b21d8e36420f1b0da Mon Sep 17 00:00:00 2001 From: Thomas Kilian Date: Wed, 11 Jun 2025 18:42:57 +0200 Subject: [PATCH] Fix TerminalMode::write_str() to write all chars (#228) --- CHANGELOG.md | 3 +++ src/mode/terminal.rs | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fd07049..8da9ada2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ SSD1306 monochrome OLED display. ## [Unreleased] - ReleaseDate +### Fixed +- Fix TerminalMode::write_str() to write all chars ([#228](https://github.com/rust-embedded-community/ssd1306/issues/228)) + ## [0.10.0] - 2025-03-22 ### Changed - Added `DisplaySize64x32` to the prelude diff --git a/src/mode/terminal.rs b/src/mode/terminal.rs index d9b4c9d1..569837de 100644 --- a/src/mode/terminal.rs +++ b/src/mode/terminal.rs @@ -624,7 +624,8 @@ where SIZE: TerminalDisplaySize, { fn write_str(&mut self, s: &str) -> Result<(), fmt::Error> { - s.chars().map(move |c| self.print_char(c)).next_back(); - Ok(()) + s.chars() + .try_for_each(|c| self.print_char(c)) + .map_err(|_| fmt::Error) } }