diff --git a/src/ui.rs b/src/ui.rs
index 7d572ee..c2a2019 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -219,11 +219,12 @@ fn meter_line(
.map(|p| p.min(inner.saturating_sub(1)));
// Value text right-aligned inside the bar (htop pattern); bold default fg.
- let text: Vec<char> = if value_text.len() >= inner {
+ let text_len = value_text.chars().count();
+ let text: Vec<char> = if text_len >= inner {
value_text.chars().rev().take(inner).collect::<Vec<_>>()
.into_iter().rev().collect()
} else {
- let pad = inner - value_text.len();
+ let pad = inner - text_len;
std::iter::repeat_n(' ', pad)
.chain(value_text.chars())
.collect()
Fix: bar width byte/char mismatch let fill clip text with multibyte °
c5ccef7b651f7e4a2bf4147b96c96f99b8a09e51
josie <administrator@josie-c.com> · 2026-08-29T12:34 ·
browse files at this commit
parents:
ff0bca3