getopt: How does arraySep work?

Steven Schveighoffer schveiguy at gmail.com
Thu Jul 16 17:40:25 UTC 2020


On 7/16/20 1:13 PM, Andre Pany wrote:
> On Thursday, 16 July 2020 at 05:03:36 UTC, Jon Degenhardt wrote:
>> On Wednesday, 15 July 2020 at 07:12:35 UTC, Andre Pany wrote:
>>> [...]
>>
>> An enhancement is likely to hit some corner-cases involving list 
>> termination requiring choices that are not fully generic. Any time a 
>> legal list value looks like a legal option. Perhaps the most important 
>> case is single digit numeric options like '-1', '-2'. These are legal 
>> short form options, and there are programs that use them. They are 
>> also somewhat common numeric values to include in command lines inputs.
>>
>> [...]
> 
> My naive implementation would be that any dash would stop the list of 
> multiple values. If you want to have a value containing a space or a 
> dash, you enclose it with double quotes in the terminal.

Enclose with double quotes in the terminal does nothing:

myapp --modelicalibs "file-a.mo" "file-b.mo"

will give you EXACTLY the same string[] args as:

myapp --modelicalibs file-a.mo file-b.mo

I think Jon's point is that it's difficult to distinguish where an array 
list ends if you get the parameters as separate items.

Like:

myapp --numbers 1 2 3 -5 -6

Is that numbers=> [1, 2, 3, -5, -6]

or is it numbers=> [1, 2, 3], 5 => true, 6 => true

This is probably why the code doesn't support that.

-Steve


More information about the Digitalmars-d-learn mailing list