home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / PROCINST.ZIP / HELP.ZIP / BENCH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-23  |  9.8 KB  |  355 lines

  1. /* ==( hdr/bench.h )== */
  2. /* ----------------------------------------------- */
  3. /* Pro-C  Copyright (C) 1988 - 1990 Vestronix Inc. */
  4. /* Modification to this source is not supported    */
  5. /* by Vestronix Inc.                               */
  6. /*            All Rights Reserved                  */
  7. /* ----------------------------------------------- */
  8. /* Written   Geo  26-Aug-88                        */
  9. /* Modified  Geo  24-Apr-90  See comments below    */
  10. /* ----------------------------------------------- */
  11. /* %W%  (%H% %T%) */
  12.  
  13. /*
  14.  * Function declarations for the Pro-C Workbench Library
  15.  * 24-Apr-90  Geo  - V2.2 Merge
  16. */
  17.  
  18. #ifndef H_BENCH
  19. # define H_BENCH
  20.  
  21. /*
  22.  * Compiler dependent includes
  23. */
  24. /* Some compilers define ansi way */
  25. #ifdef __MSDOS__
  26. # ifndef MSDOS
  27. #  define MSDOS
  28. # endif
  29. #endif
  30.  
  31. /* Two way prototypes : K+R and ANSI */
  32. # if defined(__STDC__) || defined(MSDOS)
  33. #  define PROTO(function,args) function args
  34. #   ifdef UNIX
  35. #   define DOTS
  36. #   else
  37. #   define DOTS ,...
  38. #   endif
  39. # else
  40. #  define PROTO(function,args) function()
  41. #  define DOTS
  42. # endif
  43.  
  44. # define CDECL
  45. # ifdef MSDOS
  46.  
  47. # ifndef ANSI
  48. #  define ANSI
  49. # endif
  50. # define UNKNOWNCC
  51.  
  52. # define DIRSLASH '\\'
  53. # define DIRSLASHES "\\"
  54.  
  55. # include <stdlib.h>
  56. # include <dos.h>
  57. # ifdef __TURBOC__
  58. #  undef UNKNOWNCC
  59. #  include <dir.h>
  60. #  include <io.h>
  61. #  include <mem.h>
  62. #  include <string.h>
  63. #  include <dir.h>
  64. #  include <fcntl.h>
  65. #  include <process.h>
  66. #  include <sys/stat.h>
  67. # endif
  68. # ifdef LATTICE
  69. #  undef UNKNOWNCC
  70. #  include <stdarg.h>
  71. #  include <string.h>
  72. #  include <fcntl.h>
  73. #  include <types.h>
  74. #  include <stat.h>
  75. # endif
  76. # ifdef __TSC__
  77. #  undef UNKNOWNCC
  78. #  include <string.h>
  79. #  include <fcntl.h>
  80. #  include <sys/stat.h>
  81. # endif
  82. # ifdef __WATCOMC__
  83. #  undef UNKNOWNCC
  84. #  define __MSDOS__    /* Watcom only defines MSDOS */
  85. #  include <io.h>
  86. #  include <direct.h>
  87. #  include <string.h>
  88. #  include <fcntl.h>
  89. #  include <process.h>
  90. #  include <sys/stat.h>
  91. # endif
  92. # ifdef __ZTC__
  93. #  undef UNKNOWNCC
  94. #  include <io.h>
  95. #  include <string.h>
  96. #  include <stdarg.h>
  97. #  include <process.h>
  98. #  include <sys/stat.h>
  99. #  define P_WAIT 0        /* Needs this for spawn() */
  100. # endif
  101. # ifdef UNKNOWNCC
  102. #  undef UNKNOWNCC
  103. #  define MSC  /* Pro-C kinda expects this for Microsoft C */
  104. #  ifdef _MSC_VER /* Currently only C6 defines this (600) */
  105. #   undef CDECL
  106. #   define CDECL cdecl
  107. #  else
  108.     /* for stat.h case on msc 5.1 (Geo) */
  109. #   undef CDECL  
  110. #  endif
  111. #  include <io.h>
  112. #  include <direct.h>
  113. #  include <string.h>
  114. #  include <stdarg.h>
  115. #  include <memory.h>
  116. #  include <fcntl.h>
  117. #  include <process.h>
  118. #  include <sys/types.h>
  119. #  include <sys/stat.h>
  120. # endif
  121. # endif
  122.  
  123. # ifdef UNIX
  124. #  include <unistd.h>         /* For SEEK_SET values */
  125. #  include <string.h>
  126. #  include <fcntl.h>
  127. #  include <varargs.h>
  128. #  include <sys/types.h>
  129. #  include <sys/stat.h>
  130.  
  131. #  define DIRSLASH '/'
  132. #  define DIRSLASHES "/"
  133.  
  134. /* Auxillary prototypes - GEO Mar-89 */
  135. double atof();
  136.  
  137. #  ifdef S_IFLNK
  138. #   define STAT(fd, ptr)    lstat(fd, ptr)
  139. #  else
  140. #   define STAT(fd, ptr)    stat(fd, ptr)
  141. #  endif
  142. # else
  143. #  define STAT(fd, ptr)    stat(fd, ptr)
  144. # endif
  145.  
  146. # ifndef SEEK_SET  /* due mainly to NCR Tower */
  147. #  define SEEK_SET 0
  148. #  define SEEK_CUR 1
  149. #  define SEEK_END 2
  150. # endif
  151.  
  152. # include <window.h> /* Always needed */
  153. # include <ctype.h>  /* Owing to strlwr() & strupr() macros, see below */
  154.  
  155. /*
  156.  * Option select structure
  157.  * - dsp_option(array of optab, &choice)
  158. */
  159. struct optab
  160. {
  161.    int row, col;
  162.    char *text;
  163. };
  164.  
  165. /* Date input formats */
  166. #define    YMD    0
  167. #define MDY    1
  168. #define DMY    2
  169.  
  170. /*
  171.  * Macros
  172. */
  173.  
  174. # define bytecpy(s1, s2, n) memcpy( (char *)(s1), (char *)(s2), (int)(n))
  175. # define bytecmp(s1, s2, n) memcmp( (char *)(s1), (char *)(s2), (int)(n))
  176. # define byteset(s1, c, n)  memset( (char *)(s1), (char)(c), (int)(n))
  177. # define zerorec(s1, n)  memset( (char *)(s1), '\0', (int)(n))
  178.  
  179. #define lswap(class, a, b) { class tmp; tmp = a; a = b; b = tmp; }
  180.  
  181. # ifdef UNIX
  182. /* Basic upper and lower routines : Note these don't return pointers */
  183. # define strupr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(islower(*_p_)) *_p_=toupper(*_p_);}
  184. # define strlwr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(isupper(*_p_)) *_p_=tolower(*_p_);}
  185. # define min(a,b) ((a)>(b)?(b):(a))
  186. # define max(a,b) ((a)>(b)?(a):(b))
  187. # endif
  188.  
  189. /* Memory checking routines */
  190. /* # define MDEBUG */
  191. # ifdef MDEBUG
  192. # define alloc(z) ck_alloc(__FILE__,__LINE__,z)
  193. # define strsave(z)  ck_strsav(__FILE__,__LINE__,z)
  194. # define free(z)  ck_free(__FILE__,__LINE__,(char *)z)
  195. # define Chk(z)   ck_mem(__FILE__,__LINE__,z)
  196. # define Minfo(z) ck_info(__FILE__,__LINE__,z)
  197. PROTO (char *ck_alloc, (char *, int, unsigned));
  198. PROTO (void ck_free, (char *, int, char *));
  199. PROTO (void ck_mem, (char *, int, char *));
  200. PROTO (void ck_info, (char *, int, char *));
  201. PROTO (char *ck_strsav, (char *, int, char *));
  202. # else
  203. PROTO (char *alloc, (unsigned int));
  204. PROTO (char *strsave, (char *));
  205. # define Chk(z)   /* Chk(z) */
  206. # define Minfo(z) /* Minfo(z) */
  207. # endif
  208.  
  209. /* macro to give number of options in an option structure */
  210. #define    NOPTS(name)    ((sizeof(name) / sizeof(struct optab)) - 1)
  211.  
  212. #define TRUE    1
  213. #define FALSE    0
  214. #define ON 1
  215. #define OFF 0
  216.  
  217.  
  218. #define    CHAT_ROW    1
  219. #define    MENU_ROW    2
  220. #define    CHAT_ATTR    REVVID
  221. #define    MENU_ATTR    NORMAL
  222.  
  223. #define loop for(;;)
  224. #define macalloc(a) (a *)alloc(sizeof(a))
  225.  
  226. /* These two are very preliminary */
  227. typedef struct genstructure { 
  228.    char *a;        
  229.    double *b;    
  230.    double c;
  231.    struct genstructure *s;    
  232. } genstr;
  233.     
  234. struct genlst {
  235.    struct genlst *nxt_lst;
  236.    struct genlst *prv_lst;
  237.     genstr *info;
  238.     int     deleted;                /* TRUE if it has been deleted */
  239.     int     tagged;                /* TRUE if it has been tagged */
  240. };
  241.  
  242. /* menu struct for slide rule type menu provided by dsp_menu */
  243. struct smnu_tab 
  244. {
  245.     struct optab option;
  246.     struct smnu_tab * sub;
  247.     PROTO (void (*func), (void));
  248.     int hnum;
  249. };
  250.  
  251. PROTO (char *basename, (char *));
  252. PROTO (char *cvt_lower, (char *));
  253. PROTO (char *cvt_str, (char *, int));
  254. PROTO (char *cvt_upper, (char *));
  255. PROTO (char *envfind, (char *));
  256. PROTO (char *fcopy, (char *, char *, int));
  257. PROTO (char *fmt_date, (char *, char *));
  258. PROTO (char *fmt_dbl, (double, char *));
  259. PROTO (char *fmt_flt, (double, char *));
  260. PROTO (char *fmt_int, (int, char *));
  261. PROTO (char *fmt_lng, (long, char *));
  262. PROTO (char *fmt_mny, (long, char *));
  263. PROTO (char *forceupper, (char *));
  264. PROTO (char *fstrcpy, (char *, char *, int));
  265. PROTO (char *get_date, (char *, int));
  266. PROTO (char *get_dir, (char *, int));
  267. PROTO (char *ltocon, (unsigned long, char *, int));
  268. PROTO (char *repchr, (char, int));
  269. PROTO (char *strleft, (char *, char *, int));
  270. PROTO (char *strmid, (char *, char *, int, int));
  271. PROTO (int antoi, (char *, int));
  272. PROTO (int CDECL do_cmd, (char *, ...));
  273. PROTO (int decmasklen, (char *));
  274. PROTO (int do_options, (struct optab *, int, int));
  275. PROTO (int CDECL errmsg, (char *, ...));
  276. PROTO (int fstrlen, (char *, int));
  277. PROTO (int is_date, (char *));
  278. PROTO (int itona, (char *, int, int));
  279. PROTO (int legal_fname, (char *));
  280. PROTO (int lok_rec, (int, int, int));
  281. PROTO (int openf, (char *, int, int, int *));
  282. PROTO (int open_help, (char *));
  283. PROTO (int prt_init, (void));
  284. PROTO (int CDECL prt_string, (char *, ...));
  285. PROTO (int CDECL query, (int, char *, ...));
  286. PROTO (int readlock, (int *, char *));
  287. PROTO (int rioerr_handle, (int));
  288. PROTO (int selectkey, (char **, int, char *, int, int *));
  289. PROTO (int sioerr_handle, (int));
  290. PROTO (int trylock, (int *, char *));
  291. PROTO (int uioerr_handle, (int));
  292. PROTO (int CDECL warning, (int, char *, ...));
  293. PROTO (unsigned long contol, (char *));
  294. PROTO (unsigned long dstrtol, (char *, char *));
  295. PROTO (unsigned long today, (void));
  296. PROTO (void abs_get_rec, (int, long, int, char *));
  297. PROTO (void abs_put_rec, (int, long, int, char *));
  298. PROTO (void CDECL abort_mess, (char * DOTS));
  299. PROTO (void align_report, (int, int));
  300. PROTO (void bin_to_text, (int [], unsigned char *));
  301. PROTO (void CDECL chain, (char *, ...));
  302. PROTO (void chainv, (char **));
  303. PROTO (void closef, (int));
  304. PROTO (void closefall, (void));
  305. PROTO (void close_help, (void));
  306. PROTO (void decrypt, (char *, char *));
  307. PROTO (void do_bell, (void));
  308. PROTO (void dsp_opt, (struct optab *, int *));
  309. PROTO (void encrypt, (char *, char *));
  310. PROTO (void fill_rec, (char *, int));
  311. PROTO (void f_to_a, (char *, double, int, int));
  312. PROTO (void get_rec, (int, int, char *));
  313. PROTO (void help_msg, (int));
  314. PROTO (void i_to_a, (char *, int, int));
  315. PROTO (void keywait, (int));
  316. PROTO (void locked_file, (char *, int));
  317. PROTO (void l_to_a, (char *, long, int));
  318. PROTO (void no_access, (char *));
  319. PROTO (void prt_field, (char *, int));
  320. PROTO (void prt_ln, (int));
  321. PROTO (void prt_page, (void));
  322. PROTO (void prt_shut, (void));
  323. PROTO (void prt_space, (int));
  324. PROTO (void prt_tab, (int));
  325. PROTO (void put_rec, (int, int, char *));
  326. PROTO (void range_char, (int, int, char *, char *, char *, int *));
  327. PROTO (void range_date, (int, int, long *, long *, char *, int *));
  328. PROTO (void range_dbl, (int, int, double *, double *, char *, int *));
  329. PROTO (void range_flt, (int, int, float *, float *, char *, int *));
  330. PROTO (void range_int, (int, int, int *, int *, char *, int *));
  331. PROTO (void range_lng, (int, int, long *, long *, char *, int *));
  332. PROTO (void range_sdate, (int, int, char *, char *, char *, int *));
  333. PROTO (void search_path, (char *, char *, char *));
  334. PROTO (void spooler, (char *));
  335. PROTO (void CDECL statmsg, (char *, ...));
  336. PROTO (void stripext, (char *));
  337. PROTO (void text_to_bin, (unsigned char *, int *));
  338. PROTO (void todaystr, (char *));
  339.  
  340. # ifdef MSDOS
  341. PROTO (int suf_free_space, (int, char));
  342. PROTO (int dos_drive_valid, (char));
  343. PROTO (char curdrive, (void));
  344. # endif
  345.  
  346. /* UNIX should define these */
  347. # ifdef UNIX
  348. char *calloc();
  349. char *getenv();
  350. void free();
  351. # endif
  352.  
  353. # endif
  354.  
  355.