Implementation errors in strtol()

Andrey Chernov ache at nagual.pp.ru
Thu Jan 20 13:58:11 PST 2005


On Fri, Jan 21, 2005 at 12:44:06AM +0300, Andrey Chernov wrote:
> > Still, my major point was that "0x" sequences are falsely rejected as
> 
> It clearly should be rejected with EINVAL in case base == 16, 
> because 0 alone is not valid HEX sequence and no valid sequence found at 
> this point. I am not sure about other bases.

It seems I am wrong here and you are right. POSIX says that 0x is optional 
even for base 16. So "0xZ" with base 16 means just 0. If our strtol() 
produce error here, it should be fixed:

"If the value of base is 16, the characters 0x or 0X may optionally 
                                                         ^^^^^^^^^^^
precede the sequence of letters and digits, following the sign if 
present."

-- 
http://ache.pp.ru/


More information about the freebsd-current mailing list