summaryrefslogtreecommitdiff
path: root/lib/btoc32.c
Commit message (Collapse)AuthorAgeFilesLines
* mbrtoc32: Use the system's mbrtoc32 if it exists and basically works.Bruno Haible2020-01-091-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): New macro. (gl_FUNC_MBRTOC32): Require it. Set REPLACE_MBRTOC32 if mbrtoc32 exists but is not working. * lib/mbrtoc32.c: Include hard-locale.h, <locale.h>. (mbrtoc32): If the char32_t encoding and the wchar_t encoding may differ, use the system's mbrtoc32, adding workarounds. * modules/mbrtoc32 (Depends-on): Add hard-locale. * doc/posix-functions/mbrtoc32.texi: Mention the Solaris and native Windows problem. * lib/btoc32.c: Include <stdio.h>, <string.h>. (btoc32): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not btowc. * modules/btoc32 (Depends-on): Add mbrtoc32. * lib/mbsrtoc32s.c (mbsrtoc32s): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not mbsrtowcs. * modules/mbsrtoc32s (Depends-on): Update conditions. (configure.ac): Compile mbsrtoc32s-state.c unconditionally. * lib/mbsnrtoc32s.c (mbsnrtoc32s): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not mbsnrtowcs. * modules/mbsnrtoc32s (Depends-on): Update conditions. (configure.ac): Compile mbsrtoc32s-state.c unconditionally.
* btoc32: New module.Bruno Haible2020-01-041-0/+30
* lib/uchar.in.h (btoc32): New declaration. * lib/btoc32.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_BTOC32. * modules/uchar (Makefile.am): Substitute GNULIB_BTOC32. * modules/btoc32: New file. * tests/test-uchar-c++.cc: Test the signature of btoc32. * doc/posix-functions/btowc.texi: Mention the new module.