getopt & single-letter options with parameters

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Aug 7 16:22:59 PDT 2010


On 08/07/2010 05:55 PM, Adrian Matoga wrote:
> Hi,
>
> Is it by design that single-letter option needs to be glued to its
> argument, like "-ofilename", or is it a bug in implementation?
>
> Source:
>
> import std.stdio;
> import std.getopt;
>
> void main(string[] args)
> {
> string outputFile;
> getopt(args,
> config.passThrough,
> "o|output-filename", &outputFile);
> writeln(args);
> writeln("'" ~ outputFile ~ "'");
> }
>
>
>
> Results:
>  >test.exe -o somename
> test.exe somename
> ''
>
>  >test.exe -osomename
> test.exe
> 'somename'
>
> Regards,
> Adrian Matoga

It's by design in order to avoid confusion with parameterless options. 
Your example works with either of these invocations:

./prog -ofilename
./prog -o=filename
./prog --o=filename

but not others.


Andrei


More information about the Digitalmars-d mailing list