[ros-diffs] [cfinck] 28422: Change the wchar_t logic once more to make it a bit simplier. A host can only have one special wchar_t definition, so we don't need to define all. Also _WCHAR_T_DEFINED is the only definition used for overriding the wchar_t setting by applications. So use the previous logic to check and define the wchar_t definitions for the host and at the end check for _WCHAR_T_DEFINED. In all cases, define _WCHAR_T_DEFINED. Additionally, __need_wchar_t has to be undefined after including "ctype.h" as "ctype.h" defines it.

cfinck at svn.reactos.org cfinck at svn.reactos.org
Sun Aug 19 16:04:20 CEST 2007


Author: cfinck
Date: Sun Aug 19 18:04:20 2007
New Revision: 28422

URL: http://svn.reactos.org/svn/reactos?rev=28422&view=rev
Log:
Change the wchar_t logic once more to make it a bit simplier.

A host can only have one special wchar_t definition, so we don't need to define all. Also _WCHAR_T_DEFINED is the only definition used for overriding the wchar_t setting by applications.
So use the previous logic to check and define the wchar_t definitions for the host and at the end check for _WCHAR_T_DEFINED. In all cases, define _WCHAR_T_DEFINED.

Additionally, __need_wchar_t has to be undefined after including "ctype.h" as "ctype.h" defines it.

Modified:
    trunk/reactos/include/psdk/winnt.h

Modified: trunk/reactos/include/psdk/winnt.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=28422&r1=28421&r2=28422&view=diff
==============================================================================
--- trunk/reactos/include/psdk/winnt.h (original)
+++ trunk/reactos/include/psdk/winnt.h Sun Aug 19 18:04:20 2007
@@ -52,11 +52,13 @@
 
 /* wchar_t checks
  * First check if wchar_t has already been defined by any host/OS */
-#ifndef _WCHAR_T_DEFINED
 #ifndef _WCHAR_T_DECLARED      /* for FreeBSD 5 and later */
+#define _WCHAR_T_DECLARED
 #ifndef _WCHAR_T               /* for Mac OS X */
+#define _WCHAR_T
 #ifndef _WCHAR_T_
-#undef __need_wchar_t
+#define _WCHAR_T_
+#ifndef _WCHAR_T_DEFINED       /* If you want to override the wchar_t setting, define this */
 #ifndef __cplusplus
   typedef unsigned short wchar_t;
 #endif
@@ -65,25 +67,14 @@
 #endif
 #endif
 
-/* Now report that it has been defined to all known hosts/operating systems */
+/* Set _WCHAR_T_DEFINED for the case that this is checked later */
 #ifndef _WCHAR_T_DEFINED
 #define _WCHAR_T_DEFINED
 #endif
 
-#ifndef _WCHAR_T_DECLARED
-#define _WCHAR_T_DECLARED
-#endif
-
-#ifndef _WCHAR_T
-#define _WCHAR_T
-#endif
-
-#ifndef _WCHAR_T_
-#define _WCHAR_T_
-#endif
-
-
 #include <ctype.h>
+#undef __need_wchar_t
+
 #include <winerror.h>
 #include <stddef.h>
 #include <sdkddkver.h>




More information about the Ros-diffs mailing list