[PATCH v5 1/3] cmdline: use C standard library as number parser

Burakov, Anatoly anatoly.burakov at intel.com
Thu May 8 10:35:06 CEST 2025


On 5/8/2025 9:27 AM, Bruce Richardson wrote:
> On Wed, May 07, 2025 at 04:22:10PM +0100, Anatoly Burakov wrote:
>> Remove custom number parser and use C standard library instead. In order to
>> keep compatibility with earlier versions of the parser, we have to take
>> into account a few quirks:
>>
>> - We do not consider "negative" numbers to be valid for anything other than
>>    base-10 numbers, whereas C standard library does. We work around that by
>>    forcing base-10 when parsing numbers we expect to be negative.
> 
> Is it likely to break much in the way of compatibility if we start allowing
> negative non-base-10 numbers? If it simplifies our code to allow it, I'd
> tend towards doing so unless there is a known case where it might cause
> problems.
> 
> /Bruce
> 

It wouldn't simplify much because we still need to use strtoll when 
parsing negative numbers, because strtoull doesn't do range checks on 
negative values. So it'll literally be a one line difference (use base 0 
- autodetect - instead of base 10 when calling strtoll), and fewer 
"invalid" tests. I can do that just for consistency sake but it's not 
going to be a huge difference in terms of code.

-- 
Thanks,
Anatoly


More information about the dev mailing list