From: Ramkumar Ramachandra Date: Fri, 20 Aug 2010 20:01:51 GMT Subject: Re: [PATCH v3 1/5] parse-options: Allow PARSE_OPT_NOARG in integer arguments Message-ID: <20100820200148.GE6211@kytes> In-Reply-To: <7vlj81awtc.fsf@alter.siamese.dyndns.org> Hi Junio, Junio C Hamano writes: > Ramkumar Ramachandra writes: > > > When the option parser encounters an OPTION_INTEGER argument, > > PARSE_OPT_NOARG should imply that the default value should be used. > > Sorry but why? > > Doesn't NOARG mean "Do not take an argument, if you give me an argument > that is an error"? Oh, does it mean that? I might have interpreted the description in `parse-options.h` too literally: "says that this option takes no argument". So I'm handling the case when an integer option is specified, but no integer argument is given. > I would understand if this were OPT_OPTARG, though. That case is already handled. The condition (opt->flags & PARSE_OPT_OPTARG && !p->opt) does the same thing. > Confused... Okay, let me explain. Let's say I want to have an option that takes an integer argument, say `foo`. To set it to the integer argument 42, I can say `--foo=42`. To set it to its default value, I could earlier say `--foo=`. With this patch I can simply say `--foo`. Makes sense? -- Ram