Andrei Alexandrescu wrote: > On 7/16/11 8:58 AM, Jens Mueller wrote: > >Trass3r wrote: > >>Why doesn't std.getopt support standard unix style like 'make -j 4'? > >> > >>"uint timeout; > >>getopt(args, "timeout|t",&timeout); > >>To set timeout to 5, use either of the following: --timeout=5, > >>--timeout 5, --t=5, --t 5, or -t5. Forms such as -t 5 and -timeout=5 > >>will be not accepted." > >> > >>Also it doesn't make any sense to me that --t=5 and --t 5 is allowed > >>in this case. > >>I expected the short alias only to be used with a single dash. > > > >I agree. Not supporting -t 5 is no good. std.getopt took its inspiration > >from Perl's Getopt::Long (http://perldoc.perl.org/Getopt/Long.html) > >which supports it as well. > > > >I'm unsure about --t=5 and --t 5. I don't like them but I don't have to > >use them. But without them the rules would be simpler but removing them > >may break code. Adding -t 5 is safe I think. > >And maybe we enhance the documentation a bit such that more common > >choices are given first and less known but still supported later. > > > >If Andrei agrees maybe you or I can create a pull request for -t 5 and > >enhancing the documentation regarding -- for short options. > > > >BTW > >-timeout=5 is accepted but it shouldn't. I just wrote unittests for all > >combinations. > > > >Jens > > Yes please. So, this stuff should work if we have t|timeout bound to > an integral: > > -t5, -t 5, --timeout 5, --timeout=5 > > This stuff should not: > > -t=5, -timeout 5, -timeout=5 > > Right?
--timeout 5 and --timeout=5 work as expected. --timeout5 fails as expected. -t5 works as expected. But -t 5 fails (I will try to fix). And you don't want -t=5, -timeout 5, and -timeout=5 to work? Currently they all pass as unexpected. Should I make them fail? -timeout5 fails as expected. What about --t 5 (works currently) --t=5 (works currently) --t5 (fails currently) These are all 12 combinations of "--" or "-" and "t" or "timeout" and "=5", " 5", or "5". Jens
