On 08/07/2010 06:57 PM, Adrian Matoga wrote:
On 2010-08-08 01:22, Andrei Alexandrescu wrote:
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

Thanks very much.
I suggest adding this info to official docs (it's not obvious, and a bit
confusing, since long options work with whitespace(s)).

Adrian

http://www.dsource.org/projects/phobos/changeset/1822

Andrei

Reply via email to