From: Nguyen Thai Ngoc Duy Date: Sat, 04 Feb 2012 06:15:56 GMT Subject: Re: [PATCH v4 03/13] parseopt: make OPT_INTEGER support hexadecimal as well Message-ID: In-Reply-To: <7vobtfjh9d.fsf@alter.siamese.dyndns.org> On Sat, Feb 4, 2012 at 12:32 PM, Junio C Hamano wrote: > Nguyen Thai Ngoc Duy writes: > >> 2012/2/4 Junio C Hamano : >>> Nguyễn Thái Ngọc Duy   writes: >>> >>>> -             *(int *)opt->value = strtol(arg, (char **)&s, 10); >>>> +             if (!prefixcmp(arg, "0x") || !prefixcmp(arg, "0X")) >>>> +                     *(int *)opt->value = strtol(arg + 2, (char **)&s, 16); >>>> +             else >>>> +                     *(int *)opt->value = strtol(arg, (char **)&s, 10); >>> >>> Can't you just do "strtol(arg, (char **)&s, 0)" instead? >> >> I could but that means "01234" is now in base 8 and that's currently >> accepted as base 10. > > Yes, but I wonder if that is a problem in practice. Who in the right mind > would give 00001000 to tell git that they want one thousand? That could come from a script, extracting info from a source (maybe a log file) and not stripping leading zeros. If we go this route, I think we should have one release that rejects such numbers first. If nobody complains, then we proceed and allow octal in the next release. -- Duy