ctype pitfall

C is a language that I know fairly well.  A few days ago I've learned
something I didn't know about its standard library.  It came out
of a casual discussion with dave0, on the #c IRC channel (LiberaChat).

In short, when invoking ctype functions such as isspace(3), the
argument *must* be cast to unsigned char.

All these functions have a common signature: they accept an `int`
parameter.  The important bit to keep in mind that they're defined
only for EOF and the values in the [0, UCHAR_MAX] range.

I would recommend to have a look at the relevant man-pages, of
many operating systems: the problem is discussed in different
ways, and in some instances not even mentioned.

I believe it is generally a good idea to read the man pages, even
for functionalities that seem trivial.  If the manpage is longer
than a few lines, it should be considered a red flag.