From d34dc45d34618aa2495e892caba62a4aa521b386 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Tue, 14 May 2013 12:15:54 +0200 Subject: readline: Handle xterm escape sequences for Home/End keys This fixes the Home/End keys in the monitor using the GTK frontend. Signed-off-by: Kevin Wolf Message-id: 1368526554-15866-1-git-send-email-kwolf@redhat.com Signed-off-by: Anthony Liguori --- readline.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/readline.c b/readline.c index d6e04d4796..1c0f7ee26b 100644 --- a/readline.c +++ b/readline.c @@ -27,6 +27,7 @@ #define IS_NORM 0 #define IS_ESC 1 #define IS_CSI 2 +#define IS_SS3 3 #undef printf #define printf do_not_use_printf @@ -397,6 +398,9 @@ void readline_handle_byte(ReadLineState *rs, int ch) if (ch == '[') { rs->esc_state = IS_CSI; rs->esc_param = 0; + } else if (ch == 'O') { + rs->esc_state = IS_SS3; + rs->esc_param = 0; } else { rs->esc_state = IS_NORM; } @@ -439,6 +443,17 @@ void readline_handle_byte(ReadLineState *rs, int ch) rs->esc_state = IS_NORM; the_end: break; + case IS_SS3: + switch(ch) { + case 'F': + readline_eol(rs); + break; + case 'H': + readline_bol(rs); + break; + } + rs->esc_state = IS_NORM; + break; } readline_update(rs); } -- cgit v1.2.3