diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2009-07-31 12:25:33 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-08-10 13:05:26 -0500 |
commit | 6d378185c665c0edf3081f570c5b42dd3303f9b4 (patch) | |
tree | 91bb1af4bb6d5f5c38b0b7fb226393303774726f | |
parent | 48026075aeca1dc62599a4aaae844edff9679cb4 (diff) | |
download | hqemu-6d378185c665c0edf3081f570c5b42dd3303f9b4.zip hqemu-6d378185c665c0edf3081f570c5b42dd3303f9b4.tar.gz |
QemuOpts: qemu_opts_parse: fix id= parsing
We can't use get_param_value(), it can't handle parameters without
'=' in there. Examples not working because of that:
-device foo,id=bar
-device file=/path/image,format=qcow2,snapshot,id=disk0
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-Id:
-rw-r--r-- | qemu-option.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/qemu-option.c b/qemu-option.c index 7164ee8..61141e0 100644 --- a/qemu-option.c +++ b/qemu-option.c @@ -715,8 +715,13 @@ QemuOpts *qemu_opts_parse(QemuOptsList *list, const char *params, const char *fi QemuOpts *opts; const char *p,*pe,*pc; - if (get_param_value(value, sizeof(value), "id", params)) + if (strncmp(params, "id=", 3) == 0) { + get_opt_value(value, sizeof(value), params+3); id = qemu_strdup(value); + } else if ((p = strstr(params, ",id=")) != NULL) { + get_opt_value(value, sizeof(value), p+4); + id = qemu_strdup(value); + } opts = qemu_opts_create(list, id, 1); if (opts == NULL) return NULL; |