Hash :
4ec96253
Author :
Date :
2020-01-09T01:56:35
c32rtomb: New module. * lib/uchar.in.h (c32rtomb): New declaration. * lib/c32rtomb.c: New file, based on lib/unistr/u8-uctomb-aux.c. * m4/c32rtomb.m4: New file. * m4/uchar.m4 (gl_UCHAR_H): Test whether c32rtomb is declared. (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32RTOMB, HAVE_C32RTOMB, REPLACE_C32RTOMB. * modules/uchar (Makefile.am): Substitute GNULIB_C32RTOMB, HAVE_C32RTOMB, REPLACE_C32RTOMB. * modules/c32rtomb: New file. * tests/test-uchar-c++.cc: Test the signature of c32rtomb. * doc/posix-functions/c32rtomb.texi: Document the new module. * doc/posix-functions/wcrtomb.texi: Mention the new module.
@node wcrtomb
@section @code{wcrtomb}
@findex wcrtomb
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/wcrtomb.html}
Gnulib module: wcrtomb
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, mingw.
@item
This function produces wrong characters in the C locale on some platforms:
Android 4.3.
@item
This function returns 0 when the first argument is NULL in some locales on some platforms:
Solaris 11.3.
@item
This function does not ignore the second argument when the first argument is NULL on some platforms:
MSVC 14.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the ISO C11 function @code{c32rtomb}, provided by Gnulib module
@code{c32rtomb}, operates on 32-bit wide characters and therefore does not have
this limitation.
@end itemize