* Stefan Reiter (s.rei...@proxmox.com) wrote: > Adds support for the "-xS" parameter type, where "-x" denotes a flag > name and the "S" suffix indicates that this flag is supposed to take an > arbitrary string parameter. > > These parameters are always optional, the entry in the qdict will be > omitted if the flag is not given. > > Reviewed-by: Eric Blake <ebl...@redhat.com> > Signed-off-by: Stefan Reiter <s.rei...@proxmox.com>
It would be great if you could send a patch to update the big comment in monitor/monitor-internal.h that describes all the parameters. But that can come another time. Dave > --- > monitor/hmp.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/monitor/hmp.c b/monitor/hmp.c > index d50c3124e1..a32dce7a35 100644 > --- a/monitor/hmp.c > +++ b/monitor/hmp.c > @@ -980,6 +980,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, > { > const char *tmp = p; > int skip_key = 0; > + int ret; > /* option */ > > c = *typestr++; > @@ -1002,8 +1003,22 @@ static QDict *monitor_parse_arguments(Monitor *mon, > } > if (skip_key) { > p = tmp; > + } else if (*typestr == 'S') { > + /* has option with string value */ > + typestr++; > + tmp = p++; > + while (qemu_isspace(*p)) { > + p++; > + } > + ret = get_str(buf, sizeof(buf), &p); > + if (ret < 0) { > + monitor_printf(mon, "%s: value expected for > -%c\n", > + cmd->name, *tmp); > + goto fail; > + } > + qdict_put_str(qdict, key, buf); > } else { > - /* has option */ > + /* has boolean option */ > p++; > qdict_put_bool(qdict, key, true); > } > -- > 2.30.2 > > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK