Pass an unsigned char to ctype functions.

It must be EOF or representable as an unsigned char, otherwise the
result is undefined. Particularly, if char has the same range as signed
char, in which case, it maps negative char values (quite normal outside
7-bit ASCII) to positive unsigned char values.