ctype bug

Joerg Sonnenberger joerg at britannica.bec.de
Wed Jul 6 11:26:32 PDT 2005


On Wed, Jul 06, 2005 at 10:48:38AM -0700, Matthew Dillon wrote:
>     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.

No, it is not. It ALWAYS was invalid, just that the old code was catching
it in the slow path and hacking around it.

>     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.

It is. Please read the man page or SUS.

>     The is*() functions MUST properly fold signed chars to return the correct
>     result.  There is no two ways about it.  It MUST work, period.

It can't.

Joerg





More information about the Commits mailing list