On 7/14/20 7:12 AM, Andre Pany wrote:
Hi,

by reading the documentation of std.getopt I would assume, this is a valid call

dmd -run sample.d --modelicalibs a b

``` d
import std;

void main(string[] args)
{
     string[] modelicaLibs;
     getopt(args, "modelicalibs", &modelicaLibs);
     assert(modelicaLibs == ["a", "b"]);
}
```

but it fails, as array modelicaLIbs only contains ["a"].

The std.getopt : arraySep documentation hints that it should work:
The string used to separate the elements of an array or associative array (default is "" which means the elements are separated by whitespace).

Is my understanding wrong, or is this a bug?

The whitespace separator doesn't get to your program. args is:

["sample", "--modelicalibs", "a", "b"]

There is no separator in the parameter to --modelicalibs, it's just "a".

What you need to do is:

dmd -run sample.d --modilicalibs "a b"

-Steve

Reply via email to