home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c185 / 2.ddi / OWLSRC.EXE / CSCAPE / SOURCE / OAKLAND.H < prev    next >
Encoding:
C/C++ Source or Header  |  1989-09-11  |  6.6 KB  |  278 lines

  1. /*
  2.     oakland.h
  3.  
  4.     % Compiler and OS dependent external declarations used by Oakland C-tools.
  5.       Miscellaneous External Declarations used by Oakland C-tools.
  6.  
  7.     OWL 1.1
  8.     Copyright (c) 1986, 1987, 1988, by Oakland Group, Inc.
  9.     ALL RIGHTS RESERVED.
  10.  
  11.     Revision History:
  12.     -----------------
  13.      9/12/88 jmd    added prototyping macro
  14.     10/17/88 jmd    changed _$arg to _arg
  15.     12/07/88 ted    re-merged compiler-dependent public definitions.
  16.     12/13/88 jmd    added byte define for Lattice
  17.     10/16/89 jmd    added SIZE_T to OAK_APOLLO conditionals
  18.     10/16/89 jmd    added SEEK_ stuff in OAK_APOLLO conditionals
  19.  
  20.      6/25/89 jmd    added OEXTERN, OGLOBAL stuff for VMS
  21.      7/06/89 gam    added MetaWare High C stuff
  22.      7/07/89 gam    added #define for FNULL
  23.      7/12/89 ted    Added OSTATIC stuff for MetaWare.
  24.      7/14/89 ted    Added memmove/omemmove stuff for MetaWare.
  25.      7/15/89 ted    Added TIME_T, VOID_FPTR; moved int_min,int_max to ostdlib.h.
  26.      7/18/89 jmd    added more stuff for VMS
  27.      8/17/89 jmd    ansified apollo
  28.      9/11/89 jmd    added BORDER_CHARS macro
  29.  
  30.     This file depends on a symbol for the Compiler or Operating System
  31.     being #define'd.
  32.  
  33.     Use one of the following:
  34.  
  35.     M5
  36.     TC
  37.     LC
  38.     MW
  39.     OAK_UNIX
  40.     OAK_APOLLO
  41.     OAK_SUN
  42.     OAK_VMS
  43.     OAK_STRATUS
  44.     OAK_DG
  45.  
  46.     In addition, the symbols OAK_OS2 and OAK_FAMILYAPI may be #define'd here.
  47. */
  48. /* -------------------------------------------------------------------------- */
  49. /* Define OAK_OS2 if you want to compile for OS/2. */
  50. /* #define OAK_OS2 */
  51.  
  52. /* Define OAK_FAMILYAPI for OS/2 family mode mouse support. */
  53. /* #define OAK_FAMILYAPI */
  54.  
  55. /* Automatically take care of #definine'ing TC */
  56. #ifdef __TURBOC__
  57. #    define TC
  58. #endif
  59.  
  60. /* Automatically do MetaWare High C */
  61. #ifdef __HIGHC__
  62. #    define MW
  63. #endif
  64.  
  65. /* Automatically take care of #definine'ing LC */
  66. #ifdef LATTICE
  67. #    define LC
  68. #endif
  69.  
  70. #ifdef M5    /*          Microsoft C version 5.x Dependent Code     */
  71. #    define oak_notused(var)    var
  72. #    ifndef OAK_OS2
  73. #        define OAK_DOS        TRUE
  74. #    endif
  75.     typedef unsigned char    byte;
  76.     typedef    int             boolean;
  77.  
  78. #endif
  79.  
  80. #ifdef TC    /*          Turbo C Dependent Code         */
  81. #    define oak_notused(var)    (var = var)
  82. #    define OAK_DOS            TRUE
  83.     typedef unsigned char    byte;
  84.     typedef    int             boolean;
  85. #endif
  86.  
  87. #ifdef Z1    /*          Zortech C Dependent Code         */
  88. #    define oak_notused(var)    (var = var)
  89. #    define OAK_DOS            TRUE
  90.     typedef unsigned char    byte;
  91.     typedef    int             boolean;
  92. #endif
  93.  
  94. #ifdef MW    /*    Meta Ware High C Dependent Code    */
  95. #    define OAK_DOS            TRUE
  96. #    define OAK_DOS386        TRUE
  97. #    define oak_notused(var)    (var = var)
  98. #    define NO_PROTO
  99. #    define OSTATIC
  100.     typedef unsigned char    byte;
  101.     typedef    int             boolean;
  102.     /* Note: make sure void's, size_t's, proto style are right for this compiler */
  103. #endif
  104.  
  105. #ifdef LC    /*          Lattice C Dependent Code    */
  106. #    ifndef OAK_OS2
  107. #        define OAK_DOS        TRUE
  108. #    endif
  109. #    define oak_notused(var)    (var = 0)
  110. #    define SEEK_SET         0
  111. #    define SEEK_CUR         1
  112. #    define SEEK_END         2
  113. #    define SIZE_T            unsigned
  114. #    define TIME_T            long
  115.     typedef unsigned char    byte;
  116.     typedef    int             boolean;
  117. #endif
  118.  
  119. #ifdef OAK_UNIX        /*          UNIX Dependent Code */
  120. #    define oak_notused(var)
  121. #    define NO_PROTO
  122. #    define SEEK_SET         0
  123. #    define SEEK_CUR         1
  124. #    define SEEK_END         2
  125. #    define SIZE_T            unsigned
  126. #    define TIME_T            long
  127.     typedef unsigned char    byte;
  128.     typedef    int             boolean;
  129. #endif
  130.  
  131. #ifdef OAK_APOLLO
  132. #    define oak_notused(var)
  133. #    define SEEK_SET         0
  134. #    define SEEK_CUR         1
  135. #    define SEEK_END         2
  136. #    define SIZE_T            unsigned
  137. #    define TIME_T            long
  138.     typedef unsigned char    byte;
  139. #    include </sys/ins/base.ins.c>    /* for boolean type definition */
  140. #endif
  141.  
  142. #ifdef OAK_SUN        /*          SUN Dependent Code */
  143. #endif
  144.  
  145. #ifdef OAK_VMS        /*          VMS Dependent Code */
  146. #    define oak_notused(var)
  147. #    define NO_PROTO
  148. #    define SEEK_SET         0
  149. #    define SEEK_CUR         1
  150. #    define SEEK_END         2
  151. #    define SIZE_T            unsigned
  152. #    define TIME_T            long
  153.     typedef unsigned char    byte;
  154.     typedef    int             boolean;
  155.  
  156. #    define OEXTERN globalref  
  157. #    define OGLOBAL globaldef
  158. #endif
  159.  
  160. #ifdef OAK_STRATUS        /*          STRATUS Dependent Code */
  161. #    define oak_notused(var)
  162. #    define NO_PROTO
  163.     typedef unsigned char    byte;
  164.     typedef    int             boolean;
  165. #endif
  166.  
  167. #ifdef OAK_DG    /*          Data General C Dependent Code    */
  168. #    define oak_notused(var)
  169. #    define SEEK_SET         0
  170. #    define NO_PROTO
  171.     typedef unsigned char    byte;
  172.     typedef    int             boolean;
  173. #endif
  174. /* -------------------------------------------------------------------------- */
  175.  
  176. /* proto-typing macros */
  177. /* These macros are used in all oakland prototypes.
  178.    If prototyping is not available on a system then
  179.    they macro out to nothing
  180. */
  181.  
  182. #ifndef NO_PROTO
  183. /* prototyping available */
  184.  
  185. #define _arg1(a)                       a
  186. #define _arg2(a,b)                       a,b
  187. #define _arg3(a,b,c)                   a,b,c
  188. #define _arg4(a,b,c,d)                   a,b,c,d
  189. #define _arg5(a,b,c,d,e)               a,b,c,d,e
  190. #define _arg6(a,b,c,d,e,f)               a,b,c,d,e,f
  191. #define _arg7(a,b,c,d,e,f,g)           a,b,c,d,e,f,g
  192. #define _arg8(a,b,c,d,e,f,g,h)       a,b,c,d,e,f,g,h
  193. #define _arg9(a,b,c,d,e,f,g,h,i)     a,b,c,d,e,f,g,h,i
  194. #define _arg10(a,b,c,d,e,f,g,h,i,j) a,b,c,d,e,f,g,h,i,j
  195.  
  196. #else
  197. /* prototyping not available */
  198.  
  199. #define _arg1(a)
  200. #define _arg2(a,b)
  201. #define _arg3(a,b,c)
  202. #define _arg4(a,b,c,d)
  203. #define _arg5(a,b,c,d,e)
  204. #define _arg6(a,b,c,d,e,f)
  205. #define _arg7(a,b,c,d,e,f,g)
  206. #define _arg8(a,b,c,d,e,f,g,h)
  207. #define _arg9(a,b,c,d,e,f,g,h,i)
  208. #define _arg10(a,b,c,d,e,f,g,h,i,j)
  209.  
  210. #endif
  211. /* -------------------------------------------------------------------------- */
  212.  
  213. /* data types and constants */
  214. #ifndef TRUE
  215. #define     TRUE     1
  216. #define     FALSE     0
  217. #endif
  218.  
  219. #ifndef FNULL
  220. #define FNULL     0            /* NULL for function pointers */
  221. #endif
  222.  
  223. #ifndef VOID
  224. #define VOID     void        /* define VOID to char on older systems */
  225. #endif
  226.  
  227. #ifndef SIZE_T
  228. #define SIZE_T    size_t        /* define SIZE_T to unsigned on older systems */
  229. #endif
  230.  
  231. #ifndef TIME_T
  232. #define TIME_T    time_t        /* define TIME_T to long on older systems */
  233. #endif
  234.  
  235. /* defines for compilers that don't handle static structures correctly */
  236. #ifndef OEXTERN
  237. #    define OEXTERN extern  
  238. #endif
  239.  
  240. #ifndef OGLOBAL
  241. #    define OGLOBAL 
  242. #endif
  243.  
  244. #ifndef OSTATIC
  245. #    define OSTATIC static
  246. #endif
  247.  
  248. typedef void (*VOID_FPTR)(_arg1(void));
  249.  
  250. /** Reentrancy protection functions **/
  251. #ifdef OAK_OS2
  252. #    define hard_Claim()                hard_ProtectDmgr()
  253. #    define hard_Release()            hard_UnProtectDmgr()
  254. #else
  255. #    define hard_Claim()
  256. #    define hard_Release()
  257. #endif
  258.  
  259. /*** useful constants ***/
  260.  
  261. #define    OAK_HERE          0
  262. #define    OAK_UP             -1
  263. #define    OAK_DOWN        -2
  264. #define    OAK_RIGHT        -3
  265. #define    OAK_LEFT        -4
  266.  
  267. /*** use fancy characters in borders? ***/
  268. #ifdef OAK_DOS
  269. #    define BORDER_CHARS
  270. #endif
  271.  
  272. #ifdef OAK_OS2
  273. #    define BORDER_CHARS
  274. #endif
  275.  
  276. /* -------------------------------------------------------------------------- */
  277.  
  278.