home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 125.img / PRO-C4.ZIP / BENCH1.ZIP / HDR / BENCH.H < prev    next >
C/C++ Source or Header  |  1990-05-29  |  10KB  |  440 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. # ifdef MSDOS
  32.  
  33. # define ANSI
  34. # define CDECL
  35. # define UNKNOWNCC
  36.  
  37. # define DIRSLASH '\\'
  38. # define DIRSLASHES "\\"
  39.  
  40. #  include <stdlib.h>
  41. #  include <dos.h>
  42. # ifdef __TURBOC__
  43. #  undef UNKNOWNCC
  44. #  include <dir.h>
  45. #  include <io.h>
  46. #  include <mem.h>
  47. #  include <string.h>
  48. #  include <dir.h>
  49. #  include <fcntl.h>
  50. #  include <process.h>
  51. #  include <sys/stat.h>
  52. # endif
  53. # ifdef LATTICE
  54. #  undef UNKNOWNCC
  55. #  include <stdarg.h>
  56. #  include <string.h>
  57. #  include <fcntl.h>
  58. #  include <types.h>
  59. #  include <stat.h>
  60. # endif
  61. # ifdef __TSC__
  62. #  undef UNKNOWNCC
  63. #  include <string.h>
  64. #  include <fcntl.h>
  65. #  include <sys/stat.h>
  66. # endif
  67. # ifdef __WATCOMC__
  68. #  undef UNKNOWNCC
  69. #  include <io.h>
  70. #  include <direct.h>
  71. #  include <string.h>
  72. #  include <fcntl.h>
  73. #  include <process.h>
  74. #  include <sys/stat.h>
  75. # endif
  76. # ifdef __ZTC__
  77. #  undef UNKNOWNCC
  78. #  include <io.h>
  79. #  include <string.h>
  80. #  include <stdarg.h>
  81. #  include <process.h>
  82. #  include <sys/stat.h>
  83. #  define P_WAIT 0        /* Needs this for spawn() */
  84. # endif
  85. # ifdef UNKNOWNCC
  86. #  undef UNKNOWNCC
  87. #  define MSC  /* Pro-C kinda expects this for Microsoft C */
  88. #  ifdef _MSC_VER /* Currently only C6 defines this (600) */
  89. #   undef CDECL
  90. #   define CDECL cdecl
  91. #  else
  92.     /* Schmolie for stat.h case on msc 5.1 (Geo) */
  93. #   undef CDECL  
  94. #  endif
  95. #  include <io.h>
  96. #  include <direct.h>
  97. #  include <string.h>
  98. #  include <stdarg.h>
  99. #  include <memory.h>
  100. #  include <fcntl.h>
  101. #  include <process.h>
  102. #  include <sys/types.h>
  103. #  include <sys/stat.h>
  104. # endif
  105. # endif
  106.  
  107. # ifdef UNIX
  108. #  include <unistd.h>         /* For SEEK_SET values */
  109. #  include <string.h>
  110. #  include <fcntl.h>
  111. #  include <varargs.h>
  112. #  include <string.h>
  113. #  include <sys/types.h>
  114. #  include <sys/stat.h>
  115.  
  116. #  define DIRSLASH '/'
  117. #  define DIRSLASHES "/"
  118.  
  119. /* Auxillary prototypes - GEO Mar-89 */
  120. double atof();
  121.  
  122. #  ifdef S_IFLNK
  123. #   define STAT(fd, ptr)    lstat(fd, ptr)
  124. #  else
  125. #   define STAT(fd, ptr)    stat(fd, ptr)
  126. #  endif
  127. # else
  128. #  define STAT(fd, ptr)    stat(fd, ptr)
  129. # endif
  130.  
  131. # ifdef NCR  /* NCR Tower */
  132. #  define SEEK_SET 0
  133. #  define SEEK_CUR 1
  134. #  define SEEK_END 2
  135. # endif
  136.  
  137. # include <window.h> /* Always needed */
  138. # include <ctype.h>  /* Owing to strlwr() & strupr() macros, see below */
  139.  
  140. /*
  141.  * Option select structure
  142.  * - dsp_option(array of optab, &choice)
  143. */
  144. struct optab
  145. {
  146.    int row, col;
  147.    char *text;
  148. };
  149.  
  150. /* Date input formats */
  151. #define    YMD    0
  152. #define MDY    1
  153. #define DMY    2
  154.  
  155. /*
  156.  * Macros
  157. */
  158.  
  159. # define bytecpy(s1, s2, n) memcpy( (char *)(s1), (char *)(s2), (int)(n))
  160. # define bytecmp(s1, s2, n) memcmp( (char *)(s1), (char *)(s2), (int)(n))
  161. # define byteset(s1, c, n)  memset( (char *)(s1), (char)(c), (int)(n))
  162. # define zerorec(s1, n)  memset( (char *)(s1), '\0', (int)(n))
  163.  
  164. #define lswap(class, a, b) { class tmp; tmp = a; a = b; b = tmp; }
  165.  
  166. # ifdef UNIX
  167. /* Basic upper and lower routines : Note these don't return pointers */
  168. # define strupr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(islower(*_p_)) *_p_=toupper(*_p_);}
  169. # define strlwr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(isupper(*_p_)) *_p_=tolower(*_p_);}
  170. # define min(a,b) ((a)>(b)?(b):(a))
  171. # define max(a,b) ((a)>(b)?(a):(b))
  172. # endif
  173.  
  174. /* Memory checking routines */
  175. /* # define MDEBUG */
  176. # ifdef MDEBUG
  177. # define alloc(z) ck_alloc(__FILE__,__LINE__,z)
  178. # define strsave(z)  ck_strsav(__FILE__,__LINE__,z)
  179. # define free(z)  ck_free(__FILE__,__LINE__,(char *)z)
  180. # define Chk(z)   ck_mem(__FILE__,__LINE__,z)
  181. # define Minfo(z) ck_info(__FILE__,__LINE__,z)
  182. #  ifdef ANSI
  183. char *ck_alloc(char *, int, unsigned);
  184. void ck_free(char *, int, char *);
  185. void ck_mem(char *, int, char *);
  186. void ck_info(char *, int, char *);
  187. char *ck_strsav(char *, int, char *);
  188. #  else
  189. char *ck_alloc();
  190. void ck_free();
  191. void ck_mem();
  192. void ck_info();
  193. char *ck_strsav();
  194. #  endif
  195. # else
  196. #  ifdef ANSI
  197. char *alloc(unsigned int);
  198. char *strsave(char *);
  199. #  else
  200. char *alloc();
  201. char *strsave();
  202. #  endif
  203. # define Chk(z)   /* Chk(z) */
  204. # define Minfo(z) /* Minfo(z) */
  205. # endif
  206.  
  207. /* macro to give number of options in an option structure */
  208. #define    NOPTS(name)    ((sizeof(name) / sizeof(struct optab)) - 1)
  209.  
  210. #define TRUE    1
  211. #define FALSE    0
  212. #define ON 1
  213. #define OFF 0
  214.  
  215.  
  216. #define    CHAT_ROW    1
  217. #define    MENU_ROW    2
  218. #define    CHAT_ATTR    REVVID
  219. #define    MENU_ATTR    NORMAL
  220.  
  221. #define loop for(;;)
  222. #define macalloc(a) (a *)alloc(sizeof(a))
  223.  
  224. /* These two are very preliminary */
  225. typedef struct genstructure { 
  226.    char *a;        
  227.    double *b;    
  228.    double c;
  229.    struct genstructure *s;    
  230. } genstr;
  231.     
  232. struct genlst {
  233.    struct genlst *nxt_lst;
  234.    struct genlst *prv_lst;
  235.     genstr *info;
  236.     int     deleted;                /* TRUE if it has been deleted */
  237.     int     tagged;                /* TRUE if it has been tagged */
  238. };
  239.  
  240. /* menu struct for slide rule type menu provided by dsp_menu */
  241. struct smnu_tab 
  242. {
  243.     struct optab option;
  244.     struct smnu_tab * sub;
  245. # ifdef UNIX
  246.     void (* func) ();
  247. # else
  248.     void (* func) (void);
  249. # endif
  250.     int hnum;
  251. };
  252.  
  253. # ifdef ANSI
  254. char *basename(char *);
  255. char *cvt_lower(char *);
  256. char *cvt_str(char *, int);
  257. char *cvt_upper(char *);
  258. char *envfind(char *);
  259. char *fcopy(char *, char *, int);
  260. char *fmt_date(char *, char *);
  261. char *fmt_dbl(double, char *);
  262. char *fmt_flt(double, char *);
  263. char *fmt_int(int, char *);
  264. char *fmt_lng(long, char *);
  265. char *fmt_mny(long, char *);
  266. char *forceupper(char *);
  267. char *fstrcpy(char *, char *, int);
  268. char *get_date(char *, int);
  269. char *get_dir(char *, int);
  270. char *ltocon(unsigned long, char *, int);
  271. char *repchr(char, int);
  272. char *strleft(char *, char *, int);
  273. char *strmid(char *, char *, int, int);
  274. int antoi(char *, int);
  275. int CDECL do_cmd(char *, ...);
  276. int do_options(struct optab *, int, int);
  277. int CDECL errmsg(char *, ...);
  278. int fstrlen(char *, int);
  279. int is_date(char *);
  280. int itona(char *, int, int);
  281. int legal_fname(char *);
  282. int lok_rec(int, int, int);
  283. int openf(char *, int, int, int *);
  284. int open_help(char *);
  285. int prt_init(void);
  286. int CDECL prt_string(char *, ...);
  287. int CDECL query(int, char *, ...);
  288. int readlock(int *, char *);
  289. int rioerr_handle(int);
  290. int selectkey(char **, int, char *, int, int *);
  291. int sioerr_handle(int);
  292. int trylock(int *, char *);
  293. int uioerr_handle(int);
  294. int CDECL warning(int, char *, ...);
  295. unsigned long contol(char *);
  296. unsigned long dstrtol(char *, char *);
  297. unsigned long today(void);
  298. void abs_get_rec(int, long, int, char *);
  299. void abs_put_rec(int, long, int, char *);
  300. void CDECL abort_mess(char *, ...);
  301. void align_report(int, int);
  302. void bin_to_text(int [], unsigned char *);
  303. void CDECL chain(char *, ...);
  304. void chainv(char **);
  305. void closef(int);
  306. void closefall(void);
  307. void close_help(void);
  308. void decrypt(char *, char *);
  309. void do_bell(void);
  310. void dsp_opt(struct optab *, int *);
  311. void encrypt(char *, char *);
  312. void fill_rec(char *, int);
  313. void f_to_a(char *, double, int);
  314. void get_rec(int, int, char *);
  315. void help_msg(int);
  316. void i_to_a(char *, int, int);
  317. void keywait(int);
  318. void locked_file(char *, int);
  319. void l_to_a(char *, long, int);
  320. void movetext(char *, char *, int);
  321. void no_access(char *);
  322. void prt_field(char *, int);
  323. void prt_ln(int);
  324. void prt_page(void);
  325. void prt_shut(void);
  326. void prt_space(int);
  327. void prt_tab(int);
  328. void put_rec(int, int, char *);
  329. void range_char(int, int, char *, char *, char *, int *);
  330. void range_date(int, int, long *, long *, char *, int *);
  331. void range_dbl(int, int, double *, double *, char *, int *);
  332. void range_flt(int, int, float *, float *, char *, int *);
  333. void range_int(int, int, int *, int *, char *, int *);
  334. void range_lng(int, int, long *, long *, char *, int *);
  335. void range_sdate(int, int, char *, char *, char *, int *);
  336. void search_path(char *, char *, char *);
  337. void spooler(char *);
  338. void CDECL statmsg(char *, ...);
  339. void stripext(char *);
  340. void text_to_bin(unsigned char *, int *);
  341. void todaystr(char *);
  342. # else
  343. char *basename();
  344. char *cvt_lower();
  345. char *cvt_str();
  346. char *cvt_upper();
  347. char *envfind();
  348. char *fcopy();
  349. char *fmt_date();
  350. char *fmt_dbl();
  351. char *fmt_flt();
  352. char *fmt_int();
  353. char *fmt_lng();
  354. char *fmt_mny();
  355. char *forceupper();
  356. char *fstrcpy();
  357. char *get_date();
  358. char *get_dir();
  359. char *ltocon();
  360. char *repchr();
  361. char *strleft();
  362. char *strmid();
  363. int antoi();
  364. int do_cmd();
  365. int do_options();
  366. int errmsg();
  367. int fstrlen();
  368. int is_date();
  369. int itona();
  370. int legal_fname();
  371. int lok_rec();
  372. int openf();
  373. int open_help();
  374. int prt_init();
  375. int prt_string();
  376. int query();
  377. int readlock();
  378. int rioerr_handle();
  379. int selectkey();
  380. int sioerr_handle();
  381. int trylock();
  382. int uioerr_handle();
  383. int warning();
  384. unsigned long contol();
  385. unsigned long dstrtol();
  386. unsigned long today();
  387. void abs_get_rec();
  388. void abs_put_rec();
  389. void abort_mess();
  390. void align_report();
  391. void bin_to_text();
  392. void chain();
  393. void chainv();
  394. void closef();
  395. void closefall();
  396. void close_help();
  397. void decrypt();
  398. void do_bell();
  399. void dsp_opt();
  400. void encrypt();
  401. void fill_rec();
  402. void f_to_a();
  403. void get_rec();
  404. void help_msg();
  405. void i_to_a();
  406. void keywait();
  407. void locked_file();
  408. void l_to_a();
  409. void movetext();
  410. void no_access();
  411. void prt_field();
  412. void prt_ln();
  413. void prt_page();
  414. void prt_shut();
  415. void prt_space();
  416. void prt_tab();
  417. void put_rec();
  418. void range_char();
  419. void range_date();
  420. void range_dbl();
  421. void range_flt();
  422. void range_int();
  423. void range_lng();
  424. void range_sdate();
  425. void search_path();
  426. void spooler();
  427. void statmsg();
  428. void stripext();
  429. void text_to_bin();
  430. void todaystr();
  431.  
  432. /* UNIX should define these */
  433. char *calloc();
  434. char *getenv();
  435. void free();
  436. # endif
  437.  
  438. # endif
  439.  
  440.