home *** CD-ROM | disk | FTP | other *** search
- /* ==( hdr/bench.h )== */
- /* ----------------------------------------------- */
- /* Pro-C Copyright (C) 1988 - 1990 Vestronix Inc. */
- /* Modification to this source is not supported */
- /* by Vestronix Inc. */
- /* All Rights Reserved */
- /* ----------------------------------------------- */
- /* Written Geo 26-Aug-88 */
- /* Modified Geo 24-Apr-90 See comments below */
- /* ----------------------------------------------- */
- /* %W% (%H% %T%) */
-
- /*
- * Function declarations for the Pro-C Workbench Library
- * 24-Apr-90 Geo - V2.2 Merge
- */
-
- #ifndef H_BENCH
- # define H_BENCH
-
- /*
- * Compiler dependent includes
- */
- /* Some compilers define ansi way */
- #ifdef __MSDOS__
- # ifndef MSDOS
- # define MSDOS
- # endif
- #endif
-
- /* Two way prototypes : K+R and ANSI */
- # if defined(__STDC__) || defined(MSDOS)
- # define PROTO(function,args) function args
- # ifdef UNIX
- # define DOTS
- # else
- # define DOTS ,...
- # endif
- # else
- # define PROTO(function,args) function()
- # define DOTS
- # endif
-
- # define CDECL
- # ifdef MSDOS
-
- # ifndef ANSI
- # define ANSI
- # endif
- # define UNKNOWNCC
-
- # define DIRSLASH '\\'
- # define DIRSLASHES "\\"
-
- # include <stdlib.h>
- # include <dos.h>
- # ifdef __TURBOC__
- # undef UNKNOWNCC
- # include <dir.h>
- # include <io.h>
- # include <mem.h>
- # include <string.h>
- # include <dir.h>
- # include <fcntl.h>
- # include <process.h>
- # include <sys/stat.h>
- # endif
- # ifdef LATTICE
- # undef UNKNOWNCC
- # include <stdarg.h>
- # include <string.h>
- # include <fcntl.h>
- # include <types.h>
- # include <stat.h>
- # endif
- # ifdef __TSC__
- # undef UNKNOWNCC
- # include <string.h>
- # include <fcntl.h>
- # include <sys/stat.h>
- # endif
- # ifdef __WATCOMC__
- # undef UNKNOWNCC
- # define __MSDOS__ /* Watcom only defines MSDOS */
- # include <io.h>
- # include <direct.h>
- # include <string.h>
- # include <fcntl.h>
- # include <process.h>
- # include <sys/stat.h>
- # endif
- # ifdef __ZTC__
- # undef UNKNOWNCC
- # include <io.h>
- # include <string.h>
- # include <stdarg.h>
- # include <process.h>
- # include <sys/stat.h>
- # define P_WAIT 0 /* Needs this for spawn() */
- # endif
- # ifdef UNKNOWNCC
- # undef UNKNOWNCC
- # define MSC /* Pro-C kinda expects this for Microsoft C */
- # ifdef _MSC_VER /* Currently only C6 defines this (600) */
- # undef CDECL
- # define CDECL cdecl
- # else
- /* for stat.h case on msc 5.1 (Geo) */
- # undef CDECL
- # endif
- # include <io.h>
- # include <direct.h>
- # include <string.h>
- # include <stdarg.h>
- # include <memory.h>
- # include <fcntl.h>
- # include <process.h>
- # include <sys/types.h>
- # include <sys/stat.h>
- # endif
- # endif
-
- # ifdef UNIX
- # include <unistd.h> /* For SEEK_SET values */
- # include <string.h>
- # include <fcntl.h>
- # include <varargs.h>
- # include <sys/types.h>
- # include <sys/stat.h>
-
- # define DIRSLASH '/'
- # define DIRSLASHES "/"
-
- /* Auxillary prototypes - GEO Mar-89 */
- double atof();
-
- # ifdef S_IFLNK
- # define STAT(fd, ptr) lstat(fd, ptr)
- # else
- # define STAT(fd, ptr) stat(fd, ptr)
- # endif
- # else
- # define STAT(fd, ptr) stat(fd, ptr)
- # endif
-
- # ifndef SEEK_SET /* due mainly to NCR Tower */
- # define SEEK_SET 0
- # define SEEK_CUR 1
- # define SEEK_END 2
- # endif
-
- # include <window.h> /* Always needed */
- # include <ctype.h> /* Owing to strlwr() & strupr() macros, see below */
-
- /*
- * Option select structure
- * - dsp_option(array of optab, &choice)
- */
- struct optab
- {
- int row, col;
- char *text;
- };
-
- /* Date input formats */
- #define YMD 0
- #define MDY 1
- #define DMY 2
-
- /*
- * Macros
- */
-
- # define bytecpy(s1, s2, n) memcpy( (char *)(s1), (char *)(s2), (int)(n))
- # define bytecmp(s1, s2, n) memcmp( (char *)(s1), (char *)(s2), (int)(n))
- # define byteset(s1, c, n) memset( (char *)(s1), (char)(c), (int)(n))
- # define zerorec(s1, n) memset( (char *)(s1), '\0', (int)(n))
-
- #define lswap(class, a, b) { class tmp; tmp = a; a = b; b = tmp; }
-
- # ifdef UNIX
- /* Basic upper and lower routines : Note these don't return pointers */
- # define strupr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(islower(*_p_)) *_p_=toupper(*_p_);}
- # define strlwr(s) {char *_p_; for(_p_=s;*_p_;_p_++) if(isupper(*_p_)) *_p_=tolower(*_p_);}
- # define min(a,b) ((a)>(b)?(b):(a))
- # define max(a,b) ((a)>(b)?(a):(b))
- # endif
-
- /* Memory checking routines */
- /* # define MDEBUG */
- # ifdef MDEBUG
- # define alloc(z) ck_alloc(__FILE__,__LINE__,z)
- # define strsave(z) ck_strsav(__FILE__,__LINE__,z)
- # define free(z) ck_free(__FILE__,__LINE__,(char *)z)
- # define Chk(z) ck_mem(__FILE__,__LINE__,z)
- # define Minfo(z) ck_info(__FILE__,__LINE__,z)
- PROTO (char *ck_alloc, (char *, int, unsigned));
- PROTO (void ck_free, (char *, int, char *));
- PROTO (void ck_mem, (char *, int, char *));
- PROTO (void ck_info, (char *, int, char *));
- PROTO (char *ck_strsav, (char *, int, char *));
- # else
- PROTO (char *alloc, (unsigned int));
- PROTO (char *strsave, (char *));
- # define Chk(z) /* Chk(z) */
- # define Minfo(z) /* Minfo(z) */
- # endif
-
- /* macro to give number of options in an option structure */
- #define NOPTS(name) ((sizeof(name) / sizeof(struct optab)) - 1)
-
- #define TRUE 1
- #define FALSE 0
- #define ON 1
- #define OFF 0
-
-
- #define CHAT_ROW 1
- #define MENU_ROW 2
- #define CHAT_ATTR REVVID
- #define MENU_ATTR NORMAL
-
- #define loop for(;;)
- #define macalloc(a) (a *)alloc(sizeof(a))
-
- /* These two are very preliminary */
- typedef struct genstructure {
- char *a;
- double *b;
- double c;
- struct genstructure *s;
- } genstr;
-
- struct genlst {
- struct genlst *nxt_lst;
- struct genlst *prv_lst;
- genstr *info;
- int deleted; /* TRUE if it has been deleted */
- int tagged; /* TRUE if it has been tagged */
- };
-
- /* menu struct for slide rule type menu provided by dsp_menu */
- struct smnu_tab
- {
- struct optab option;
- struct smnu_tab * sub;
- PROTO (void (*func), (void));
- int hnum;
- };
-
- PROTO (char *basename, (char *));
- PROTO (char *cvt_lower, (char *));
- PROTO (char *cvt_str, (char *, int));
- PROTO (char *cvt_upper, (char *));
- PROTO (char *envfind, (char *));
- PROTO (char *fcopy, (char *, char *, int));
- PROTO (char *fmt_date, (char *, char *));
- PROTO (char *fmt_dbl, (double, char *));
- PROTO (char *fmt_flt, (double, char *));
- PROTO (char *fmt_int, (int, char *));
- PROTO (char *fmt_lng, (long, char *));
- PROTO (char *fmt_mny, (long, char *));
- PROTO (char *forceupper, (char *));
- PROTO (char *fstrcpy, (char *, char *, int));
- PROTO (char *get_date, (char *, int));
- PROTO (char *get_dir, (char *, int));
- PROTO (char *ltocon, (unsigned long, char *, int));
- PROTO (char *repchr, (char, int));
- PROTO (char *strleft, (char *, char *, int));
- PROTO (char *strmid, (char *, char *, int, int));
- PROTO (int antoi, (char *, int));
- PROTO (int CDECL do_cmd, (char *, ...));
- PROTO (int decmasklen, (char *));
- PROTO (int do_options, (struct optab *, int, int));
- PROTO (int CDECL errmsg, (char *, ...));
- PROTO (int fstrlen, (char *, int));
- PROTO (int is_date, (char *));
- PROTO (int itona, (char *, int, int));
- PROTO (int legal_fname, (char *));
- PROTO (int lok_rec, (int, int, int));
- PROTO (int openf, (char *, int, int, int *));
- PROTO (int open_help, (char *));
- PROTO (int prt_init, (void));
- PROTO (int CDECL prt_string, (char *, ...));
- PROTO (int CDECL query, (int, char *, ...));
- PROTO (int readlock, (int *, char *));
- PROTO (int rioerr_handle, (int));
- PROTO (int selectkey, (char **, int, char *, int, int *));
- PROTO (int sioerr_handle, (int));
- PROTO (int trylock, (int *, char *));
- PROTO (int uioerr_handle, (int));
- PROTO (int CDECL warning, (int, char *, ...));
- PROTO (unsigned long contol, (char *));
- PROTO (unsigned long dstrtol, (char *, char *));
- PROTO (unsigned long today, (void));
- PROTO (void abs_get_rec, (int, long, int, char *));
- PROTO (void abs_put_rec, (int, long, int, char *));
- PROTO (void CDECL abort_mess, (char * DOTS));
- PROTO (void align_report, (int, int));
- PROTO (void bin_to_text, (int [], unsigned char *));
- PROTO (void CDECL chain, (char *, ...));
- PROTO (void chainv, (char **));
- PROTO (void closef, (int));
- PROTO (void closefall, (void));
- PROTO (void close_help, (void));
- PROTO (void decrypt, (char *, char *));
- PROTO (void do_bell, (void));
- PROTO (void dsp_opt, (struct optab *, int *));
- PROTO (void encrypt, (char *, char *));
- PROTO (void fill_rec, (char *, int));
- PROTO (void f_to_a, (char *, double, int, int));
- PROTO (void get_rec, (int, int, char *));
- PROTO (void help_msg, (int));
- PROTO (void i_to_a, (char *, int, int));
- PROTO (void keywait, (int));
- PROTO (void locked_file, (char *, int));
- PROTO (void l_to_a, (char *, long, int));
- PROTO (void no_access, (char *));
- PROTO (void prt_field, (char *, int));
- PROTO (void prt_ln, (int));
- PROTO (void prt_page, (void));
- PROTO (void prt_shut, (void));
- PROTO (void prt_space, (int));
- PROTO (void prt_tab, (int));
- PROTO (void put_rec, (int, int, char *));
- PROTO (void range_char, (int, int, char *, char *, char *, int *));
- PROTO (void range_date, (int, int, long *, long *, char *, int *));
- PROTO (void range_dbl, (int, int, double *, double *, char *, int *));
- PROTO (void range_flt, (int, int, float *, float *, char *, int *));
- PROTO (void range_int, (int, int, int *, int *, char *, int *));
- PROTO (void range_lng, (int, int, long *, long *, char *, int *));
- PROTO (void range_sdate, (int, int, char *, char *, char *, int *));
- PROTO (void search_path, (char *, char *, char *));
- PROTO (void spooler, (char *));
- PROTO (void CDECL statmsg, (char *, ...));
- PROTO (void stripext, (char *));
- PROTO (void text_to_bin, (unsigned char *, int *));
- PROTO (void todaystr, (char *));
-
- # ifdef MSDOS
- PROTO (int suf_free_space, (int, char));
- PROTO (int dos_drive_valid, (char));
- PROTO (char curdrive, (void));
- # endif
-
- /* UNIX should define these */
- # ifdef UNIX
- char *calloc();
- char *getenv();
- void free();
- # endif
-
- # endif
-
-