This converts +foo/-foo to "foo=on"/"foo=off" respectively when
QEMU parser is used for the command line options.

"-cpu" parsers in x86 and other architectures should be unaffected
by this change.

Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
---
 util/qemu-option.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/util/qemu-option.c b/util/qemu-option.c
index efcb5dc..6c8667c 100644
--- a/util/qemu-option.c
+++ b/util/qemu-option.c
@@ -890,6 +890,12 @@ static int opts_do_parse(QemuOpts *opts, const char 
*params,
                 if (strncmp(option, "no", 2) == 0) {
                     memmove(option, option+2, strlen(option+2)+1);
                     pstrcpy(value, sizeof(value), "off");
+                } else if (strncmp(option, "-", 1) == 0) {
+                    memmove(option, option+1, strlen(option+1)+1);
+                    pstrcpy(value, sizeof(value), "off");
+                } else if (strncmp(option, "+", 1) == 0) {
+                    memmove(option, option+1, strlen(option+1)+1);
+                    pstrcpy(value, sizeof(value), "on");
                 } else {
                     pstrcpy(value, sizeof(value), "on");
                 }
-- 
1.8.4.rc4


Reply via email to