From 9be236d67f3d78235c5cbe4381c5dd7b3cddb179 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 9 Jan 2020 01:47:17 +0100 Subject: mbrtoc32: Use the system's mbrtoc32 if it exists and basically works. * 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, . (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 , . (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. --- modules/mbsrtoc32s | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'modules/mbsrtoc32s') diff --git a/modules/mbsrtoc32s b/modules/mbsrtoc32s index e7e5ee245b..64892cf2a7 100644 --- a/modules/mbsrtoc32s +++ b/modules/mbsrtoc32s @@ -10,15 +10,13 @@ Depends-on: uchar wchar verify -mbrtoc32 [test $SMALL_WCHAR_T = 1] -strnlen1 [test $SMALL_WCHAR_T = 1] +mbrtoc32 +strnlen1 mbsrtowcs [test $SMALL_WCHAR_T = 0] configure.ac: AC_REQUIRE([gl_UCHAR_H]) -if test $SMALL_WCHAR_T = 1; then - AC_LIBOBJ([mbsrtoc32s-state]) -fi +AC_LIBOBJ([mbsrtoc32s-state]) gl_UCHAR_MODULE_INDICATOR([mbsrtoc32s]) Makefile.am: -- cgit v1.2.1