Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jan 2005 00:58:07 +0300
From:      Andrey Chernov <ache@nagual.pp.ru>
To:        Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>, current@FreeBSD.ORG, bde@FreeBSD.ORG
Subject:   Re: Implementation errors in strtol()
Message-ID:  <20050120215807.GA70629@nagual.pp.ru>
In-Reply-To: <20050120214406.GA70088@nagual.pp.ru>
References:  <20050120192324.GA30862@uriah.heep.sax.de> <20050120205501.GA69123@nagual.pp.ru> <20050120211449.GC30862@uriah.heep.sax.de> <20050120214406.GA70088@nagual.pp.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050120215807.GA70629>