- /* ACC -- Automatic Compiler Configuration 
-   
-    Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer 
-    All Rights Reserved. 
-   
-    This software is a copyrighted work licensed under the terms of 
-    the GNU General Public License. Please consult the file "ACC_LICENSE" 
-    for details. 
-   
-    Markus F.X.J. Oberhumer 
-    <markus@oberhumer.com> 
-    http://www.oberhumer.com/ 
-  */ 
-   
-   
-   
- /*********************************************************************** 
- // preprocessor 
- ************************************************************************/ 
-   
- /* workaround for preprocessor bugs in some compilers */ 
- #if 0 
- #define ACC_0xffffL             0xfffful 
- #define ACC_0xffffffffL         0xfffffffful 
- #else 
- #define ACC_0xffffL             65535ul 
- #define ACC_0xffffffffL         4294967295ul 
- #endif 
-   
- /* some things we cannot work around */ 
- #if (ACC_0xffffL == ACC_0xffffffffL) 
- #  error "your preprocessor is broken 1" 
- #endif 
- #if (16ul * 16384ul != 262144ul) 
- #  error "your preprocessor is broken 2" 
- #endif 
- #if 0 
- #if (32767 >= 4294967295ul) 
- #  error "your preprocessor is broken 3" 
- #endif 
- #if (65535u >= 4294967295ul) 
- #  error "your preprocessor is broken 4" 
- #endif 
- #endif 
-   
-   
- /*********************************************************************** 
- // try to detect specific compilers 
- ************************************************************************/ 
-   
- #if (UINT_MAX == ACC_0xffffL) 
- #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) 
- #  if !defined(MSDOS) 
- #    define MSDOS 1 
- #  endif 
- #  if !defined(_MSDOS) 
- #    define _MSDOS 1 
- #  endif 
- #elif defined(__VERSION) && defined(MB_LEN_MAX) 
- #  if (__VERSION == 520) && (MB_LEN_MAX == 1) 
- #    if !defined(__AZTEC_C__) 
- #      define __AZTEC_C__ __VERSION 
- #    endif 
- #    if !defined(__DOS__) 
- #      define __DOS__ 1 
- #    endif 
- #  endif 
- #endif 
- #endif 
-   
-   
- /*********************************************************************** 
- // fix incorrect and missing stuff 
- ************************************************************************/ 
-   
- /* Microsoft C does not correctly define ptrdiff_t for 
-  * the 16-bit huge memory model. 
-  */ 
- #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL) 
- #  define ptrdiff_t long 
- #  define _PTRDIFF_T_DEFINED 
- #endif 
-   
-   
- /* Fix old compiler versions. */ 
- #if (UINT_MAX == ACC_0xffffL) 
- #  undef __ACC_RENAME_A 
- #  undef __ACC_RENAME_B 
- #  if defined(__AZTEC_C__) && defined(__DOS__) 
- #    define __ACC_RENAME_A 1 
- #  elif defined(_MSC_VER) && defined(MSDOS) 
- #    if (_MSC_VER < 600) 
- #      define __ACC_RENAME_A 1 
- #    elif (_MSC_VER < 700) 
- #      define __ACC_RENAME_B 1 
- #    endif 
- #  elif defined(__TSC__) && defined(__OS2__) 
- #    define __ACC_RENAME_A 1 
- #  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410) 
- #    define __ACC_RENAME_A 1 
- #  elif defined(__PACIFIC__) && defined(DOS) 
- #    if !defined(__far) 
- #      define __far far 
- #    endif 
- #    if !defined(__near) 
- #      define __near near 
- #    endif 
- #  endif 
- #  if defined(__ACC_RENAME_A) 
- #    if !defined(__cdecl) 
- #      define __cdecl cdecl 
- #    endif 
- #    if !defined(__far) 
- #      define __far far 
- #    endif 
- #    if !defined(__huge) 
- #      define __huge huge 
- #    endif 
- #    if !defined(__near) 
- #      define __near near 
- #    endif 
- #    if !defined(__pascal) 
- #      define __pascal pascal 
- #    endif 
- #    if !defined(__huge) 
- #      define __huge huge 
- #    endif 
- #  elif defined(__ACC_RENAME_B) 
- #    if !defined(__cdecl) 
- #      define __cdecl _cdecl 
- #    endif 
- #    if !defined(__far) 
- #      define __far _far 
- #    endif 
- #    if !defined(__huge) 
- #      define __huge _huge 
- #    endif 
- #    if !defined(__near) 
- #      define __near _near 
- #    endif 
- #    if !defined(__pascal) 
- #      define __pascal _pascal 
- #    endif 
- #  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__) 
- #    if !defined(__cdecl) 
- #      define __cdecl cdecl 
- #    endif 
- #    if !defined(__pascal) 
- #      define __pascal pascal 
- #    endif 
- #  endif 
- #  undef __ACC_RENAME_A 
- #  undef __ACC_RENAME_B 
- #endif 
-   
-   
- #if (UINT_MAX == ACC_0xffffL) 
- #if defined(__AZTEC_C__) && defined(__DOS__) 
- #  define ACC_BROKEN_CDECL_ALT_SYNTAX 1 
- #elif defined(_MSC_VER) && defined(MSDOS) 
- #  if (_MSC_VER < 600) 
- #    define ACC_BROKEN_INTEGRAL_CONSTANTS 1 
- #  endif 
- #  if (_MSC_VER < 700) 
- #    define ACC_BROKEN_INTEGRAL_PROMOTION 1 
- #    define ACC_BROKEN_SIZEOF 1 
- #  endif 
- #elif defined(__PACIFIC__) && defined(DOS) 
- #  define ACC_BROKEN_INTEGRAL_CONSTANTS 1 
- #elif defined(__TURBOC__) && defined(__MSDOS__) 
- #  if (__TURBOC__ < 0x0150) 
- #    define ACC_BROKEN_CDECL_ALT_SYNTAX 1 
- #    define ACC_BROKEN_INTEGRAL_CONSTANTS 1 
- #    define ACC_BROKEN_INTEGRAL_PROMOTION 1 
- #  endif 
- #  if (__TURBOC__ < 0x0200) 
- #    define ACC_BROKEN_SIZEOF 1 
- #  endif 
- #  if (__TURBOC__ < 0x0400) && defined(__cplusplus) 
- #    define ACC_BROKEN_CDECL_ALT_SYNTAX 1 
- #  endif 
- #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__) 
- #  define ACC_BROKEN_CDECL_ALT_SYNTAX 1 
- #  define ACC_BROKEN_SIZEOF 1 
- #endif 
- #endif 
- #if defined(__WATCOMC__) && (__WATCOMC__ < 900) 
- #  define ACC_BROKEN_INTEGRAL_CONSTANTS 1 
- #endif 
-   
-   
- /*********************************************************************** 
- // ANSI C preprocessor macros (cpp) 
- ************************************************************************/ 
-   
- #define ACC_CPP_STRINGIZE(x)            #x 
- #define ACC_CPP_MACRO_EXPAND(x)         ACC_CPP_STRINGIZE(x) 
-   
- /* concatenate */ 
- #define ACC_CPP_CONCAT2(a,b)            a ## b 
- #define ACC_CPP_CONCAT3(a,b,c)          a ## b ## c 
- #define ACC_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d 
- #define ACC_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e 
-   
- /* expand and concatenate (by using one level of indirection) */ 
- #define ACC_CPP_ECONCAT2(a,b)           ACC_CPP_CONCAT2(a,b) 
- #define ACC_CPP_ECONCAT3(a,b,c)         ACC_CPP_CONCAT3(a,b,c) 
- #define ACC_CPP_ECONCAT4(a,b,c,d)       ACC_CPP_CONCAT4(a,b,c,d) 
- #define ACC_CPP_ECONCAT5(a,b,c,d,e)     ACC_CPP_CONCAT5(a,b,c,d,e) 
-   
-   
- /*********************************************************************** 
- // stdc macros 
- ************************************************************************/ 
-   
- #if defined(__cplusplus) 
- #  undef __STDC_CONSTANT_MACROS 
- #  undef __STDC_LIMIT_MACROS 
- #  define __STDC_CONSTANT_MACROS 1 
- #  define __STDC_LIMIT_MACROS 1 
- #endif 
-   
-   
- /*********************************************************************** 
- // misc macros 
- ************************************************************************/ 
-   
- #if defined(__cplusplus) 
- #  define ACC_EXTERN_C extern "C" 
- #else 
- #  define ACC_EXTERN_C extern 
- #endif 
-   
-   
- /* 
- vi:ts=4:et 
- */ 
-