home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
BSRC_250.LZH
/
INCLUDES.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-09-15
|
10KB
|
300 lines
/*--------------------------------------------------------------------------*/
/* */
/* */
/* ------------ Bit-Bucket Software, Co. */
/* \ 10001101 / Writers and Distributors of */
/* \ 011110 / Freely Available<tm> Software. */
/* \ 1011 / */
/* ------ */
/* */
/* (C) Copyright 1987-91, Bit Bucket Software Co., a Delaware Corporation. */
/* */
/* */
/* Common Include Files for BinkleyTerm */
/* */
/* */
/* For complete details of the licensing restrictions, please refer */
/* to the License agreement, which is published in its entirety in */
/* the MAKEFILE and BT.C, and also contained in the file LICENSE.250. */
/* */
/* USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE */
/* BINKLEYTERM LICENSING AGREEMENT. IF YOU DO NOT FIND THE TEXT OF */
/* THIS AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO */
/* NOT HAVE THESE FILES, YOU SHOULD IMMEDIATELY CONTACT BIT BUCKET */
/* SOFTWARE CO. AT ONE OF THE ADDRESSES LISTED BELOW. IN NO EVENT */
/* SHOULD YOU PROCEED TO USE THIS FILE WITHOUT HAVING ACCEPTED THE */
/* TERMS OF THE BINKLEYTERM LICENSING AGREEMENT, OR SUCH OTHER */
/* AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO. */
/* */
/* */
/* You can contact Bit Bucket Software Co. at any one of the following */
/* addresses: */
/* */
/* Bit Bucket Software Co. FidoNet 1:104/501, 1:343/491 */
/* P.O. Box 460398 AlterNet 7:491/0 */
/* Aurora, CO 80046 BBS-Net 86:2030/1 */
/* Internet f491.n343.z1.fidonet.org */
/* */
/* Please feel free to contact us at any time to share your comments about */
/* our software and/or licensing policies. */
/* */
/*--------------------------------------------------------------------------*/
/*
* This file drives all the defines and includes in BinkleyTerm. In
* here we handle cross-compiler portability issues. It was originally
* born to make compiled headers (a neat feature of Borland C) work,
* but the other role quickly caught on as well.
*
* Some of the portability stuff will no doubt wind up in other Bink
* include files -- but the system-level stuff such as utime, etc
* is all dealt with here.
*
* All main Bink modules should include this file before any specific
* local includes.
*
*/
/* System include files */
#include <stdio.h>
#include <signal.h>
#include <ctype.h>
#ifdef MEWEL
#include <Window.H>
#include <WinDecls.H>
#include <GSDfn.H> /* ?????? */
#endif
#if ( !defined(MEWEL) & defined(MILQ) )
#define MILQ
#include <Windows.H>
#include <GSDfn.H> /* ?????? */
#endif
#ifndef MILQ
#include <conio.h>
#endif
#include <string.h>
#include <process.h>
#include <stdlib.h>
#include <stdarg.h>
#include <io.h>
#include <dos.h>
#include <errno.h>
#include <time.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <fcntl.h>
#include <share.h>
/*
* Compiler-specific stuff. The baseline in this sucker is
* Microsoft C 6.00a. Below what you see are the includes and
* macros we need to differentiate individual compilers from
* the baseline.
*
* The easiest way to add a new compiler is to replicate the
* _MSC_VER section using whatever manifest constant your
* compiler uses to identify itself, then do the fixups in
* that section.
*
* Be sure to put your section before that last define for
* COMPILER_NAME!
*
*/
#ifdef __TURBOC__ /* Borland C++ 2.0 */
/*
* Borland.
*
* No sharing stream open. (s)open/fdopen works, though.
* Signal call is non-generic and incompatible
* Read/Write to far memory in near model not implemented
* Console output non-generic
* No utime call
*
*/
#ifdef __BORLANDC__
#define COMPILER_NAME "-Borland"
#else
#define COMPILER_NAME "-Turbo"
#endif
#define MUST_FDOPEN /* Share streams: sopen+fdopen */
#define NO_SIGNALS /* Don't install a signal handler */
#define NEED_DOSREAD /* Need our own _dos_(read/write) */
#define NEED_CPUTS /* Need our own cputs */
#define NEED_PUTCH /* Need our own putch */
#define NEED_CPRINTF /* Need our own cprintf */
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
};
typedef struct utimbuf UTIMBUF;
int cdecl utime(char *, struct utimbuf *);
#define UT_ACTIME actime
typedef long off_t;
#include <mem.h>
#include <dir.h>
#include <alloc.h>
#define _fmalloc(n) farmalloc (n)
#define _ffree(n) farfree (n)
#undef sopen /* we don't want to use all the args */
#define sopen(a,b,c) open (a, b|c)
#endif
#ifdef _MSC_VER /* Microsoft C 5.1 or 6.0a */
/*
* Microsoft.
*
* By and large, it's Microsoft compatible <grin>
*
* MSC 5.10 and below has no way to open a stream in
* sharing mode. sopen/fdopen doesn't work.
*
*/
#if _MSC_VER == 510
#define COMPILER_NAME "-uSoft5.1"
#endif
#if _MSC_VER == 600
#define COMPILER_NAME "-uSoft6.0"
#endif
#if _MSC_VER < 600
#define CANT_FSOPEN
#endif
#include <sys/utime.h>
typedef struct utimbuf UTIMBUF;
#define UT_ACTIME actime
#include <memory.h>
#include <direct.h>
#include <malloc.h>
#endif
#ifdef __WATCOMC__ /* WATCOM C 8.0 */
/*
* WATCOM.
*
* No sharing stream open. sopen/fdopen doesn't work.
* No mktemp call
* utime structure member naming different
*
*/
#define COMPILER_NAME "-WATCOM"
#define CANT_FSOPEN /* No way to share streams */
#define NEED_MKTEMP /* Need our own mktemp */
#include <sys/utime.h>
typedef struct utimbuf UTIMBUF;
#define UT_ACTIME acctime /* WCC acctime = actime */
#include <direct.h>
#include <malloc.h>
#endif
#ifdef __ZTC__ /* Zortech C++ 3.0 */
/*
* Zortech.
*
* No sharing stream open. sopen/fdopen doesn't work.
* Signal handler stuff incompatible
* Read/Write to far memory in near model not implemented
* No console I/O functions
* No mktemp call
* utime doesn't use a structure
* no ultoa, we use more limited ltoa
* tzset not there or needed
*
*/
#define COMPILER_NAME "-Zortech"
#define CANT_FSOPEN /* No way to share streams */
#define NO_SIGNALS /* Don't install a signal handler */
#define NEED_DOSREAD /* Need our own _dos_(read/write) */
#define NEED_CPUTS /* Need our own cputs */
#define NEED_PUTCH /* Need our own putch */
#define NEED_MKTEMP /* Need our own mktemp */
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
};
typedef time_t UTIMBUF; /* ZTC utime uses a time_t array */
#define UT_ACTIME actime
#ifdef __VCM__
#define __LARGE__ /* VCM model same as large, really*/
#endif
typedef long off_t;
#include <direct.h>
#define _fmalloc(n) farmalloc (n)
#define _ffree(n) farfree (n)
#define ultoa(x,y,z) ltoa((long)x,y,z)
#define stricmp(x,y) strcmpl(x,y)
#define _dos_setdrive(x,y) dos_setdrive(x,y)
#define tzset()
#endif
/*
* Make sure there's at least a zero-length string for
* the compiler name.
*
* THIS LINE SHOULD ALWAYS BE LAST!
*
*/
#ifndef COMPILER_NAME
#define COMPILER_NAME ""
#endif
#ifndef OS_2
#ifndef MILQ
typedef unsigned int USHORT;
#endif
typedef int HFILE;
typedef unsigned char far *PCH;
typedef unsigned short HVIO;
#define hfComHandle (port_ptr + 1)
#define COMFILE_PREFIX ""
#define COMFILE_SUFFIX ".BAT"
#endif
/* Local include files */
#include "bink.h"
#include "defines.h"
#include "com.h"
#include "xfer.h"
#include "msgs.h"
#include "zmodem.h"
#include "keybd.h"
#include "keyfncs.h"
#include "sbuf.h"
#include "sched.h"
#include "timer.h"
#include "vfossil.h"
#include "externs.h"
#include "prototyp.h"
#ifdef OS_2 /* This MUST follow our includes, I don't know why */
#define INCL_DOSPROCESS
#include <os2.h>
#define _dos_read DosRead
#define _dos_write DosWrite
#define COMFILE_PREFIX ""
#define COMFILE_SUFFIX ".CMD"
#endif
#define isBITBRAIN 0x1b