Hash :
d4eb619a
Author :
Date :
2024-06-09T19:16:01
c32rtomb: Add a sanity check, working around Solaris 11 OmniOS. * m4/c32rtomb.m4 (gl_CHECK_FUNC_C32RTOMB): New macro, extracted from gl_FUNC_C32RTOMB. (gl_C32RTOMB_SANITYCHECK): New macro. (gl_FUNC_C32RTOMB): Require gl_CHECK_FUNC_C32RTOMB and gl_C32RTOMB_SANITYCHECK. If HAVE_WORKING_C32RTOMB is 0, set REPLACE_C32RTOMB. * lib/c32rtomb.c (c32rtomb): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * m4/mbrtoc32.m4 (gl_PREREQ_MBRTOC32): Require gl_C32RTOMB_SANITYCHECK. * lib/mbrtoc32.c (mbrtoc32): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * modules/mbrtoc32 (Files): Add m4/c32rtomb.m4. * lib/btoc32.c (btoc32): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * lib/mbsrtoc32s.c: Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * lib/mbsnrtoc32s.c: Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * lib/c32tob.c (c32tob): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * modules/c32tob (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * lib/c32srtombs.c: Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * lib/c32snrtombs.c: Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * lib/c32is-impl.h (FUNC): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * modules/c32isalnum (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isalpha (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isblank (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32iscntrl (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isdigit (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isgraph (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32islower (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isprint (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32ispunct (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isspace (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isupper (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32isxdigit (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * lib/c32to-impl.h (FUNC): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * modules/c32tolower (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * modules/c32toupper (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK. * lib/c32width.c (c32width): Together with HAVE_WORKING_MBRTOC32, test also HAVE_WORKING_C32RTOMB. * modules/c32width (Files): Add m4/c32rtomb.m4. (configure.ac): Require gl_C32RTOMB_SANITYCHECK.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Description:
c32width() function: Determine the number of screen columns needed for
a 32-bit wide character.
Files:
lib/c32width.c
m4/mbrtoc32.m4
m4/c32rtomb.m4
m4/mbrtowc.m4
m4/locale-fr.m4
m4/locale-ja.m4
m4/locale-zh.m4
m4/codeset.m4
Depends-on:
uchar
wchar
wcwidth
uniwidth/width
configure.ac:
AC_REQUIRE([gl_UCHAR_H])
dnl Determine REPLACE_MBSTATE_T, from which GNULIB_defined_mbstate_t is
dnl determined. It describes how mbrtoc32 is implemented.
AC_REQUIRE([gl_MBSTATE_T_BROKEN])
AC_REQUIRE([gl_MBRTOC32_SANITYCHECK])
AC_REQUIRE([gl_C32RTOMB_SANITYCHECK])
gl_UCHAR_MODULE_INDICATOR([c32width])
Makefile.am:
lib_SOURCES += c32width.c
Include:
<uchar.h>
Link:
$(LTLIBUNISTRING) when linking with libtool, $(LIBUNISTRING) otherwise
$(LTLIBC32CONV) when linking with libtool, $(LIBC32CONV) otherwise
License:
LGPLv2+
Maintainer:
Bruno Haible