From 86d62df8a67a68cfcc83ffe29956bf4962aa8c98 Mon Sep 17 00:00:00 2001 From: Alex Pasmantier Date: Fri, 18 Apr 2025 12:18:52 +0200 Subject: [PATCH] fix(unicode): add support for more unicode characters --- television/utils/strings.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/television/utils/strings.rs b/television/utils/strings.rs index 59b1fee..c91166a 100644 --- a/television/utils/strings.rs +++ b/television/utils/strings.rs @@ -195,6 +195,9 @@ const ALL_NF_RANGES: [&std::ops::RangeInclusive; 10] = [ &NF_RANGE_POWERLINE_2, ]; +const VARIOUS_UNIT_WIDTH_SYMBOLS_RANGE: std::ops::RangeInclusive = + '\u{2000}'..='\u{25FF}'; + pub struct ReplaceNonPrintableConfig { pub replace_tab: bool, pub tab_width: usize, @@ -330,6 +333,10 @@ pub fn replace_non_printable( c if ALL_NF_RANGES.iter().any(|r| r.contains(&c)) => { output.push(c); } + // Other unit width symbols + c if VARIOUS_UNIT_WIDTH_SYMBOLS_RANGE.contains(&c) => { + output.push(c); + } // Unicode characters above 0x0700 seem unstable with ratatui c if c > '\u{0700}' => { output.push(NULL_SYMBOL);