Pranit Bauva <pranit.bauva@xxxxxxxxx> writes: > On Fri, Apr 1, 2016 at 12:11 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: >> >> case OPTION_COUNTUP: >> + if (*(int *)opt->value < 0) >> + *(int *)opt->value = 0; >> *(int *)opt->value = unset ? 0 : *(int *)opt->value + 1; >> >> That is, upon hitting this case arm, we know that an explicit option >> was given from the command line, so the "unspecified" initial value, >> if it is still there, gets reset to 0, and after doing that, we just >> do the usual thing. > > This does look cleaner. Nice thinking that there is no need to > actually specify when it gets 0. It gets 0 no matter what as long as > OPTION_COUNTUP is speficied in any format (with or without --no) and > variable is "unspecified". I do not think there is any planned users of such an enhancement, but the above points us into a future possibility to be able to do this: case OPTION_COUNTUP: + if (*(int *)opt->value < 0) + *(int *)opt->value = -*(int *)opt->value - 1; *(int *)opt->value = unset ? 0 : *(int *)opt->value + 1; That is, by using "-2" as the "unspecified" value, you can start counting up from 2 (i.e. the presence of the option resets the variable to 1 and then the option being not "unset" increments it) if your application wants to. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html