Re: [Qemu-devel] [PATCH] rev3: support colon in filenames

Jan Kiszka
2009-07-15T20:54:36Z

[-- Attachment #1: Type: text/plain, Size: 2207 bytes --]

Jamie Lokier wrote:
> Kevin Wolf wrote:
>> Can we at least allow \, instead of ,, in parameter parsing, so that the
>> backslash has the practical benefit of being a single universal escape
>> character?
>
> Is there a good reason why we cannot simply use \<char> to escape
> _any_ character, in every context where a user-supplied
> string/name/path/file is used?
>
> I'm thinking of consistency here. Instead of special cases for
> filenames, why not a standard scheme for all the places in command
> lines _and_ the monitor where a name/path/file is needed?

Yeah, consistency. Very good point.

>
> There are many examples where it would be useful if unusual characters
> didn't break things, they simply worked.
>
> Examples: -vnc unix: path, -net port: device path, -net script path,
> -net sock= path, -net group= groupname, tap and bt device names.
>
> \<char> is an obvious scheme to standardise on given QEMU's unix shell
> heritage. It would work equally well for command line options (which
> are often comma-separated) and for monitor commands (which are often
> space-separated).
>
> It would have the nice property of being easy for management
> programs/scripts to quote, without them having a special list of
> characters to quote, without needing to update them if QEMU needs to
> quote more characters in future for some reason.
>
> Now, I see one significant hurdle with that: it's quite inconvenient
> for Windows users, typing paths like c:\path\to\dir\file, if those
> backslashes are stipped.

We could exclude Windows from this (I think to remember that filenames
are more restricted there anyway) or define a different, Windows-only
escape character.

>
> So I propose this as a universal quoting scheme:
>
> \<char> where <char> is not ASCII alphanumeric.
>
> Shell quoting is easy:
>
> qfile=`printf %s "$file" | sed 's/[^0-9a-zA-Z]/\\\\&/g'`
>
> qemu -drive file="$qfile",if=scsi,media=disk
>
> Same quoting applied when sending the monitor a command to change a
> CD-ROM file or add a USB disk, for example.
>

To me this direction looks more promising than any other proposal so far.

Jan

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]