Paolo Bonzini <pbonz...@redhat.com> writes: > On 02/05/2017 16:59, Richard W.M. Jones wrote: >>> To answer your question: you have to double comma after '=', or else it >>> terminates the value. There is no other quoting. >> >> Hmm, is that really right?
I should avoid absolutes when it comes to QemuOpts... >> It seems to me that any comma must be >> doubled. For example: >> >> $ qemu-system-x86_64 -name foo,bar -writeconfig - -hda die >> qemu-system-x86_64: -name foo,bar: Invalid parameter 'bar' > > That's because, as you found out, "-name" is not a simple option but a > compound one; "-name foo" is short for "-name guest=foo" (compare > "-device e1000"). > > The grammar mentioned in util/keyval.c says that you have to double > comma in a value, *and* comma is completely invalid in a key. > > If you have '=', you have to double commas after it and cannot use it > before. > > If you have no '=' at all, then you have to double comma too. Yes. My description wasn't precise enough, sorry. Please take note that the grammar in util/keyval.c does *not* produce the exact QemuOpts language. It's close, but it doesn't reproduce all corner cases. Anything it does produce should have the same meaning in QemuOpts. > Paolo > >> $ qemu-system-x86_64 -name foo,,bar -writeconfig - -hda die >> # qemu config file >> >> [name] >> guest = "foo,bar"