Mail Archives: djgpp/2004/02/24/09:30:36
Hans-Bernhard Broeker wrote:
>
> DJ Delorie <dj AT delorie DOT com> wrote:
>
> > > [#4] The subject sequence is defined as the longest initial
> > > subsequence of the input string, starting with the first
> > > non-white-space character, that is of the expected form.
>
> > ISO 9899/1999 explicitly allows '-' to be part of the expected form
> > for strtoul.
>
> So does C89. It explicitly mentions both signs and digits as allowed
> characters in the subject sequence.
>
> > Ok, *that* is a bug. Amusingly enough, glibc 2.3.2 has the same bug.
>
> I don't it's a bug. Not unless they changed this between C89 and C99.
> ISO C90 section 7.10.1.6 (strtoul), paragraph 5 says:
>
> If the subject sequence begins with a minus sign, the value resulting
> from the conversion is negated.
>
> Since negation is a well-defined operation on unsigned longs, there's
> no error involved. In other words: strtoul on "-1" will result in
> ULONG_MAX not because an error was detected, but because ULONG_MAX is
> the correct result of
Which makes the whole matter moot, since the existing code meets
that standard. It is not the first standard provision of which I
disapprove :-)
--
Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT worldnet DOT att DOT net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
- Raw text -