changeset 6867:1cc0079e942e

Try harder to get WCHAR_MIN and WCHAR_MAX.
author Bruno Haible <bruno@clisp.org>
date Mon, 26 Jun 2006 17:27:53 +0000
parents bcac002437d1
children 6a5c1b91a7eb
files ChangeLog lib/ChangeLog lib/stdint_.h m4/ChangeLog m4/stdint.m4 modules/stdint
diffstat 6 files changed, 31 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-06-26  Bruno Haible  <bruno@clisp.org>
+
+	* modules/stdint (Makefile.am): Also substitute HAVE_WCHAR_H.
+
 2006-06-23  Simon Josefsson  <jas@extundo.com>
             Bruno Haible  <bruno@clisp.org>
 
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,9 @@
+2006-06-26  Bruno Haible  <bruno@clisp.org>
+
+	* stdlib_.h: Include <wchar.h> if necessary for WCHAR_MIN or
+	WCHAR_MAX.
+	Reported by Mark D. Baushke and Larry Jones.
+
 2006-06-26  Bruno Haible  <bruno@clisp.org>
 
 	* stdlib_.h: Don't include <stdint.h> when using the SGI C compiler
--- a/lib/stdint_.h
+++ b/lib/stdint_.h
@@ -26,6 +26,11 @@
 
 /* Get wchar_t, WCHAR_MIN, WCHAR_MAX.  */
 #include <stddef.h>
+/* Some systems define WCHAR_MIN, WCHAR_MAX in <wchar.h>, not <stddef.h>.  */
+#if !(defined(WCHAR_MIN) && defined(WCHAR_MAX)) && @HAVE_WCHAR_H@
+# include <wchar.h>
+#endif
+
 /* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
 #include <limits.h>
 
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,7 @@
+2006-06-26  Bruno Haible  <bruno@clisp.org>
+
+	* stdint.m4 (gl_STDINT_H): Test also for <wchar.h>.
+
 2006-06-26  Bruno Haible  <bruno@clisp.org>
 
 	* stdint.m4 (gl_STDINT_H): Don't include <stdint.h> when using the
--- a/m4/stdint.m4
+++ b/m4/stdint.m4
@@ -9,6 +9,15 @@
 
 AC_DEFUN([gl_STDINT_H],
 [
+  dnl Check for <wchar.h>.
+  AC_CHECK_HEADERS_ONCE([wchar.h])
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
+  AC_SUBST([HAVE_WCHAR_H])
+
   dnl Check for <stdint.h> that doesn't clash with <sys/types.h>.
   gl_HEADER_STDINT_H
   if test $gl_cv_header_stdint_h = yes; then
@@ -279,7 +288,7 @@
     gl_STDINT_MISSING_BOUNDS2([SIG_ATOMIC_MIN SIG_ATOMIC_MAX],
       [#include <signal.h>])
     dnl Don't bother defining WCHAR_MIN and WCHAR_MAX, since they should
-    dnl already be defined in <stddef.h>.
+    dnl already be defined in <stddef.h> or <wchar.h>.
     dnl For wint_t we need <wchar.h>.
     dnl Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included
     dnl before <wchar.h>.
--- a/modules/stdint
+++ b/modules/stdint
@@ -22,7 +22,8 @@
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
 stdint.h: stdint_.h
-	sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+	sed -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+	    -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
 	    -e 's|@''FULL_PATH_STDINT_H''@|$(FULL_PATH_STDINT_H)|g' \
 	    -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
 	    -e 's|@''FULL_PATH_INTTYPES_H''@|$(FULL_PATH_INTTYPES_H)|g' \