home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / EXTKWORD.H < prev    next >
C/C++ Source or Header  |  1997-07-05  |  3KB  |  103 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*====================================================================
  4.  
  5.     _MSC_VER        Microsoft C 6.0 and later
  6.     _QC             Microsoft Quick C 2.51 and later
  7.     __TURBOC__      Borland Turbo C, Turbo C++ and BC++
  8.     __BORLANDC__    Borland C++
  9.     __ZTC__         Zortech C and C++
  10.     __SC__          Symantec C++
  11.     __WATCOMC__     WATCOM C
  12.     __POWERC        Mix Power C
  13.     __GNUC__        Gnu C
  14.  
  15.     Revised:
  16.  
  17.     25-Sep-95  Bob Stout      Original from PC-PORT.H
  18.     30-Mar-96  Ed Blackman  OS/2 mods for OS/2 ver 2.0 and up
  19.     30-May-96  Andrew Clarke  Added support for WATCOM C/C++ __NT__ macro.
  20.     17-Jun-96  Bob Stout      Added __FLAT__ macros support
  21.     20-Aug-96  Bob Stout      Eliminate Win32 conflicts
  22. ======================================================================*/
  23.  
  24.  
  25. /* prevent multiple inclusions of this header file */
  26.  
  27. #ifndef EXTKWORD__H
  28. #define EXTKWORD__H
  29.  
  30. #include <limits.h>                       /* For INT_MAX, LONG_MAX      */
  31.  
  32. /*
  33. **  Watcom defines __FLAT__ for 32-bit environments and so will we
  34. */
  35.  
  36. #if !defined(__FLAT__) && !defined(__WATCOMC__) && !defined(_MSC_VER)
  37.  #if defined(__GNUC__)
  38.   #define __FLAT__ 1
  39.  #elif defined (_WIN32) || defined(WIN32) || defined(__NT__)
  40.   #define __FLAT__ 1
  41.  #elif defined(__INTSIZE)
  42.   #if (4 == __INTSIZE)
  43.    #define __FLAT__ 1
  44.   #endif
  45.  #elif (defined(__ZTC__) && !defined(__SC__)) || defined(__TURBOC__)
  46.   #if ((INT_MAX != SHRT_MAX) && (SHRT_MAX == 32767))
  47.    #define __FLAT__ 1
  48.   #endif
  49.  #endif
  50. #endif
  51.  
  52. /*
  53. **  Correct extended keywords syntax
  54. */
  55.  
  56. #if defined(__OS2__)        /* EBB: not sure this works for OS/2 1.x */
  57.  #include <os2def.h>
  58.  #define INTERRUPT
  59.  #define HUGE
  60. #elif defined(_WIN32) || defined(WIN32) || defined(__NT__)
  61.  #define WIN32_LEAN_AND_MEAN
  62.  #define NOGDI
  63.  #define NOSERVICE
  64.  #undef INC_OLE1
  65.  #undef INC_OLE2
  66.  #include <windows.h>
  67.  #define INTERRUPT
  68.  #define HUGE
  69. #else /* ! Win 32 or OS/2 */
  70.  #if (defined(__POWERC) || (defined(__TURBOC__) && !defined(__BORLANDC__)) \
  71.        || (defined(__ZTC__) && !defined(__SC__))) && !defined(__FLAT__)
  72.   #define FAR far
  73.   #define NEAR near
  74.   #define PASCAL pascal
  75.   #define CDECL cdecl
  76.   #if (defined(__ZTC__) && !defined(__SC__)) || (defined(__SC__) && \
  77.         (__SC__ < 0x700))
  78.    #define HUGE far
  79.    #define INTERRUPT
  80.   #else
  81.    #define HUGE huge
  82.    #define INTERRUPT interrupt
  83.   #endif
  84.  #else
  85.   #if (defined(__MSDOS__) || defined(MSDOS)) && !defined(__FLAT__)
  86.    #define FAR _far
  87.    #define NEAR _near
  88.    #define HUGE _huge
  89.    #define PASCAL _pascal
  90.    #define CDECL _cdecl
  91.    #define INTERRUPT _interrupt
  92.   #else
  93.    #define FAR
  94.    #define NEAR
  95.    #define HUGE
  96.    #define PASCAL
  97.    #define CDECL
  98.   #endif
  99.  #endif
  100. #endif
  101.  
  102. #endif /* EXTKWORD__H */
  103.