From 40176c3fa84f83b470214a1f4ca4395a5106c843 Mon Sep 17 00:00:00 2001 From: Armando Herrera Date: Tue, 14 Apr 2026 23:43:39 -0500 Subject: [PATCH] fix(component): normalize Home/End escape variants --- src/ftxui/component/terminal_input_parser.cpp | 4 ++++ src/ftxui/component/terminal_input_parser_test.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/ftxui/component/terminal_input_parser.cpp b/src/ftxui/component/terminal_input_parser.cpp index f6d566d483..9f01f02528 100644 --- a/src/ftxui/component/terminal_input_parser.cpp +++ b/src/ftxui/component/terminal_input_parser.cpp @@ -47,6 +47,10 @@ const std::map g_uniformize = { {"\x1BOH", "\x1B[H"}, // HOME {"\x1BOF", "\x1B[F"}, // END + // Common Home/End sequences from terminals and multiplexers. + {"\x1B[1~", "\x1B[H"}, // HOME + {"\x1B[4~", "\x1B[F"}, // END + // Variations around the FN keys. // Internally, we are using: // vt220, xterm-vt200, xterm-xf86-v44, xterm-new, mgt, screen diff --git a/src/ftxui/component/terminal_input_parser_test.cpp b/src/ftxui/component/terminal_input_parser_test.cpp index aea5e82fb3..bc7d55b044 100644 --- a/src/ftxui/component/terminal_input_parser_test.cpp +++ b/src/ftxui/component/terminal_input_parser_test.cpp @@ -372,6 +372,10 @@ TEST(Event, Special) { {str("\x1BOH"), Event::Home}, {str("\x1BOF"), Event::End}, + // Home/End variants. + {str("\x1B[1~"), Event::Home}, + {str("\x1B[4~"), Event::End}, + // Backspace & Quirk for: // https://github.com/ArthurSonzogni/FTXUI/issues/508 {{127}, Event::Backspace},