Hash :
86e05eff
Author :
Date :
2020-01-01T17:01:54
c32tob: New module. * lib/uchar.in.h (_GL_LARGE_CHAR32_T): New macro. (c32tob): New declaration. * lib/c32tob.c: New file. * m4/uchar.m4 (gl_UCHAR_MODULE_INDICATOR, gl_UCHAR_H_DEFAULTS): New macros. (gl_UCHAR_H): Require gl_UCHAR_H_DEFAULTS. * modules/uchar (Depends-on): Add snippet/c++defs. (Makefile.am): Include c++defs.h and substitute GNULIB_C32TOB in uchar.h. * modules/c32tob: New file. * tests/test-uchar.c: Verify that _GL_LARGE_CHAR32_T is correctly defined. * tests/test-uchar-c++.cc: Include signature.h. Test the signature of c32tob. * modules/uchar-c++-tests (Files): Add tests/signature.h. * doc/posix-functions/wctob.texi: Mention the new module.
@node wctob
@section @code{wctob}
@findex wctob
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/wctob.html}
Gnulib module: wctob
Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
@item
This function clobbers caller-owned registers on some platforms:
Cygwin 1.7.5.
@item
This function does not work on some platforms:
Solaris 9.
@item
This function is missing a declaration on some platforms:
IRIX 6.5.
@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 Gnulib function @code{c32tob}, provided by Gnulib module
@code{c32tob}, operates on 32-bit wide characters and therefore does not have
this limitation.
@end itemize