From ed0c051c55e40c1ab3cdc029ba4ca518ee407a1e Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Tue, 7 Apr 2026 15:48:58 +0300 Subject: fix: preserve lf in raw terminal input --- src/input/parse.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/input/parse.rs') diff --git a/src/input/parse.rs b/src/input/parse.rs index 525119f4..b7b449ae 100644 --- a/src/input/parse.rs +++ b/src/input/parse.rs @@ -61,7 +61,10 @@ fn parse_legacy_key_sequence(data: &str) -> Option { } match data { - "\r" | "\n" => Some(TerminalKey::new(KeyCode::Enter, KeyModifiers::empty())), + // In raw mode, Enter is carriage return. A bare line feed is ambiguous in + // terminal input and is commonly used for Ctrl+J or Shift+Enter workarounds. + // Preserve LF by letting it fall through to legacy control-byte parsing. + "\r" => Some(TerminalKey::new(KeyCode::Enter, KeyModifiers::empty())), "\t" => Some(TerminalKey::new(KeyCode::Tab, KeyModifiers::empty())), "\x1b" => Some(TerminalKey::new(KeyCode::Esc, KeyModifiers::empty())), "\x7f" => Some(TerminalKey::new(KeyCode::Backspace, KeyModifiers::empty())), -- cgit v1.2.3