www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - std.getopt RangeError

Currently, using std.getopt will result in a RangeError if parameters 
are improperly omitted on the command line.  Since this is a reasonable 
user-error, it does not seem like something to crash on during release.

The problem is here:

             if (!isDelegateWithLessThanTwoParameters && !val && 
!incremental) {
                 // eat the next argument too
                 val = args[i];
                 args = args[0 .. i] ~ args[i + 1 .. $];

It just needs a check to see if args.length is high enough for this to 
happen.  And the documentation should note the exception it throws; 
currently it says only a ConvError is thrown.

May 10 2009