qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] drive_add: file names with spaces


From: Programmingkid
Subject: Re: [Qemu-devel] drive_add: file names with spaces
Date: Mon, 30 Oct 2017 11:22:51 -0400

> On Oct 30, 2017, at 10:32 AM, Dr. David Alan Gilbert <address@hidden> wrote:
> 
> * Programmingkid (address@hidden) wrote:
>> 
>>> On Oct 29, 2017, at 6:21 AM, Dr. David Alan Gilbert <address@hidden> wrote:
>>> 
>>> * Eric Blake (address@hidden) wrote:
>>>> On 10/28/2017 06:44 AM, Programmingkid wrote:
>>>>> I'm trying to use an image file that has spaces in its file name (and 
>>>>> sometimes in the path) to be used as a USB flash drive. When I try adding 
>>>>> the image file using the drive_add command I see this error: drive_add: 
>>>>> extraneous characters at the end of the line
>>>>> 
>>>>> I have tried using single and double quotes around the file name but this 
>>>>> does not help. Is there a way to use files that have spaces in it's name 
>>>>> with drive_add?
>>>> 
>>>> Not in HMP, which lacks quoting.  (Unless you want to patch HMP to learn
>>>> quoting)
>>> 
>>> I think it's already got that code at least in some places.
>>> monitor_parse_arguments calls get_str, and get_str understands " wrapped
>>> arguments.
>>> 
>>> drive_add 1 "file=foo bar"
>>> 
>>> gives me:
>>> Could not open 'foo bar': No such file or directory
>>> 
>>> so I think that's doing the right thing.
>>> 
>>> Dave
>>> 
>>>> But using spaces in filenames works fine in QMP.
>>>> 
>>>> -- 
>>>> Eric Blake, Principal Software Engineer
>>>> Red Hat, Inc.           +1-919-301-3266
>>>> Virtualization:  qemu.org | libvirt.org
>>>> 
>>> 
>>> 
>>> --
>>> Dr. David Alan Gilbert / address@hidden / Manchester, UK
>> 
>> Thank you so much for this info. It solved my problem :)
> 
> Now, the real challenge is how to deal with a filename with a comma in;
>   drive_add 1 "file=foo,bar"
>   Could not open 'foo': No such file or directory

I think the logical thing to do is not to depend on characters like spaces and 
commas to indicate a change in field. This would mean a change to how the user 
could specify arguments to a command. My first thought is to use a json-like 
syntax like this:

CMD: drive_add
File: <full path of file>
ID: mydrive

but this would still have the problem with newline characters in the file name. 
Spaces, commas, single and double quotes would be usable. Newline characters in 
file names are rare enough that we might consider ignoring this case 
altogether. 

Another option is using a tag based system that would be able to handle every 
character. Something like this:

drive_add 0 <file> /users/user/some path </file> <id> mydrive </id>

The only way this system would fail if the text "</file>" was in the file name. 

Any solutions you wish to share?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]