toupper
=======

POSIX specification:
 https://pubs.opengroup.org/onlinepubs/9699919799/functions/toupper.html

Gnulib module: ctype

Portability problems fixed by Gnulib:

  * This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function's behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_toupper
     This function operates in a locale independent way and returns a different value than the argument only for lowercase ASCII characters.  It is provided by the Gnulib module c-ctype.

towupper
     This function operates in a locale dependent way, on wide characters.  In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function.  It is provided by the Gnulib module wctype.

c32toupper
     This function operates in a locale dependent way, on 32-bit wide characters. In order to use it, you first have to convert from multibyte to 32-bit wide characters, using the mbrtoc32 function.  It is provided by the Gnulib module c32toupper.

uc_toupper
     This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module unicase/toupper.