A technical note: <ctype.h> function arguments are of integer type, and shall be representable in an unsigned char or equal to EOF. Perhaps we should go to unsigned char; if you want signed char, you can ask for it, and a lot of things work better if plain char is nonnegative. -s