aboutsummaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authorHani Benhabiles <kroosec@gmail.com>2014-05-07 23:41:28 +0100
committerLuiz Capitulino <lcapitulino@redhat.com>2014-05-15 15:16:01 -0400
commit6297d9a279ccaf404d26a2c6bdc1a09891bcf5ae (patch)
treea7bb18aca958666dc25b3a6b872c2bc2c63b8e08 /monitor.c
parent29136cd8a4883f2ce97387f3a01c156ac1c43869 (diff)
monitor: Add chardev-remove command completion.
Signed-off-by: Hani Benhabiles <hani@linux.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index cb9b2c25bb..55e56969d4 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4339,6 +4339,29 @@ static void device_del_bus_completion(ReadLineState *rs, BusState *bus,
}
}
+void chardev_remove_completion(ReadLineState *rs, int nb_args, const char *str)
+{
+ size_t len;
+ ChardevInfoList *list, *start;
+
+ if (nb_args != 2) {
+ return;
+ }
+ len = strlen(str);
+ readline_set_completion_index(rs, len);
+
+ start = list = qmp_query_chardev(NULL);
+ while (list) {
+ ChardevInfo *chr = list->value;
+
+ if (!strncmp(chr->label, str, len)) {
+ readline_add_completion(rs, chr->label);
+ }
+ list = list->next;
+ }
+ qapi_free_ChardevInfoList(start);
+}
+
void device_del_completion(ReadLineState *rs, int nb_args, const char *str)
{
size_t len;