monitor: avoid use of global *cur_mon in readline_completion()
Now all completion functions do not use *cur_mon any more, instead they use rs->mon. In short, structure ReadLineState decide where the complete action would be taken now. Tested with the case that qemu have two telnet monitors, auto completion function works normal. Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
d2674b2cf7
commit
d1a9756ab8
|
@ -276,7 +276,6 @@ void readline_set_completion_index(ReadLineState *rs, int index)
|
||||||
|
|
||||||
static void readline_completion(ReadLineState *rs)
|
static void readline_completion(ReadLineState *rs)
|
||||||
{
|
{
|
||||||
Monitor *mon = cur_mon;
|
|
||||||
int len, i, j, max_width, nb_cols, max_prefix;
|
int len, i, j, max_width, nb_cols, max_prefix;
|
||||||
char *cmdline;
|
char *cmdline;
|
||||||
|
|
||||||
|
@ -300,7 +299,7 @@ static void readline_completion(ReadLineState *rs)
|
||||||
if (len > 0 && rs->completions[0][len - 1] != '/')
|
if (len > 0 && rs->completions[0][len - 1] != '/')
|
||||||
readline_insert_char(rs, ' ');
|
readline_insert_char(rs, ' ');
|
||||||
} else {
|
} else {
|
||||||
monitor_printf(mon, "\n");
|
monitor_printf(rs->mon, "\n");
|
||||||
max_width = 0;
|
max_width = 0;
|
||||||
max_prefix = 0;
|
max_prefix = 0;
|
||||||
for(i = 0; i < rs->nb_completions; i++) {
|
for(i = 0; i < rs->nb_completions; i++) {
|
||||||
|
|
Loading…
Reference in New Issue