Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
.BR tolower_l ():
POSIX.1-2008.
.SH NOTES
+The standards require that the argument
+.I c
+for these functions is either
+.B EOF
+or a value that is representable in the type
+.IR "unsigned char" .
+If the argument
+.I c
+is of type
+.IR char ,
+it must be cast to
+.IR "unsigned char" ,
+as in the following example:
+
+.nf
+.in +4n
+char c;
+\&...
+res = toupper((unsigned char) c);
+.in
+.fi
+
+This is necessary because
+.I char
+may be the equivalent
+.IR "signed char" ,
+in which case a byte where the top bit is set would be sign extended when
+converting to
+.IR int ,
+yielding a value that is outside the range of
+.IR "unsigned char" .
+
The details of what constitutes an uppercase or lowercase letter depend
on the locale.
For example, the default