[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qmp-shell: fix nested json regression
From: |
Kashyap Chamarthy |
Subject: |
Re: [Qemu-devel] [PATCH] qmp-shell: fix nested json regression |
Date: |
Wed, 6 Feb 2019 11:48:51 +0100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Tue, Feb 05, 2019 at 08:44:12PM -0500, John Snow wrote:
> On 2/5/19 8:49 AM, Marc-André Lureau wrote:
[...]
> > Replace with a regexp to split while respecting quoted strings and
> > preserving quotes:
> >
> > re.findall(r'''(?:[^\s"']|"(?:\\.|[^"])*"|'(?:\\.|[^'])*')+''', cmd)
> > ['blockdev-create',
> > 'job-id="job0 foo"',
> >
> > 'options={"driver":"qcow2","size":16384,"file":{"driver":"file","filename":"foo.qcow2"}}']
> >
> > Fixes: fcfab7541 ("qmp-shell: learn to send commands with quoted arguments")
> > Reported-by: Kashyap Chamarthy <address@hidden>
> > Signed-off-by: Marc-André Lureau <address@hidden>
> > ---
> > scripts/qmp/qmp-shell | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell
> > index 770140772d..813dd68232 100755
> > --- a/scripts/qmp/qmp-shell
> > +++ b/scripts/qmp/qmp-shell
> > @@ -74,7 +74,7 @@ import sys
> > import os
> > import errno
> > import atexit
> > -import shlex
> > +import re
> >
> > class QMPCompleter(list):
> > def complete(self, text, state):
> > @@ -220,7 +220,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
> >
> > < command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
> > """
> > - cmdargs = shlex.split(cmdline)
> > + cmdargs =
> > re.findall(r'''(?:[^\s"']|"(?:\\.|[^"])*"|'(?:\\.|[^'])*')+''', cmdline)
>
> It might really be nice to have a comment briefly explaining the regex.
> This is pretty close to symbol soup.
Yeah, a little comment explaining it would be nice.
And thanks for the fix, indeed. FWIW:
Tested-by: Kashyap Chamarthy <address@hidden>
> Though I suppose we are approaching the limits of what this hacky little
> debug script can do for us...
It is good enough for 80% of the cases. :-)
--
/kashyap