diff --git a/reactos/include/crt/limits.h b/reactos/include/crt/limits.h index 431f36438fd..9fad49b873d 100644 --- a/reactos/include/crt/limits.h +++ b/reactos/include/crt/limits.h @@ -3,6 +3,7 @@ * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */ +#pragma once #include #ifndef _INC_LIMITS @@ -23,8 +24,13 @@ #define SCHAR_MAX 127 #define UCHAR_MAX 0xff -#define CHAR_MIN SCHAR_MIN -#define CHAR_MAX SCHAR_MAX +#ifdef _CHAR_UNSIGNED + #define CHAR_MIN 0 + #define CHAR_MAX UCHAR_MAX +#else + #define CHAR_MIN SCHAR_MIN + #define CHAR_MAX SCHAR_MAX +#endif /* _CHAR_UNSIGNED */ #define MB_LEN_MAX 5 #define SHRT_MIN (-32768) @@ -36,41 +42,30 @@ #define LONG_MIN (-2147483647L - 1) #define LONG_MAX 2147483647L #define ULONG_MAX 0xffffffffUL -#define LLONG_MAX 9223372036854775807ll -#define LLONG_MIN (-9223372036854775807ll - 1) -#define ULLONG_MAX 0xffffffffffffffffull +#define LLONG_MAX 9223372036854775807LL +#define LLONG_MIN (-9223372036854775807LL - 1) +#define ULLONG_MAX 0xffffffffffffffffULL -#if _INTEGRAL_MAX_BITS >= 8 -#define _I8_MIN (-127 - 1) -#define _I8_MAX 127i8 -#define _UI8_MAX 0xffu -#endif +#define _I8_MIN ((signed char)(-127 - 1)) +#define _I8_MAX ((signed char)127) +#define _UI8_MAX ((unsigned char)0xff) -#if _INTEGRAL_MAX_BITS >= 16 -#define _I16_MIN (-32767 - 1) -#define _I16_MAX 32767i16 -#define _UI16_MAX 0xffffu -#endif +#define _I16_MIN ((short)(-32767 - 1)) +#define _I16_MAX ((short)32767) +#define _UI16_MAX ((unsigned short)0xffffU) -#if _INTEGRAL_MAX_BITS >= 32 #define _I32_MIN (-2147483647 - 1) #define _I32_MAX 2147483647 #define _UI32_MAX 0xffffffffu -#endif -#if defined(__GNUC__) -#undef LONG_LONG_MAX -#define LONG_LONG_MAX 9223372036854775807ll -#undef LONG_LONG_MIN -#define LONG_LONG_MIN (-LONG_LONG_MAX-1) -#undef ULONG_LONG_MAX -#define ULONG_LONG_MAX (2ull * LONG_LONG_MAX + 1ull) -#endif +#define _I64_MIN (-9223372036854775807LL - 1) +#define _I64_MAX 9223372036854775807LL +#define _UI64_MAX 0xffffffffffffffffULL -#if _INTEGRAL_MAX_BITS >= 64 -#define _I64_MIN (-9223372036854775807ll - 1) -#define _I64_MAX 9223372036854775807ll -#define _UI64_MAX 0xffffffffffffffffull +#if defined(_MSC_VER) && (_INTEGRAL_MAX_BITS >= 128) +#define _I128_MIN (-170141183460469231731687303715884105727i128 - 1) +#define _I128_MAX 170141183460469231731687303715884105727i128 +#define _UI128_MAX 0xffffffffffffffffffffffffffffffffui128 #endif #ifndef SIZE_MAX @@ -79,33 +74,12 @@ #else #define SIZE_MAX UINT_MAX #endif -#endif +#endif /* SIZE_MAX */ -#ifdef _POSIX_ -#define _POSIX_ARG_MAX 4096 -#define _POSIX_CHILD_MAX 6 -#define _POSIX_LINK_MAX 8 -#define _POSIX_MAX_CANON 255 -#define _POSIX_MAX_INPUT 255 -#define _POSIX_NAME_MAX 14 -#define _POSIX_NGROUPS_MAX 0 -#define _POSIX_OPEN_MAX 16 -#define _POSIX_PATH_MAX 255 -#define _POSIX_PIPE_BUF 512 -#define _POSIX_SSIZE_MAX 32767 -#define _POSIX_STREAM_MAX 8 -#define _POSIX_TZNAME_MAX 3 -#define ARG_MAX 14500 -#define LINK_MAX 1024 -#define MAX_CANON _POSIX_MAX_CANON -#define MAX_INPUT _POSIX_MAX_INPUT -#define NAME_MAX 255 -#define NGROUPS_MAX 16 -#define OPEN_MAX 32 -#define PATH_MAX 512 -#define PIPE_BUF _POSIX_PIPE_BUF -#define SSIZE_MAX _POSIX_SSIZE_MAX -#define STREAM_MAX 20 -#define TZNAME_MAX 10 -#endif -#endif +#if __STDC_WANT_SECURE_LIB__ +#ifndef RSIZE_MAX +#define RSIZE_MAX SIZE_MAX +#endif /* RSIZE_MAX */ +#endif /* __STDC_WANT_SECURE_LIB__ */ + +#endif /* _INC_LIMITS */ diff --git a/reactos/include/psdk/intsafe.h b/reactos/include/psdk/intsafe.h index 8b03bb12fa3..0da1c08f5af 100644 --- a/reactos/include/psdk/intsafe.h +++ b/reactos/include/psdk/intsafe.h @@ -122,52 +122,40 @@ C_ASSERT(sizeof(ULONG) == 4); C_ASSERT(sizeof(DWORD) == 4); C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); -/* Undefine these to avoid conflicts with limits.h */ -#undef CHAR_MIN -#undef CHAR_MAX -#undef INT_MIN -#undef INT_MAX -#undef LONG_MIN -#undef LONG_MAX -#undef UCHAR_MAX -#undef UINT_MAX -#undef ULONG_MAX - /* Integer range margins (use (x-1) to prevent warnings) */ -#define INT8_MIN (-127 - 1) -#define SHORT_MIN (-32767 - 1) -#define INT16_MIN (-32767 - 1) +#define INT8_MIN ((signed char)(-127 - 1)) +#define SHORT_MIN (-32768) +#define INT16_MIN ((short)(-32767 - 1)) #define INT_MIN (-2147483647 - 1) #define INT32_MIN (-2147483647 - 1) #define LONG_MIN (-2147483647L - 1) #define LONGLONG_MIN (-9223372036854775807LL - 1) #define LONG64_MIN (-9223372036854775807LL - 1) #define INT64_MIN (-9223372036854775807LL - 1) -//#define INT128_MIN (-170141183460469231731687303715884105728) +#define INT128_MIN (-170141183460469231731687303715884105727i128 - 1) #ifdef _WIN64 -#define INT_PTR_MIN INT64_MIN -#define LONG_PTR_MIN LONG64_MIN -#define PTRDIFF_T_MIN INT64_MIN -#define SSIZE_T_MIN INT64_MIN -#else // _WIN64 -#define INT_PTR_MIN INT_MIN -#define LONG_PTR_MIN LONG_MIN -#define PTRDIFF_T_MIN INT_MIN -#define SSIZE_T_MIN INT_MIN -#endif // _WIN64 +#define INT_PTR_MIN (-9223372036854775807LL - 1) +#define LONG_PTR_MIN (-9223372036854775807LL - 1) +#define PTRDIFF_T_MIN (-9223372036854775807LL - 1) +#define SSIZE_T_MIN (-9223372036854775807LL - 1) +#else /* _WIN64 */ +#define INT_PTR_MIN (-2147483647 - 1) +#define LONG_PTR_MIN (-2147483647L - 1) +#define PTRDIFF_T_MIN (-2147483647 - 1) +#define SSIZE_T_MIN (-2147483647L - 1) +#endif /* _WIN64 */ -#define INT8_MAX 127 -#define UINT8_MAX 0xff -#define UCHAR_MAX 0xff +#define INT8_MAX ((signed char)127) +#define UINT8_MAX ((unsigned char)0xffU) #define BYTE_MAX 0xff #define SHORT_MAX 32767 -#define INT16_MAX 32767 +#define INT16_MAX ((short)32767) #define USHORT_MAX 0xffff -#define UINT16_MAX 0xffff +#define UINT16_MAX ((unsigned short)0xffffU) #define WORD_MAX 0xffff #define INT_MAX 2147483647 #define INT32_MAX 2147483647 -#define UINT_MAX 0xffffffffU +#define UINT_MAX 0xffffffff #define UINT32_MAX 0xffffffffU #define LONG_MAX 2147483647L #define ULONG_MAX 0xffffffffUL @@ -180,54 +168,44 @@ C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); #define ULONG64_MAX 0xffffffffffffffffULL #define DWORD64_MAX 0xffffffffffffffffULL #define UINT64_MAX 0xffffffffffffffffULL -#define INT128_MAX 170141183460469231731687303715884105727 -#define UINT128_MAX 0xffffffffffffffffffffffffffffffff +#define INT128_MAX 170141183460469231731687303715884105727i128 +#define UINT128_MAX 0xffffffffffffffffffffffffffffffffui128 #undef SIZE_T_MAX #ifdef _WIN64 -#define INT_PTR_MAX INT64_MAX -#define UINT_PTR_MAX UINT64_MAX -#define LONG_PTR_MAX LONG64_MAX -#define ULONG_PTR_MAX ULONG64_MAX -#define DWORD_PTR_MAX DWORD64_MAX -#define PTRDIFF_T_MAX INT64_MAX -#define SIZE_T_MAX UINT64_MAX -#define SSIZE_T_MAX INT64_MAX -#define _SIZE_T_MAX UINT64_MAX -#else // _WIN64 -#define INT_PTR_MAX INT_MAX -#define UINT_PTR_MAX UINT_MAX -#define LONG_PTR_MAX LONG_MAX -#define ULONG_PTR_MAX ULONG_MAX -#define DWORD_PTR_MAX DWORD_MAX -#define PTRDIFF_T_MAX INT_MAX -#define SIZE_T_MAX UINT_MAX -#define SSIZE_T_MAX INT_MAX -#define _SIZE_T_MAX UINT_MAX -#endif // _WIN64 - -#ifndef CHAR_MIN -#ifdef _CHAR_UNSIGNED -#define CHAR_MIN 0 -#define CHAR_MAX 0xff -#else -#define CHAR_MIN (-128) -#define CHAR_MAX 127 -#endif -#endif +#define INT_PTR_MAX 9223372036854775807LL +#define UINT_PTR_MAX 0xffffffffffffffffULL +#define LONG_PTR_MAX 9223372036854775807LL +#define ULONG_PTR_MAX 0xffffffffffffffffULL +#define DWORD_PTR_MAX 0xffffffffffffffffULL +#define PTRDIFF_T_MAX 9223372036854775807LL +#define SIZE_T_MAX 0xffffffffffffffffULL +#define SSIZE_T_MAX 9223372036854775807LL +#define _SIZE_T_MAX 0xffffffffffffffffULL +#else /* _WIN64 */ +#define INT_PTR_MAX 2147483647 +#define UINT_PTR_MAX 0xffffffff +#define LONG_PTR_MAX 2147483647L +#define ULONG_PTR_MAX 0xffffffffUL +#define DWORD_PTR_MAX 0xffffffffUL +#define PTRDIFF_T_MAX 2147483647 +#define SIZE_T_MAX 0xffffffff +#define SSIZE_T_MAX 2147483647L +#define _SIZE_T_MAX 0xffffffffUL +#endif /* _WIN64 */ /* Error values */ -#define INT8_ERROR (-1) -#define UINT8_ERROR 0xff +#define INT8_ERROR ((signed char)(-1)) +#define UINT8_ERROR ((unsigned char)0xff) #define BYTE_ERROR 0xff #define SHORT_ERROR (-1) -#define INT16_ERROR (-1) +#define INT16_ERROR ((short)(-1)) #define USHORT_ERROR 0xffff -#define UINT16_ERROR 0xffff +#define UINT16_ERROR ((unsigned short)0xffffU) #define WORD_ERROR 0xffff #define INT_ERROR (-1) #define INT32_ERROR (-1) #define UINT_ERROR 0xffffffff -#define UINT32_ERROR 0xffffffff +#define UINT32_ERROR 0xffffffffU #define LONG_ERROR (-1L) #define ULONG_ERROR 0xffffffffUL #define DWORD_ERROR 0xffffffffUL @@ -248,7 +226,7 @@ C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); #define SIZE_T_ERROR 0xffffffffffffffffULL #define SSIZE_T_ERROR (-1LL) #define _SIZE_T_ERROR 0xffffffffffffffffULL -#else // _WIN64 +#else /* _WIN64 */ #define INT_PTR_ERROR (-1) #define UINT_PTR_ERROR 0xffffffff #define LONG_PTR_ERROR (-1L) @@ -258,7 +236,18 @@ C_ASSERT(sizeof(UINT_PTR) == sizeof(ULONG_PTR)); #define SIZE_T_ERROR 0xffffffff #define SSIZE_T_ERROR (-1L) #define _SIZE_T_ERROR 0xffffffffUL -#endif // _WIN64 +#endif /* _WIN64 */ + +/* special definitons (the CHAR ones should not be defined here!) */ +#define _INTSAFE_CHAR CHAR +#define _INTSAFE_CHAR_ERROR 0xff +#ifdef _CHAR_UNSIGNED + #define _INTSAFE_CHAR_MIN 0 + #define _INTSAFE_CHAR_MAX 0xff +#else + #define _INTSAFE_CHAR_MIN (-128) + #define _INTSAFE_CHAR_MAX 127 +#endif /* _CHAR_UNSIGNED */ #define size_t_ERROR SIZE_T_ERROR #define UCHAR_ERROR '\0' @@ -290,23 +279,23 @@ INTSAFE_NAME(_Name)( \ } \ } -DEFINE_SAFE_CONVERT_UTOX(ByteToChar, BYTE, CHAR) +DEFINE_SAFE_CONVERT_UTOX(ByteToChar, BYTE, _INTSAFE_CHAR) DEFINE_SAFE_CONVERT_UTOX(ByteToInt8, BYTE, INT8) -DEFINE_SAFE_CONVERT_UTOX(UInt8ToChar, UINT8, CHAR) +DEFINE_SAFE_CONVERT_UTOX(UInt8ToChar, UINT8, _INTSAFE_CHAR) DEFINE_SAFE_CONVERT_UTOX(UInt8ToInt8, UINT8, INT8) -DEFINE_SAFE_CONVERT_UTOX(UShortToChar, USHORT, CHAR) -DEFINE_SAFE_CONVERT_UTOX(UShortToUChar, USHORT, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UShortToChar, USHORT, _INTSAFE_CHAR) +DEFINE_SAFE_CONVERT_UTOX(UShortToUChar, USHORT, UINT8) DEFINE_SAFE_CONVERT_UTOX(UShortToInt8, USHORT, INT8) DEFINE_SAFE_CONVERT_UTOX(UShortToUInt8, USHORT, UINT8) DEFINE_SAFE_CONVERT_UTOX(UShortToShort, USHORT, SHORT) -DEFINE_SAFE_CONVERT_UTOX(UIntToUChar, UINT, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UIntToUChar, UINT, UINT8) DEFINE_SAFE_CONVERT_UTOX(UIntToInt8, UINT, INT8) DEFINE_SAFE_CONVERT_UTOX(UIntToUInt8, UINT, UINT8) DEFINE_SAFE_CONVERT_UTOX(UIntToShort, UINT, SHORT) DEFINE_SAFE_CONVERT_UTOX(UIntToUShort, UINT, USHORT) DEFINE_SAFE_CONVERT_UTOX(UIntToInt, UINT, INT) DEFINE_SAFE_CONVERT_UTOX(UIntToLong, UINT, LONG) -DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUChar, UINT_PTR, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUChar, UINT_PTR, UINT8) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToInt8, UINT_PTR, INT8) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToUInt8, UINT_PTR, UINT8) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToShort, UINT_PTR, SHORT) @@ -317,7 +306,7 @@ DEFINE_SAFE_CONVERT_UTOX(UIntPtrToInt, UINT_PTR, INT) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLong, UINT_PTR, LONG) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToIntPtr, UINT_PTR, INT_PTR) DEFINE_SAFE_CONVERT_UTOX(UIntPtrToLongPtr, UINT_PTR, LONG_PTR) -DEFINE_SAFE_CONVERT_UTOX(ULongToUChar, ULONG, UCHAR) +DEFINE_SAFE_CONVERT_UTOX(ULongToUChar, ULONG, UINT8) DEFINE_SAFE_CONVERT_UTOX(ULongToUInt8, ULONG, UINT8) DEFINE_SAFE_CONVERT_UTOX(ULongToShort, ULONG, SHORT) DEFINE_SAFE_CONVERT_UTOX(ULongToUShort, ULONG, USHORT) @@ -354,7 +343,7 @@ INTSAFE_NAME(_Name)( \ } \ } -DEFINE_SAFE_CONVERT_STOU(Int8ToUChar, INT8, UCHAR) +DEFINE_SAFE_CONVERT_STOU(Int8ToUChar, INT8, UINT8) DEFINE_SAFE_CONVERT_STOU(Int8ToUInt8, INT8, UINT8) DEFINE_SAFE_CONVERT_STOU(Int8ToUShort, INT8, USHORT) DEFINE_SAFE_CONVERT_STOU(Int8ToUInt, INT8, UINT) @@ -362,7 +351,7 @@ DEFINE_SAFE_CONVERT_STOU(Int8ToULong, INT8, ULONG) DEFINE_SAFE_CONVERT_STOU(Int8ToUIntPtr, INT8, UINT_PTR) DEFINE_SAFE_CONVERT_STOU(Int8ToULongPtr, INT8, ULONG_PTR) DEFINE_SAFE_CONVERT_STOU(Int8ToULongLong, INT8, ULONGLONG) -DEFINE_SAFE_CONVERT_STOU(ShortToUChar, SHORT, UCHAR) +DEFINE_SAFE_CONVERT_STOU(ShortToUChar, SHORT, UINT8) DEFINE_SAFE_CONVERT_STOU(ShortToUInt8, SHORT, UINT8) DEFINE_SAFE_CONVERT_STOU(ShortToUShort, SHORT, USHORT) DEFINE_SAFE_CONVERT_STOU(ShortToUInt, SHORT, UINT) @@ -371,13 +360,13 @@ DEFINE_SAFE_CONVERT_STOU(ShortToUIntPtr, SHORT, UINT_PTR) DEFINE_SAFE_CONVERT_STOU(ShortToULongPtr, SHORT, ULONG_PTR) DEFINE_SAFE_CONVERT_STOU(ShortToDWordPtr, SHORT, DWORD_PTR) DEFINE_SAFE_CONVERT_STOU(ShortToULongLong, SHORT, ULONGLONG) -DEFINE_SAFE_CONVERT_STOU(IntToUChar, INT, UCHAR) +DEFINE_SAFE_CONVERT_STOU(IntToUChar, INT, UINT8) DEFINE_SAFE_CONVERT_STOU(IntToUInt8, INT, UINT8) DEFINE_SAFE_CONVERT_STOU(IntToUShort, INT, USHORT) DEFINE_SAFE_CONVERT_STOU(IntToUInt, INT, UINT) DEFINE_SAFE_CONVERT_STOU(IntToULong, INT, ULONG) DEFINE_SAFE_CONVERT_STOU(IntToULongLong, INT, ULONGLONG) -DEFINE_SAFE_CONVERT_STOU(LongToUChar, LONG, UCHAR) +DEFINE_SAFE_CONVERT_STOU(LongToUChar, LONG, UINT8) DEFINE_SAFE_CONVERT_STOU(LongToUInt8, LONG, UINT8) DEFINE_SAFE_CONVERT_STOU(LongToUShort, LONG, USHORT) DEFINE_SAFE_CONVERT_STOU(LongToUInt, LONG, UINT) @@ -385,7 +374,7 @@ DEFINE_SAFE_CONVERT_STOU(LongToULong, LONG, ULONG) DEFINE_SAFE_CONVERT_STOU(LongToUIntPtr, LONG, UINT_PTR) DEFINE_SAFE_CONVERT_STOU(LongToULongPtr, LONG, ULONG_PTR) DEFINE_SAFE_CONVERT_STOU(LongToULongLong, LONG, ULONGLONG) -DEFINE_SAFE_CONVERT_STOU(IntPtrToUChar, INT_PTR, UCHAR) +DEFINE_SAFE_CONVERT_STOU(IntPtrToUChar, INT_PTR, UINT8) DEFINE_SAFE_CONVERT_STOU(IntPtrToUInt8, INT_PTR, UINT8) DEFINE_SAFE_CONVERT_STOU(IntPtrToUShort, INT_PTR, USHORT) DEFINE_SAFE_CONVERT_STOU(IntPtrToUInt, INT_PTR, UINT) @@ -393,7 +382,7 @@ DEFINE_SAFE_CONVERT_STOU(IntPtrToULong, INT_PTR, ULONG) DEFINE_SAFE_CONVERT_STOU(IntPtrToUIntPtr, INT_PTR, UINT_PTR) DEFINE_SAFE_CONVERT_STOU(IntPtrToULongPtr, INT_PTR, ULONG_PTR) DEFINE_SAFE_CONVERT_STOU(IntPtrToULongLong, INT_PTR, ULONGLONG) -DEFINE_SAFE_CONVERT_STOU(LongPtrToUChar, LONG_PTR, UCHAR) +DEFINE_SAFE_CONVERT_STOU(LongPtrToUChar, LONG_PTR, UINT8) DEFINE_SAFE_CONVERT_STOU(LongPtrToUInt8, LONG_PTR, UINT8) DEFINE_SAFE_CONVERT_STOU(LongPtrToUShort, LONG_PTR, USHORT) DEFINE_SAFE_CONVERT_STOU(LongPtrToUInt, LONG_PTR, UINT) @@ -402,8 +391,8 @@ DEFINE_SAFE_CONVERT_STOU(LongPtrToUIntPtr, LONG_PTR, UINT_PTR) DEFINE_SAFE_CONVERT_STOU(LongPtrToULongPtr, LONG_PTR, ULONG_PTR) DEFINE_SAFE_CONVERT_STOU(LongPtrToULongLong, LONG_PTR, ULONGLONG) #ifdef _CHAR_UNSIGNED -DEFINE_SAFE_CONVERT_STOU(ShortToChar, SHORT, UCHAR) -DEFINE_SAFE_CONVERT_STOU(LongPtrToChar, LONG_PTR, UCHAR) +DEFINE_SAFE_CONVERT_STOU(ShortToChar, SHORT, UINT8) +DEFINE_SAFE_CONVERT_STOU(LongPtrToChar, LONG_PTR, UINT8) #endif @@ -447,10 +436,8 @@ DEFINE_SAFE_CONVERT_STOS(LongPtrToIntPtr, LONG_PTR, INT_PTR) DEFINE_SAFE_CONVERT_STOS(LongLongToLong, LONGLONG, LONG) DEFINE_SAFE_CONVERT_STOS(LongLongToIntPtr, LONGLONG, INT_PTR) DEFINE_SAFE_CONVERT_STOS(LongLongToLongPtr, LONGLONG, LONG_PTR) -#ifndef _CHAR_UNSIGNED -DEFINE_SAFE_CONVERT_STOS(ShortToChar, SHORT, CHAR) -DEFINE_SAFE_CONVERT_STOS(LongPtrToChar, LONG_PTR, CHAR) -#endif +DEFINE_SAFE_CONVERT_STOS(ShortToChar, SHORT, _INTSAFE_CHAR) +DEFINE_SAFE_CONVERT_STOS(LongPtrToChar, LONG_PTR, _INTSAFE_CHAR) #ifdef _NTINTSAFE_H_INCLUDED_ @@ -789,6 +776,10 @@ DEFINE_SAFE_MULT_U16(UShortMult, USHORT, ULongToUShort) #else #endif +#undef _INTSAFE_CHAR_MIN +#undef _INTSAFE_CHAR_MAX +#undef _INTSAFE_CHAR_ERROR + #endif // _NTINTSAFE_H_INCLUDED_ #endif // !_INTSAFE_H_INCLUDED_