X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=readline.c;h=1c0f7ee26b2de0d19c7da8c1a4752422f0922792;hb=6eebf958abf3f3f701116d4524ef88bb9fd6e341;hp=d6e04d4796ccc5f1e3e7f4a7d2883bcfc004d1f3;hpb=b0df98f3a2968eb5aba3075d1cf9b1a3931907e0;p=qemu.git diff --git a/readline.c b/readline.c index d6e04d479..1c0f7ee26 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); }