Mercurial > gnulib
changeset 38522:c2d38142dbf0
wchar: Fix compilation error with the original mingw.org mingw.
* lib/wchar.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include
<stddef.h> instead.
* m4/wint_t.m4 (gl_TYPE_WINT_T_PREREQ): New macro, extracted from
gl_WCTYPE_H.
* m4/wctype_h.m4 (gl_WCTYPE_H): Don't set HAVE_CRTDEFS_H here; require
gl_TYPE_WINT_T_PREREQ instead.
* m4/wchar_h.m4 (gl_WCHAR_H): Require gl_TYPE_WINT_T_PREREQ.
* modules/wchar (Makefile.am): Substitute HAVE_CRTDEFS_H.
Reported by Eli Zaretskii <eliz@gnu.org>.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 01 May 2017 12:36:02 +0200 |
parents | 3cd64e3590e8 |
children | 362be3f37898 |
files | ChangeLog lib/wchar.in.h m4/wchar_h.m4 m4/wctype_h.m4 m4/wint_t.m4 modules/wchar |
diffstat | 6 files changed, 41 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon May 01 11:52:56 2017 +0200 +++ b/ChangeLog Mon May 01 12:36:02 2017 +0200 @@ -1,3 +1,16 @@ +2017-05-01 Bruno Haible <bruno@clisp.org> + + wchar: Fix compilation error with the original mingw.org mingw. + * lib/wchar.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include + <stddef.h> instead. + * m4/wint_t.m4 (gl_TYPE_WINT_T_PREREQ): New macro, extracted from + gl_WCTYPE_H. + * m4/wctype_h.m4 (gl_WCTYPE_H): Don't set HAVE_CRTDEFS_H here; require + gl_TYPE_WINT_T_PREREQ instead. + * m4/wchar_h.m4 (gl_WCHAR_H): Require gl_TYPE_WINT_T_PREREQ. + * modules/wchar (Makefile.am): Substitute HAVE_CRTDEFS_H. + Reported by Eli Zaretskii <eliz@gnu.org>. + 2017-04-30 Bruno Haible <bruno@clisp.org> utimecmp: Add support for native Windows.
--- a/lib/wchar.in.h Mon May 01 11:52:56 2017 +0200 +++ b/lib/wchar.in.h Mon May 01 12:36:02 2017 +0200 @@ -113,12 +113,16 @@ # define WEOF -1 # endif #else -/* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h>. - This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be - "unchanged by default argument promotions". Override it. */ +/* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or + <stddef.h>. This is too small: ISO C 99 section 7.24.1.(2) says that + wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIB_OVERRIDES_WINT_T@ # if !GNULIB_defined_wint_t -# include <crtdefs.h> +# if @HAVE_CRTDEFS_H@ +# include <crtdefs.h> +# else +# include <stddef.h> +# endif typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t
--- a/m4/wchar_h.m4 Mon May 01 11:52:56 2017 +0200 +++ b/m4/wchar_h.m4 Mon May 01 12:36:02 2017 +0200 @@ -7,7 +7,7 @@ dnl Written by Eric Blake. -# wchar_h.m4 serial 41 +# wchar_h.m4 serial 42 AC_DEFUN([gl_WCHAR_H], [ @@ -35,6 +35,8 @@ fi AC_SUBST([HAVE_WINT_T]) + AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) + dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[
--- a/m4/wctype_h.m4 Mon May 01 11:52:56 2017 +0200 +++ b/m4/wctype_h.m4 Mon May 01 12:36:02 2017 +0200 @@ -1,4 +1,4 @@ -# wctype_h.m4 serial 19 +# wctype_h.m4 serial 20 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. @@ -30,6 +30,8 @@ fi AC_SUBST([HAVE_WINT_T]) + AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) + gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then @@ -66,14 +68,6 @@ fi AC_SUBST([HAVE_WCTYPE_H]) - AC_CHECK_HEADERS_ONCE([crtdefs.h]) - if test $ac_cv_header_crtdefs_h = yes; then - HAVE_CRTDEFS_H=1 - else - HAVE_CRTDEFS_H=0 - fi - AC_SUBST([HAVE_CRTDEFS_H]) - case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;;
--- a/m4/wint_t.m4 Mon May 01 11:52:56 2017 +0200 +++ b/m4/wint_t.m4 Mon May 01 12:36:02 2017 +0200 @@ -1,4 +1,4 @@ -# wint_t.m4 serial 6 +# wint_t.m4 serial 7 dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -60,3 +60,15 @@ fi AC_SUBST([GNULIB_OVERRIDES_WINT_T]) ]) + +dnl Prerequisites of the 'wint_t' override. +AC_DEFUN([gl_TYPE_WINT_T_PREREQ], +[ + AC_CHECK_HEADERS_ONCE([crtdefs.h]) + if test $ac_cv_header_crtdefs_h = yes; then + HAVE_CRTDEFS_H=1 + else + HAVE_CRTDEFS_H=0 + fi + AC_SUBST([HAVE_CRTDEFS_H]) +])
--- a/modules/wchar Mon May 01 11:52:56 2017 +0200 +++ b/modules/wchar Mon May 01 12:36:02 2017 +0200 @@ -31,6 +31,7 @@ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ + -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \