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 <kwolf@redhat.com>
Message-id: 1368526554-15866-1-git-send-email-kwolf@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Kevin Wolf 2013-05-14 12:15:54 +02:00 committed by Anthony Liguori
parent 7791dba3ec
commit d34dc45d34
1 changed files with 15 additions and 0 deletions

View File

@ -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);
}