mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-10-03 15:50:18 +00:00
Fix wint_t on MSVC.
* lib/wchar.in.h (wint_t): On MSVC, override it. * lib/wctype.in.h (wint_t): Likewise. * m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Override BITSIZEOF_WINT_T on MSVC. * doc/posix-headers/wchar.texi: Mention the problem with wint_t on MSVC. * doc/posix-headers/wctype.texi: Likewise.
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
2011-09-11 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
Fix wint_t on MSVC.
|
||||
* lib/wchar.in.h (wint_t): On MSVC, override it.
|
||||
* lib/wctype.in.h (wint_t): Likewise.
|
||||
* m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Override BITSIZEOF_WINT_T on
|
||||
MSVC.
|
||||
* doc/posix-headers/wchar.texi: Mention the problem with wint_t on MSVC.
|
||||
* doc/posix-headers/wctype.texi: Likewise.
|
||||
|
||||
2011-09-11 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
sys_types: Fix typo.
|
||||
|
||||
@@ -16,6 +16,9 @@ OSF/1 with Desktop Toolkit C, BSD/OS 4.0.1.
|
||||
@item
|
||||
The type @code{wint_t} and macro @code{WEOF} are missing on some platforms:
|
||||
IRIX 5.3.
|
||||
@item
|
||||
The type @code{wint_t} is incorrect on some platforms:
|
||||
MSVC 9.
|
||||
|
||||
@item
|
||||
Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
|
||||
|
||||
@@ -17,6 +17,9 @@ Solaris 2.5, OSF/1 with Desktop Toolkit C, BSD/OS 4.0.1.
|
||||
The type @code{wint_t} and macro @code{WEOF} are missing on some platforms:
|
||||
IRIX 5.3.
|
||||
@item
|
||||
The type @code{wint_t} is incorrect on some platforms:
|
||||
MSVC 9.
|
||||
@item
|
||||
The functions @code{isw*} are missing on some platforms:
|
||||
FreeBSD 4.11.
|
||||
@item
|
||||
|
||||
@@ -98,6 +98,18 @@
|
||||
# define WEOF -1
|
||||
# endif
|
||||
#else
|
||||
/* MSVC defines 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. */
|
||||
# if defined _MSC_VER
|
||||
# if !GNULIB_defined_wint_t
|
||||
# include <crtdefs.h>
|
||||
typedef unsigned int rpl_wint_t;
|
||||
# undef wint_t
|
||||
# define wint_t rpl_wint_t
|
||||
# define GNULIB_defined_wint_t 1
|
||||
# endif
|
||||
# endif
|
||||
# ifndef WEOF
|
||||
# define WEOF ((wint_t) -1)
|
||||
# endif
|
||||
|
||||
@@ -79,6 +79,18 @@
|
||||
# define WEOF -1
|
||||
# endif
|
||||
#else
|
||||
/* MSVC defines 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. */
|
||||
# if defined _MSC_VER
|
||||
# if !GNULIB_defined_wint_t
|
||||
# include <crtdefs.h>
|
||||
typedef unsigned int rpl_wint_t;
|
||||
# undef wint_t
|
||||
# define wint_t rpl_wint_t
|
||||
# define GNULIB_defined_wint_t 1
|
||||
# endif
|
||||
# endif
|
||||
# ifndef WEOF
|
||||
# define WEOF ((wint_t) -1)
|
||||
# endif
|
||||
|
||||
@@ -466,6 +466,14 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
|
||||
fi
|
||||
gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
|
||||
[gl_STDINT_INCLUDES])
|
||||
|
||||
dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
|
||||
dnl requirement that wint_t is "unchanged by default argument promotions".
|
||||
dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
|
||||
dnl Set the variable BITSIZEOF_WINT_T accordingly.
|
||||
if test $BITSIZEOF_WINT_T -lt 32; then
|
||||
BITSIZEOF_WINT_T=32
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
|
||||
|
||||
Reference in New Issue
Block a user