On 2019-12-07 I pushed: > * lib/wchar.in.h (mbstate_t): Don't override on AIX.
This caused a regression: mbrtowc tests started to fail on AIX and, later, also on MSVC. This patch fixes the regression: 2019-12-18 Bruno Haible <br...@clisp.org> wchar: Fix test failures on AIX and MSVC (regression from 2019-12-07). * lib/wchar.in.h (GNULIB_defined_mbstate_t): Do define on AIX and MSVC. diff --git a/lib/wchar.in.h b/lib/wchar.in.h index 6626bd9..1cf7837 100644 --- a/lib/wchar.in.h +++ b/lib/wchar.in.h @@ -140,12 +140,13 @@ typedef unsigned int rpl_wint_t; implementing mbrtowc for encodings like UTF-8. On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is large enough and overriding it would cause problems in C++ mode. */ -#if (!(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@) \ - && !(defined _AIX || defined _MSC_VER) +#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t +# if !(defined _AIX || defined _MSC_VER) typedef int rpl_mbstate_t; -# undef mbstate_t -# define mbstate_t rpl_mbstate_t +# undef mbstate_t +# define mbstate_t rpl_mbstate_t +# endif # define GNULIB_defined_mbstate_t 1 # endif #endif