@node mbrtowc
@section @code{mbrtowc}
@findex mbrtowc

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html}

Gnulib module: mbrtowc

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
@item
In the C or POSIX locales, this function can return @code{(size_t) -1}
and set @code{errno} to @code{EILSEQ}:
glibc 2.23.
@item
This function returns 0 instead of @code{(size_t) -2} when the input
is empty:
glibc 2.19.
@item
This function returns @code{(size_t) -1} instead of @code{(size_t) -2}
when the input is empty:
AIX 5.1.
@item
This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
AIX 5.1, OSF/1 5.1.
@item
This function does not produce correct results in the zh_CN.GB18030 locale on
some platforms:
Solaris 8.
@item
This function fails if the @code{pwc} argument is NULL on some platforms:
Solaris 7.
@item
This function does not ignore the @code{pwc} argument if the string argument is
NULL on some platforms:
OSF/1 5.1.
@item
This function returns the total number of bytes that make up the multibyte
character, not the number of bytes that were needed to complete the multibyte
character, on some platforms:
HP-UX 11.11, Solaris 11 2010-11, mingw, possibly MSVC 14.
@item
This function may not return 0 when parsing the NUL character on some platforms:
Solaris 9.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
@end itemize
