<wchar.h>: Partial revert of b9286c919de6585c967b8dbf2c472fba7b33f9f1.
authorSascha Wildner <saw@online.de>
Wed, 21 Jul 2010 10:34:44 +0000 (12:34 +0200)
committerSascha Wildner <saw@online.de>
Wed, 21 Jul 2010 10:34:44 +0000 (12:34 +0200)
Before Hasso's commit, both wchar_t and WCHAR_{MIN,MAX} were inside a
#ifndef __cplusplus. With this state, devel/boost-libs in pkgsrc indeed
fails to build because it can't find WCHAR_{MIN,MAX}.

However, with the #ifndef completely removed (after Hasso's commit),
clang whines during C++ compilation because wchar_t is a built in type
in C++.

Therefore, bring back the #ifndef, but only around wchar_t and not
around the limits. This keeps boost-libs building, silences clang, is
in line with what the C++ standard says and with what others (FreeBSD,
for example) do.

include/wchar.h
sys/sys/stdint.h

index a54b456..a02f98d 100644 (file)
@@ -1,5 +1,4 @@
 /*     $NetBSD: src/include/wchar.h,v 1.20 2004/05/08 21:57:05 kleink Exp $    */
-/*     $DragonFly: src/include/wchar.h,v 1.12 2008/06/05 17:53:10 swildner Exp $ */
 
 /*-
  * Copyright (c)1999 Citrus Project,
 #include <stdio.h> /* for FILE* */
 #include <sys/_null.h>
 
+#ifndef __cplusplus
 #ifndef _WCHAR_T_DECLARED
 #define        _WCHAR_T_DECLARED
 typedef        __wchar_t       wchar_t;
 #endif
+#endif
 
 #ifndef WCHAR_MIN
 #define        WCHAR_MIN       INT_MIN
index b031f1e..dff08ab 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * This file is in the public domain.
  * $FreeBSD: src/sys/sys/inttypes.h,v 1.2 1999/08/28 00:51:47 peter Exp $
- * $DragonFly: src/sys/sys/stdint.h,v 1.4 2008/03/10 12:01:50 hasso Exp $
  *
  * Note: since portions of these header files can be included with various
  * other combinations of defines, we cannot surround the whole header file
@@ -27,7 +26,9 @@
  * as 31 bit standard and all supported architectures have
  * sizeof(int) >= 4.
  */
+#ifndef __cplusplus
 typedef        int             __wchar_t;
+#endif
 typedef        int             __wint_t;
 typedef        int             __rune_t;
 typedef        void            *__wctrans_t;