Commit 9dd442b1234a27375c956e650e49a32c61ff6167
1 parent
f220174d
monitor: Break out readline_show_prompt (Jan Kiszka)
Break readline_show_prompt out of readline_start so that (re-)printing the prompt can be controlled in a more fine-grained way. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6709 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
7 additions
and
10 deletions
console.h
| ... | ... | @@ -316,5 +316,6 @@ void readline_find_completion(const char *cmdline); |
| 316 | 316 | const char *readline_get_history(unsigned int index); |
| 317 | 317 | void readline_start(const char *prompt, int is_password, |
| 318 | 318 | ReadLineFunc *readline_func, void *opaque); |
| 319 | +void readline_show_prompt(void); | |
| 319 | 320 | |
| 320 | 321 | #endif | ... | ... |
monitor.c
| ... | ... | @@ -2855,6 +2855,7 @@ void monitor_resume(void) |
| 2855 | 2855 | static void monitor_start_input(void) |
| 2856 | 2856 | { |
| 2857 | 2857 | readline_start("(qemu) ", 0, monitor_handle_command1, NULL); |
| 2858 | + readline_show_prompt(); | |
| 2858 | 2859 | } |
| 2859 | 2860 | |
| 2860 | 2861 | static void term_event(void *opaque, int event) |
| ... | ... | @@ -2913,6 +2914,7 @@ static void monitor_readline(const char *prompt, int is_password, |
| 2913 | 2914 | char *buf, int buf_size) |
| 2914 | 2915 | { |
| 2915 | 2916 | readline_start(prompt, is_password, monitor_readline_cb, NULL); |
| 2917 | + readline_show_prompt(); | |
| 2916 | 2918 | monitor_readline_buf = buf; |
| 2917 | 2919 | monitor_readline_buf_size = buf_size; |
| 2918 | 2920 | monitor_readline_started = 1; | ... | ... |
readline.c
| ... | ... | @@ -57,7 +57,7 @@ static int term_is_password; |
| 57 | 57 | static char term_prompt[256]; |
| 58 | 58 | static void *term_readline_opaque; |
| 59 | 59 | |
| 60 | -static void term_show_prompt2(void) | |
| 60 | +void readline_show_prompt(void) | |
| 61 | 61 | { |
| 62 | 62 | term_printf("%s", term_prompt); |
| 63 | 63 | term_flush(); |
| ... | ... | @@ -66,13 +66,6 @@ static void term_show_prompt2(void) |
| 66 | 66 | term_esc_state = IS_NORM; |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | -static void term_show_prompt(void) | |
| 70 | -{ | |
| 71 | - term_show_prompt2(); | |
| 72 | - term_cmd_buf_index = 0; | |
| 73 | - term_cmd_buf_size = 0; | |
| 74 | -} | |
| 75 | - | |
| 76 | 69 | /* update the displayed command line */ |
| 77 | 70 | static void term_update(void) |
| 78 | 71 | { |
| ... | ... | @@ -360,7 +353,7 @@ static void term_completion(void) |
| 360 | 353 | j = 0; |
| 361 | 354 | } |
| 362 | 355 | } |
| 363 | - term_show_prompt2(); | |
| 356 | + readline_show_prompt(); | |
| 364 | 357 | } |
| 365 | 358 | } |
| 366 | 359 | |
| ... | ... | @@ -473,7 +466,8 @@ void readline_start(const char *prompt, int is_password, |
| 473 | 466 | term_readline_func = readline_func; |
| 474 | 467 | term_readline_opaque = opaque; |
| 475 | 468 | term_is_password = is_password; |
| 476 | - term_show_prompt(); | |
| 469 | + term_cmd_buf_index = 0; | |
| 470 | + term_cmd_buf_size = 0; | |
| 477 | 471 | } |
| 478 | 472 | |
| 479 | 473 | const char *readline_get_history(unsigned int index) | ... | ... |