Commit 6297d9a2 authored by Hani Benhabiles's avatar Hani Benhabiles Committed by Luiz Capitulino
Browse files

monitor: Add chardev-remove command completion.

parent 29136cd8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1639,6 +1639,7 @@ ETEXI
        .params     = "id",
        .help       = "remove chardev",
        .mhandler.cmd = hmp_chardev_remove,
        .command_completion = chardev_remove_completion,
    },

STEXI
+1 −0
Original line number Diff line number Diff line
@@ -98,5 +98,6 @@ void object_del_completion(ReadLineState *rs, int nb_args, const char *str);
void device_add_completion(ReadLineState *rs, int nb_args, const char *str);
void device_del_completion(ReadLineState *rs, int nb_args, const char *str);
void sendkey_completion(ReadLineState *rs, int nb_args, const char *str);
void chardev_remove_completion(ReadLineState *rs, int nb_args, const char *str);

#endif
+23 −0
Original line number Diff line number Diff line
@@ -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;