> On 21 May 2015, at 18:54, Peter Maydell <peter.mayd...@linaro.org> wrote:
> 
> On 21 May 2015 at 16:47, Liviu Ionescu <i...@livius.net> wrote:
>> 
>>> On 21 May 2015, at 18:29, Peter Maydell <peter.mayd...@linaro.org> wrote:
>>> 
>>> 
>>> There's no way to not offer the choice. In your syntax
>>> this would be
>>> --semihosting-cmdline "foo bar baz"
>> 
>> not exactly. in my implementation this would arrive in the guest
>> code as argc=1, argv[0]="foo bar baz", which will be understood as
>> a weird program name.
> 
> Well, it's the same as --semihosting-options,arg="foo bar baz".
> That will arrive in the guest code as "foo bar baz", which
> the guest code may or may not choose to interpret as a
> program name foo and two arguments.

negative. 

your example: 

        ... --semihosting-options,arg="foo bar baz" ...

will arrive in the guest code as: 

        ['f' 'o' 'o' ' ' 'b' 'a' 'r' ' ' 'b' 'a' 'z']

which any non-brain damaged parser should understand as: 

        argc=3, argv[0]="foo", argv[1]="bar", argv[2]="baz"

while in my implementation a command line like: 

        ... --semihosting-cmdline "foo bar baz" CR 

will arrive as: 

        ['"' 'f' 'o' 'o' ' ' 'b' 'a' 'r' ' ' 'b' 'a' 'z' '"'] 

which a reasonably smart parser (like the one I use) will understand as: 

        argc=1, argv[0]="foo bar baz"

it is true that a dumb parser would return: 

        argc=3, argv[0]="\"foo", argv[1]="bar", argv[2]="baz\""

but from this it is not very difficult to understand that args with spaces 
should be avoided.


regards,

Liviu





Reply via email to