diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2020-11-03 11:13:39 -0500 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-11-04 12:00:40 -0500 |
| commit | 372bcb2585cd2f06a01f13b1a208370ccf7479cf (patch) | |
| tree | ee7f2711db8fbd22f3f2c8fd385a9292a6835f9e /qapi/opts-visitor.c | |
| parent | e27bd4987699df5f49a03e93cf57941abeb82938 (diff) | |
| download | focaccia-qemu-372bcb2585cd2f06a01f13b1a208370ccf7479cf.tar.gz focaccia-qemu-372bcb2585cd2f06a01f13b1a208370ccf7479cf.zip | |
qapi, qemu-options: make all parsing visitors parse boolean options the same
OptsVisitor, StringInputVisitor and the keyval visitor have three different ideas of how a human could write the value of a boolean option. Pay homage to the backwards-compatibility gods and make the new common helper accept all four sets (on/off, true/false, y/n and yes/no), but remove case-insensitivity. Since OptsVisitor is supposed to match qemu-options, adjust it as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20201103161339.447118-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'qapi/opts-visitor.c')
| -rw-r--r-- | qapi/opts-visitor.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/qapi/opts-visitor.c b/qapi/opts-visitor.c index 7781c23a42..587f31baf6 100644 --- a/qapi/opts-visitor.c +++ b/qapi/opts-visitor.c @@ -368,7 +368,6 @@ opts_type_str(Visitor *v, const char *name, char **obj, Error **errp) } -/* mimics qemu-option.c::parse_option_bool() */ static bool opts_type_bool(Visitor *v, const char *name, bool *obj, Error **errp) { @@ -379,19 +378,8 @@ opts_type_bool(Visitor *v, const char *name, bool *obj, Error **errp) if (!opt) { return false; } - if (opt->str) { - if (strcmp(opt->str, "on") == 0 || - strcmp(opt->str, "yes") == 0 || - strcmp(opt->str, "y") == 0) { - *obj = true; - } else if (strcmp(opt->str, "off") == 0 || - strcmp(opt->str, "no") == 0 || - strcmp(opt->str, "n") == 0) { - *obj = false; - } else { - error_setg(errp, QERR_INVALID_PARAMETER_VALUE, opt->name, - "on|yes|y|off|no|n"); + if (!qapi_bool_parse(opt->name, opt->str, obj, errp)) { return false; } } else { |