From 0496636dc75db14a99aa71a7cadb006dc027d5c6 Mon Sep 17 00:00:00 2001 From: JJ Liebig Date: Thu, 3 Sep 2026 17:20:57 +0200 Subject: fix(windows): preserve ctrl+slash key identity (#3578) refs #2954 --- src/input/encode.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/input') diff --git a/src/input/encode.rs b/src/input/encode.rs index 6dfff4ce..1dd56351 100644 --- a/src/input/encode.rs +++ b/src/input/encode.rs @@ -501,7 +501,7 @@ fn encode_legacy_inner(key: TerminalKey) -> Vec { ']' | '5' => vec![29], '^' | '6' => vec![30], '_' | '/' | '7' | '-' => vec![31], - _ => vec![ch as u8], + _ => ch.to_string().into_bytes(), } } else { let ch = if key.modifiers == KeyModifiers::SHIFT { @@ -589,6 +589,12 @@ mod tests { assert_eq!(encode_key(key, KeyboardProtocol::Legacy), vec![31]); } + #[test] + fn legacy_ctrl_non_ascii_char_uses_utf8() { + let key = KeyEvent::new(KeyCode::Char('ß'), KeyModifiers::CONTROL); + assert_eq!(encode_key(key, KeyboardProtocol::Legacy), "ß".as_bytes()); + } + #[test] fn legacy_shift_enter_is_just_cr() { let key = KeyEvent::new(KeyCode::Enter, KeyModifiers::SHIFT); -- cgit v1.2.3