From f61573abd91da7f722b8b4a1dc97bea9b81b17a3 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 17 Dec 2019 10:35:05 +0100 Subject: mbsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by Tom Kacvinsky and Martin Storsjö in . * lib/mbsinit.c: Accommodate an MSVC-like mbstate_t definition with mingw. --- ChangeLog | 9 +++++++++ lib/mbsinit.c | 9 +++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5e6677fa0d..b8b301d124 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2019-12-17 Bruno Haible + + mbsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined. + Reported by Tom Kacvinsky + and Martin Storsjö + in . + * lib/mbsinit.c: Accommodate an MSVC-like mbstate_t definition with + mingw. + 2019-12-17 Bruno Haible glob: Avoid warning on mingw. diff --git a/lib/mbsinit.c b/lib/mbsinit.c index 5ecaef77c7..b42909e61d 100644 --- a/lib/mbsinit.c +++ b/lib/mbsinit.c @@ -56,13 +56,10 @@ mbsinit (const mbstate_t *ps) { # if defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ -# ifdef __MINGW32__ - /* On mingw, 'mbstate_t' is defined as 'int'. */ - return ps == NULL || *ps == 0; -# else - /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4-bytes matter. */ + /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes matter. + On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined as + an 8-byte struct, of which the first 4 bytes matter. */ return ps == NULL || *(const unsigned int *)ps == 0; -# endif # else /* Minix, HP-UX 11.00, Solaris 2.6, Interix, ... */ /* Maybe this definition works, maybe not... */ -- cgit v1.2.1