digitalmars.D - std.getopt error
- Ramon (23/23) Aug 25 2013 There seems to be a bug in std.getopt.
- growler (10/32) Aug 26 2013 Given:
- Ramon (9/14) Aug 26 2013 Sorry for expressing myself clumsily.
- growler (5/20) Aug 26 2013 Cool, sorry for the noise. I was in a hurry leaving work and
- H. S. Teoh (7/25) Aug 28 2013 [...]
There seems to be a bug in std.getopt. D doc says: "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." However bool reverseOrder = false, helpFlag = false; int colOrder = 1; getopt(args, std.getopt.config.bundling, "reverse|r", &reverseOrder, "column|c", &colOrder,"help|?", &helpFlag); sets colOrder to -1 rather than to +1 when the commandline has "-c1" as arg. Funnily, when the arg is *illegally* "-c 1", the variable is set correctly to +1. This is not an urgent issue because there is a very simple workaround: colorder = - colorder; But I thought it should be mentioned anyway and, if not noticed it can create troublesome situations. Being at that, the official rule "-t 5" is not acceptable is problematic because that form is pretty commonly used on unix and even sometimes used in docs. - R
Aug 25 2013
On Monday, 26 August 2013 at 06:58:41 UTC, Ramon wrote:There seems to be a bug in std.getopt. D doc says: "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." However bool reverseOrder = false, helpFlag = false; int colOrder = 1; getopt(args, std.getopt.config.bundling, "reverse|r", &reverseOrder, "column|c", &colOrder,"help|?", &helpFlag); sets colOrder to -1 rather than to +1 when the commandline has "-c1" as arg. Funnily, when the arg is *illegally* "-c 1", the variable is set correctly to +1.Given: int colOrder = 1; ... Could it be that "-c 1" is ignored because it is in invalid and the default colOrder value is used?This is not an urgent issue because there is a very simple workaround: colorder = - colorder; But I thought it should be mentioned anyway and, if not noticed it can create troublesome situations. Being at that, the official rule "-t 5" is not acceptable is problematic because that form is pretty commonly used on unix and even sometimes used in docs.+1 I've noticed this before when using getopt. It is low priority and a documented limitation but it would be nice if "-t 5" worked. G.
Aug 26 2013
On Monday, 26 August 2013 at 07:06:07 UTC, growler wrote:Given: int colOrder = 1; ... Could it be that "-c 1" is ignored because it is in invalid and the default colOrder value is used?Sorry for expressing myself clumsily. if the commandline arg is "-c 1" (which according to getopt doc is illegal) it actually *does* work properly. if the commandline arg is "-c1" (which according to getopt doc is legal) then the result of getopt is false/wrong. "-c 1" then sets the variable to -1. Same with 2. So the problem is not 1 or 1 being the var default. Thanks - R
Aug 26 2013
On Monday, 26 August 2013 at 07:20:11 UTC, Ramon wrote:On Monday, 26 August 2013 at 07:06:07 UTC, growler wrote:Cool, sorry for the noise. I was in a hurry leaving work and didn't have time to test the idea. Cheers, GGiven: int colOrder = 1; ... Could it be that "-c 1" is ignored because it is in invalid and the default colOrder value is used?Sorry for expressing myself clumsily. if the commandline arg is "-c 1" (which according to getopt doc is illegal) it actually *does* work properly. if the commandline arg is "-c1" (which according to getopt doc is legal) then the result of getopt is false/wrong. "-c 1" then sets the variable to -1. Same with 2. So the problem is not 1 or 1 being the var default. Thanks - R
Aug 26 2013
On Mon, Aug 26, 2013 at 09:20:09AM +0200, Ramon wrote:On Monday, 26 August 2013 at 07:06:07 UTC, growler wrote:[...] I'd say file a bug for this, since the docs claim that -c1 works, but actually it doesn't. T -- It only takes one twig to burn down a forest.Given: int colOrder = 1; ... Could it be that "-c 1" is ignored because it is in invalid and the default colOrder value is used?Sorry for expressing myself clumsily. if the commandline arg is "-c 1" (which according to getopt doc is illegal) it actually *does* work properly. if the commandline arg is "-c1" (which according to getopt doc is legal) then the result of getopt is false/wrong. "-c 1" then sets the variable to -1. Same with 2. So the problem is not 1 or 1 being the var default.
Aug 28 2013