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
This commit is contained in:
aliguori 2009-03-05 23:01:10 +00:00
parent f220174de8
commit 9dd442b123
3 changed files with 7 additions and 10 deletions

View File

@ -316,5 +316,6 @@ void readline_find_completion(const char *cmdline);
const char *readline_get_history(unsigned int index); const char *readline_get_history(unsigned int index);
void readline_start(const char *prompt, int is_password, void readline_start(const char *prompt, int is_password,
ReadLineFunc *readline_func, void *opaque); ReadLineFunc *readline_func, void *opaque);
void readline_show_prompt(void);
#endif #endif

View File

@ -2855,6 +2855,7 @@ void monitor_resume(void)
static void monitor_start_input(void) static void monitor_start_input(void)
{ {
readline_start("(qemu) ", 0, monitor_handle_command1, NULL); readline_start("(qemu) ", 0, monitor_handle_command1, NULL);
readline_show_prompt();
} }
static void term_event(void *opaque, int event) static void term_event(void *opaque, int event)
@ -2913,6 +2914,7 @@ static void monitor_readline(const char *prompt, int is_password,
char *buf, int buf_size) char *buf, int buf_size)
{ {
readline_start(prompt, is_password, monitor_readline_cb, NULL); readline_start(prompt, is_password, monitor_readline_cb, NULL);
readline_show_prompt();
monitor_readline_buf = buf; monitor_readline_buf = buf;
monitor_readline_buf_size = buf_size; monitor_readline_buf_size = buf_size;
monitor_readline_started = 1; monitor_readline_started = 1;

View File

@ -57,7 +57,7 @@ static int term_is_password;
static char term_prompt[256]; static char term_prompt[256];
static void *term_readline_opaque; static void *term_readline_opaque;
static void term_show_prompt2(void) void readline_show_prompt(void)
{ {
term_printf("%s", term_prompt); term_printf("%s", term_prompt);
term_flush(); term_flush();
@ -66,13 +66,6 @@ static void term_show_prompt2(void)
term_esc_state = IS_NORM; term_esc_state = IS_NORM;
} }
static void term_show_prompt(void)
{
term_show_prompt2();
term_cmd_buf_index = 0;
term_cmd_buf_size = 0;
}
/* update the displayed command line */ /* update the displayed command line */
static void term_update(void) static void term_update(void)
{ {
@ -360,7 +353,7 @@ static void term_completion(void)
j = 0; j = 0;
} }
} }
term_show_prompt2(); readline_show_prompt();
} }
} }
@ -473,7 +466,8 @@ void readline_start(const char *prompt, int is_password,
term_readline_func = readline_func; term_readline_func = readline_func;
term_readline_opaque = opaque; term_readline_opaque = opaque;
term_is_password = is_password; term_is_password = is_password;
term_show_prompt(); term_cmd_buf_index = 0;
term_cmd_buf_size = 0;
} }
const char *readline_get_history(unsigned int index) const char *readline_get_history(unsigned int index)