Hello The patch below implements ^W (Ctrl+W) in readline.c, allowing it to be used in the monitor.
Signed-off-by: Michael Hanselmann <[EMAIL PROTECTED]> Greets, Michael --- Index: readline.c =================================================================== RCS file: /sources/qemu/qemu/readline.c,v retrieving revision 1.1 diff -u -b -B -r1.1 readline.c --- readline.c 1 Aug 2004 21:52:19 -0000 1.1 +++ readline.c 22 Jun 2007 22:17:47 -0000 @@ -156,6 +156,45 @@ } } +static void term_backword(void) +{ + int start; + + if (term_cmd_buf_index == 0 || term_cmd_buf_index > term_cmd_buf_size) { + return; + } + + start = term_cmd_buf_index - 1; + + /* find first word (backwards) */ + while (start > 0) { + if (!isspace(term_cmd_buf[start])) { + break; + } + + --start; + } + + /* find first space (backwards) */ + while (start > 0) { + if (isspace(term_cmd_buf[start])) { + ++start; + break; + } + + --start; + } + + /* remove word */ + if (start < term_cmd_buf_index) { + memmove(term_cmd_buf + start, + term_cmd_buf + term_cmd_buf_index, + term_cmd_buf_size - term_cmd_buf_index); + term_cmd_buf_size -= term_cmd_buf_index - start; + term_cmd_buf_index = start; + } +} + static void term_bol(void) { term_cmd_buf_index = 0; @@ -338,6 +377,10 @@ /* NOTE: readline_start can be called here */ term_readline_func(term_readline_opaque, term_cmd_buf); break; + case 23: + /* ^W */ + term_backword(); + break; case 27: term_esc_state = IS_ESC; break;