Commit 13e315da authored by Hani Benhabiles's avatar Hani Benhabiles Committed by Luiz Capitulino
Browse files

monitor: Add chardev-add backend argument completion.

parent 6297d9a2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1623,6 +1623,7 @@ ETEXI
        .params     = "args",
        .help       = "add chardev",
        .mhandler.cmd = hmp_chardev_add,
        .command_completion = chardev_add_completion,
    },

STEXI
+1 −0
Original line number Diff line number Diff line
@@ -99,5 +99,6 @@ 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);
void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str);

#endif
+23 −0
Original line number Diff line number Diff line
@@ -4269,6 +4269,29 @@ static const char *next_arg_type(const char *typestr)
    return (p != NULL ? ++p : typestr);
}

void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str)
{
    size_t len;
    ChardevBackendInfoList *list, *start;

    if (nb_args != 2) {
        return;
    }
    len = strlen(str);
    readline_set_completion_index(rs, len);

    start = list = qmp_query_chardev_backends(NULL);
    while (list) {
        const char *chr_name = list->value->name;

        if (!strncmp(chr_name, str, len)) {
            readline_add_completion(rs, chr_name);
        }
        list = list->next;
    }
    qapi_free_ChardevBackendInfoList(start);
}

void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
{
    GSList *list, *elt;