mirror of
https://github.com/qemu/qemu.git
synced 2024-11-23 19:03:38 +08:00
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:
parent
7791dba3ec
commit
d34dc45d34
15
readline.c
15
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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user