On Wed, Mar 14, 2012 at 11:10:24AM -0600, Eric Blake wrote: > On 03/14/2012 10:50 AM, Daniel P. Berrange wrote: > >> This looks like it is repeating some of the code in > >> virsh.c:vshCommandStringGetArg; any chance we can combine them? In > >> particular, the ability to mimic shell handling of \ escapes, as well as > >> the difference in behavior of \ inside "" vs. '', seems like it will > >> come in handy. > > > > Ah I had forgotten about that code. Can you clarify the difference > > in \ handling. I guess you mean that inside '', \ can only be used > > for \\ and \', while inside "", it can do all the standard shell > > escapes like \t, \n, etc ? > > Inside '', \ has no special meaning. (There's no way to escape ' inside > of '). > > Inside "", \ escapes the next byte (important for " and \, but works on > any byte. > > Outside quotes, \ escapes the next byte. > > And most importantly: concatenating two forms of quoted materials is > permitted. Thus: > > foo"b'ar\" "\'' blah\' > > on input becomes this on output: > > foob'ar" ' blah\ > > >> > >> What you have here does neither; although I didn't spot any flaw in the > >> code, I don't know if it's the algorithm we want to be using. > > > > I should have sent this paired with my other patch for <cmdline> > > handling in LXC. That is the intended use case for this function. > > > > I'm not sure that anyone has ever clearly defined what escaping > > syntax is used for /proc/cmdline (which is what <cmdline> is > > representing. > > Hmm, good point. If it is /bin/sh doing the parsing, then we know the > rules (and virsh matches them); but it if is a custom parser in the > kernel, the we have to match that custom parser. Hmm, well actually there are multiple consumers of /proc/cmdline data. - kernel - init - userspace (eg anaconda) What is the betting that everyone has their own rules :-) For LXC's purposes though, we don't care about the kernel, only init. So I guess I should look at what upstart/sysvinit/systemd do for parsing rules Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list