ctype bug
Matthew Dillon
dillon at apollo.backplane.com
Wed Jul 6 10:50:44 PDT 2005
:
:On Tue, Jul 05, 2005 at 11:20:24PM -0700, Matthew Dillon wrote:
:> Whoops, we have a problem with the ctype code... it is not properly
:> folding negative integers (i.e. when a signed char is passed to
:> an is*() function).
:
:That's a bug in the test case, not in the ctype functions. You MUST pass
:unsigned char values to it, NOT signed char. Actually, that code might core
:dump. The only valid exception is EOF (-1).
:
:Joerg
No, that isn't a bug in the test case. It is perfectly valid to pass
a char to an is*() function. It does NOT have to be unsigned, and
the is*() function is expected to return the correct result.
We have to fix the is*() functions, plain and simple.
EOF ? Where'd EOF come from? EOF is not a valid character. It's the
same as 'char c = 0xFF' and thus the is*() functions must return a
representation for 0xFF in that case.
The is*() functions MUST properly fold signed chars to return the correct
result. There is no two ways about it. It MUST work, period.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Commits
mailing list