/*  C K C D E B . H  */

/*
  Tue Apr  6 14:00:16 2004

  NOTE TO CONTRIBUTORS: This file, and all the other C-Kermit files, must be
  compatible with C preprocessors that support only #ifdef, #else, #endif,
  #define, and #undef.  Please do not use #if, logical operators, or other
  later-model preprocessor features in any of the portable C-Kermit modules.
  You can, of course, use these constructions in platform-specific modules 
  when you know they are supported.
*/

/*
  This file is included by all C-Kermit modules, including the modules
  that aren't specific to Kermit (like the command parser and the ck?tio and
  ck?fio modules).  It should be included BEFORE any other C-Kermit header
  files.  It specifies format codes for debug(), tlog(), and similar
  functions, and includes any necessary definitions to be used by all C-Kermit
  modules, and also includes some feature selection compile-time switches, and
  also system- or compiler-dependent definitions, plus #includes and prototypes
  required by all C-Kermit modules.
*/

/*
  Author: Frank da Cruz <fdc@columbia.edu>,
  Columbia University Academic Information Systems, New York City.

  Copyright (C) 1985, 2004,
    Trustees of Columbia University in the City of New York.
    All rights reserved.  See the C-Kermit COPYING.TXT file or the
    copyright text in the ckcmai.c module for disclaimer and permissions.
*/

/*
  Etymology: The name of this file means "C-Kermit Common-C-Language Debugging
  Header", because originally it contained only the formats (F000-F111) for
  the debug() and tlog() functions.  Since then it has grown to inlcude all
  material required by all other C-Kermit modules, including the non-Kermit
  specific ones.
*/

#ifndef CKCDEB_H			/* Don't include me more than once. */
#define CKCDEB_H

#ifdef OS2
#include "ckoker.h"
#else /* OS2 */
/* Unsigned numbers */

#ifndef USHORT
#define USHORT unsigned short
#endif /* USHORT */

#ifndef UINT
#define UINT unsigned int
#endif /* UINT */

#ifndef ULONG
#define ULONG unsigned long
#endif /* ULONG */
#endif /* OS2 */

/* Structure definitions for Kermit file attributes */
/* All strings come as pointer and length combinations */
/* Empty string (or for numeric variables, -1) = unused attribute. */

struct zstr {             /* string format */
    int len;	          /* length */
    char *val;            /* value */
};
struct zattr {            /* Kermit File Attribute structure */
    long lengthk;         /* (!) file length in K */
    struct zstr type;     /* (") file type (text or binary) */
    struct zstr date;     /* (#) file creation date yyyymmdd[ hh:mm[:ss]] */
    struct zstr creator;  /* ($) file creator id */
    struct zstr account;  /* (%) file account */
    struct zstr area;     /* (&) area (e.g. directory) for file */
    struct zstr password; /* (') password for area */
    long blksize;         /* (() file blocksize */
    struct zstr xaccess;  /* ()) file access: new, supersede, append, warn */
    struct zstr encoding; /* (*) encoding (transfer syntax) */
    struct zstr disp;     /* (+) disposition (mail, message, print, etc) */
    struct zstr lprotect; /* (,) protection (local syntax) */
    struct zstr gprotect; /* (-) protection (generic syntax) */
    struct zstr systemid; /* (.) ID for system of origin */
    struct zstr recfm;    /* (/) record format */
    struct zstr sysparam; /* (0) system-dependent parameter string */
    long length;          /* (1) exact length on system of origin */
    struct zstr charset;  /* (2) transfer syntax character set */
#ifdef OS2
    struct zstr longname; /* OS/2 longname if applicable */
#endif /* OS2 */
    struct zstr reply;    /* This goes last, used for attribute reply */
};

/* Kermit file information structure */

struct filinfo {
  int bs;				/* Blocksize */
  int cs;				/* Character set */
  long rl;				/* Record length */
  int org;				/* Organization */
  int fmt;				/* Record format */
  int cc;				/* Carriage control */
  int typ;				/* Type (text/binary) */
  int dsp;				/* Disposition */
  char *os_specific;			/* OS-specific attributes */
#ifdef OS2
  unsigned long int lblopts;		/* LABELED FILE options bitmask */
#else
  int lblopts;
#endif /* OS2 */
};

#ifdef MACOSX10				/* Mac OS X 1.0 */
#ifndef MACOSX				/* implies Mac OS X */
#define MACOSX
#endif /* MACOSX */
#endif /* MACOSX10 */

#ifdef MACOSX				/* Mac OS X */
#ifndef BSD44				/* implies 4.4 BSD */
#define BSD44
#endif /* BSD44 */
#endif /* MACOSX */

#ifdef SCO_OSR505			/* SCO 3.2v5.0.5 */
#ifndef SCO_OSR504			/* implies SCO 3.2v5.0.4 */
#define SCO_OSR504
#endif /* SCO_OSR504 */
#endif /* SCO_OSR505 */

#ifdef SCO_OSR504			/* SCO 3.2v5.0.4 */
#ifndef CK_SCOV5			/* implies SCO 3.2v5.0 */
#define CK_SCOV5
#endif /* CK_SCOV5 */
#include <sys/types.h>			/* To sidestep header-file mess */
#endif /* SCO_OSR504 */

#ifdef CK_SCOV5
#ifndef ANYSCO
#define ANYSCO
#endif /* ANYSCO */
#endif /* CK_SCOV5 */

#ifdef UNIXWARE
#ifndef ANYSCO
#define ANYSCO
#endif /* ANYSCO */
#endif /* UNIXWARE */

#ifdef CK_SCO32V4			/* SCO 3.2v4 */
#ifndef ANYSCO
#define ANYSCO
#endif /* ANYSCO */
#ifndef XENIX
#define XENIX
#endif /* XENIX */
#ifndef SVR3
#define SVR3
#endif /* SVR3 */
#ifndef DIRENT
#define DIRENT
#endif /* DIRENT */
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#ifndef SVR3JC
#define SVR3JC
#endif /* SVR3JC */
#ifndef CK_RTSCTS
#define CK_RTSCTS
#endif /* CK_RTSCTS */
#ifndef PID_T
#define PID_T pid_t
#endif /* PID_T */
#ifndef PWID_T
#define PWID_T int
#endif /* PWID_T */
#endif /* CK_SCO32V4 */

#ifdef NOICP				/* If no command parser */
#ifndef NOSPL				/* Then no script language either */
#define NOSPL
#endif /* NOSPL */
#ifndef NOCSETS				/* Or characer sets */
#define NOCSETS
#endif /* NOCSETS */
#ifndef NOFTP				/* Or FTP client */
#define NOFTP
#endif /* NOFTP */
#endif /* NOICP */

/* Built-in makefile entries */

#ifdef SOLARIS9				/* Solaris 9 implies 8 */
#ifndef SOLARIS8
#define SOLARIS8
#endif /* SOLARIS8 */
#endif /* SOLARIS9 */

#ifdef SOLARIS8				/* Solaris 8 implies 7 */
#ifndef SOLARIS7
#define SOLARIS7
#endif /* SOLARIS7 */
#endif /* SOLARIS8 */

#ifdef SOLARIS7				/* Solaris 7 implies 2.6 */
#ifndef SOLARIS26
#define SOLARIS26
#endif /* SOLARIS26 */
#endif /* SOLARIS7 */

#ifdef SOLARIS26			/* Solaris 2.6 implies 2.5 */
#ifndef SOLARIS25
#define SOLARIS25
#endif /* SOLARIS25 */
#endif /* SOLARIS26 */

#ifdef SOLARIS25			/* Solaris 2.5 implies Solaris */
#ifndef SOLARIS
#define SOLARIS
#endif /* SOLARIS */
#ifndef POSIX				/* And POSIX */
#define POSIX
#endif /* POSIX */
#ifndef CK_WREFRESH			/* And this (curses) */
#define CK_WREFRESH
#endif /* CK_WREFRESH */
#endif /* SOLARIS25 */

#ifdef SOLARIS24			/* Solaris 2.4 implies Solaris */
#ifndef SOLARIS
#define SOLARIS
#endif /* SOLARIS */
#endif /* SOLARIS24 */

#ifdef SOLARIS				/* Solaris gets "POSIX" RTS/CTS API */
#ifdef POSIX
#ifndef POSIX_CRTSCTS
#define POSIX_CRTSCTS
#endif /* POSIX_CRTSCTS */
#endif /* POSIX */
#endif /* SOLARIS */

#ifdef SUN4S5				/* Sun-4 System V environment */
#ifndef SVR3				/* implies System V R3 or later */
#define SVR3
#endif /* SVR3 */
#endif /* SUN4S5 */
#ifdef SUNOS41				/* SUNOS41 implies SUNOS4 */
#ifndef SUNOS4
#define SUNOS4
#endif /* SUNOS4 */
#endif /* SUNOS41 */

#ifdef SUN4S5				/* Sun-4 System V environment */
#ifndef SVR3				/* implies System V R3 or later */
#define SVR3
#endif /* SVR3 */
#endif /* SUN4S5 */

#ifdef SUNOS41				/* SUNOS41 implies SUNOS4 */
#ifndef SUNOS4
#define SUNOS4
#endif /* SUNOS4 */
#endif /* SUNOS41 */

#ifdef SUNOS4				/* Built-in SUNOS4 makefile entry */
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#ifndef BSD4
#define BSD4
#endif /* BSD4 */
#ifndef NOSETBUF
#define NOSETBUF
#endif /* NOSETBUF */
#ifndef DIRENT
#define DIRENT
#endif /* DIRENT */
#ifndef NONET
#ifndef TCPSOCKET
#define TCPSOCKET
#endif /* TCPSOCKET */
#endif /* NONET */
#ifndef SAVEDUID
#define SAVEDUID
#endif /* SAVEDUID */
#ifndef DYNAMIC
#define DYNAMIC
#endif /* DYNAMIC */
#endif /* SUNOS4 */

#ifdef SOLARIS				/* Built in makefile entry */
#ifndef NOSETBUF			/* for Solaris 2.x */
#define NOSETBUF
#endif /* NOSETBUF */
#ifndef NOCURSES
#ifndef CK_CURSES
#define CK_CURSES
#endif /* CK_CURSES */
#endif /* NOCURSES */
#ifndef CK_NEWTERM
#define CK_NEWTERM
#endif /* CK_NEWTERM */
#ifndef DIRENT
#define DIRENT
#endif /* DIRENT */
#ifndef NONET
#ifndef TCPSOCKET
#define TCPSOCKET
#endif /* TCPSOCKET */
#endif /* NONET */
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#ifndef SVR4
#define SVR4
#endif /* SVR4 */
#ifndef HADDRLIST
#define HADDRLIST
#endif /* HADDRLIST */
#ifndef STERMIOX
#define STERMIOX
#endif /* STERMIOX */
#ifndef SELECT
#define SELECT
#endif /* SELECT */
#ifndef DYNAMIC
#define DYNAMIC
#endif /* DYNAMIC */
#ifndef NOUUCP
#ifndef HDBUUCP
#define HDBUUCP
#endif /* HDBUUCP */
#endif /* NOUUCP */
#endif /* SOLARIS */

/* Features that can be eliminated from a no-file-transfer version */

#ifdef NOXFER
#ifndef NOFTP
#define NOFTP
#endif /* NOFTP */
#ifndef OS2
#ifndef NOCURSES			/* Fullscreen file-transfer display */
#define NOCURSES
#endif /* NOCURSES */
#endif /* OS2 */
#ifndef NOCKXYZ				/* XYZMODEM support */
#define NOCKXYZ
#endif /* NOCKXYZ */
#ifndef NOCKSPEED			/* Ctrl-char unprefixing */
#define NOCKSPEED
#endif /* NOCKSPEED */
#ifndef NOSERVER			/* Server mode */
#define NOSERVER
#endif /* NOSERVER */
#ifndef NOCKTIMERS			/* Dynamic packet timers */
#define NOCKTIMERS
#endif /* NOCKTIMERS */
#ifndef NOPATTERNS			/* File-type patterns */
#define NOPATTERNS
#endif /* NOPATTERNS */
#ifndef NOSTREAMING			/* Streaming */
#define NOSTREAMING
#endif /* NOSTREAMING */
#ifndef NOIKSD				/* Internet Kermit Service */
#define NOIKSD
#endif /* NOIKSD */
#ifndef NOPIPESEND			/* Sending from pipes */
#define NOPIPESEND
#endif /* NOPIPESEND */
#ifndef NOAUTODL			/* Autodownload */
#define NOAUTODL
#endif /* NOAUTODL */
#ifndef NOMSEND				/* MSEND */
#define NOMSEND
#endif /* NOMSEND */
#ifndef NOTLOG				/* Transaction logging */
#define NOTLOG
#endif /* NOTLOG */
#ifndef NOCKXXCHAR			/* Packet character doubling */
#define NOCKXXCHAR
#endif /* NOCKXXCHAR */
#endif /* NOXFER */

#ifdef NOICP				/* No Interactive Command Parser */
#ifndef NODIAL				/* Implies No DIAL command */
#define NODIAL
#endif /* NODIAL */
#ifndef NOCKXYZ				/* and no external protocols */
#define NOCKXYZ
#endif /* NOCKXYZ */
#endif /* NOICP */

#ifndef NOIKSD
#ifdef IKSDONLY
#ifndef IKSD
#define IKSD
#endif /* IKSD */
#ifndef NOLOCAL
#define NOLOCAL
#endif /* NOLOCAL */
#ifndef NOPUSH
#define NOPUSH
#endif /* NOPUSH */
#ifndef TNCODE
#define TNCODE
#endif /* TNCODE */
#ifndef TCPSOCKET
#define TCPSOCKET
#endif /* TCPSOCKET */
#ifndef NETCONN
#define NETCONN
#endif /* NETCONN */
#ifdef SUNX25
#undef SUNX25
#endif /* SUNX25 */
#ifdef IBMX25
#undef IBMX25
#endif /* IBMX25 */
#ifdef STRATUSX25
#undef STRATUSX25
#endif /* STRATUSX25 */
#ifdef CK_NETBIOS
#undef CK_NETBIOS
#endif /* CK_NETBIOS */
#ifdef SUPERLAT
#undef SUPERLAT
#endif /* SUPERLAT */
#ifdef NPIPE
#undef NPIPE
#endif /* NPIPE */
#ifdef NETFILE
#undef NETFILE
#endif /* NETFILE */
#ifdef NETCMD
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#ifdef RLOGCODE
#undef RLOGCODE
#endif /* RLOGCODE */
#ifdef NETDLL
#undef NETDLL
#endif /* NETDLL */
#ifndef NOSSH
#undef NOSSH
#endif /* NOSSH */
#ifndef NOFORWARDX
#define NOFORWARDX
#endif /* NOFORWARDX */
#ifndef NOBROWSER
#define NOBROWSER
#endif /* NOBROWSER */
#ifndef NOHTTP
#define NOHTTP
#endif /* NOHTTP */
#ifndef NOFTP
#define NOFTP
#endif /* NOFTP */
#ifndef NO_COMPORT
#define NO_COMPORT
#endif /* NO_COMPORT */
#endif /* IKSDONLY */
#endif /* NOIKSD */

/* Features that can be eliminated from a remote-only version */

#ifdef NOLOCAL
#ifndef NOFTP
#define NOFTP
#endif /* NOFTP */
#ifndef NOHTTP
#define NOHTTP
#endif /* NOHTTP */
#ifndef NOSSH
#define NOSSH
#endif /* NOSSH */
#ifndef NOTERM
#define NOTERM
#endif /* NOTERM */
#ifndef NOCURSES			/* Fullscreen file-transfer display */
#define NOCURSES
#endif /* NOCURSES */
#ifndef NODIAL
#define NODIAL
#endif /* NODIAL */
#ifndef NOSCRIPT
#define NOSCRIPT
#endif /* NOSCRIPT */
#ifndef NOSETKEY
#define NOSETKEY
#endif /* NOSETKEY */
#ifndef NOKVERBS
#define NOKVERBS
#endif /* NOKVERBS */
#ifndef NOXMIT
#define NOXMIT
#endif /* NOXMIT */
#ifdef CK_CURSES
#undef CK_CURSES
#endif /* CK_CURSES */
#ifndef IKSDONLY
#ifndef NOAPC
#define NOAPC
#endif /* NOAPC */
#ifndef NONET
#define NONET
#endif /* NONET */
#endif /* IKSDONLY */
#endif /* NOLOCAL */

#ifdef NONET
#ifdef NETCONN
#undef NETCONN
#endif /* NETCONN */
#ifdef TCPSOCKET
#undef TCPSOCKET
#endif /* TCPSOCKET */
#ifndef NOTCPOPTS
#define NOTCPOPTS
#endif /* NOTCPOPTS */
#ifdef SUNX25
#undef SUNX25
#endif /* SUNX25 */
#ifdef IBMX25
#undef IBMX25
#endif /* IBMX25 */
#ifdef STRATUSX25
#undef STRATUSX25
#endif /* STRATUSX25 */
#ifdef CK_NETBIOS
#undef CK_NETBIOS
#endif /* CK_NETBIOS */
#ifdef SUPERLAT
#undef SUPERLAT
#endif /* SUPERLAT */
#ifdef NPIPE
#undef NPIPE
#endif /* NPIPE */
#ifdef NETFILE
#undef NETFILE
#endif /* NETFILE */
#ifdef NETCMD
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#ifdef RLOGCODE
#undef RLOGCODE
#endif /* RLOGCODE */
#ifdef NETDLL
#undef NETDLL
#endif /* NETDLL */
#ifndef NOSSH
#define NOSSH
#endif /* NOSSH */
#ifndef NOFTP
#define NOFTP
#endif /* NOFTP */
#ifndef NOHTTP
#define NOHTTP
#endif /* NOHTTP */
#ifndef NOBROWSER
#define NOBROWSER
#endif /* NOBROWSER */
#ifndef NOFORWARDX
#define NOFORWARDX
#endif /* NOFORWARDX */
#endif /* NONET */

#ifdef IKSDONLY
#ifdef SUNX25
#undef SUNX25
#endif /* SUNX25 */
#ifdef IBMX25
#undef IBMX25
#endif /* IBMX25 */
#ifdef STRATUSX25
#undef STRATUSX25
#endif /* STRATUSX25 */
#ifdef CK_NETBIOS
#undef CK_NETBIOS
#endif /* CK_NETBIOS */
#ifdef SUPERLAT
#undef SUPERLAT
#endif /* SUPERLAT */
#ifdef NPIPE
#undef NPIPE
#endif /* NPIPE */
#ifdef NETFILE
#undef NETFILE
#endif /* NETFILE */
#ifdef NETCMD
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#ifdef RLOGCODE
#undef RLOGCODE
#endif /* RLOGCODE */
#ifdef NETDLL
#undef NETDLL
#endif /* NETDLL */
#ifndef NOSSH
#define NOSSH
#endif /* NOSSH */
#ifndef NOHTTP
#define NOHTTP
#endif /* NOHTTP */
#ifndef NOBROWSER
#define NOBROWSER
#endif /* NOBROWSER */
#endif /* IKSDONLY */
/*
  Note that none of the above precludes TNCODE, which can be defined in
  the absence of TCPSOCKET, etc, to enable server-side Telnet negotation.
*/
#ifndef TNCODE				/* This is for the benefit of */
#ifdef TCPSOCKET			/* modules that might need TNCODE */
#define TNCODE				/* not all of ckcnet.h... */
#endif /* TCPSOCKET */
#endif /* TNCODE */

#ifndef NETCONN
#ifdef TCPSOCKET
#define NETCONN
#endif /* TCPSOCKET */
#endif /* NETCONN */

#ifndef DEFPAR				/* Default parity */
#define DEFPAR 0			/* Must be here because it is used */
#endif /* DEFPAR */			/* by all classes of modules */

#ifdef NT
#ifndef OS2ORWIN32
#define OS2ORWIN32
#endif /* OS2ORWIN32 */
#ifndef OS2
#define WIN32ONLY
#endif /* OS2 */
#endif /* NT */

#ifdef OS2				/* For OS/2 debugging */
#ifndef OS2ORWIN32
#define OS2ORWIN32
#endif /* OS2ORWIN32 */
#ifdef NT
#define NOCRYPT
#include <windows.h>
#define NTSIG
#else /* NT */
#define OS2ONLY
#include <os2def.h>
#endif /* NT */
#ifndef OS2ORUNIX
#define OS2ORUNIX
#endif /* OS2ORUNIX */
#ifndef OS2ORVMS
#define OS2ORVMS
#endif /* OS2ORVMS */
#endif /* OS2 */

#include <stdio.h>			/* Begin by including this. */
#include <ctype.h>			/* and this. */

/* System-type compilation switches */

#ifdef FT21				/* Fortune For:Pro 2.1 implies 1.8 */
#ifndef FT18
#define FT18
#endif /* FT18 */
#endif /* FT21 */

#ifdef __bsdi__
#ifndef BSDI
#define BSDI
#endif /* BSDI */
#endif /* __bsdi__ */

#ifdef AIXPS2				/* AIXPS2 implies AIX370 */
#ifndef AIX370
#define AIX370
#endif /* AIX370 */
#endif /* AIXPS2 */

#ifdef AIX370				/* AIX PS/2 or 370 implies BSD4 */
#ifndef BSD4
#define BSD4
#endif /* BSD4 */
#endif /* AIX370 */

#ifdef AIXESA				/* AIX/ESA implies BSD4.4 */
#ifndef BSD44
#define BSD44
#endif /* BSD44 */
#endif /* AIXESA */

#ifdef AIX53				/* AIX53 implies AIX52 */
#ifndef AIX52
#define AIX52
#endif /* AIX52 */
#endif /* AIX53 */

#ifdef AIX52				/* AIX52 implies AIX51 */
#ifndef AIX51
#define AIX51
#endif /* AIX51 */
#endif /* AIX52 */

#ifdef AIX51				/* AIX51 implies AIX50 */
#ifndef AIX50
#define AIX50
#endif /* AIX50 */
#endif /* AIX51 */

#ifdef AIX50				/* AIX50 implies AIX45 */
#ifndef AIX45
#define AIX45
#endif /* AIX45 */
#endif /* AIX50 */

#ifdef AIX45				/* AIX45 implies AIX44 */
#ifndef AIX44
#define AIX44
#endif /* AIX44 */
#endif /* AIX45 */

#ifdef AIX44				/* AIX44 implies AIX43 */
#ifndef AIX43
#define AIX43
#endif /* AIX43 */
#endif /* AIX44 */

#ifdef AIX43				/* AIX43 implies AIX42 */
#ifndef AIX42
#define AIX42
#endif /* AIX42 */
#endif /* AIX43 */

#ifdef AIX42				/* AIX42 implies AIX41 */
#ifndef AIX41
#define AIX41
#endif /* AIX41 */
#endif /* AIX42 */

#ifdef SV68R3V6				/* System V/68 R32V6 implies SVR3 */
#ifndef SVR3
#define SVR3
#endif /* SVR3 */
#endif /* SV68R3V6 */

#ifdef SV88R32				/* System V/88 R32 implies SVR3 */
#ifndef SVR3
#define SVR3
#endif /* SVR3 */
#endif /* SV88R32 */

#ifdef DGUX540				/* DG UX 5.40 implies Sys V R 4 */
#ifndef SVR4
#define SVR4
#endif /* SVR4 */
#endif /* DGUX540 */

#ifndef DGUX
#ifdef DGUX540				/* DG/UX 5.40 implies DGUX */
#define DGUX
#else
#ifdef DGUX430				/* So does DG/UX 4.30 */
#define DGUX
#endif /* DGUX430 */
#endif /* DGUX540 */
#endif /* DGUX */

#ifdef IRIX65				/* IRIX 6.5 implies IRIX 6.4 */
#ifndef IRIX64
#define IRIX64
#endif /* IRIX64 */
#endif /* IRIX65 */

#ifdef IRIX64				/* IRIX 6.4 implies IRIX 6.2 */
#ifndef BSD44ORPOSIX
#define BSD44ORPOSIX			/* for ckutio's benefit */
#endif /* BSD44ORPOSIX */
#ifndef IRIX62
#define IRIX62
#endif /* IRIX62 */
#endif /* IRIX64 */

#ifdef IRIX62				/* IRIX 6.2 implies IRIX 6.0 */
#ifndef IRIX60
#define IRIX60
#endif /* IRIX60 */
#endif /* IRIX62 */

#ifdef IRIX60				/* IRIX 6.0 implies IRIX 5.1 */
#ifndef IRIX51
#define IRIX51
#endif /* IRIX51 */
#ifndef IRIX52				/* And IRIX 5.2 (for hwfc) */
#define IRIX52
#endif /* IRIX52 */
#endif /* IRIX60 */

#ifndef IRIX				/* IRIX 4.0 or greater implies IRIX */
#ifdef IRIX64
#define IRIX
#else
#ifdef IRIX62
#define IRIX
#else
#ifdef IRIX60
#define IRIX
#else
#ifdef IRIX51
#define IRIX
#else
#ifdef IRIX40
#define IRIX
#endif /* IRIX40 */
#endif /* IRIX51 */
#endif /* IRIX60 */
#endif /* IRIX62 */
#endif /* IRIX64 */
#endif /* IRIX */

#ifdef MIPS				/* MIPS System V environment */
#ifndef SVR3				/* implies System V R3 or later */
#define SVR3
#endif /* SVR3 */
#endif /* MIPS */

#ifdef HPUX9				/* HP-UX 9.x */
#ifndef SVR3
#define SVR3
#endif /* SVR3 */
#ifndef HPUX
#define HPUX
#endif /* HPUX */
#ifndef HPUX9PLUS
#define HPUX9PLUS
#endif /* HPUX9PLUS */
#endif /* HPUX9 */

#ifdef HPUX10				/* HP-UX 10.x */
#ifndef HPUX1010			/* If anything higher is defined */
#ifdef HPUX1020				/* define HPUX1010 too. */
#define HPUX1010
#endif /* HPUX1020 */
#ifdef HPUX1030
#define HPUX1010
#endif /* HPUX1030 */
#endif /* HPUX1010 */

#ifdef HPUX1100				/* HP-UX 11.00 implies 10.10 */
#ifndef HPUX1010
#define HPUX1010
#endif /* HPUX1010 */
#endif /* HPUX1100 */

#ifndef SVR4
#define SVR4
#endif /* SVR4 */
#ifndef HPUX
#define HPUX
#endif /* HPUX */
#ifndef HPUX9PLUS
#define HPUX9PLUS
#endif /* HPUX9PLUS */
#endif /* HPUX10 */

#ifdef QNX				/* QNX Software Systems Inc */
#ifndef POSIX				/* QNX 4.0 or later is POSIX */
#define POSIX
#endif /* POSIX */
#ifndef __386__				/* Comes in 16-bit and 32-bit */
#define __16BIT__
#define CK_QNX16
#else
#define __32BIT__
#define CK_QNX32
#endif /* __386__ */
#endif /* QNX */

/*
  4.4BSD is a mixture of System V R4, POSIX, and 4.3BSD.
*/
#ifdef BSD44				/* 4.4 BSD */
#ifndef SVR4				/* BSD44 implies SVR4 */
#define SVR4
#endif /* SVR4 */
#ifndef NOSETBUF			/* NOSETBUF is safe */
#define NOSETBUF
#endif /* NOSETBUF */
#ifndef DIRENT				/* Uses <dirent.h> */
#define DIRENT
#endif /* DIRENT */
#endif /* BSD44 */

#ifdef OPENBSD				/* OpenBSD might or might not */
#ifndef __OpenBSD__			/* have this defined... */
#define __OpenBSD__
#endif /* __OpenBSD__ */
#endif /* OPENBSD */

#ifdef SVR3				/* SVR3 implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* SVR3 */

#ifdef SVR4				/* SVR4 implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#ifndef SVR3				/* ...as well as SVR3 */
#define SVR3
#endif /* SVR3 */
#endif /* SVR4 */

#ifdef OXOS
#ifndef ATTSV
#define ATTSV				/* OXOS implies ATTSV */
#endif /* ! ATTSV */
#define SW_ACC_ID			/* access() wants privs on */
#define kill priv_kill			/* kill() wants privs on */
#ifndef NOSETBUF
#define NOSETBUF			/* NOSETBUF is safe */
#endif /* ! NOSETBUF */
#endif /* OXOS */

#ifdef UTSV				/* UTSV implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* UTSV */

#ifdef XENIX				/* XENIX implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* XENIX */

#ifdef AUX				/* AUX implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* AUX */

#ifdef ATT7300				/* ATT7300 implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* ATT7300 */

#ifdef ATT6300				/* ATT6300 implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* ATT6300 */

#ifdef HPUX				/* HPUX implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* HPUX */

#ifdef ISIII				/* ISIII implies ATTSV */
#ifndef ATTSV
#define ATTSV
#endif /* ATTSV */
#endif /* ISIII */

#ifdef NEXT33				/* NEXT33 implies NEXT */
#ifndef NEXT
#define NEXT
#endif /* NEXT */
#endif /* NEXT33 */

#ifdef NEXT				/* NEXT implies BSD4 */
#ifndef BSD4
#define BSD4
#endif /* BSD4 */
#endif /* NEXT */

#ifdef BSD41				/* BSD41 implies BSD4 */
#ifndef BSD4
#define BSD4
#endif /* BSD4 */
#endif /* BSD41 */

#ifdef BSD43				/* BSD43 implies BSD4 */
#ifndef BSD4
#define BSD4
#endif /* BSD4 */
#endif /* BSD43 */

#ifdef BSD4				/* BSD4 implies ANYBSD */
#ifndef ANYBSD
#define ANYBSD
#endif /* ANYBSD */
#endif /* BSD4 */

#ifdef BSD29				/* BSD29 implies ANYBSD */
#ifndef ANYBSD
#define ANYBSD
#endif /* ANYBSD */
#endif /* BSD29 */

#ifdef ATTSV				/* ATTSV implies UNIX */
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#endif /* ATTSV */

#ifdef ANYBSD				/* ANYBSD implies UNIX */
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#endif /* ANYBSD */

#ifdef POSIX				/* POSIX implies UNIX */
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#ifndef DIRENT				/* and DIRENT, i.e. <dirent.h> */
#ifndef SDIRENT
#define DIRENT
#endif /* SDIRENT */
#endif /* DIRENT */
#ifndef NOFILEH				/* POSIX doesn't use <sys/file.h> */
#define NOFILEH
#endif /* NOFILEH */
#endif /* POSIX */

#ifdef V7
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#endif /* V7 */

#ifdef COHERENT
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#ifdef COMMENT
#ifndef NOCURSES
#define NOCURSES
#endif /* NOCURSES */
#endif /* COMMENT */
#endif /* COHERENT */

#ifdef MINIX
#ifndef UNIX
#define UNIX
#endif /* UNIX */
#endif /* MINIX */
/*
  The symbol SVORPOSIX is defined for both AT&T and POSIX compilations
  to make it easier to select items that System V and POSIX have in common,
  but which BSD, V7, etc, do not have.
*/
#ifdef ATTSV
#ifndef SVORPOSIX
#define SVORPOSIX
#endif /* SVORPOSIX */
#endif /* ATTSV */

#ifdef POSIX
#ifndef SVORPOSIX
#define SVORPOSIX
#endif /* SVORPOSIX */
#endif /* POSIX */

/*
  The symbol SVR4ORPOSIX is defined for both AT&T System V R4 and POSIX
  compilations to make it easier to select items that System V R4 and POSIX
  have in common, but which BSD, V7, and System V R3 and earlier, etc, do
  not have.
*/
#ifdef POSIX
#ifndef SVR4ORPOSIX
#define SVR4ORPOSIX
#endif /* SVR4ORPOSIX */
#endif /* POSIX */
#ifdef SVR4
#ifndef SVR4ORPOSIX
#define SVR4ORPOSIX
#endif /* SVR4ORPOSIX */
#endif /* SVR4 */

/*
  The symbol BSD44ORPOSIX is defined for both 4.4BSD and POSIX compilations
  to make it easier to select items that 4.4BSD and POSIX have in common,
  but which System V, BSD, V7, etc, do not have.
*/
#ifdef BSD44
#ifndef BSD44ORPOSIX
#define BSD44ORPOSIX
#endif /* BSD44ORPOSIX */
#endif /* BSD44 */

#ifdef POSIX
#ifndef BSD44ORPOSIX
#define BSD44ORPOSIX
#endif /* BSD44ORPOSIX */
#endif /* POSIX */

#ifdef UNIX				/* For items common to OS/2 and UNIX */
#ifndef OS2ORUNIX
#define OS2ORUNIX
#endif /* OS2ORUNIX */
#endif /* UNIX */

#ifdef UNIX				/* For items common to VMS and UNIX */
#define VMSORUNIX
#else
#ifdef VMS
#define VMSORUNIX
#ifndef OS2ORVMS
#define OS2ORVMS
#endif /* OS2ORVMS */
#endif /* VMS */
#endif /* UNIX */

#ifndef UNIXOROSK			/* UNIX or OS-9 (or OS-9000) */
#ifdef UNIX
#define UNIXOROSK
#else
#ifdef OSK
#define UNIXOROSK
#endif /* OSK */
#endif /* UNIX */
#endif /* UNIXOROSK */

#ifndef OSKORUNIX
#ifdef UNIXOROSK
#define OSKORUNIX
#endif /* UNIXOROSK */
#endif /* OSKORUNIX */

#ifdef OS2
#define CK_ANSIC            /* OS/2 supports ANSIC and more extensions */
#endif /* OS2 */

#ifdef OSF50		    /* Newer OSF/1 versions imply older ones */
#ifndef OSF40
#define OSF40
#endif /* OSF40 */
#endif /* OSF50 */

#ifdef OSF40
#ifndef OSF32
#define OSF32
#endif /* OSF32 */
#endif /* OSF40 */

#ifdef OSF32
#ifndef OSF30
#define OSF30
#endif /* OSF30 */
#endif /* OSF32 */

#ifdef OSF30
#ifndef OSF20
#define OSF20
#endif /* OSF20 */
#endif /* OSF30 */

#ifdef OSF20
#ifndef OSF10
#define OSF10
#endif /* OSF10 */
#endif /* OSF20 */

#ifdef __DECC				/* For DEC Alpha VMS or OSF/1 */
#ifndef CK_ANSIC
#define CK_ANSIC			/* Even with /stand=vaxc, need ansi */
#endif /* CKANSIC */
#ifndef SIG_V
#define SIG_V				/* and signal type is VOID */
#endif /* SIG_V */
#ifndef CK_ANSILIBS
#define CK_ANSILIBS			/* (Martin Zinser, Feb 1995) */
#endif /* CK_ANSILIBS */
#ifndef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 1
#endif /* _POSIX_C_SOURCE */
#endif	/* __DECC */

#ifdef VMS
#ifdef __ia64				/* VMS on Itanium */
#ifndef VMSI64
#define VMSI64
#endif	/* VMSI64 */
#endif	/* __ia64 */
#ifndef VMS64BIT			/* 64-bit VMS on Itanium or Alpha */
#ifdef __ia64
#define VMS64BIT
#else
#ifdef __ALPHA
#define VMS64BIT
#endif	/* __ia64 */
#endif	/* __ALPHA */
#endif	/* VMS64BIT */
#endif	/* VMS */

#ifdef apollo				/* May be ANSI-C, check further */
#ifdef __STDCPP__
#define CK_ANSIC			/* Yes, this is real ANSI-C */
#define SIG_V
#else
#define NOANSI				/* Nope, not ANSI */
#undef __STDC__				/* Even though it say it is! */
#define SIG_I
#endif /* __STDCPP__ */
#endif /* apollo */

#ifdef POSIX				/* -DPOSIX on cc command line */
#ifndef _POSIX_SOURCE			/* Implies _POSIX_SOURCE */
#define _POSIX_SOURCE
#endif /* _POSIX_SOURCE */
#endif /* POSIX */

/*
  ANSI C?  That is, do we have function prototypes, new-style
  function declarations, and parameter type checking and coercion?
*/
#ifdef MAC				/* MPW C is ANSI */
#ifndef NOANSI
#ifndef CK_ANSIC
#define CK_ANSIC
#endif /* CK_ANSIC */
#endif /* NOANSI */
#endif /* MAC */

#ifdef STRATUS				/* Stratus VOS */
#ifndef CK_ANSIC
#define CK_ANSIC
#endif /* CK_ANSIC */
#ifndef NOSTAT
#define NOSTAT
#endif /* NOSTAT */
#endif /* STRATUS */

#ifndef NOANSI
#ifdef __STDC__				/* __STDC__ means ANSI C */
#ifndef CK_ANSIC
#define CK_ANSIC
#endif /* CK_ANSIC */
#endif /* __STDC__ */
#endif /* NOANSI */
/*
  _PROTOTYP() is used for forward declarations of functions so we can have
  parameter and return value type checking if the compiler offers it.
  __STDC__ should be defined by the compiler only if function prototypes are
  allowed.  Otherwise, we get old-style forward declarations.  Our own private
  CK_ANSIC symbol tells whether we use ANSI C prototypes.  To force use of
  ANSI prototypes, include -DCK_ANSIC on the cc command line.  To disable the
  use of ANSI prototypes, include -DNOANSI.
*/
#ifdef CK_ANSIC
#define _PROTOTYP( func, parms ) func parms
#else /* Not ANSI C */
#define _PROTOTYP( func, parms ) func()
#endif /* CK_ANSIC */

#ifndef OS2
#ifdef NOLOGIN				/* NOLOGIN implies NOIKSD */
#ifndef NOIKSD
#define NOIKSD
#endif /* NOIKSD */
#endif /* NOLOGIN */
#endif /* OS2 */

#ifdef NOIKSD				/* Internet Kermit Service Daemon */
#ifndef OS2
#ifndef NOPRINTFSUBST
#define NOPRINTFSUBST
#endif /* NOPRINTFSUBST */
#endif /* OS2 */
#ifndef NOLOGIN
#define NOLOGIN
#endif /* NOLOGIN */
#ifndef NOSYSLOG
#define NOSYSLOG
#endif /* NOSYSLOG */
#ifndef NOWTMP
#define NOWTMP
#endif /* NOWTMP */
#else
#ifndef IKSD
#ifdef OS2ORUNIX			/* Platforms where IKSD is supported */
#define IKSD
#endif /* OS2ORUNIX */
#endif /* IKSD */
#endif /* NOIKSD */

#ifdef IKSD				/* IKSD options... */
#ifndef IKSDCONF			/* IKSD configuration file */
#ifdef UNIX
#define IKSDCONF "/etc/iksd.conf"
#else
#ifdef OS2
#define IKSDCONF "iksd.ksc"
#endif /* OS2 */
#endif /* UNIX */
#endif /* IKSDCONF */
#ifndef NOIKSDB
#ifndef IKSDB				/* IKSD database */
#ifdef UNIX
#define IKSDB
#define IK_LCKTRIES 16			/* How many times to try to get lock */
#define IK_LCKSLEEP 1			/* How long to sleep between tries */
#define IK_LOCKFILE "iksd.lck"		/* Database lockfilename */
#define IK_DBASEDIR "/var/log/"		/* Database directory */
#define IK_DBASEFIL "iksd.db"		/* Database filename */
#else /* UNIX */
#ifdef OS2
#define IKSDB
#ifndef NOFTRUNCATE			/* ftruncate() not available */
#define NOFTRUNCATE
#endif /* NOFTRUNCATE */
#define IK_LCKTRIES 16			/* How many times to try to get lock */
#define IK_LCKSLEEP 1			/* How long to sleep between tries */
#define IK_LOCKFILE "iksd.lck"		/* DB lockfilename (in systemroot) */
#define IK_DBASEFIL "iksd.db"		/* Database filename */
#endif /* OS2 */
#endif /* UNIX */
#endif /* IKSDB */
#endif /* NOIKSDB */
#endif /* IKSD */
/*
  Substitutes for printf() and friends used in IKS to compensate for
  lack of a terminal driver, mainly to supply CR after LF.
*/
#ifndef NOPRINTFSUBST
#ifdef MAC
/*
 * The MAC doesn't use standard stdio routines.
 */
#undef getchar
#define getchar()   mac_getchar()
#undef putchar
#define putchar(c)	mac_putchar(c)
#define printf		mac_printf
#define perror		mac_perror
#define puts		mac_puts
extern int mac_putchar (int c);
extern int mac_puts (const char *string);
extern int mac_printf(const char *, ...);
extern int mac_getchar (void);
#endif /* MAC */

#ifdef OS2
#define printf Vscrnprintf
#define fprintf Vscrnfprintf
extern int Vscrnprintf(const char *, ...);
extern int Vscrnprintw(const char *, ...);
extern int Vscrnfprintf(FILE *, const char *, ...);
#ifdef putchar
#undef putchar
#endif /* putchar */
#define putchar(x) Vscrnprintf("%c",x)
#define perror(x)  Vscrnperror(x)
#endif /* OS2 */

#ifndef CKWART_C
#ifdef UNIX
#ifndef pdp11
#ifndef CKXPRINTF
#define CKXPRINTF
#endif /* CKXPRINTF */
#endif /* pdp11 */
#endif /* UNIX */
#endif /* CKWART_C */
#endif /* NOPRINTFSUBST */

#ifdef CKXPRINTF
#define printf ckxprintf
#define fprintf ckxfprintf
#ifdef CK_ANSIC
_PROTOTYP(int ckxprintf,(const char *, ...));
#ifdef NEXT
_PROTOTYP(void ckxperror,(const char *));
#else
#ifdef CK_SCOV5
_PROTOTYP(void ckxperror,(const char *));
#else
_PROTOTYP(int ckxperror,(const char *));
#endif /* CK_SCOV5 */
#endif /* NEXT */
_PROTOTYP(int ckxfprintf,(FILE *, const char *, ...));
#endif /* CK_ANSIC */
#ifdef putchar
#undef putchar
#endif /* putchar */
#define putchar(x) ckxprintf("%c",x)
#ifdef putc
#undef putc
#endif /* putc */
#define putc(a,b) ckxfprintf(b,"%c",a)
#define perror(x)  ckxperror(x)
#endif /* CKXPRINTF */

/*
  Altos-specific items: 486, 586, 986 models...
*/
#ifdef A986
#define M_VOID
#define void int
#define CHAR char
#define SIG_I
#endif /* A986 */

/* Signal handling */

#ifdef QNX
#ifndef CK_POSIX_SIG
#define CK_POSIX_SIG
#endif /* CK_POSIX_SIG */
#endif /* QNX */

/* Void type */

#ifndef VOID				/* Used throughout all C-Kermit */
#ifdef CK_ANSIC				/* modules... */
#define VOID void
#else
#define VOID int
#endif /* CK_ANSIC */
#endif /* VOID */

/* Const type */

#ifndef CONST
#ifdef OSK
#ifdef _UCC
#define CONST const
#else
#define CONST
#endif /* _UCC */
#else  /* !OSK */
#ifdef CK_SCO32V4
#define CONST
#else
#ifdef CK_ANSIC
#define CONST const
#else
#define CONST
#endif /* CK_ANSIC */
#endif /* CK_SCO32V4 */
#endif /* OSK */
#endif /* CONST */

/* Signal type */

#ifndef SIG_V				/* signal() type, if not def'd yet */
#ifndef SIG_I
#ifdef OS2
#define SIG_V
#else
#ifdef POSIX
#define SIG_V
#else
#ifdef SVR3				/* System V R3 and later */
#define SIG_V
#else
#ifdef SUNOS4				/* SUNOS V 4.0 and later */
#ifndef sun386
#define SIG_V
#else
#define SIG_I
#endif /* sun386 */
#else
#ifdef NEXT				/* NeXT */
#define SIG_V
#else
#ifdef AIX370
#include <signal.h>
#define SIG_V
#define SIGTYP __SIGVOID		/* AIX370 */
#else
#ifdef STRATUS				/* Stratus VOS */
#define SIG_V
#else
#ifdef MAC
#define SIGTYP long
#define SIG_I
#ifndef MPW33
#define SIG_IGN 0
#endif /* MPW33 */
#define SIGALRM 1
#ifndef MPW33
#define SIGINT  2
#endif /* MPW33 */
#else /* Everything else */
#define SIG_I
#endif /* MAC */
#endif /* STRATUS */
#endif /* AIX370 */
#endif /* NEXT */
#endif /* SUNOS4 */
#endif /* SVR3 */
#endif /* POSIX */
#endif /* OS2 */
#endif /* SIG_I */
#endif /* SIG_V */

#ifdef SIG_I
#define SIGRETURN return(0)
#ifndef SIGTYP
#define SIGTYP int
#endif /* SIGTYP */
#endif /* SIG_I */

#ifdef SIG_V
#define SIGRETURN return
#ifndef SIGTYP
#define SIGTYP void
#endif /* SIGTYP */
#endif /* SIG_V */

#ifdef NT
#ifndef SIGTYP
#define SIGTYP void
#endif /* SIGTYP */
#endif /* NT */

#ifndef SIGTYP
#define SIGTYP int
#endif /* SIGTYP */

#ifndef SIGRETURN
#define SIGRETURN return(0)
#endif /* SIGRETURN */

#ifdef CKNTSIG
/* This does not work, so don't use it. */
#define signal ckntsignal
SIGTYP (*ckntsignal(int type, SIGTYP (*)(int)))(int);
#endif /* CKNTSIG */

/* We want all characters to be unsigned if the compiler supports it */

#ifdef KUI
#ifdef CHAR
#undef CHAR
#endif /* CHAR */
#define CHAR unsigned char
#else
#ifdef PROVX1
typedef char CHAR;
/* typedef long LONG; */
typedef int void;
#else
#ifdef MINIX
typedef unsigned char CHAR;
#else
#ifdef V7
typedef char CHAR;
#else
#ifdef C70
typedef char CHAR;
/* typedef long LONG; */
#else
#ifdef BSD29
typedef char CHAR;
/* typedef long LONG; */
#else
#ifdef datageneral
#define CHAR unsigned char			/* 3.22 compiler */
#else
#ifdef HPUX
#define CHAR unsigned char
#else
#ifdef OS2
#ifdef NT
#define CHAR unsigned char
#else /* NT */
#ifdef CHAR
#undef CHAR
#endif /* CHAR */
typedef unsigned char CHAR;
#endif /* NT */
#else /* OS2 */
#ifdef VMS
typedef unsigned char CHAR;
#else
#ifdef CHAR
#undef CHAR
#endif /* CHAR */
typedef unsigned char CHAR;
#endif /* VMS */
#endif /* OS2 */
#endif /* HPUX */
#endif /* datageneral */
#endif /* BSD29 */
#endif /* C70 */
#endif /* V7 */
#endif /* MINIX */
#endif /* PROVX1 */
#endif /* KUI */

union ck_short {			/* Mainly for Unicode */
    USHORT x_short;
    CHAR x_char[2];
};

#ifdef MAC				/* Macintosh file routines */
#ifndef CKWART_C			/* But not in "wart"... */
#ifdef feof
#undef feof
#endif /* feof */
#define feof mac_feof
#define rewind mac_rewind
#define fgets mac_fgets
#define fopen mac_fopen
#define fclose mac_fclose
int mac_feof();
void mac_rewind();
char *mac_fgets();
FILE *mac_fopen();
int mac_fclose();
#endif /* CKCPRO_W */
#endif /* MAC */
/*
   Systems whose mainline modules have access to the communication-line
   file descriptor, ttyfd.
*/
#ifndef CK_TTYFD
#ifdef UNIX
#define CK_TTYFD
#else
#ifdef OS2
#define CK_TTYFD
#else
#ifdef VMS
#define CK_TTYFD
#endif /* VMS */
#endif /* OS2 */
#endif /* UNIX */
#endif /* CK_TTYFD */

/* Systems where we can get our own process ID */

#ifndef CK_PID
#ifdef UNIX
#define CK_PID
#endif /* UNIX */
#ifdef OS2
#define CK_PID
#endif /* OS2 */
#ifdef VMS
#define CK_PID
#endif /* VMS */
#endif /* CK_PID */

/* Systems that support the Microsoft Telephony API (TAPI) */

#ifndef NODIAL
#ifndef CK_TAPI
#ifdef NT
#define CK_TAPI
#endif /* NT */
#endif /* CK_TAPI */
#endif /* NODIAL */

#ifndef NONZXPAND
#ifndef NZXPAND
#ifdef OS2ORUNIX
#define NZXPAND
#else
#ifdef VMS
#define NZXPAND
#else
#ifdef datageneral
#define NZXPAND
#else
#ifdef OSK
#define NZXPAND
#endif /* OSK */
#endif /* datageneral */
#endif /* VMS */
#endif /* OS2ORUNIX */
#endif /* NZXPAND */
#else
#ifdef NZXPAND
#undef NZXPAND
#endif /* NZXPAND */
#endif /* NONZXPAND */

/* nzxpand() option flags */

#define ZX_FILONLY   1			/* Match only regular files */
#define ZX_DIRONLY   2			/* Match only directories */
#define ZX_RECURSE   4			/* Descend through directory tree */
#define ZX_MATCHDOT  8			/* Match "dot files" */
#define ZX_NOBACKUP 16			/* Don't match "backup files" */
#define ZX_NOLINKS  32			/* Don't follow symlinks */

#ifndef NZXPAND
#define nzxpand(a,b) zxpand(a)
#endif /* NZXPAND */

#ifndef NOZXREWIND
#ifndef ZXREWIND			/* Platforms that have zxrewind() */
#ifdef OS2ORUNIX
#define ZXREWIND
#else
#ifdef VMS
#define ZXREWIND
#else
#ifdef datageneral
#define ZXREWIND
#else
#ifdef OSK
#define ZXREWIND
#else
#ifdef STRATUS
#define ZXREWIND
#endif /* STRATUS */
#endif /* OSK */
#endif /* datageneral */
#endif /* VMS */
#endif /* OS2ORUNIX */
#endif /* ZXREWIND */
#else
#ifdef ZXREWIND
#undef ZXREWIND
#endif /* ZXREWIND */
#endif /* NOZXREWIND */

/* Temporary-directory-for-RECEIVE feature ... */
/* This says whether we have the isdir() function defined. */

#ifdef UNIX				/* UNIX has it */
#ifndef CK_TMPDIR
#ifndef pdp11
#define CK_TMPDIR
#define TMPDIRLEN 256
#endif /* pdp11 */
#endif /* CK_TMPDIR */
#endif /* UNIX */

#ifdef VMS				/* VMS too */
#ifndef CK_TMPDIR
#define CK_TMPDIR
#define TMPDIRLEN 256
#endif /* CK_TMPDIR */
#endif /* VMS */

#ifdef OS2				/* OS two too */
#ifndef CK_TMPDIR
#define CK_TMPDIR
#define TMPDIRLEN 129
#endif /* CK_TMPDIR */
#endif /* OS2 */

#ifdef STRATUS				/* Stratus VOS too. */
#ifndef CK_TMPDIR
#define CK_TMPDIR
#define TMPDIRLEN 256
#endif /* CK_TMPDIR */
#endif /* STRATUS */

#ifdef OSK				/* OS-9 too */
#ifndef CK_TMPDIR
#define CK_TMPDIR
#define TMPDIRLEN 256
#endif /* CK_TMPDIR */
#endif /* OSK */

#ifdef datageneral			/* AOS/VS too */
#ifndef CK_TMPDIR
#define CK_TMPDIR
#define TMPDIRLEN 256
#endif /* CK_TMPDIR */
#endif /* datageneral */

#ifdef CK_TMPDIR			/* Needs command parser */
#ifdef NOICP
#undef CK_TMPDIR
#endif /* NOICP */
#endif /* CK_TMPDIR */

/* Whether to include <sys/time.h> */

#ifndef NOTIMEH				/* <time.h> */
#ifndef TIMEH
#define TIMEH
#endif /* TIMEH */
#endif /* NOTIMEH */

#ifndef NOSYSTIMEH			/* <sys/time.h> */
#ifndef SYSTIMEH
#ifdef UNIX				/* UNIX */
#ifdef SVORPOSIX			/* System V or POSIX... */
#ifdef M_UNIX
#define SYSTIMEH
#else
#ifdef SCO_32V4
#define SYSTIMEH
#else
#ifdef OXOS
#define SYSTIMEH
#else
#ifdef BSD44
#define SYSTIMEH
#else
#ifdef __linux__
#define SYSTIMEH
#else
#ifdef AIXRS
#ifndef AIX41
#define SYSTIMEH
#endif /* AIX41 */
#else
#ifdef IRIX60
#define SYSTIMEH
#else
#ifdef I386IX
#define SYSTIMEH
#else
#ifdef SV68R3V6
#define SYSTIMEH
#endif /* SV68R3V6 */
#endif /* I386IX */
#endif /* IRIX60 */
#endif /* AIXRS */
#endif /* __linux__ */
#endif /* BSD44 */
#endif /* OXOS */
#endif /* SCO_32V4 */
#endif /* M_UNIX */

#else  /* Not SVORPOSIX */

#ifndef BELLV10				/* All but these... */
#ifndef PROVX1
#ifndef V7
#ifndef BSD41
#ifndef COHERENT
#define SYSTIMEH
#endif /* COHERENT */
#endif /* BSD41 */
#endif /* V7 */
#endif /* PROVX1 */
#endif /* BELLV10 */
#endif /* SVORPOSIX */
#endif /* UNIX */
#endif /* SYSTIMEH */
#endif /* NOSYSTIMEH */

#ifndef NOSYSTIMEBH			/* <sys/timeb.h> */
#ifndef SYSTIMEBH
#ifdef OSF
#define SYSTIMEBH
#else
#ifdef COHERENT
#define SYSTIMEBH
#else
#ifdef BSD41
#define SYSTIMEBH
#else
#ifdef BSD29
#define SYSTIMEBH
#else
#ifdef TOWER1
#define SYSTIMEBH
#else
#ifdef FT21
#define SYSTIMEBH
#else
#ifdef BELLV10
#define SYSTIMEBH
#endif /* BELLV10 */
#endif /* FT21 */
#endif /* TOWER1 */
#endif /* BSD29 */
#endif /* BSD41 */
#endif /* COHERENT */
#endif /* OSF */
#endif /* SYSTIMEBH */
#endif /* NOSYSTIMEBH */

/*
 Debug and transaction logging is included automatically unless you define
 NODEBUG or NOTLOG.  Do this if you want to save the space and overhead.
 (Note, in version 4F these definitions changed from "{}" to the null string
 to avoid problems with semicolons after braces, as in: "if (x) tlog(this);
 else tlog(that);"
*/
#ifndef NODEBUG
#ifndef DEBUG
#define DEBUG
#endif /* DEBUG */
#else
#ifdef DEBUG
#undef DEBUG
#endif /* DEBUG */
#endif /* NODEBUG */

#ifdef NOTLOG
#ifdef TLOG
#undef TLOG
#endif /* TLOG */
#else  /* NOTLOG */
#ifndef TLOG
#define TLOG
#endif /* TLOG */
#endif /* NOTLOG */

/* debug() macro style selection. */

#ifdef VMS
#ifndef IFDEBUG
#define IFDEBUG
#endif /* IFDEBUG */
#endif /* VMS */

#ifdef MAC
#ifndef IFDEBUG
#define IFDEBUG
#endif /* IFDEBUG */
#endif /* MAC */

#ifdef OS2
#ifndef IFDEBUG
#define IFDEBUG
#endif /* IFDEBUG */
#endif /* OS2 */

#ifdef OXOS				/* tst is faster than jsr */
#ifndef IFDEBUG
#define IFDEBUG
#endif /* IFDEBUG */
#endif /* OXOS */

#ifndef CKCMAI
extern int deblog;
extern int debok;
extern int debxlen;
extern int matchdot;
extern int tt_bell;
#endif /* CKCMAI */

#ifdef OS2
_PROTOTYP( void bleep, (short) );
#else /* OS2 */
#define bleep(x) if(tt_bell)putchar('\07')
#endif /* OS2 */

#ifndef BEOSORBEBOX
#ifdef BEBOX				/* This was used only for DR7 */
#define BEOSORBEBOX
#else
#ifdef BEOS				/* This is used for BeOS 4.x */
#define BEOSORBEBOX
#endif /* BEOS */
#endif /* BEBOX */
#endif /* BEOSORBEBOX */

#ifdef NOICP
#ifdef TLOG
#undef TLOG
#endif /* TLOG */
#endif /* NOICP */

#ifndef TLOG
#define tlog(a,b,c,d)
#else
#ifndef CKCMAI
/* Debugging included.  Declare debug log flag in main program only. */
extern int tralog, tlogfmt;
#endif /* CKCMAI */
_PROTOTYP(VOID dotlog,(int, char *, char *, long));
#define tlog(a,b,c,d) if (tralog && tlogfmt) dotlog(a,b,c,d)
_PROTOTYP(VOID doxlog,(int, char *, long, int, int, char *));
#endif /* TLOG */

/* Formats for debug() and tlog() */

#define F000 0
#define F001 1
#define F010 2
#define F011 3
#define F100 4
#define F101 5
#define F110 6
#define F111 7

#ifdef __linux__
#ifndef LINUX
#define LINUX
#endif /* LINUX */
#endif /* __linux__ */

/* Platforms where small size is needed */

#ifdef pdp11
#define CK_SMALL
#endif /* pdp11 */

/* Can we use realpath()? */

#ifndef NOREALPATH
#ifdef pdp11
#define NOREALPATH
#endif /* pdp11 */
#endif /* NOREALPATH */

#ifndef NOREALPATH
#ifdef UNIX
#ifdef HPUX5
#define NOREALPATH
#else
#ifdef HPUX6
#define NOREALPATH
#else
#ifdef HPUX7
#define NOREALPATH
#else
#ifdef HPUX8
#define NOREALPATH
#else
#ifdef SV68R3V6
#define NOREALPATH
#else
#ifdef XENIX
#define NOREALPATH
#else
#ifdef CK_SCO32V4
#define NOREALPATH
#else
#ifdef CK_SCOV5
#define NOREALPATH
#else
#ifdef OSF32
#define NOREALPATH
#else
#ifdef OSF30
#define NOREALPATH
#else
#ifdef ultrix
#define NOREALPATH
#else
#ifdef COHERENT
#define NOREALPATH
#endif /* COHERENT */
#endif /* ultrix */
#endif /* OSF30 */
#endif /* OSF32 */
#endif /* CK_SCOV5 */
#endif /* CK_SCO32V4 */
#endif /* XENIX */
#endif /* SV68R3V6 */
#endif /* HPUX8 */
#endif /* HPUX7 */
#endif /* HPUX6 */
#endif /* HPUX5 */
#endif /* NOREALPATH */

#ifndef NOREALPATH
#ifndef CKREALPATH
#define CKREALPATH
#endif /* NOREALPATH */
#endif /* CKREALPATH */
#endif /* UNIX */

#ifdef CKREALPATH
#ifdef OS2ORUNIX
#ifndef CKROOT
#define CKROOT
#endif /* CKROOT */
#endif /* OS2ORUNIX */
#endif /* CKREALPATH */

/* CKSYMLINK should be set only if we can use readlink() */

#ifdef UNIX
#ifndef NOSYMLINK
#ifndef CKSYMLINK
#define CKSYMLINK
#endif /* NOSYMLINK */
#endif /* CKSYMLINK */
#endif /* UNIX */

/* Platforms where we can use lstat() instead of stat() (for symlinks) */
/* This should be set only if both lstat() and readlink() are available */

#ifndef NOLSTAT
#ifndef NOSYMLINK
#ifndef USE_LSTAT
#ifdef UNIX
#ifdef CKSYMLINK
#ifdef SVR4				/* SVR4 has lstat() */
#define USE_LSTAT
#else
#ifdef BSD42				/* 4.2BSD and 4.3BSD have it */
#define USE_LSTAT			/* This should include old HPUXs */
#else
#ifdef BSD44				/* 4.4BSD has it */
#define USE_LSTAT
#else
#ifdef LINUX				/* LINUX has it */
#define USE_LSTAT
#else
#ifdef SUNOS4				/* SunOS has it */
#define USE_LSTAT
#endif /* SUNOS4 */
#endif /* LINUX */
#endif /* BSD44 */
#endif /* BSD42 */
#endif /* SVR4 */
#endif /* CKSYMLINK */
#endif /* UNIX */
#endif /* USE_LSTAT */
#endif /* NOSYMLINK */
#endif /* NOLSTAT */

#ifdef NOLSTAT
#ifdef USE_LSTAT
#undef USE_LSTAT
#endif /* USE_LSTAT */
#endif /* NOLSTAT */

#ifndef NOTTYLOCK			/* UNIX systems that have ttylock() */
#ifndef USETTYLOCK
#ifdef AIXRS				/* AIX 3.1 and later */
#define USETTYLOCK
#else
#ifdef USE_UU_LOCK			/* FreeBSD or other with uu_lock() */
#define USETTYLOCK
#else
#ifdef HAVE_BAUDBOY			/* Red Hat Linux >= 7.2 */
#define USETTYLOCK
#endif /* HAVE_BAUDBOY */
#endif /* USE_UU_LOCK */
#endif /* AIXRS */
#endif /* USETTYLOCK */
#endif /* NOTTYLOCK */

/* Kermit feature selection */

#ifndef NOSPL
#ifndef NOCHANNELIO			/* Channel-based file i/o package */
#ifndef CKCHANNELIO
#ifdef UNIX
#define CKCHANNELIO
#else
#ifdef OS2
#define CKCHANNELIO
#else
#ifdef VMS
#define CKCHANNELIO
#else
#ifdef STRATUS
#define CKCHANNELIO
#endif /* STRATUS */
#endif /* VMS */
#endif /* OS2 */
#endif /* UNIX */
#endif /* CKCHANNELIO */
#endif /* NOCHANNELIO */
#endif /* NOSPL */

#ifndef NOCKEXEC			/* EXEC command */
#ifndef NOPUSH
#ifndef CKEXEC
#ifdef UNIX				/* UNIX can do it */
#define CKEXEC
#endif /* UNIX */
#endif /* CKEXEC */
#endif /* NOPUSH */
#endif /* NOCKEXEC */

#ifndef NOFAST				/* Fast Kermit protocol by default */
#ifndef CK_FAST
#ifdef UNIX
#define CK_FAST
#else
#ifdef VMS
#define CK_FAST
#else
#ifdef OS2
#define CK_FAST
#endif /* OS2 */
#endif /* VMS */
#endif /* UNIX */
#endif /* CK_FAST */
#endif /* NOFAST */

#ifdef UNIX				/* Transparent print */
#ifndef NOXPRINT
#ifndef XPRINT
#define XPRINT
#endif /* XPRINT */
#endif /* NOXPRINT */
#endif /* UNIX */

#ifndef NOHWPARITY			/* Hardware parity */
#ifndef HWPARITY
#ifdef SVORPOSIX			/* System V or POSIX can have it */
#define HWPARITY
#else
#ifdef SUNOS41				/* SunOS 4.1 can have it */
#define HWPARITY
#else
#ifdef OS2				/* K95 can have it */
#define HWPARITY
#endif /* OS2 */
#endif /* SUNOS41 */
#endif /* SVORPOSIX */
#endif /* HWPARITY */
#endif /* NOHWPARITY */

#ifndef NOSTOPBITS			/* Stop-bit selection */
#ifndef STOPBITS
#ifdef OS2ORUNIX
/* In Unix really this should only be if CSTOPB is defined. */
/* But we don't know that yet. */
#define STOPBITS
#else
#ifdef TN_COMPORT
#define STOPBITS
#endif /* TN_COMPORT */
#endif /* OS2ORUNIX */
#endif /* STOPBITS */
#endif /* NOSTOPBITS */

#ifdef UNIX
#ifndef NETCMD				/* Can SET NETWORK TYPE COMMAND */
#define NETCMD
#endif /* NETCMD */
#endif /* UNIX */

/* Pty support, nonportable, available on a case-by-case basis */

#ifndef NOPTY
#ifdef NEXT				/* NeXTSTEP (tested on 3.1)*/
#define NETPTY
#else
#ifdef CK_SCOV5				/* SCO OSR5 (tested on 5.0.5)*/
#define NETPTY
#else
#ifdef QNX				/* QNX (tested on 4.25) */
#define NETPTY
#else
#ifdef SINIX                            /* Sinix (tested on 5.42) */
#define NETPTY
#else
#ifdef DGUX540				/* DG/UX 5.4++ (tested on 5.4R4.11) */
#define NETPTY
#else
#ifdef OSF32				/* Digital Unix 3.2 */
#define NETPTY
#else
#ifdef OSF40				/* Digital Unix 4.0 / Tru64 */
#define NETPTY
#else
#ifdef IRIX60				/* IRIX 6.0 (not earlier) */
#define NETPTY
#else
#ifdef HPUX10				/* HPUX 10.00 or later */
#define NETPTY
#ifndef HAVE_PTYTRAP
#define HAVE_PTYTRAP
#endif /* HAVE_PTYTRAP */
#else
#ifdef HPUX9				/* HPUX 9.00 (not earlier) */
#define NETPTY
#ifndef HAVE_PTYTRAP
#define HAVE_PTYTRAP
#endif /* HAVE_PTYTRAP */
#else
#ifdef BSD44				/* BSD44, {Net,Free,Open}BSD */
#define NETPTY
#else
#ifdef BSDI				/* BSDI/OS (tested in 4) */
#define NETPTY
#else
#ifdef SOLARIS				/* Solaris (tested in 2.5) */
#define NETPTY
#else
#ifdef UW7				/* Unixware 7 */
#define NETPTY
#else
#ifdef SUNOS41				/* SunOS (tested in 4.1.3) */
#define NETPTY
#else
#ifdef AIX41				/* AIX 4.1 and later */
#define NETPTY
#else
#ifdef LINUX				/* Linux */
#define NETPTY
#endif /* LINUX */
#endif /* AIX41 */
#endif /* SUNOS41 */
#endif /* UW7 */
#endif /* SOLARIS */
#endif /* BSDI */
#endif /* BSD44 */
#endif /* HPUX9 */
#endif /* HPUX10 */
#endif /* IRIX60 */
#endif /* OSF40 */
#endif /* OSF32 */
#endif /* DGUX540 */
#endif /* SINIX */
#endif /* QNX */
#endif /* CK_SCOV5 */
#endif /* NEXT */

#else /* NOPTY */

#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#endif /* NOPTY */

#ifdef NETPTY                           /* NETCMD required for NETPTY */
#ifndef NETCMD
#define NETCMD
#endif /* NETCMD */
#endif /* NETPTY */

#ifndef CK_UTSNAME			/* Can we call uname()? */
#ifdef VMS
#define CK_UTSNAME
#else
#ifdef OS2
#define CK_UTSNAME
#else
#ifdef POSIX				/* It's in POSIX.1 */
#define CK_UTSNAME
#else
#ifdef SUNOS41				/* It's in SunOS 4.1 */
#define CK_UTSNAME
#else
#ifdef AIXRS				/* It's in AIX */
#define CK_UTSNAME
#else
#ifdef SVR4				/* It's in SVR4 (but not SVR3) */
#define CK_UTSNAME
#else
#ifdef HPUX				/* It's in HP-UX 5.00 and later */
#define CK_UTSNAME
#else
#ifdef OSF				/* It's in OSF/1 / Digital UNIX */
#define CK_UTSNAME
#else
#ifdef CK_SCOV5
#define CK_UTSNAME
#endif /* CK_SCOV5 */
#endif /* OSF */
#endif /* HPUX */
#endif /* SVR4 */
#endif /* AIXRS */
#endif /* SUNOS41 */
#endif /* POSIX */
#endif /* OS2 */
#endif /* VMS */
#endif /* CK_UTSNAME */

/* This section for anything that might use floating-point */

/* If the following causes trouble use -DFLOAT=float on the command line */

#ifdef NOSPL
#ifdef FNFLOAT
#undef FNFLOAT
#endif /* FNFLOAT */
#ifdef CKFLOAT
#undef CKFLOAT
#endif /* CKFLOAT */
#endif /* NOSPL */

#ifndef NOFLOAT

#ifndef CKFLOAT
#ifdef __alpha
/* Don't use double on 64-bit platforms -- bad things happen */
#define CKFLOAT float
#define CKFLOAT_S "float"
#else
#define CKFLOAT double
#define CKFLOAT_S "double"
#endif /* __alpha */
#endif /* CKFLOAT */

#ifndef NOGFTIMER			/* Floating-point timers */
#ifndef GFTIMER
#ifdef UNIX				/* For UNIX */
#define GFTIMER
#endif /* UNIX */
#ifdef VMS				/* VMS */
#ifndef OLD_VMS				/* 5.0 and later */
#define GFTIMER
#endif /* OLD_VMS */
#endif /* VMS */
#ifdef OS2				/* And K95 */
#define GFTIMER
#endif /* OS2 */
#ifdef STRATUS				/* And Stratus VOS */
#define GFTIMER
#endif /* STRATUS */
#endif /* GFTIMER */
#endif /* NOGFTIMER */

#ifndef NOSPL
#ifndef FNFLOAT				/* Floating-point math functions */
#ifdef VMS				/* defined by default in VMS */
#define FNFLOAT
#else
#ifdef OS2				/* and K95 */
#define FNFLOAT
#endif /* OS2 */
#endif /* VMS */
#endif /* FNFLOAT */
#endif /* NOSPL */

#else  /* NOFLOAT is defined */

#ifdef CKFLOAT
#undef CKFLOAT
#endif /* CKFLOAT */

#ifdef GFTIMER
#undef GFTIMER
#endif /* GFTIMER */

#ifdef FNFLOAT
#undef FNFLOAT
#endif /* FNFLOAT */

#endif /* NOFLOAT */

#ifdef GFTIMER				/* Fraction of second to use when */
#ifndef GFMINTIME			/* elapsed time is <= 0 */
#define GFMINTIME 0.005
#endif /* GFMINTIME */
#endif /* GFTIMER */

#ifndef CKCMAI
extern long ztmsec, ztusec;		/* Fraction of sec of current time */
#endif /* CKCMAI */

#ifndef NOUNPREFIXZERO			/* Allow unprefixing of  NUL (0) */
#ifndef UNPREFIXZERO			/* in file-transfer packets */
#define UNPREFIXZERO
#endif /* UNPREFIXZERO */
#endif /* NOUNPREFIXZERO */

#ifdef CK_SMALL
#define NOCAL				/* Calibrate */
#endif /* CK_SMALL */

#ifndef NOPATTERNS			/* Filetype matching patterns */
#ifndef PATTERNS
#ifndef VMS
#ifndef CK_SMALL
#define PATTERNS
#endif /* CK_SMALL */
#endif /* VMS */
#endif /* PATTERNS */
#endif /* NOPATTERNS */

#ifndef NOCAL
#ifndef CALIBRATE
#define CALIBRATE
#endif /* CALIBRATE */
#else
#ifdef CALIBRATE
#undef CALIBRATE
#endif /* CALIBRATE */
#endif /* NOCAL */

#ifndef NORECURSE			/* Recursive directory traversal */
#ifndef RECURSIVE
#ifdef VMS
#define RECURSIVE
#else
#ifdef OS2ORUNIX
#ifndef CK_SMALL
#define RECURSIVE
#endif /* CK_SMALL */
#else
#ifdef STRATUS
#define RECURSIVE
#else
#ifdef OSK
#define RECURSIVE
#endif /* OSK */
#endif /* STRATUS */
#endif /* OS2ORUNIX */
#endif /* VMS */
#endif /* RECURSIVE */
#endif /* NORECURSE */

#ifndef CK_SMALL			/* Enable file-transfer tuning code */
#ifndef CKTUNING			/* in which more code is added */
#ifndef NOTUNING			/* to avoid function calls, etc */
#define CKTUNING
#endif /* NOTUNING */
#endif /* CKTUNING */
#endif /* CK_SMALL */

#ifndef NOURL				/* Parse URLs in SET HOST, etc */
#define CK_URL
#define NO_FTP_AUTH                     /* No auth "ftp" / "anonymous" */
#endif /* NOURL */

#ifndef NOTRIGGER
#ifndef CK_TRIGGER			/* Trigger string to exit CONNECT */
#ifdef OS2ORUNIX			/* OK for UNIX and K95 */
#define CK_TRIGGER
#else
#ifdef VMS				/* and VMS */
#define CK_TRIGGER
#else
#ifdef datageneral			/* and AOS/VS */
#define CK_TRIGGER
#endif /* datageneral */
#endif /* OS2ORUNIX */
#endif /* VMS */
#endif /* CK_TRIGGER */
#endif /* NOTRIGGER */

#ifdef CK_TRIGGER
#define TRIGGERS 8			/* How many triggers allowed */
#endif /* CK_TRIGGER */

#ifndef XLIMITS				/* CONNECT limits */
#ifdef OS2
#define XLIMITS
#endif /* OS2 */
#endif /* XLIMITS */

#ifdef NOFRILLS
#ifndef NOBROWSER
#define NOBROWSER
#endif /* NOBROWSER */
#ifndef NOFTP
#define NOFTP
#endif /* NOFTP */
#endif /* NOFRILLS */

#ifndef NOHTTP				/* HTTP features need... */
#ifdef NOICP				/* an interactive command parser */
#define NOHTTP
#endif /* NOICP */
#ifndef VMS
#ifndef OS2ORUNIX			/* K95 or UNIX (because of */
#define NOHTTP				/* time functions, time_t, etc) */
#endif /* OS2ORUNIX */
#endif /* VMS */
#endif /* NOHTTP */


#ifndef NONET
#ifdef TCPSOCKET

/* The HTTP code is not very portable, so it must be asked for with -DCKHTTP */

#ifndef NOHTTP
#ifndef CKHTTP
#ifdef SUNOS4				/* We can use it in SunOS */
#define CKHTTP
#endif /* SUNOS4 */
#ifdef SOLARIS				/* And in Solaris */
#define CKHTTP
#endif /* SOLARIS */
#ifdef LINUX				/* And Linux */
#define CKHTTP
#endif /* LINUX */
#ifdef HPUX10				/* And HP-UX 10 and above */
#define CKHTTP
#endif /* HPUX10 */
#ifdef OS2				/* And in K-95 */
#define CKHTTP
#endif /* OS2 */
#ifdef AIX41				/* In AIX 4.1 and higher */
#define CKHTTP
#endif /* AIX41 */
#ifdef UNIXWARE				/* In Unixware 2.1 and higher */
#define CKHTTP				/* and probably also in 1.x and 2.0 */
#endif /* UNIXWARE */
#ifdef CK_SCOV5
#define CKHTTP
#endif /* CK_SCOV5 */
#ifdef OSF                              /* And in OSF Digital UNIX/True 64 */
#define CKHTTP
#endif /* OSF */
#ifdef ultrix                           /* And in Ultrix Mips */
#ifdef mips
#define CKHTTP
#endif /* mips */
#endif /* ultrix */
/* Add more here... */
#endif /* CKHTTP */
#ifndef CKHTTP				/* If CKHTTP not defined yet */
#define NOHTTP				/* then define HOHTTP */
#endif /* CKHTTP */
#endif /* NOHTTP */

#ifdef NETCONN				/* Special "network" types... */
#ifndef NOLOCAL
#ifdef OS2
#ifndef NETFILE
#define NETFILE
#endif /* NETFILE */
#ifndef NOPUSH
#ifndef NETCMD
#define NETCMD
#endif /* NETCMD */
#endif /* NOPUSH */
#ifdef NT
#ifndef NETDLL
#define NETDLL
#endif /* NETDLL */
#endif /* NT */
#endif /* OS2 */
#endif /* NOLOCAL */
#endif /* NETCONN */

#ifndef NOFTP
#ifndef SYSFTP
#ifndef NEWFTP
#ifdef OS2ORUNIX
#define NEWFTP
#endif /* OS2ORUNIX */
#endif /* NEWFTP */
#endif /* SYSFTP */
#endif /* NOFTP */

#ifndef NOFTP
#ifdef NEWFTP
#ifdef SYSFTP
#undef SYSFTP
#endif /* SYSFTP */
#else /* NEWFTP */
#ifndef SYSFTP
#define SYSFTP
#endif /* SYSFTP */
#endif /* NEWFTP */
#else /* NOFTP */
#ifdef NEWFTP
#undef NEWFTP
#endif /* NEWFTP */
#ifdef SYSFTP
#undef SYSFTP
#endif /* SYSFTP */
#endif /* NOFTP */

#ifndef NOBROWSER
#ifdef UNIX
#ifndef BROWSER
#ifndef NOPUSH
#define BROWSER
#endif /* NOPUSH */
#endif /* BROWSER */
#endif /* UNIX */
#ifdef OS2
#ifndef BROWSER
#ifndef NOPUSH
#define BROWSER
#endif /* NOPUSH */
#endif /* BROWSER */
#endif /* OS2 */
#else
#ifdef BROWSER
#undef BROWSER
#endif /* BROWSER */
#endif /* NOBROWSER */

#else /* TCPSOCKET */
#ifndef NOHTTP                          /* HTTP requires TCPSOCKET */
#define NOHTTP
#endif /* NOHTTP */
#endif /* TCPSOCKET */
#endif /* NONET */

#ifdef TCPSOCKET
#ifndef NOCKGETFQHOST
#ifdef __ia64__
#define NOCKGETFQHOST
#else  /* __ia64__ */
#ifdef SV68
#define NOCKGETFQHOST
#else
#ifdef HPUXPRE65
#define NOCKGETFQHOST
#endif /* HPUXPRE65 */
#endif /* SV68 */
#endif /* __ia64 */
#endif /* NOCKGETFQHOST */
/*
  Regarding System V/68 (SV68) (from Gerry Belanger, Oct 2002):

    1) The gethostbyname() appears to return the actual host IP
       address in the hostent struct, instead of the expected pointer
       to the address. Hence the bogus address in the bcopy/memcopy.
       This is despite the header agreeing with our expectations.

    2) the expected argument swap between bcopy and memcopy
       did not happen.  What grief this might cause, I know not.
*/
#endif /* TCPSOCKET */

#ifdef TCPSOCKET
#ifdef OS2ONLY
#ifndef NOSOCKS
#define NOSOCKS
#endif /* NOSOCKS */
#endif /* OS2ONLY */
#ifdef NOSOCKS
#ifdef CK_SOCKS
#undef CK_SOCKS
#endif /* CK_SOCKS */
#ifdef CK_SOCKS5
#undef CK_SOCKS5
#endif /* CK_SOCKS5 */
#else /* NOSOCKS */
#ifdef NT
#ifndef CK_SOCKS
#define CK_SOCKS
#endif /* CK_SOCKS */
#endif /* NT */
#ifdef CK_SOCKS5			/* CK_SOCKS5 implies CK_SOCKS */
#ifndef CK_SOCKS
#define CK_SOCKS
#endif /* CK_SOCKS */
#endif /* CK_SOCKS5 */
#endif /* NOSOCKS */
#endif /* TCPSOCKET */

#ifdef TNCODE
#ifndef CK_AUTHENTICATION
#ifdef OS2
#ifdef _M_PPC
#define NO_KERBEROS
#define NO_SRP
#else /* _M_PPC */
#ifndef NO_SSL
#define CK_SSL
#define SSLDLL
#endif /* NO_SSL */
#endif /* _M_PPC */
#ifndef NO_KERBEROS
#define CK_KERBEROS
#define KRB4
#define KRB5
#define KRB524
#define KRB524_CONV
#ifdef NT
#ifndef _M_PPC
#ifndef _M_ALPHA
#ifndef NO_SSL_KRB5
#define SSL_KRB5
#endif /* NO_SSL_KRB5 */
#endif /* _M_ALPHA */
#endif /* _M_PPC */
#endif /* NT */
#endif /* NO_KERBEROS */
#ifndef NO_SRP
#define CK_SRP
#endif /* NO_SRP */
#define CK_AUTHENTICATION
#endif /* OS2 */
#endif /* CK_AUTHENTICATION */

#ifdef CK_AUTHENTICATION		/* Encryption must have Auth */
#ifndef CK_ENCRYPTION
#ifndef NO_ENCRYPTION
#ifdef OS2
#define CK_ENCRYPTION
#define CK_DES
#define CK_CAST
#endif /* OS2 */
#endif /* NO_ENCRYPTION */
#endif /* CK_ENCRYPTION */
#endif /* CK_AUTHENTICATION */

#ifdef NO_AUTHENTICATION                /* Allow authentication to be */
#ifdef CK_AUTHENTICATION                /* disabled in NT and OS/2    */
#undef CK_AUTHENTICATION
#endif /* CK_AUTHENTICATION */
#ifdef CK_KERBEROS
#undef CK_KERBEROS
#endif /* CK_KERBEROS */
#ifdef CK_SRP
#undef CK_SRP
#endif /* CK_SRP */
#ifdef CK_ENCRYPTION
#undef CK_ENCRYPTION
#endif /* CK_ENCRYPTION */
#endif /* NO_AUTHENTICATION */

#ifdef NO_ENCRYPTION                    /* Allow encryption to be */
#ifdef CK_ENCRYPTION                    /* disabled in NT and OS/2 */
#undef CK_ENCRYPTION
#endif /* CK_ENCRYPTION */
#endif /* NO_ENCRYPTION */

#ifdef CK_KERBEROS      /* Disable funcs not yet supported with Heimdal */
#ifdef KRB5
#ifndef HEIMDAL
#define KRB5_U2U
#endif /* HEIMDAL */
#endif /* KRB5 */
#endif /* CK_KERBEROS */

/*
  SSH section.  NOSSH disables any form of SSH support.
  If NOSSH is not defined (or implied by NONET, NOLOCAL, etc)
  then SSHBUILTIN is defined for K95 and SSHCMD is defined for UNIX.
  Then, if either SSHBUILTIN or SSHCMD is defined, ANYSSH is also defined.
*/

#ifndef NOSSH
#ifndef NO_SSL
#ifdef OS2ONLY
#define NOSSH
#endif /* OS2ONLY */
#ifdef NT
#ifndef CK_SSL
#define NOSSH
#endif /* CK_SSL */
#endif /* NT */
#else /* NO_SSL */
#define NOSSH
#endif /* NO_SSL */
#endif /* NOSSH */

#ifdef NOSSH				/* NOSSH */
#ifdef SSHBUILTIN			/* undefines any SSH selctors */
#undef SSHBUILTIN
#endif /* SSHBUILTIN */
#ifdef SFTP_BUILTIN
#undef SFTP_BUILTIN
#endif /* SFTP_BUILTIN */
#ifdef SSHCMD
#undef SSHCMD
#endif /* SSHCMD */
#ifdef ANYSSH
#undef ANYSSH
#endif /* ANYSSH */
#else  /* Not NOSSH */
#ifndef NOLOCAL
#ifdef OS2
#ifndef SSHBUILTIN
#define SSHBUILTIN
#endif /* SSHBUILTIN */
#else  /* Not OS2 */
#ifdef UNIX
#ifndef SSHCMD
#ifdef NETPTY
#ifndef NOPUSH
#define SSHCMD
#endif /* NOPUSH */
#endif /* NETPTY */
#endif /* SSHCMD */
#endif /* UNIX */
#endif /* OS2 */
#ifndef ANYSSH
#ifdef SSHBUILTIN
#define ANYSSH
#ifdef SSHCMD
#undef SSHCMD
#endif /* SSHCMD */
#else  /* SSHBUILTIN */
#ifdef SSHCMD
#define ANYSSH
#endif /* SSHCMD */
#endif /* SSHBUILTIN */
#endif /* ANYSSH */
#endif /* NOLOCAL */
#endif /* NOSSH */

/* This is in case #ifdef SSH is used anywhere in the K95 modules */

#ifdef OS2
#ifdef SSHBUILTIN
#ifndef SSH
#define SSH
#endif /* SSH */
#endif /* SSHBUILTIN */
#endif /* OS2 */

#ifdef CK_AUTHENTICATION
#define CK_SECURITY
#else
#ifdef CK_SSL
#define CK_AUTHENTICATION
#define CK_SECURITY
#endif /* CK_SSL */
#endif /* CK_AUTHENTICATION */

/* Environment stuff */

#ifndef OS2ORUNIX
#ifndef NOPUTENV
#define NOPUTENV
#endif /* NOPUTENV */
#endif /* OS2ORUNIX */

#ifndef CK_ENVIRONMENT
#ifdef OS2
#define CK_ENVIRONMENT
#else
#ifdef UNIX
#define CK_ENVIRONMENT
#else
#ifdef STRATUS
#define CK_ENVIRONMENT
#else
#ifdef VMS
#define CK_ENVIRONMENT
#endif /* VMS */
#endif /* STRATUS */
#endif /* UNIX */
#endif /* OS2 */
#endif /* CK_ENVIRONMENT */
#ifndef NOSNDLOC			/* RFC 779 SEND LOCATION */
#ifndef CK_SNDLOC
#define CK_SNDLOC
#endif /* CK_SNDLOC */
#endif /* NOSNDLOC */
#ifndef NOXDISPLOC			/* RFC 1096 XDISPLOC */
#ifndef CK_XDISPLOC
#define CK_XDISPLOC
#endif /* CK_XDISPLOC */
#endif /* NOXDISPLOC */
#ifndef NOFORWARDX
#ifndef NOPUTENV
#ifndef NOSELECT
#ifndef CK_FORWARD_X
#ifdef CK_AUTHENTICATION
#ifndef OS2ONLY
#define CK_FORWARD_X
#endif /* OS2ONLY */
#endif /* CK_AUTHENTICATION */
#endif /* CK_FORWARD_X */
#endif /* NOSELECT */
#endif /* NOPUTENV */
#endif /* NOFORWARDX */
#ifndef NO_COMPORT
#ifdef TCPSOCKET
#ifndef TN_COMPORT
#define TN_COMPORT
#endif /* TN_COMPORT */
#endif /* TCPSOCKET */
#endif /* NO_COMPORT */
#endif /* TNCODE */

#ifndef NOXFER
#ifndef NOCTRLZ				/* Allow SET FILE EOF CTRL-Z */
#ifndef CK_CTRLZ
#ifdef OS2ORUNIX
#define CK_CTRLZ
#endif /* OS2ORUNIX */
#endif /* CK_CTRLZ */
#endif /* NOCTRLZ */
#endif /* NOXFER */

#ifndef NOPERMS				/* File permissions in A packets */
#ifndef CK_PERMS
#ifdef UNIX
#define CK_PERMS
#else
#ifdef VMS
#define CK_PERMS
#endif /* VMS */
#endif /* UNIX */
#endif /* CK_PERMS */
#endif /* NOPERMS */
#ifdef CK_PERMS
#define CK_PERMLEN 24			/* Max length of sys-dependent perms */
#endif /* CK_PERMS */

#ifdef UNIX				/* NOSETBUF for everybody */
#ifndef NOSETBUF
#ifndef USE_SETBUF			/* This is the escape clause */
#define NOSETBUF
#endif /* USE_SETBUF */
#endif /* NOSETBUF */
#endif /* UNIX */

#ifndef USE_STRERROR			/* Whether to use strerror() */
#ifdef pdp11
#define USE_STRERROR
#endif /* pdp11 */
#endif /* USE_STRERROR */

#ifdef VMS				/* Features for all VMS builds */
#ifndef NOJC
#define NOJC
#endif /* NOJC */
#ifndef NOSETBUF
#define NOSETBUF
#endif /* NOSETBUF */
#ifndef DYNAMIC
#define DYNAMIC
#endif /* DYNAMIC */
#ifndef NOCURSES
#ifndef CK_CURSES
#define CK_CURSES
#endif /* CK_CURSES */
#endif /* NOCURSES */
#endif /* VMS */

#ifndef NOCKTIMERS			/* Dynamic timeouts */
#ifndef CK_TIMERS
#define CK_TIMERS
#endif /* CK_TIMERS */
#endif /* NOCKTIMERS */

#define CK_SPEED			/* Control-prefix removal */
#ifdef NOCKSPEED
#undef CK_SPEED
#endif /* NOCKSPEED */

#ifndef NOCKXXCHAR
#ifndef CKXXCHAR
#ifdef UNIX
#define CKXXCHAR
#else
#ifdef OS2
#define CKXXCHAR
#endif /* OS2 */
#endif /* UNIX */
#endif /* CKXXCHAR */
#endif /* NOCKXXCHAR */

#ifdef MAC				/* For Macintosh, no escape */
#define NOPUSH				/* to operating system */
#endif /* MAC */

/* Systems where we can call zmkdir() to create directories. */

#ifndef CK_MKDIR
#ifndef NOMKDIR

#ifdef UNIX
#ifndef pdp11
#define CK_MKDIR
#endif /* pdp11 */
#endif /* UNIX */

#ifdef OS2
#define CK_MKDIR
#endif /* OS2 */

#ifdef VMS
#define CK_MKDIR
#endif /* VMS */

#ifdef STRATUS
#define CK_MKDIR
#endif /* STRATUS */

#ifdef OSK
#define CK_MKDIR
#endif /* OSK */

#ifdef datageneral
#define CK_MKDIR
#endif /* datageneral */

#endif /* CK_MKDIR */
#endif /* NOMKDIR */

#ifdef NOMKDIR				/* Allow for command-line override */
#ifdef CK_MKDIR
#undef CK_MKDIR
#endif /* CK_MKDIR */
#endif /* NOMKDIR */

/* Systems for which we can enable the REDIRECT command automatically */
/*   As of 6.0.193, it should work for all UNIX... */

#ifndef NOREDIRECT
#ifndef CK_REDIR
#ifdef UNIX
#define CK_REDIR
#endif /* UNIX */
#ifdef OS2				/* As well as OS/2 and friends... */
#define CK_REDIR
#endif /* OS2 */
#endif /* CK_REDIR */
#endif /* NOREDIRECT */

#ifdef NOPUSH				/* But... REDIRECT command is not */
#ifdef CK_REDIR				/*  allowed if NOPUSH is defined. */
#undef CK_REDIR
#endif /* CK_REDIR */
#ifdef NETCMD				/* Nor is SET NET COMMAND */
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#endif /* NOPUSH */

#ifndef PEXITSTAT			/* \v(pexitstat) variable defined */
#ifdef OS2ORUNIX
#define PEXITSTAT
#else
#ifdef VMS
#define PEXITSTAT
#endif /* VMS */
#endif /* OS2ORUNIX */
#endif /* PEXITSTAT */

/* The following allows automatic enabling of REDIRECT to be overridden... */

#ifdef NOREDIRECT
#ifdef NETCMD
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#ifdef CK_REDIR
#undef CK_REDIR
#endif /* CK_REDIR */
#endif /* NOREDIRECT */

#ifdef NONETCMD
#ifdef NETCMD
#undef NETCMD
#endif /* NETCMD */
#ifdef NETPTY
#undef NETPTY
#endif /* NETPTY */
#endif /* NONETCMD */

#ifdef CK_REDIR
_PROTOTYP( int ttruncmd, (char *) );
#endif /* CK_REDIR */

/* Use built-in DIRECTORY command */

#ifndef NOMYDIR
#ifndef DOMYDIR
#ifdef UNIXOROSK
#define DOMYDIR
#else
#ifdef OS2
#define DOMYDIR
#else
#ifdef VMS
#define DOMYDIR
#endif /* VMS */
#endif /* OS2 */
#endif /* UNIXOROSK */
#endif /* DOMYDIR */
#endif /* NOMYDIR */

/* Sending from and receiving to commands/pipes */

#ifndef PIPESEND
#ifdef UNIX
#define PIPESEND
#endif /* UNIX */
#ifdef OS2
#define PIPESEND
#endif /* OS2 */
#endif /* PIPESEND */

#ifdef PIPESEND
#ifdef NOPIPESEND
#undef PIPESEND
#endif /* NOPIPESEND */
#ifdef NOPUSH
#undef PIPESEND
#endif /* NOPUSH */
#endif /* PIPESEND */

#ifdef NOPUSH
#ifdef BROWSER
#undef BROWSER
#endif /* BROWSER */
#endif /* NOPUSH */

/* Versions where we support the RESEND command */

#ifndef NOXFER
#ifndef NORESEND
#ifndef CK_RESEND
#ifdef UNIX
#ifndef pdp11
#define CK_RESEND
#endif /* pdp11 */
#endif /* UNIX */

#ifdef VMS
#define CK_RESEND
#endif /* VMS */

#ifdef OS2
#define CK_RESEND
#endif /* OS2 */

#ifdef AMIGA
#define CK_RESEND
#endif /* AMIGA */

#ifdef datageneral
#define CK_RESEND
#endif /* datageneral */

#ifdef STRATUS
#define CK_RESEND
#endif /* STRATUS */

#ifdef OSK
#define CK_RESEND
#endif /* OSK */

#endif /* CK_RESEND */
#endif /* NORESEND */
#endif /* NOXFER */

/* Systems implementing "Doomsday Kermit" protocol ... */

#ifndef DOOMSDAY
#ifdef UNIX
#define DOOMSDAY
#else
#ifdef VMS
#define DOOMSDAY
#else
#ifdef OS2
#define DOOMSDAY
#else
#ifdef STRATUS
#define DOOMSDAY
#endif /* STRATUS */
#endif /* OS2 */
#endif /* VMS */
#endif /* UNIX */
#endif /* DOOMSDAY */

/* Systems where we want the Thermometer to be used for fullscreen */

#ifdef OS2
#ifndef CK_PCT_BAR
#define CK_PCT_BAR
#endif /* CK_PCT_BAR */
#endif /* OS2 */

/* Systems where we have a REXX command */

#ifdef OS2
#ifdef __32BIT__
#ifndef NOREXX
#define CK_REXX
#endif /* NOREXX */
#endif /* __32BIT__ */
#endif /* OS2 */

/* Platforms that have a ZCHKPID function */

#ifdef OS2ORUNIX
#define ZCHKPID
#endif /* OS2ORUNIX */

#ifndef ZCHKPID
/* If we can't check pids then we have treat all pids as active & valid. */
#define zchkpid(x) 1
#endif /* ZCHKPID */

/* Systems that have a ZRENAME function */

#define ZRENAME				/* They all do */

/* Systems that have a ZCOPY function */

#ifndef ZCOPY
#ifdef VMS
#define ZCOPY
#else
#ifdef OS2
#define ZCOPY
#else
#ifdef UNIX
#define ZCOPY
#else
#ifdef STRATUS
#define ZCOPY
#endif /* STRATUS */
#endif /* UNIX */
#endif /* OS2 */
#endif /* VMS */
#endif /* ZCOPY */

/* Systems that have ttgwsiz() (they all should but they don't) */

#ifndef NOTTGWSIZ
#ifndef CK_TTGWSIZ
#ifdef UNIX
#define CK_TTGWSIZ
#else
#ifdef VMS
#define CK_TTGWSIZ
#else
#ifdef OS2
#define CK_TTGWSIZ
#else
#ifdef OSK
#define CK_TTGWSIZ
#endif /* OSK */
#endif /* OS2 */
#endif /* VMS */
#endif /* UNIX */
#endif /* CK_TTGWSIZ */
#endif /* NOTTGWSIZ */

#ifdef NOTTGWSIZ
#ifdef CK_TTGWSIZ
#undef CK_TTGWSIZ
#endif /* CK_TTGWSIZ */
#endif /* NOTTGWSIZ */

/* OS/2 C-Kermit features not available in 16-bit version... */

#ifdef OS2ONLY
#ifndef __32BIT__
#ifndef NOLOCAL
#ifdef PCFONTS				/* PC Font support */
#undef PCFONTS
#endif /* PCFONTS */
#ifdef NPIPE				/* Named Pipes communication */
#undef NPIPE
#endif /* NPIPE */
#ifdef CK_NETBIOS			/* NETBIOS communication */
#undef CK_NETBIOS
#endif /* CK_NETBIOS */
#ifdef OS2MOUSE				/* Mouse */
#undef OS2MOUSE
#endif /* OS2MOUSE */
#ifdef OS2PM				/* Presentation Manager */
#undef OS2PM
#endif /* OS2PM */
#endif /* NOLOCAL */
#ifdef CK_REXX				/* Rexx */
#undef CK_REXX
#endif /* CK_REXX */
#endif /* __32BIT__ */
#endif /* OS2ONLY */

/* OS/2 C-Kermit features not available in Windows NT version... */

#ifdef OS2
#ifdef NT
#ifdef PCFONTS				/* PC Font support */
#undef PCFONTS
#endif /* PCFONTS */
#ifdef NPIPE				/* Named Pipes communication */
#undef NPIPE
#endif /* NPIPE */
#ifdef OS2PM				/* Presentation Manager */
#undef OS2PM
#endif /* OS2PM */
#ifdef CK_REXX				/* Rexx */
#undef CK_REXX
#endif /* CK_REXX */
#endif /* NT */
#endif /* OS2 */

/*
  Systems that have select().
  This is used for both msleep() and for read-buffer checking in in_chk().
*/
#define CK_SLEEPINT 250 /* milliseconds - set this to something that
                           divides evenly into 1000 */
#ifndef SELECT
#ifndef NOSELECT
#ifdef __linux__
#define SELECT
#else
#ifdef SUNOS4
#define SELECT
#else
#ifdef NEXT
#define SELECT
#else
#ifdef RTAIX
#define SELECT
#else
#ifdef HPUX
/*
  Not really.  I think it's only in HP-UX 7.0 and later, except it's also
  in earlier versions that have TCP/IP installed.  Override this default
  in particular HP-UX makefile entries by adding -DNOSELECT, as in (e.g.)
  the HP-UX 6.5 ones.
*/
#define SELECT
#else
#ifdef AIXRS
#define SELECT
#else
#ifdef BSD44
#define SELECT
#else
#ifdef BSD4
#define SELECT
#else
#ifdef OXOS
#define SELECT
#else
#ifdef OS2
#define SELECT
#else
#ifdef BEBOX
#define SELECT
#endif /* BEBOX */
#endif /* OS2 */
#endif /* OXOS */
#endif /* BSD4 */
#endif /* BSD44 */
#endif /* AIXRS */
#endif /* HPUX */
#endif /* RTAIX */
#endif /* NEXT */
#endif /* __linux__ */
#endif /* SUNOS4 */
#endif /* NOSELECT */
#endif /* SELECT */

/*
  The following section moved here from ckcnet.h in 6.1 because select()
  is now used for non-networking purposes.
*/

/* On HP-9000/500 HP-UX 5.21 this stuff is not defined in any header file */

#ifdef hp9000s500
#ifndef NEEDSELECTDEFS
#define NEEDSELECTDEFS
#endif /* NEEDSELECTDEFS */
#endif /* hp9000s500 */

#ifdef NEEDSELECTDEFS
typedef long fd_mask;
#ifndef NBBY
#define NBBY 8
#endif /* NBBY */
#ifndef FD_SETSIZE
#define FD_SETSIZE 32
#endif /* FD_SETSIZE */
#ifndef NFDBITS
#define NFDBITS (sizeof(fd_mask) * NBBY)
#endif /* NFDBITS */
#ifndef howmany
#define howmany(x,y) (((x)+((y)-1))/(y))
#endif /* howmany */
typedef struct fd_set {
    fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} fd_set;
#ifndef FD_SET
#define FD_SET(n,p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
#endif /* FD_SET */
#ifndef FD_CLR
#define FD_CLR(n,p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
#endif /* FD_CLR */
#ifndef FD_ISSET
#define FD_ISSET(n,p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
#endif /* FD_ISSET */
#ifndef FD_COPY
#define FD_COPY(f,t) (bcopy(f,t,sizeof(*(f)))
#endif /* FD_COPY */
#ifndef FD_ZERO
#define FD_ZERO(p) bzero((char *)(p),sizeof(*(p)))
#endif /* FD_ZERO */
#endif /* NEEDSELECTDEFS */

/*
  CK_NEED_SIG is defined if the system cannot check the console to
  to see if characters are waiting.  This is used during local-mode file
  transfer to interrupt the transfer, refresh the screen display, etc.
  If CK_NEED_SIG is defined, then file-transfer interruption characters
  have to be preceded a special character, e.g. the SIGQUIT character.
  CK_NEED_SIG should be defined if the conchk() function is not operational.
*/
#ifdef NOPOLL				/* For overriding CK_POLL definition */
#ifdef CK_POLL
#undef CK_POLL
#endif /* CK_POLL */
#endif /* NOPOLL */

#ifndef CK_POLL				/* If we don't have poll() */
#ifndef RDCHK				/* And we don't have rdchk() */
#ifndef SELECT				/* And we don't have select() */
#ifdef ATTSV
#ifndef aegis
#ifndef datageneral
#ifndef OXOS
#define CK_NEED_SIG
#endif /* OXOS */
#endif /* datageneral */
#endif /* aegis */
#endif /* ATTSV */
#ifdef POSIX
#ifndef CK_NEED_SIG
#define CK_NEED_SIG
#endif /* CK_NEED_SIG */
#endif /* POSIX */
#endif /* SELECT */
#endif /* RDCHK */
#endif /* CK_POLL */

#ifdef HPUX				/* HP-UX has select() */
#ifdef CK_NEED_SIG
#undef CK_NEED_SIG
#endif /* CK_NEED_SIG */
#endif /* HPUX */

#ifdef AIXRS				/* AIX has select() */
#ifdef CK_NEED_SIG
#undef CK_NEED_SIG
#endif /* CK_NEED_SIG */
#endif /* AIXRS */

#ifdef BSD44				/* 4.4BSD has FIONREAD */
#ifdef CK_NEED_SIG
#undef CK_NEED_SIG
#endif /* CK_NEED_SIG */
#endif /* BSD44 */

#ifdef QNX				/* QNX has FIONREAD and select() */
#ifdef CK_NEED_SIG
#undef CK_NEED_SIG
#endif /* CK_NEED_SIG */
#endif /* QNX */

#ifdef COHERENT
#ifndef NOTIMEZONE
#define NOTIMEZONE
#endif /* NOTIMEZONE */
#endif /* COHERENT */

#ifdef UNIX
#ifndef HAVE_TZ				/* Can we use struct timezone? */
#ifndef NOTIMEZONE
#ifdef PTX
#define NOTIMEZONE
#else
#ifndef SELECT
#ifdef COHERENT
#define NOTIMEZONE
#else
#ifdef BELLV10
#define NOTIMEZONE
#endif /* BELLV10 */
#endif /* COHERENT */
#endif /* SELECT */
#endif /* PTX */
#endif /* NOTIMEZONE */
#endif /* HAVE_TZ */
#ifndef NOTIMEVAL			/* Can we use struct timeval? */
#ifndef HAVE_TV
#define HAVE_TV
#endif /* HAVE_TV */
#endif /* NOTIMEVAL */
#ifndef NOTIMEZONE
#ifndef HAVE_TZ
#define HAVE_TZ
#endif /* HAVE_TZ */
#endif /* NOTIMEZONE */
#endif /* UNIX */

#ifdef SCO32
#ifdef HAVE_TV
#undef HAVE_TV
#endif /* HAVE_TV */
#ifdef HAVE_TZ
#undef HAVE_TZ
#endif /* HAVE_TZ */
#ifndef NOTIMEVAL
#define NOTIMEVAL
#endif /* NOTIMEVAL */
#ifndef NOTIMEZONE
#define NOTIMEZONE
#endif /* NOTIMEZONE */
#endif /* SCO32 */

#ifdef ATT7300
#ifdef HAVE_TV
#undef HAVE_TV
#endif /* HAVE_TV */
#ifdef HAVE_TZ
#undef HAVE_TZ
#endif /* HAVE_TZ */
#ifndef NOTIMEVAL
#define NOTIMEVAL
#endif /* NOTIMEVAL */
#ifndef NOTIMEZONE
#define NOTIMEZONE
#endif /* NOTIMEZONE */
#endif /* ATT7300 */

/*
  Automatic parity detection.
  This actually implies a lot more now: length-driven packet reading,
  "Doomsday Kermit" IBM Mainframe file transfer through 3270 data streams, etc.
*/
#ifdef UNIX				/* For Unix */
#ifndef NOPARSEN
#define PARSENSE
#endif /* NOPARSEN */
#endif /* UNIX */

#ifdef VMS				/* ... and VMS */
#ifndef NOPARSEN
#define PARSENSE
#endif /* NOPARSEN */
#ifdef __GNUC__
#define VMSGCC
#endif /* __GNUC__ */
#endif /* VMS */

#ifdef MAC				/* and Macintosh */
#ifndef NOPARSEN
#define PARSENSE
#endif /* NOPARSEN */
#endif /* MAC */

#ifdef STRATUS				/* and Stratus VOS */
#ifndef NOPARSEN
#define PARSENSE
#endif /* NOPARSEN */
#endif /* STRATUS */

#ifdef OS2				/* and OS/2, finally */
#ifndef NOPARSEN
#define PARSENSE
#endif /* NOPARSEN */
#endif /* OS2 */

#ifndef NODYNAMIC			/* DYNAMIC is default for UNIX */
#ifndef DYNAMIC				/* as of C-Kermit 7.0 */
#ifdef UNIX
#define DYNAMIC
#endif /* UNIX */
#endif /* DYNAMIC */
#endif /* NODYNAMIC */

#ifdef DYNAMIC				/* If DYNAMIC is defined */
#define DCMDBUF				/* then also define this. */
#endif /* DYNAMIC */

#ifndef CK_LBRK				/* Can send Long BREAK */

#ifdef UNIX				/* (everybody but OS-9) */
#define CK_LBRK
#endif /* UNIX */
#ifdef VMS
#define CK_LBRK
#endif /* VMS */
#ifdef datageneral
#define CK_LBRK
#endif /* datageneral */
#ifdef GEMDOS
#define CK_LBRK
#endif /* GEMDOS */
#ifdef OS2
#define CK_LBRK
#endif /* OS2 */
#ifdef AMIGA
#define CK_LBRK
#endif /* AMIGA */
#ifdef STRATUS
#define CK_LBRK
#endif /* STRATUS */

#endif /* CK_LBRK */

/* Carrier treatment */
/* These are defined here because they are shared by the system dependent */
/* and the system independent modules. */

#define  CAR_OFF 0	/* Off: ignore carrier always. */
#define  CAR_ON  1      /* On: heed carrier always, except during DIAL. */
#define  CAR_AUT 2      /* Auto: heed carrier, but only if line is declared */
			/* to be a modem line, and only during CONNECT. */

/* And more generically (for use with any ON/OFF/AUTO feature) */
#define  CK_OFF  0
#define  CK_ON   1
#define  CK_AUTO 2

#ifndef NOLOCAL
/*
  Serial interface speeds available.

  As of C-Kermit 6.1 there is a new method to get the supported
  speeds, which obviates the need for all the craziness below.  At runtime,
  just call the new ttspdlist() routine to get a list of supported speeds.
  Then the user interface module can build a keyword table or menu from it.
*/
#ifndef TTSPDLIST
#ifdef UNIX				/* For now, only for UNIX */
#ifndef OLINUXHISPEED			/* But not systems with hacks for */
#ifndef MINIX				/* high speeds, like 110 = 115200 */
#define TTSPDLIST
#endif /* MINIX */
#endif /* OLINUXHISPEED */
#else
#ifdef VMS
#define TTSPDLIST			/* VMS gets it too */
#endif /* VMS */
#endif /* UNIX */
#endif /* TTSPDLIST */

#ifndef NODIAL				/* Hangup by modem command */
#ifndef NOMDMHUP
#ifndef MDMHUP
#define MDMHUP
#endif /* MDMHUP */
#endif /* NOMDMHUP */
#endif /* NODIAL */

#ifdef NOSPL
#ifndef NOLOGDIAL			/* Connection log needs mjd(), etc. */
#define NOLOGDIAL
#endif /* NOLOGDIAL */
#endif /* NOSPL */

#ifdef pdp11
#define NOLOGDIAL
#endif /* pdp11 */

#ifndef NOLOGDIAL			/* Connection log */
#ifndef CXLOGFILE
#define CXLOGFILE "CX.LOG"		/* Default connection log file name */
#endif /* CXLOGFILE */
#ifndef CKLOGDIAL
#ifndef CK_SMALL
#define CKLOGDIAL
#define CXLOGBUFL 1024			/* Connection log record buffer size */
#endif /* CK_SMALL */
#endif /* NOLOGDIAL */
#endif /* CKLOGDIAL */

#endif /* NOLOCAL */

#ifdef NOTTSPDLIST			/* Except if NOTTSPDLIST is defined */
#ifdef TTSPDLIST
#undef TTSPDLIST
#endif /* TTSPDLIST */
#endif /* NOTTSPDLIST */

#ifdef TTSPDLIST

_PROTOTYP( long * ttspdlist, (void) );

#else /* TTSPDLIST not defined */
/*
  We must use a long and convoluted series of #ifdefs that have to be kept in
  sync with the code in the ck?tio.c module.

  We assume that everybody supports: 0, 110, 300, 600, 1200, 2400, 4800, and
  9600 bps.  Symbols for other speeds are defined here.  You can also add
  definitions on the CC command lines.  These definitions affect the SET SPEED
  keyword table, and are not necessarily usable in the system-dependent
  speed-setting code in the ck?tio.c modules, which depends on system-specific
  symbols like (in UNIX) B19200.  In other words, just defining it doesn't
  mean it'll work -- you also have to supply the supporting code in ttsspd()
  and ttgspd() in ck?tio.c.

  The symbols have the form BPS_xxxx, where xxxx is the speed in bits per
  second, or (for bps values larger than 9999) thousands of bps followed by K.
  The total symbol length should be 8 characters or less.  Some values are
  enabled automatically below.  You can disable a particular value by defining
  NOB_xxxx on the CC command line.

*/

#ifndef NOB_50
#define BPS_50				/* 50 bps */
#endif

#ifndef NOB_75
#define BPS_75				/* 75 bps */
#endif

#ifndef NOB7512
#ifdef ANYBSD
#define BPS_7512			/* 75/1200 Split Speed */
#endif /* ANYBSD */
#endif /* NOB7512 */

#ifndef NOB134
#ifdef SOLARIS25
#define BPS_134
#else
#undef BPS_134				/* 134.5 bps (IBM 2741) */
#endif /* BPS_134 */
#endif /* NOB134 */

#ifndef NOB_150
#define BPS_150				/* 150 bps */
#endif

#ifndef NOB_200
#define BPS_200				/* 200 bps */
#endif

#ifndef NOB_1800
#ifdef MAC
#define BPS_1800			/* 1800 bps */
#else
#ifdef SOLARIS25
#define BPS_1800
#endif
#endif
#endif

#ifndef NOB_3600
#ifndef SOLARIS25
#define BPS_3600			/* 3600 bps */
#endif
#endif

#ifndef NOB_7200
#ifndef SOLARIS25
#define BPS_7200			/* 7200 bps */
#endif /* SOLARIS25 */
#endif

#ifndef NOB_14K
#ifdef BSD44
#define BPS_14K				/* 14400 bps */
#else
#ifdef OS2
#define BPS_14K
#else
#ifdef NEXT
#define BPS_14K
#else
#ifdef MAC
#define BPS_14K
#else
#ifdef AMIGA
#define BPS_14K
#endif /* AMIGA */
#endif /* MAC */
#endif /* NEXT */
#endif /* OS2 */
#endif /* BSD44 */
#endif /* NOB_14K */

#ifndef NOB_19K
#define BPS_19K				/* 19200 bps */
#endif

#ifndef NOB_28K
#ifdef BSD44
#define BPS_28K
#else
#ifdef OS2
#define BPS_28K
#else
#ifdef NEXT
#define BPS_28K				/* 28800 bps */
#else
#ifdef MAC
#define BPS_28K				/* 28800 bps */
#endif /* MAC */
#endif /* NEXT */
#endif /* OS2 */
#endif /* BSD44 */
#endif /* NOB_28K */

#ifndef NOB_38K
#define BPS_38K				/* 38400 bps */
#endif

#ifndef NOB_57K
#ifdef Plan9
#define BPS_57K
#else
#ifdef SOLARIS25
#define BPS_57K
#else
#ifdef VMS
#define BPS_57K				/* 57600 bps */
#else
#ifdef OS2
#define BPS_57K
#else
#ifdef __linux__
#define BPS_57K
#else
#ifdef HPUX
#define BPS_57K
#else
#ifdef NEXT
#define BPS_57K
#else
#ifdef __386BSD__
#define BPS_57K
#else
#ifdef __FreeBSD__
#define BPS_57K
#else
#ifdef __NetBSD__
#define BPS_57K
#else
#ifdef MAC
#define BPS_57K
#else
#ifdef QNX
#define BPS_57K
#else
#ifdef BEOSORBEBOX
#define BPS_57K
#else
#ifdef IRIX62
#define BPS_57K
#else
#ifdef SCO_OSR504
#define BPS_57K
#else
#ifdef BSDI2
#define BPS_57K
#endif /* BSDI2 */
#endif /* SCO_OSR504 */
#endif /* IRIX62 */
#endif /* BEOSORBEBOX */
#endif /* QNX */
#endif /* MAC */
#endif /* __NetBSD__ */
#endif /* __FreeBSD__ */
#endif /* __386BSD__ */
#endif /* NEXT */
#endif /* HPUX */
#endif /* __linux__ */
#endif /* OS2 */
#endif /* VMS */
#endif /* SOLARIS25 */
#endif /* Plan9 */
#endif /* NOB_57K */

#ifndef NOB_76K
#ifdef BSDI2
#define BPS_76K
#endif /* BSDI2 */
#ifdef Plan9
#define BPS_76K
#endif /* Plan9 */
#ifdef SOLARIS25
#define BPS_76K
#endif /* SOLARIS25 */
#ifdef VMS
#define BPS_76K				/* 76800 bps */
#endif /* VMS */
#ifdef OS2
#ifdef __32BIT__
#define BPS_76K
#endif /* __32BIT__ */
#endif /* OS2 */
#ifdef QNX
#define BPS_76K
#endif /* QNX */
#ifdef IRIX62
#define BPS_76K
#endif /* IRIX62 */
#ifdef SCO_OSR504
#define BPS_76K
#endif /* SCO_OSR504 */
#endif /* NOB_76K */

#ifndef NOB_115K
#ifdef BSDI2
#define BPS_115K
#endif /* BSDI2 */
#ifdef Plan9
#define BPS_115K
#endif /* Plan9 */
#ifdef SOLARIS25
#define BPS_115K
#endif /* SOLARIS25 */
#ifdef VMS
#define BPS_115K			/* 115200 bps */
#else
#ifdef QNX
#define BPS_115K
#else
#ifdef HPUX
#define BPS_115K
#else
#ifdef __linux__
#define BPS_115K
#else
#ifdef __386BSD__
#define BPS_115K
#else
#ifdef __FreeBSD__
#define BPS_115K
#else
#ifdef __NetBSD__
#define BPS_115K
#else
#ifdef OS2
#ifdef __32BIT__
#define BPS_115K
#endif /* __32BIT__ */
#else
#ifdef BEOSORBEBOX
#define BPS_115K
#else
#ifdef IRIX62
#define BPS_115K
#else
#ifdef SCO_OSR504
#define BPS_115K
#endif /* SCO_OSR504 */
#endif /* IRIX62 */
#endif /* BEOSORBEBOX */
#endif /* OS2 */
#endif /* __NetBSD__ */
#endif /* __FreeBSD__ */
#endif /* __386BSD__ */
#endif /* __linux__ */
#endif /* HPUX */
#endif /* QNX */
#endif /* VMS */
#endif /* NOB_115K */

#ifndef NOB_230K			/* 230400 bps */
#ifdef BSDI2
#define BPS_230K
#else
#ifdef SCO_OSR504
#define BPS_230K
#else
#ifdef __linux__
#define BPS_230K
#else
#ifdef SOLARIS25
#define BPS_230K
#else
#ifdef OS2
#ifdef __32BIT__
#define BPS_230K
#endif /* __32BIT__ */
#else
#undef BPS_230K
#endif /* OS2 */
#endif /* SOLARIS25 */
#endif /* __linux__ */
#endif /* SCO_OSR504 */
#endif /* BSDI2 */
#endif /* NOB_230K */

#ifndef NOB_460K			/* 460800 bps */
#ifdef SCO_OSR504
#define BPS_460K
#else
#ifdef __linux__
#define BPS_460K
#else
#ifdef OS2
#ifdef __32BIT__
#define BPS_460K
#endif /* __32BIT__ */
#else
#undef BPS_460K
#endif /* __linux__ */
#endif /* SCO_OSR504 */
#endif /* OS2 */
#endif /* NOB_460K */

#ifndef NOB_921K			/* 921600 bps */
#ifdef SCO_OSR504
#define BPS_921K
#endif /* SCO_OSR504 */
#endif /* NOB_921K */

#ifdef BPS_921K				/* Maximum speed defined */
#define MAX_SPD 921600L
#else
#ifdef BPS_460K
#define MAX_SPD 460800L
#else
#ifdef BPS_230K
#define MAX_SPD 230400L
#else
#ifdef BPS_115K
#define MAX_SPD 115200L
#else
#ifdef BPS_76K
#define MAX_SPD 76800L
#else
#ifdef BPS_57K
#define MAX_SPD 57600L
#else
#ifdef BPS_38K
#define MAX_SPD 38400L
#else
#ifdef BPS_28K
#define MAX_SPD 28800L
#else
#ifdef BPS_19K
#define MAX_SPD 19200L
#else
#ifdef BPS_14K
#define MAX_SPD 14400L
#else
#define MAX_SPD 9600L
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif /* TTSPDLIST */

#ifndef CONGSPD				/* Systems that can call congspd() */
#ifdef UNIX
#define CONGSPD
#endif /* UNIX */
#ifdef VMS
#define CONGSPD
#endif /* VMS */
#ifdef STRATUS
#define CONGSPD
#endif /* STRATUS */
#endif /* CONGSPD */

/* Types of flow control available */

#define CK_XONXOFF			/* Everybody can do this, right? */

#ifdef AMIGA				/* Commodore Amiga */
#define CK_RTSCTS			/* has RTS/CTS */
#endif /* AMIGA */

#ifdef SUN4S5				/* SunOS in System V environment */
#define CK_RTSCTS
#else					/* SunOS 4.0/4.1 in BSD environment */
#ifdef SUNOS4				/* SunOS 4.0+later supports RTS/CTS */
#ifdef SUNOS41				/* Easy in 4.1 and later */
#define CK_RTSCTS
#else					/* Harder in 4.0 */
#ifndef __GNUC__			/* (see tthflow() in ckutio.c) */
#ifndef GNUC
#define CK_RTSCTS			/* Only if not using GNU gcc */
#endif /* __GNUC__ */
#endif /* GNUC */
#endif /* SUNOS41 */
#endif /* SUNOS4 */
#endif /* SUN4S5 */

#ifdef BSD44				/* And in 4.4 BSD, including BSDI */
#define CK_RTSCTS
#endif /* BSD44 */

#ifdef TERMIOX				/* Sys V R4 <termiox.h> */
#ifndef CK_RTSCTS
#define CK_RTSCTS
#endif /* CK_RTSCTS */
#ifndef CK_DTRCD
#define CK_DTRCD
#endif /* CK_DTRCD */
#else
#ifdef STERMIOX				/* Sys V R4 <sys/termiox.h> */
#ifndef CK_RTSCTS
#define CK_RTSCTS
#endif /* CK_RTSCTS */
#ifndef CK_DTRCD
#define CK_DTRCD
#endif /* CK_DTRCD */
#endif /* STERMIOX */
#endif /* TERMIOX */

#ifdef OXOS				/* Olivetti X/OS R2 struct termios */
#define CK_RTSCTS			/* Ditto. */
#define CK_DTRCD
#endif /* OXOS */

#ifdef AIXRS				/* RS/6000 with AIX 3.x */
#define CK_RTSCTS			/* Has its own peculiar method... */
#endif /* AIXRS */

#ifdef __linux__			/* Linux */
#define CK_RTSCTS
#endif /* __linux__ */
/*
  Hardware flow control is not defined in POSIX.1.  Nevertheless, a certain
  style API for hardware flow control, using tcsetattr() and the CRTSCTS
  bit(s), seems to be gaining currency on POSIX-based UNIX systems.  The
  following code defines the symbol POSIX_CRTSCTS for such systems.
*/
#ifdef CK_RTSCTS
#ifdef __bsdi__				/* BSDI, a.k.a. BSD/386 */
#define POSIX_CRTSCTS
#endif /* __bsdi__ */
#ifdef __linux__			/* Linux */
#define POSIX_CRTSCTS
#endif /* __linux__ */
#ifdef __NetBSD__			/* NetBSD */
#define POSIX_CRTSCTS
#endif /* __NetBSD__ */
#ifdef __OpenBSD__
#define POSIX_CRTSCTS
#endif /* __OpenBSD__ */
#ifdef BEOSORBEBOX			/* BeBOX */
#define POSIX_CRTSCTS
/* BEBOX defines CRTSFL as (CTSFLOW & RTSFLOW) */
#define CRTSCTS CRTSFL
#endif /* BEOSORBEBOX */
#ifdef IRIX52				/* IRIX 5.2 and later */
#define POSIX_CRTSCTS
#define CRTSCTS CNEW_RTSCTS		/* See <sys/termios.h> */
#endif /* IRIX52 */
#endif /* CK_RTSCTS */

/* Implementations that have implemented the ttsetflow() function. */

#ifndef CK_TTSETFLOW
#ifdef UNIX
#define CK_TTSETFLOW
#endif /* UNIX */
#ifdef OS2
#define CK_TTSETFLOW
#endif /* OS2 */
#endif /* CK_TTSETFLOW */

#ifdef CK_TTSETFLOW
_PROTOTYP( int ttsetflow, (int) );
#endif /* CK_TTSETFLOW */
/*
 Systems where we can expand tilde at the beginning of file or directory names
*/
#ifdef POSIX
#ifndef DTILDE
#define DTILDE
#endif /* DTILDE */
#endif /* POSIX */
#ifdef BSD4
#ifndef DTILDE
#define DTILDE
#endif /* DTILDE */
#endif /* BSD4 */
#ifdef ATTSV
#ifndef DTILDE
#define DTILDE
#endif /* DTILDE */
#endif /* ATTSV */
#ifdef OSK
#ifndef DTILDE
#define DTILDE
#endif /* DTILDE */
#endif /* OSK */
#ifdef HPUX				/* I don't know why this is */
#ifndef DTILDE				/* necessary, since -DHPUX */
#define DTILDE				/* automatically defines ATTSV */
#endif /* DTILDE */			/* (see above) ... */
#endif /* HPUX */

/*
  This is mainly for the benefit of ckufio.c (UNIX and OS/2 file support).
  Systems that have an atomic rename() function, so we don't have to use
  link() and unlink().
*/
#ifdef POSIX
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* POSIX */

#ifdef OS2
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* OS2 */

#ifdef SUNOS41
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* SUNOS41 */

#ifdef SVR4
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* SVR4 */

#ifdef AIXRS
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* AIXRS */

#ifdef BSD44
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* BSD44 */

#ifdef NORENAME				/* Allow for compile-time override */
#ifdef RENAME
#undef RENAME
#endif /* RENAME */
#endif /* NORENAME */

#ifdef STRATUS				/* Stratus VOS */
#ifndef RENAME
#define RENAME
#endif /* RENAME */
#endif /* STRATUS */

/* Line delimiter for text files */

/*
 If the system uses a single character for text file line delimitation,
 define NLCHAR to the value of that character.  For text files, that
 character will be converted to CRLF upon output, and CRLF will be converted
 to that character on input during text-mode (default) packet operations.
*/
#ifdef MAC                              /* Macintosh */
#define NLCHAR 015
#else
#ifdef OSK				/* OS-9/68K */
#define NLCHAR 015
#else                                   /* All Unix-like systems */
#define NLCHAR 012
#endif /* OSK */
#endif /* MAC */

/*
 At this point, if there's a system that uses ordinary CRLF line
 delimitation AND the C compiler actually returns both the CR and
 the LF when doing input from a file, then #undef NLCHAR.
*/
#ifdef OS2				/* OS/2 */
#undef NLCHAR
#endif /* OS2 */

#ifdef GEMDOS				/* Atari ST */
#undef NLCHAR
#endif /* GEMDOS */

/*
  VMS file formats are so complicated we need to do all the conversion
  work in the CKVFIO module, so we tell the rest of C-Kermit not to fiddle
  with the bytes.
*/

#ifdef vms
#undef NLCHAR
#endif /* vms */

/* The device name of a job's controlling terminal */
/* Special for VMS, same for all Unixes (?), not used by Macintosh */

#ifdef BEOS
#define CTTNAM dftty
#else
#ifdef vms
#define CTTNAM "SYS$INPUT:"		/* (4 Jan 2002) Was TT: */
#else
#ifdef datageneral
#define CTTNAM "@output"
#else
#ifdef OSK
extern char myttystr[];
#define CTTNAM myttystr
#else
#ifdef OS2
#define CTTNAM "con"
#else
#ifdef UNIX
#define CTTNAM "/dev/tty"
#else
#ifdef GEMDOS
#define CTTNAM "aux:"
#else
#ifdef STRATUS
extern char myttystr[];
#define CTTNAM myttystr
#else /* Anyone else... */
#define CTTNAM "stdout"			/* This is a kludge used by Mac */
#endif /* STRATUS */
#endif /* GEMDOS */
#endif /* UNIX */
#endif /* OS2 */
#endif /* OSK */
#endif /* datageneral */
#endif /* vms */
#endif /* BEOS */

#ifndef HAVECTTNAM
#ifdef UNIX
#define HAVECTTNAM
#else
#ifdef VMS
#define HAVECTTNAM
#endif /* VMS */
#endif /* UNIX */
#endif /* HAVECTTNAM */

#ifndef ZFCDAT				/* zfcdat() function available? */
#ifdef UNIX
#define  ZFCDAT
#else
#ifdef STRATUS
#define  ZFCDAT
#else
#ifdef GEMDOS
#define  ZFCDAT
#else
#ifdef AMIGA
#define  ZFCDAT
#else
#ifdef OS2
#define  ZFCDAT
#else
#ifdef datageneral
#define  ZFCDAT
#else
#ifdef VMS
#define  ZFCDAT
#endif /* VMS */
#endif /* datageneral */
#endif /* OS2 */
#endif /* AMIGA */
#endif /* GEMDOS */
#endif /* STRATUS */
#endif /* UNIX */
#endif /* ZFCDAT */

#ifdef SUNS4S5
#define tolower _tolower
#define toupper _toupper
#endif /* SUNS4S5 */

/* Error number */

#ifdef _CRAY
#ifdef _CRAYCOM				/* Cray Computer Corp. */
extern int errno;
#else /* _CRAYCOM */
#include <errno.h>			/* Cray Research UNICOS defines */
					/* errno as a function. */
#endif /* _CRAYCOM */			/* OK for UNICOS 6.1 and 7.0. */
#else /* _CRAY */
#ifdef STRATUS				/* Stratus VOS */
#include <errno.h>
#else /* not STRATUS */
#ifndef VMS
#ifndef OS2
#ifdef __GLIBC__
/*
  "glibc uses threads, kermit uses glibc; errno access is in Thread Local
  Storage (TLS) from glibc-3.2.2.  ...a thread specific errno is being run in
  thread local storage relative to the %gs segment register, so some means to
  revector gets/puts needs to be done." - Jeff Johnson, Red Hat, Feb 2003.
*/
#include <errno.h>
#else
/*
  The following declaration would cause problems for VMS and OS/2, in which
  errno is an "extern volatile int noshare"...
*/
 extern int errno;			/* Needed by most modules. */
#endif /* __GLIBC__ */
#endif /* OS2 */
#endif /* VMS */
#endif /* STRATUS */
#endif /* _CRAY */

#ifdef pdp11				/* Try to make some space on PDP-11 */
#ifndef NODIAL
#define NODIAL
#endif /* NODIAL */
#ifndef NOCURSES
#define NOCURSES
#endif /* NOCURSES */
#ifndef NOBIGBUF
#define NOBIGBUF
#endif /* NOBIGBUF */
#endif /* pdp11 */

#ifndef NOBIGBUF
#ifndef BIGBUFOK			/* Platforms with lots of memory */

#ifdef QNX				/* QNX */
#ifndef QNX16				/* But not 16-bit versions */
#define BIGBUFOK
#endif /* QNX16 */
#endif /* QNX */

#ifdef BSD44
#define BIGBUFOK
#endif /* BSD44 */

#ifdef STRATUS				/* Stratus VOS */
#define BIGBUFOK
#endif /* STRATUS */

#ifdef sparc				/* SPARC processors */
#define BIGBUFOK
#endif /* sparc */

#ifdef mips				/* MIPS processors */
#define BIGBUFOK
#endif /* mips */

#ifdef HPUX9				/* HP-UX 9.x */
#define BIGBUFOK
#endif /* HPUX9 */

#ifdef HPUX10				/* HP-UX 10.0 PA-RISC */
#define BIGBUFOK
#endif /* HPUX10 */

#ifdef NEXT				/* NeXTSTEP */
#ifdef mc68000				/* on NEXT platforms... */
#define BIGBUFOK
#endif /* mc68000 */
#endif /* NEXT */

#ifdef LINUX				/* Linux in 1998 should be OK */
#ifndef BIGBUFOK
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* LINUX */

#ifdef OS2				/* 32-bit OS/2 2.x and above */
#ifdef __32BIT__
#define BIGBUFOK
#endif /* __32BIT__ */
#ifdef NT
#define BIGBUFOK
#endif /* NT */
#endif /* OS2 */

#ifdef Plan9				/* Plan 9 is OK */
#define BIGBUFOK
#endif /* Plan9 */

#ifdef VMS				/* Any VMS is OK */
#ifndef BIGBUFOK
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* VMS */

#ifdef __alpha				/* DEC 64-bit Alpha, e.g. OSF/1 */
#ifndef BIGBUFOK			/* Might already be defined for VMS */
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* __alpha */

#ifdef sgi				/* SGI with IRIX 4.0 or later */
#ifndef BIGBUFOK
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* sgi */

#ifdef AIXRS				/* AIX on RISC */
#define BIGBUFOK
#endif /* AIXRS */

#ifdef CK_SCOV5				/* SCO OSR5 */
#ifndef BIGBUFOK
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* CK_SCOV5 */

#ifdef SOLARIS				/* Solaris x86 */
#ifndef BIGBUFOK
#define BIGBUFOK
#endif /* BIGBUFOK */
#endif /* SOLARIS */

#endif /* BIGBUFOK */
#endif /* NOBIGBUF */

#ifdef CK_SMALL
#ifdef BIGBUFOK
#undef BIGBUFOK
#endif /* BIGBUFOK */
#endif /* CK_SMALL */

/* If "memory is no problem" then this improves performance */

#ifdef DEBUG
#ifdef BIGBUFOK
#ifndef IFDEBUG
#define IFDEBUG
#endif /* IFDEBUG */
#endif /* BIGBUFOK */
#endif /* DEBUG */

#ifndef DEBUG
/* Compile all the debug() statements away.  Saves a lot of space and time. */
#define debug(a,b,c,d)
#define hexdump(a,b,c)
/* Now define the debug() macro. */
#else /* DEBUG */
_PROTOTYP(int dodebug,(int,char *,char *,long));
_PROTOTYP(int dohexdump,(CHAR *,CHAR *,int));
#ifdef IFDEBUG
/* Use this form to avoid function calls: */
#ifdef COMMENT
#define debug(a,b,c,d) if (deblog) dodebug(a,b,(char *)(c),(long)d)
#define hexdump(a,b,c) if (deblog) dohexdump((CHAR *)(a),(CHAR *)(b),c)
#else
#ifdef CK_ANSIC
#define debug(a,b,c,d) ((void)(deblog?dodebug(a,b,(char *)(c),(long)d):0))
#define hexdump(a,b,c) ((void)(deblog?dohexdump((CHAR *)(a),(CHAR *)(b),c):0))
#else
#define debug(a,b,c,d) (deblog?dodebug(a,b,(char *)(c),(long)d):0)
#define hexdump(a,b,c) (deblog?dohexdump((CHAR *)(a),(CHAR *)(b),c):0)
#endif /* CK_ANSIC */
#endif /* COMMENT */
#else /* IFDEBUG */
/* Use this form to save space: */
#define debug(a,b,c,d) dodebug(a,b,(char *)(c),(long)d)
#define hexdump(a,b,c) dohexdump((CHAR *)(a),(CHAR *)(b),c)
#endif /* IFDEBUG */
#endif /* DEBUG */

/* File System Defaults */

#ifndef UIDBUFLEN			/* Length of User ID */
#ifdef OS2
#define UIDBUFLEN 256
#else /* OS2 */
#ifdef BIGBUFOK
#define UIDBUFLEN 256
#else
#define UIDBUFLEN 64
#endif /* BIGBUFOK */
#endif /* OS2 */
#endif /* UIDBUFLEN */

#ifdef UNIX
#ifdef PROVX1
#define MAXWLD 50
#else
#ifdef pdp11
#define MAXWLD 50
#else
#ifdef BIGBUFOK
#define MAXWLD 102400
#else
#define MAXWLD 1024
#endif /* BIGBUFOK */
#endif /* pdp11 */
#endif /* PROVX1 */
#else
#ifdef VMS
#define MAXWLD 102400			/* Maximum wildcard filenames */
#else
#ifdef datageneral
#define MAXWLD 500
#else
#ifdef STRATUS
#define MAXWLD 5000
#endif /* STRATUS */
#endif /* datageneral */
#endif /* VMS */
#endif /* UNIX */

#ifdef VMS
#define DBLKSIZ 512
#define DLRECL 512
#else
#define DBLKSIZ 0
#define DLRECL 0
#endif /* VMS */

/* Communication device / network host name length */

#ifdef BIGBUFOK
#define TTNAMLEN 512
#else
#ifdef MAC
#define TTNAMLEN 256
#else
#ifndef CK_SMALL
#define TTNAMLEN 128
#else
#define TTNAMLEN 80
#endif /* CK_SMALL */
#endif /* MAC */
#endif /* BIGBUFOK */

/* Program return codes for DECUS C and UNIX (VMS uses UNIX codes) */

#ifdef decus
#define GOOD_EXIT   IO_NORMAL
#define BAD_EXIT    IO_ERROR
#else
#define GOOD_EXIT   0
#define BAD_EXIT    1
#endif /* decus */

/* Special hack for Fortune, which doesn't have <sys/file.h>... */

#ifdef FT18
#define FREAD 0x01
#define FWRITE 0x10
#endif /* FT18 */

/* Special hack for OS-9/68k */
#ifdef OSK
#ifndef _UCC
#define SIGALRM 30			/* May always cancel I/O */
#endif /* _UCC */
#define SIGARB	1234			/* Arbitrary for I/O */
SIGTYP (*signal())();
#endif /* OSK */

#ifdef MINIX
#ifdef putchar
#undef putchar
#endif /* putchar */
#define putchar(c) (putc(c,stdout)!=EOF)&&fflush(stdout)
#endif /* MINIX */

#ifdef datageneral			/* Data General AOS/VS */
#ifdef putchar
#undef putchar
#endif /* putchar */
#define putchar(c) conoc(c)
#endif /* datageneral */

/* Escape/quote character used by the command parser */

#define CMDQ '\\'

/* Symbols for RS-232 modem signals */

#define KM_FG    1			/* Frame ground */
#define KM_TXD   2			/* Transmit */
#define KM_RXD   3			/* Receive */
#define KM_RTS   4			/* Request to Send */
#define KM_CTS   5			/* Clear to Send */
#define KM_DSR   6			/* Data Set Ready */
#define KM_SG    7			/* Signal ground */
#define KM_DCD   8			/* Carrier Detect */
#define KM_DTR  20			/* Data Terminal Ready */
#define KM_RI   22			/* Ring Indication */

/* Bit mask values for modem signals */

#define BM_CTS   0001			/* Clear to send       (From DCE) */
#define BM_DSR   0002			/* Dataset ready       (From DCE) */
#define BM_DCD   0004			/* Carrier             (From DCE) */
#define BM_RNG   0010			/* Ring Indicator      (From DCE) */
#define BM_DTR   0020			/* Data Terminal Ready (From DTE) */
#define BM_RTS   0040			/* Request to Send     (From DTE) */

/* Codes for full duplex flow control */

#define FLO_NONE 0			/* None */
#define FLO_XONX 1			/* Xon/Xoff (soft) */
#define FLO_RTSC 2			/* RTS/CTS (hard) */
#define FLO_DTRC 3			/* DTR/CD (hard) */
#define FLO_ETXA 4			/* ETX/ACK (soft) */
#define FLO_STRG 5			/* String-based (soft) */
#define FLO_DIAL 6			/* DIALing kludge */
#define FLO_DIAX 7			/* Cancel dialing kludge */
#define FLO_DTRT 8			/* DTR/CTS (hard) */
#define FLO_KEEP 9			/* Keep, i.e. don't touch or change */
#define FLO_AUTO 10			/* Figure out automatically */

/* Types of connections */

#define CXT_REMOTE  0			/* Remote mode - no connection */
#define CXT_DIRECT  1			/* Direct serial connection */
#define CXT_MODEM   2			/* Modem dialout */
#define CXT_TCPIP   3			/* TCP/IP - Telnet, Rlogin, etc */
#define CXT_X25     4			/* X.25 peer-to-peer */
#define CXT_DECNET  5			/* DECnet (CTERM, etc) */
#define CXT_LAT     6			/* LAT */
#define CXT_NETBIOS 7			/* NETBIOS */
#define CXT_NPIPE   8			/* Named Pipe */
#define CXT_PIPE    9			/* Pipe, Command, PTY, DLL, etc */
#define CXT_SSH     10                  /* SSH */
#define CXT_MAX     10			/* Highest connection type */

/* Autodownload Detection Options */

#define ADL_PACK 0			/* Auto-Download detect packet */
#define ADL_STR  1			/* Auto-Download detect string */

/* And finally... */

#ifdef COMMENT				/* Make sure this is NOT defined! */
#undef COMMENT
#endif /* COMMENT */

/* zstr zattr filinfo were here (moved to top for DECC 5 Jun 2000) */

#ifndef ZFNQFP				/* Versions that have zfnqfp() */
#ifdef UNIX
#define ZFNQFP
#else
#ifdef VMS
#define ZFNQFP
#else
#ifdef OS2
#define ZFNQFP
#else
#ifdef datageneral
#define ZFNQFP
#else
#ifdef STRATUS
#define ZFNQFP
#endif /* STRATUS */
#endif /* datageneral */
#endif /* OS2 */
#endif /* VMS */
#endif /* UNIX */
struct zfnfp {
   int len;				/* Length of full pathname */
   char * fpath;			/* Pointer to full pathname */
   char * fname;			/* Pointer to name part */
};
#endif /* ZFNQFP */

/* Systems that support FILE TYPE LABELED */

#ifdef VMS
#define CK_LABELED
#else
#ifdef OS2
#ifdef __32BIT__
#ifndef NT
#define CK_LABELED
#endif /* NT */
#endif /* __32BIT__ */
#endif /* OS2 */
#endif /* VMS */

/* LABELED FILE options bitmask */

#ifdef VMS				/* For VMS */
#define LBL_NAM  1			/* Ignore incoming name if set */
#define LBL_PTH  2			/* Use complete path if set */
#define LBL_ACL  4			/* Preserve ACLs if set */
#define LBL_BCK  8			/* Preserve backup date if set */
#define LBL_OWN 16			/* Preserve ownership if set */

#else

#ifdef OS2				/* Ditto for OS/2 */
#define LBL_NOR  0x0000			/* Normal file */
#define LBL_ARC  0x0020			/* Archive */
#define LBL_DIR  0x0010			/* Directory */
#define LBL_HID  0x0002			/* Hidden file */
#define LBL_RO   0x0001			/* Read only file */
#define LBL_SYS  0x0004			/* System file */
#define LBL_EXT  0x0040			/* Extended */
#endif /* OS2 */
#endif /* VMS */

/*
  Data types.  First the header file for data types so we can pick up the
  types used for pids, uids, and gids.  Override this section by putting
  -DCKTYP_H=xxx on the command line to specify the header file where your
  system defines these types.
*/
#ifndef STRATUS
#ifdef __ALPHA
#ifdef MULTINET
#define CK_TGV_AXP
#endif /* MULTINET */
#endif /* __ALPHA */

#ifdef CK_TGV_AXP			/* Alpha, VMS, MultiNet */
/*
  Starting in DECC 5.0, <stdlib.h> no longer includes <types.h>.
  But before that an elaborate workaround is required, which results in
  including <types.h> sometimes but not others, evidently depending on whether
  <types.h> protects itself against multiple inclusion, which in turn probably
  differentiates between DECC <types.h> and TGV <types.h>.  Unfortunately I
  don't remember the details.  (fdc, 25 Oct 96)
*/
#ifdef COMMENT
/*
  Previously the test here was for DEC version prior to 4.0, but since the
  test involved an "#if" statement, it was not portable and broke some non-VMS
  builds.  In any case, condition was never satisfied, so the result of
  commenting this section out is the same as the previous "#if" condition.
*/
#ifndef __TYPES_LOADED
#define __TYPES_LOADED			/* Work around bug in .h files */
#endif /* __TYPES_LOADED */
#endif /* COMMENT */
#include <sys/types.h>
#ifdef IF_DOT_H
#ifndef MULTINET
#include <if.h>				/* Needed to put up u_int typedef */
#endif /* MULTINET */
#else /* IF_DOT_H */
#ifdef NEEDUINT
typedef unsigned int u_int;
#endif /* NEEDUINT */
#endif /* IF_DOT_H */
#else					/* !CK_TGV_AXP */
#ifdef OSK				/* OS-9 */
#include <types.h>
#else					/* General case, not OS-9 */
#ifndef CKTYP_H
#ifndef VMS
#ifndef MAC
#ifndef AMIGA
#define CKTYP_H <sys/types.h>
#endif /* AMIGA */
#endif /* MAC */
#endif /* VMS */
#endif /* CKTYP_H */

#ifdef GEMDOS
#undef CKTYP_H
#include <types.h>
#endif /* GEMDOS */

#ifdef OS2
#undef CKTYP_H
#include <sys/types.h>
#endif /* OS2 */

#ifdef CKTYP_H				/* Include it. */
#ifdef COHERENT				/* Except for COHERENT */
#include <unistd.h>
#include <sys/types.h>
#else
#ifdef datageneral			/* AOS/VS */
#include <sys/types.h>
#else  /* All others */
#ifdef __bsdi__				/* BSDI */
#ifdef POSIX
#undef _POSIX_SOURCE
#endif /* POSIX */
#endif /* __bsdi__ */
#include CKTYP_H
#ifdef __bsdi__
#ifdef POSIX
#define _POSIX_SOURCE
#endif /* POSIX */
#endif /* __bsdi__ */
#endif /* datageneral */
#endif /* COHERENT */
#endif /* CKTYP_H */

#endif /* OSK */
#endif /* CK_TGV_AXP */
#endif /* STRATUS */			/* End of types.h section */

/*
  Data type for pids.  If your system uses a different type, put something
  like -DPID_T=pid_t on command line, or override here.
*/
#ifndef PID_T
#define PID_T int
#endif /* PID_T */
/*
  Data types for uids and gids.  Same deal as for pids.
  Wouldn't be nice if there was a preprocessor test to find out if a
  typedef existed?
*/
#ifdef VMS
/* Not used in VMS so who cares */
#define UID_T int
#define GID_T int
#endif /* VMS */

#ifdef POSIX
/* Or would it be better (or worse?) to use _POSIX_SOURCE here? */
#ifndef UID_T
#define UID_T uid_t
#endif /* UID_T */
#ifndef GID_T
#define GID_T gid_t
#endif /* GID_T */
#else /* Not POSIX */
#ifdef SVR4
/* SVR4 and later have uid_t and gid_t. */
/* SVR3 and earlier use int, or unsigned short, or.... */
#ifndef UID_T
#define UID_T uid_t
#endif /* UID_T */
#ifndef GID_T
#define GID_T gid_t
#endif /* GID_T */
#else /* Not SVR4 */
#ifdef BSD43
#ifndef UID_T
#define UID_T uid_t
#endif /* UID_T */
#ifndef GID_T
#define GID_T gid_t
#endif /* GID_T */
#else /* Not BSD43 */
/* Default these to int for older UNIX versions */
#ifndef UID_T
#define UID_T int
#endif /* UID_T */
#ifndef GID_T
#define GID_T int
#endif /* GID_T */
#endif /* BSD43 */
#endif /* SVR4  */
#endif /* POSIX */

/*
  getpwuid() arg type, which is not necessarily the same as UID_T,
  e.g. in SCO UNIX SVR3, it's int.
*/
#ifndef PWID_T
#define PWID_T UID_T
#endif /* PWID_T */

#ifdef CK_REDIR
#ifdef NEXT
#define MACHWAIT
#else
#ifdef MACH
#define MACHWAIT
#endif /* MACH */
#endif /* NEXT */

#ifdef MACHWAIT				/* WAIT_T argument for wait() */
#include <sys/wait.h>
#define CK_WAIT_H
typedef union wait WAIT_T;
#else
#ifdef POSIX
#ifdef OSF
/* OSF wait.h defines BSD wait if _BSD is defined so  hide _BSD from wait.h */
#ifdef _BSD
#define CK_OSF_BSD
#undef  _BSD
#endif /* _BSD */
#endif /* OSF */
#include <sys/wait.h>
#define CK_WAIT_H
#ifndef WAIT_T
typedef int WAIT_T;
#endif /* WAIT_T */
#ifdef CK_OSF_BSD			/* OSF/1: Restore  _BSD definition */
#define _BSD
#undef CK_OSF_BSD
#endif /* CK_OSF_BSD */
#else /* !POSIX */
typedef int WAIT_T;
#endif /* POSIX */
#endif /* MACHWAIT */
#else
typedef int WAIT_T;
#endif /* CK_REDIR */

/* Assorted other blah_t's handled here... */

#ifndef SIZE_T
#define SIZE_T size_t
#endif /* SIZE_T */

/* Forward declarations of system-dependent functions callable from all */
/* C-Kermit modules. */

/* File-related functions from system-dependent file i/o module */

#ifndef CKVFIO_C
/* For some reason, this does not agree with DEC C */
_PROTOTYP( int zkself, (void) );
#endif /* CKVFIO_C */
_PROTOTYP( int zopeni, (int, char *) );
_PROTOTYP( int zopeno, (int, char *, struct zattr *, struct filinfo *) );
_PROTOTYP( int zclose, (int) );
#ifndef MAC
_PROTOTYP( int zchin, (int, int *) );
#endif /* MAC */
_PROTOTYP( int zxin, (int, char *, int) );
_PROTOTYP( int zsinl, (int, char *, int) );
_PROTOTYP( int zinfill, (void) );
_PROTOTYP( int zsout, (int, char*) );
_PROTOTYP( int zsoutl, (int, char*) );
_PROTOTYP( int zsoutx, (int, char*, int) );
_PROTOTYP( int zchout, (int, char) );
_PROTOTYP( int zoutdump, (void) );
_PROTOTYP( int zsyscmd, (char *) );
_PROTOTYP( int zshcmd, (char *) );
#ifdef UNIX
_PROTOTYP( int zsetfil, (int, int) );
_PROTOTYP( int zchkpid, (unsigned long) );
#endif	/* UNIX */
#ifdef CKEXEC
_PROTOTYP( VOID z_exec, (char *, char **, int) );
#endif /* CKEXEC */
_PROTOTYP( int chkfn, (int) );
_PROTOTYP( long zchki, (char *) );
#ifdef VMSORUNIX
_PROTOTYP( long zgetfs, (char *) );
#else
#ifdef OS2
_PROTOTYP( long zgetfs, (char *) );
#else
#define zgetfs(a) zchki(a)
#endif /* OS2 */
#endif /* VMSORUNIX */
_PROTOTYP( int iswild, (char *) );
_PROTOTYP( int isdir, (char *) );
_PROTOTYP( int zchko, (char *) );
_PROTOTYP( int zdelet, (char *) );
_PROTOTYP( VOID zrtol, (char *,char *) );
_PROTOTYP( VOID zltor, (char *,char *) );
_PROTOTYP( VOID zstrip, (char *,char **) );
#ifdef VMS
_PROTOTYP( char * zrelname, (char *, char *) );
#endif /* VMS */
_PROTOTYP( int zchdir, (char *) );
_PROTOTYP( char * zhome, (void) );
_PROTOTYP( char * zgtdir, (void) );
_PROTOTYP( int zxcmd, (int, char *) );
#ifndef MAC
_PROTOTYP( int zclosf, (int) );
#endif /* MAC */
#ifdef NZXPAND
_PROTOTYP( int nzxpand, (char *, int) );
#else /* NZXPAND */
_PROTOTYP( int zxpand, (char *) );
#endif /* NZXPAND */
_PROTOTYP( int znext, (char *) );
#ifdef ZXREWIND
_PROTOTYP( int zxrewind, (void) );
#endif /* ZXREWIND */
_PROTOTYP( int zchkspa, (char *, long) );
_PROTOTYP( VOID znewn, (char *, char **) );
_PROTOTYP( int zrename, (char *, char *) );
_PROTOTYP( int zcopy, (char *, char *) );
_PROTOTYP( int zsattr, (struct zattr *) );
_PROTOTYP( int zfree, (char *) );
_PROTOTYP( char * zfcdat, (char *) );
_PROTOTYP( int zstime, (char *, struct zattr *, int) );
#ifdef CK_PERMS
_PROTOTYP( char * zgperm, (char *) );
_PROTOTYP( char * ziperm, (char *) );
#endif /* CK_PERMS */
_PROTOTYP( int zmail, (char *, char *) );
_PROTOTYP( int zprint, (char *, char *) );
_PROTOTYP( char * tilde_expand, (char *) );
_PROTOTYP( int zmkdir, (char *) ) ;
_PROTOTYP( int zfseek, (long) ) ;
#ifdef ZFNQFP
_PROTOTYP( struct zfnfp * zfnqfp, (char *, int, char * ) ) ;
#else
#define zfnqfp(a,b,c) ckstrncpy(c,a,b)
#endif /* ZFNQFP */
_PROTOTYP( int zvuser, (char *) ) ;
_PROTOTYP( int zvpass, (char *) ) ;
_PROTOTYP( VOID zvlogout, (void) ) ;
#ifdef OS2
_PROTOTYP( int os2setlongname, ( char * fn, char * ln ) ) ;
_PROTOTYP( int os2getlongname, ( char * fn, char ** ln ) ) ;
_PROTOTYP( int os2rexx, ( char *, char *, int ) ) ;
_PROTOTYP( int os2rexxfile, ( char *, char *, char *, int) ) ;
_PROTOTYP( int os2geteas, (char *) ) ;
_PROTOTYP( int os2seteas, (char *) ) ;
_PROTOTYP( char * get_os2_vers, (void) ) ;
_PROTOTYP( int do_label_send, (char *) ) ;
_PROTOTYP( int do_label_recv, (void) ) ;
#ifdef OS2MOUSE
_PROTOTYP( unsigned long os2_mouseon, (void) );
_PROTOTYP( unsigned long os2_mousehide, (void) );
_PROTOTYP( unsigned long os2_mouseshow, (void) );
_PROTOTYP( unsigned long os2_mouseoff, (void) );
_PROTOTYP( void os2_mouseevt, (void *) );
_PROTOTYP( int mousebuttoncount, (void));
#endif /* OS2MOUSE */
#endif /* OS2 */

/* Functions from system-dependent terminal i/o module */

_PROTOTYP( int ttopen, (char *, int *, int, int) );  /* tty functions */
#ifndef MAC
_PROTOTYP( int ttclos, (int) );
#endif /* MAC */
_PROTOTYP( int tthang, (void) );
_PROTOTYP( int ttres, (void) );
_PROTOTYP( int ttpkt, (long, int, int) );
#ifndef MAC
_PROTOTYP( int ttvt, (long, int) );
#endif /* MAC */
_PROTOTYP( int ttsspd, (int) );
_PROTOTYP( long ttgspd, (void) );
_PROTOTYP( int ttflui, (void) );
_PROTOTYP( int ttfluo, (void) );
_PROTOTYP( int ttpushback, (CHAR *, int) );
_PROTOTYP( int ttpeek, (void) );
_PROTOTYP( int ttgwsiz, (void) );
_PROTOTYP( int ttchk, (void) );
_PROTOTYP( int ttxin, (int, CHAR *) );
_PROTOTYP( int ttxout, (CHAR *, int) );
_PROTOTYP( int ttol, (CHAR *, int) );
_PROTOTYP( int ttoc, (char) );
_PROTOTYP( int ttinc, (int) );
_PROTOTYP( int ttscarr, (int) );
_PROTOTYP( int ttgmdm, (void) );
_PROTOTYP( int ttsndb, (void) );
_PROTOTYP( int ttsndlb, (void) );
#ifdef UNIX
_PROTOTYP( char * ttglckdir, (void) );
#endif /* UNIX */
#ifdef PARSENSE
#ifdef UNIX
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR, int) );
#else
#ifdef VMS
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR, int) );
#else
#ifdef STRATUS
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR, int) );
#else
#ifdef OS2
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR, int) );
#else
#ifdef OSK
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR, int) );
#else
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR, CHAR) );
#endif /* OSK */
#endif /* OS2 */
#endif /* STRATUS */
#endif /* VMS */
#endif /* UNIX */
#else /* ! PARSENSE */
_PROTOTYP( int ttinl, (CHAR *, int, int, CHAR) );
#endif /* PARSENSE */

/* XYZMODEM support */

/*
  CK_XYZ enables the various commands and data structures.
  XYZ_INTERNAL means these protocols are built-in; if not defined,
  then they are external.  XYZ_DLL is used to indicate a separate
  loadable library containing the XYZmodem protocol code.
*/
#ifdef pdp11				/* No room for this in PDP-11 */
#define NOCKXYZ
#endif /* pdp11 */

#ifndef NOCKXYZ				/* Alternative protocols */
#ifndef CK_XYZ
#ifdef UNIX
#define CK_XYZ
#else
#ifdef OS2
#define CK_XYZ
#ifndef NOXYZDLL
#define XYZ_INTERNAL			/* Internal and DLL */
#define XYZ_DLL
#endif /* NOXYZDLL */
#endif /* OS2 */
#endif /* UNIX */
#endif /* CK_XYZ */
#endif /* NOCKXYZ */

#ifdef XYZ_INTERNAL			/* This ensures that XYZ_INTERNAL */
#ifndef CK_XYZ				/* is defined only if CK_XYZ is too */
#undef XYZ_INTERNAL
#endif /* CK_XYZ */
#endif /* XYZ_INTERNAL */
#ifdef XYZ_DLL				/* This ensures XYZ_DLL is defined */
#ifndef XYZ_INTERNAL			/* only if XYZ_INTERNAL is too */
#undef XYZ_DLL
#endif /* XYZ_INTERNAL */
#endif /* XYZ_DLL */

/* Console functions */

_PROTOTYP( int congm, (void) );
#ifdef COMMENT
_PROTOTYP( VOID conint, (SIGTYP (*)(int, int), SIGTYP (*)(int, int)) );
#else
_PROTOTYP( VOID conint, (SIGTYP (*)(int), SIGTYP (*)(int)) );
#endif /* COMMENT */
_PROTOTYP( VOID connoi, (void) );
_PROTOTYP( int concb, (char) );
#ifdef CONGSPD
_PROTOTYP( long congspd, (void) );
#endif /* CONGSPD */
_PROTOTYP( int conbin, (char) );
_PROTOTYP( int conres, (void) );
_PROTOTYP( int conoc, (char) );
_PROTOTYP( int conxo, (int, char *) );
_PROTOTYP( int conol, (char *) );
_PROTOTYP( int conola, (char *[]) );
_PROTOTYP( int conoll, (char *) );
_PROTOTYP( int conchk, (void) );
_PROTOTYP( int coninc, (int) );
_PROTOTYP( char * conkbg, (void) );
_PROTOTYP( int psuspend, (int) );
_PROTOTYP( int priv_ini, (void) );
_PROTOTYP( int priv_on, (void) );
_PROTOTYP( int priv_off, (void) );
_PROTOTYP( int priv_can, (void) );
_PROTOTYP( int priv_chk, (void) );
_PROTOTYP( int priv_opn, (char *, int) );

_PROTOTYP( int sysinit, (void) );	/* Misc Kermit functions */
_PROTOTYP( int syscleanup, (void) );
_PROTOTYP( int msleep, (int) );
_PROTOTYP( VOID rtimer, (void) );
_PROTOTYP( int gtimer, (void) );
#ifdef GFTIMER
_PROTOTYP( VOID rftimer, (void) );
_PROTOTYP( CKFLOAT gftimer, (void) );
#endif /* GFTIMER */
_PROTOTYP( VOID ttimoff, (void) );
_PROTOTYP( VOID ztime, (char **) );
_PROTOTYP( int parchk, (CHAR *, CHAR, int) );
_PROTOTYP( VOID doexit, (int, int) );
_PROTOTYP( int askmore, (void) );
_PROTOTYP( VOID fatal, (char *) );
_PROTOTYP( VOID fatal2, (char *, char *) );
#ifdef VMS
_PROTOTYP( int ck_cancio, (void) );
#endif /* VMS */

/* Key mapping support */

#ifdef NOICP
#ifndef NOSETKEY
#define NOSETKEY
#endif /* NOSETKEY */
#endif /* NOICP */

#ifdef MAC
#ifndef NOSETKEY
#define NOSETKEY
#endif /* NOSETKEY */
#endif /* MAC */

_PROTOTYP( int congks, (int) );
#ifdef OS2
/* OS2 requires these definitions even if SET KEY is not being supported */
#define KMSIZE 8916
typedef ULONG KEY;
typedef CHAR *MACRO;
extern int wideresult;
#else /* Not OS2 */
#ifndef NOSETKEY
/*
  Catch-all for systems where we don't know how to read keyboard scan
  codes > 255.
*/
#define KMSIZE 256
/* Note: CHAR (i.e. unsigned char) is very important here. */
typedef CHAR KEY;
typedef CHAR * MACRO;
#define congks coninc
#endif /* NOSETKEY */
#endif /* OS2 */

#ifndef OS2
#ifndef NOKVERBS			/* No \Kverbs unless... */
#define NOKVERBS
#endif /* NOKVERBS */
#endif /* OS2 */

#ifndef NOKVERBS
#ifdef OS2
/*
  Note: this value chosen to be bigger than PC BIOS key modifier bits,
  but still fit in 16 bits without affecting sign.

  As of K95 1.1.5, this no longer fits in 16 bits, good thing we are 32 bit.
*/
#define F_MACRO 0x2000          /* Bit indicating a macro indice */
#define IS_MACRO(x) (x & F_MACRO)
#define F_KVERB 0x4000			/* Bit indicating a keyboard verb */
#define IS_KVERB(x) (x & F_KVERB)	/* Test this bit */
#endif /* OS2 */
#endif /* NOKVERBS */

#define F_ESC   0x8000		/* Bit indicating ESC char combination */
#define IS_ESC(x) (x & F_ESC)
#define F_CSI   0x10000		/* Bit indicating CSI char combination */
#define IS_CSI(x) (x & F_CSI)

#ifdef NOSPL				/* This might be overkill.. */
#ifndef NOKVERBS			/* Not all \Kverbs require */
#define NOKVERBS			/* the script programming language. */
#endif /* NOKVERBS */
#ifndef NOTAKEARGS
#define NOTAKEARGS
#endif /* NOTAKEARGS */
#endif /* NOSPL */

/*
  Function prototypes for system and library functions.
*/
#ifdef _POSIX_SOURCE
#ifndef VMS
#ifndef MAC
#define CK_ANSILIBS
#endif /* MAC */
#endif /* VMS */
#endif /* _POSIX_SOURCE */

#ifdef NEXT
#define CK_ANSILIBS
#endif /* NEXT */

#ifdef SVR4
#define CK_ANSILIBS
#endif /* SVR4 */

#ifdef STRATUS				/* Stratus VOS uses ANSI libraries */
#define CK_ANSILIBS
#endif /* STRATUS */

#ifdef OS2
#define CK_ANSILIBS
#ifndef NOCURSES
#define MYCURSES
#endif /* NOCURSES */
#define CK_RTSCTS
#ifdef __IBMC__
#define S_IFMT 0xF000
#define timezone _timezone
#endif /* __IBMC__ */
#include <fcntl.h>
#include <io.h>
#ifdef __EMX__
#ifndef __32BIT__
#define __32BIT__
#endif /* __32BIT__ */
#include <sys/timeb.h>
#else /* __EMX__ */
#include <direct.h>
#undef SIGALRM
#ifndef SIGUSR1
#define SIGUSR1 7
#endif /* SIGUSR1 */
#define SIGALRM SIGUSR1
_PROTOTYP( unsigned alarm, (unsigned) );
_PROTOTYP( unsigned sleep, (unsigned) );
#endif /* __EMX__ */
_PROTOTYP( unsigned long zdskspace, (int) );
_PROTOTYP( int zchdsk, (int) );
_PROTOTYP( int conincraw, (int) );
_PROTOTYP( int ttiscom, (int f) );
_PROTOTYP( int IsFileNameValid, (char *) );
_PROTOTYP( void ChangeNameForFAT, (char *) );
_PROTOTYP( char *GetLoadPath, (void) );
#endif /* OS2 */

/* Fullscreen file transfer display items... */

#ifndef NOCURSES
#ifdef CK_NCURSES			/* CK_NCURSES implies CK_CURSES */
#ifndef CK_CURSES
#define CK_CURSES
#endif /* CK_CURSES */
#endif /* CK_NCURSES */

#ifdef MYCURSES				/* MYCURSES implies CK_CURSES */
#ifndef CK_CURSES
#define CK_CURSES
#endif /* CK_CURSES */
#endif /* MYCURSES */
#endif /* NOCURSES */

#ifdef NOCURSES
#ifdef CK_CURSES
#undef CK_CURSES
#endif /* CK_CURSES */
#ifndef NODISPLAY
#define NODISPLAY
#endif /* NODISPLAY */
#endif /* NOCURSES */

#ifdef CK_CURSES
/*
  The CK_WREFRESH symbol is defined if the curses library provides
  clearok() and wrefresh() functions, which are used in repainting
  the screen.
*/
#ifdef NOWREFRESH			/* Override CK_WREFRESH */

#ifdef CK_WREFRESH			/* If this is defined, */
#undef CK_WREFRESH			/* undefine it. */
#endif /* CK_WREFRESH */

#else /* !NOWREFRESH */			/* No override... */

#ifndef CK_WREFRESH			/* If CK_WREFRESH not defined */
/*
  Automatically define it for systems known to have it ...
*/
#ifdef VMS				/* DEC (Open)VMS has it */
#define CK_WREFRESH
#else
#ifdef ultrix				/* DEC ULTRIX has it */
#else
#ifdef SVR3				/* System V has it */
#define CK_WREFRESH
#else
#ifdef BSD44				/* 4.4 BSD has it */
#define CK_WREFRESH
#else
#ifdef NEXT				/* Define it for NeXTSTEP */
#define CK_WREFRESH
#else
#ifdef SUNOS4				/* SunOS 4.x... */
#define CK_WREFRESH
#else
#ifdef SOLARIS25			/* Solaris 2.5 and later */
#define CK_WREFRESH
#else
#ifdef AIXRS				/* RS/6000 AIX ... */
#define CK_WREFRESH
#else
#ifdef RTAIX				/* RT PC AIX ... */
#define CK_WREFRESH
#else
#ifdef OSF				/* DEC OSF/1 ... */
#define CK_WREFRESH

/* Add more here, or just define CK_WREFRESH on the CC command line... */

#endif /* OSF */
#endif /* RTAIX */
#endif /* AIXRS */
#endif /* SOLARIS25 */
#endif /* SUNOS4 */
#endif /* NEXT */
#endif /* BSD44 */
#endif /* SVR3 */
#endif /* ultrix */
#endif /* VMS */

#else /* CK_WREFRESH is defined */

/* This is within an ifdef CK_CURSES block.  The following is not needed */

#ifndef CK_CURSES			/* CK_WREFRESH implies CK_CURSES */
#define CK_CURSES
#endif /* CK_CURSES */

#endif /* CK_WREFRESH */
#endif /* NOWREFRESH */

#ifndef TRMBUFL
#ifdef BIGBUFOK
#define TRMBUFL 16384
#else
#ifdef DYNAMIC
#define TRMBUFL 8192
#else
#define TRMBUFL 1024
#endif /* BIGBUFOK */
#endif /* DYNAMIC */
#endif /* TRMBUFL */
#endif /* CK_CURSES */

/*
  Whether to use ckmatch() in all its glory for C-Shell-like patterns.
  If CKREGEX is NOT defined, all but * and ? matching are removed from
  ckmatch().  NOTE: Defining CKREGEX does not necessarily mean that ckmatch()
  regexes are used for filename matching.  That depends on whether zxpand()
  in ck?fio.c calls ckmatch().  NOTE 2: REGEX is a misnomer -- these are not
  regular expressions in the computer-science sense (in which, e.g. "a*b"
  matches 0 or more 'a' characters followed by 'b') but patterns (in which
  "a*b" matches 'a' followed by 0 or more non-b characters, followed by b).
*/
#ifndef NOCKREGEX
#ifndef CKREGEX
#define CKREGEX
#endif /* CKREGEX */
#endif /* NOCKREGEX */

/* Learned-script feature */

#ifndef NOLEARN
#ifdef NOSPL
#define NOLEARN
#else
#ifdef NOLOCAL
#define NOLEARN
#endif /* NOLOCAL */
#endif /* NOSPL */
#endif /* NOLEARN */

#ifdef NOLEARN
#ifdef CKLEARN
#undef CKLEARN
#endif /* CKLEARN */
#else  /* !NOLEARN */
#ifndef CKLEARN
#ifdef OS2ORUNIX
/* In UNIX this can work only with ckucns.c builds */
#define CKLEARN
#else
#ifdef VMS
#define CKLEARN
#endif /* VMS */
#endif /* OS2ORUNIX */
#endif /* CKLEARN */
#endif /* NOLEARN */

#ifdef CKLEARN
#ifndef LEARNBUFSIZ
#define LEARNBUFSIZ 128
#endif /* LEARNBUFSIZ */
#endif /* CKLEARN */

#ifndef IKSDONLY
#ifndef CKTIDLE				/* Pseudo-keepalive in CONNECT */
#ifdef OS2				/* In K95 */
#define CKTIDLE
#else
#ifdef UNIX				/* In UNIX but only ckucns versions */
#ifndef NOLEARN
#ifndef NOSELECT
#define CKTIDLE
#endif /* NOSELECT */
#endif /* NOLEARN */
#endif /* UNIX */
#endif /* OS2 */
#endif /* CKTIDLE */
#endif /* IKSDONLY */

#ifdef CK_ANSILIBS
/*
  String library functions.
  For ANSI C, get prototypes from <string.h>.
  Otherwise, skip the prototypes.
*/
#include <string.h>

/*
  Prototypes for other commonly used library functions, such as
  malloc, free, getenv, atol, atoi, and exit.  Otherwise, no prototypes.
*/
#include <stdlib.h>
#ifdef DIAB /* DIAB DS90 */
/* #include <commonC.h>  */
#include <sys/wait.h>
#define CK_WAIT_H
#ifdef COMMENT
extern void exit(int status);
extern void _exit(int status);
extern int uname(struct utsname *name);
#endif /* COMMENT */
extern int chmod(char *path, int mode);
extern int ioctl(int fildes, int request, ...);
extern int rdchk(int ttyfd);
extern int nap(int m);
#ifdef COMMENT
extern int getppid(void);
#endif /* COMMENT */
extern int _filbuf(FILE *stream);
extern int _flsbuf(char c,FILE *stream);
#endif /* DIAB */

/*
  Prototypes for UNIX functions like access, alarm, chdir, sleep, fork,
  and pause.  Otherwise, no prototypes.
*/
#ifdef VMS
#include <unixio.h>
#endif /* VMS */

#ifdef NEXT
#ifndef NEXT33
#include <libc.h>
#endif /* NEXT33 */
#else  /* NoT NeXT */
#ifndef AMIGA
#ifndef OS2
#ifdef STRATUS
#include <c_utilities.h>
#else /* !STRATUS */
#ifndef OSKXXC
#include <unistd.h>
#endif /* OSKXXC */
#ifdef HAVE_CRYPT_H
#include <crypt.h>
#endif /* HAVE_CRYPT_H */
#endif /* STRATUS */
#endif /* OS2 */
#endif /* AMIGA */
#endif /* NEXT */

#else /* Not ANSI libs... */

#ifdef MAC
#include <String.h>
#include <StdLib.h>
#endif /* MAC */

#ifdef HPUX
#ifndef HPUXPRE65
#include <unistd.h>
#endif /* HPUXPRE65 */
#endif /* HPUX */

#ifdef SUNOS41
#include <unistd.h>
#include <stdlib.h>
#else
#ifndef MAC
/*
  It is essential that these are declared correctly!
  Which is not always easy.  Take malloc() for instance ...
*/
#ifdef PYRAMID
#ifdef SVR4
#ifdef __STDC__
#define SIZE_T_MALLOC
#endif /* __STDC__ */
#endif /* SVR4 */
#endif /* PYRAMID */
/*
  Maybe some other environments need the same treatment for malloc.
  If so, define SIZE_T_MALLOC for them here or in compiler CFLAGS.
*/
#ifdef SIZE_T_MALLOC
_PROTOTYP( void * malloc, (size_t) );
#else
_PROTOTYP( char * malloc, (unsigned int) );
#endif /* SIZE_T_MALLOC */

_PROTOTYP( char * getenv, (char *) );
_PROTOTYP( long atol, (char *) );
#endif /* !MAC */
#endif /* SUNOS41 */
#endif /* CK_ANSILIBS */

/*
  <sys/param.h> generally picks up NULL, MAXPATHLEN, and MAXNAMLEN
  and seems to present on all Unixes going back at least to SCO Xenix
  with the exception(s) noted.
*/
#ifndef NO_PARAM_H			/* 2001-11-03 */
#ifndef UNIX				/* Non-Unixes don't have it */
#define NO_PARAM_H
#else
#ifdef TRS16				/* Tandy Xenix doesn't have it */
#define NO_PARAM_H
#endif /* TRS16 */
#endif /* UNIX */
#endif /* NO_PARAM_H */

#ifndef NO_PARAM_H
#ifndef INCL_PARAM_H
#define INCL_PARAM_H
#endif /* INCL_PARAM_H */
#include <sys/param.h>
#endif /* NO_PARAM_H */

#ifndef NULL				/* In case NULL is still not defined */
#define NULL 0L
/* or #define NULL 0 */
/* or #define NULL ((char *) 0) */
/* or #define NULL ((void *) 0) */
#endif /* NULL */

/* Maximum length for a fully qualified filename, not counting \0 at end. */
/*
  This is a rough cut, and errs on the side of being too big.  We don't
  want to pull in hundreds of header files looking for many and varied
  symbols, for fear of introducing unnecessary conflicts.
*/
#ifndef CKMAXPATH
#ifdef MAXPATHLEN			/* (it probably isn't) */
#define CKMAXPATH MAXPATHLEN
#else
#ifdef PATH_MAX				/* POSIX */
#define CKMAXPATH PATH_MAX
#else
#ifdef MAC
#define CKMAXPATH 63
#else
#ifdef pdp11
#define CKMAXPATH 255
#else
#ifdef UNIX				/* Even though some are way less... */
#define CKMAXPATH 1024
#else
#ifdef VMS
#define CKMAXPATH 675			/* (derivation is complicated...) */
#else
#ifdef STRATUS
#define CKMAXPATH 256			/* == $MXPL from PARU.H */
#else
#ifdef datageneral
#define CKMAXPATH 256			/* == $MXPL from PARU.H */
#else
#define CKMAXPATH 255
#endif /* STRATUS */
#endif /* datageneral */
#endif /* VMS */
#endif /* UNIX */
#endif /* pdp11 */
#endif /* MAC */
#endif /* PATH_MAX */
#endif /* MAXPATHLEN */
#endif /* CKMAXPATH */

/* Maximum length for the name of a tty device */

#ifndef DEVNAMLEN
#define DEVNAMLEN CKMAXPATH
#endif /* DEVNAMLEN */

/* Directory (path segment) separator */
/* Not fully general - Tricky for VMS, Amiga, ... */

#ifndef DIRSEP
#ifdef UNIX
#define DIRSEP '/'
#define ISDIRSEP(c) ((c)=='/')
#else
#ifdef OS2
#define DIRSEP '/'
#define ISDIRSEP(c) ((c)=='/'||(c)=='\\')
#else
#ifdef datageneral
#define DIRSEP ':'
#define ISDIRSEP(c) (((c)==':')||((c)=='^')||((c)=='='))
#else
#ifdef STRATUS
#define DIRSEP '>'
#define ISDIRSEP(c) ((c)=='>')
#else
#ifdef VMS
#define DIRSEP ']'			/* (not really) */
#define ISDIRSEP(c) ((c)==']'||(c)==':')
#else
#ifdef MAC
#define DIRSEP ':'
#define ISDIRSEP(c) ((c)==':')
#else
#ifdef AMIGA
#define DIRSEP '/'
#define ISDIRSEP(c) ((c)=='/'||(c)==':')
#else
#ifdef GEMDOS
#define DIRSEP '\\'
#define ISDIRSEP(c) ((c)=='\\'||(c)==':')
#else
#define DIRSEP '/'
#define ISDIRSEP(c) ((c)=='/')
#endif /* GEMDOS */
#endif /* AMIGA */
#endif /* MAC */
#endif /* VMS */
#endif /* STRATUS */
#endif /* datageneral */
#endif /* OS2 */
#endif /* UNIX */
#endif /* DIRSEP */

/* FILE package parameters */

#ifdef pdp11
#define NOCHANNELIO
#else

#ifndef CKMAXOPEN
#ifdef QNX
#define CKMAXOPEN 390
#else
#ifdef VMS
#define CKMAXOPEN 64
#else
#ifdef OPEN_MAX
#define CKMAXOPEN OPEN_MAX
#else
#ifdef FOPEN_MAX
#define CKMAXOPEN FOPEN_MAX
#else
#define CKMAXOPEN 64
#endif /* FOPEN_MAX */
#endif /* OPEN_MAX */
#endif /* VMS */
#endif /* QNX */
#endif /* CKMAXOPEN */

/* Maximum channels for FOPEN = CKMAXOPEN minus logs, stdio, etc */

#ifndef Z_MINCHAN
#define Z_MINCHAN 16
#endif /* Z_MINCHAN */

#ifndef Z_MAXCHAN
#define Z_MAXCHAN (CKMAXOPEN-ZNFILS-5)
#endif /* Z_MAXCHAN */
#endif /* pdp11 */

/* New-format nzltor() and nzrtol() functions that handle pathnames */

#ifndef NZLTOR
#ifdef UNIX
#define NZLTOR
#else
#ifdef VMS
#define NZLTOR
#else
#ifdef OS2
#define NZLTOR
#else
#ifdef STRATUS
#define NZLTOR
#endif /* STRATUS */
#endif /* OS2 */
#endif /* VMS */
#endif /* UNIX */
#endif /* NZLTOR */

#ifdef NZLTOR
_PROTOTYP( VOID nzltor, (char *, char *, int, int, int) );
_PROTOTYP( VOID nzrtol, (char *, char *, int, int, int) );
#endif /* NZLTOR */

/* Implementations with a zrmdir() function */

#ifndef ZRMDIR
#ifdef OS2
#define ZRMDIR
#else /* OS2 */
#ifdef UNIX
#define ZRMDIR
#else
#ifdef VMS
#define ZRMDIR
#else /* VMS */
#ifdef STRATUS
#define ZRMDIR
#endif /* STRATUS */
#endif /* VMS */
#endif /* UNIX */
#endif /* OS2 */
#endif /* ZRMDIR */

#ifdef ZRMDIR
_PROTOTYP( int zrmdir, (char *) );
#endif /* ZRMDIR */

#ifndef FILECASE
#ifdef UNIXOROSK
#define FILECASE 1
#else
#define FILECASE 0
#endif /* UNIXOROSK */
#ifndef CKCMAI
extern int filecase;
#endif /* CKCMAI */
#endif /* FILECASE */

/* Funny names for library functions department... */

#ifdef ZILOG
#define setjmp setret
#define longjmp longret
#define jmp_buf ret_buf
#define getcwd curdir
#endif /* ZILOG */

#ifdef STRATUS
/* The C-runtime conflicts with things we do in Stratus VOS ckltio.c ... */
#define printf vosprtf
_PROTOTYP( int vosprtf, (char *fmt, ...) );
#define perror(txt) printf("%s\n", txt)
/* char_varying is a string type from PL/I that VOS uses extensively */
#define CV char_varying
#endif /* STRATUS */

#ifdef NT
extern int OSVer;
#define isWin95() (OSVer==VER_PLATFORM_WIN32_WINDOWS)
#else
#define isWin95() (0)
#endif /* NT */

#ifndef BPRINT
#ifdef OS2
#define BPRINT
#endif /* OS2 */
#endif /* BPRINT */

#ifndef SESLIMIT
#ifdef OS2
#define SESLIMIT
#endif /* OS2 */
#endif /* SESLIMIT */

#ifndef NOTERM
#ifndef PCTERM
#ifdef NT
#define PCTERM
#endif /* NT */
#endif /* PCTERM */
#endif /* NOTERM */

#ifdef BEOSORBEBOX
#define query ckquery
#endif /* BEOSORBEBOX */

#ifndef PTYORPIPE			/* NETCMD and/or NETPTY defined */
#ifdef NETCMD
#define PTYORPIPE
#else
#ifdef NETPTY
#define PTYORPIPE
#endif /* NETPTY */
#endif /* NETCMD */
#endif /* PTYORPIPE */

/* mktemp() and mkstemp() */

#ifndef NOMKTEMP
#ifndef MKTEMP
#ifdef OS2ORUNIX
#define MKTEMP
#endif /* OS2ORUNIX */
#endif /* MKTEMP */

#ifdef MKTEMP
#ifndef NOMKSTEMP
#ifndef MKSTEMP
#ifdef BSD44
#define MKSTEMP
#else
#ifdef __linux__
#define MKSTEMP
#endif /* __linux__ */
#endif /* BSD44 */
#endif /* MKSTEMP */
#endif /* NOMKSTEMP */
#endif /* MKTEMP */
#endif /* NOMKTEMP */

/* Platforms that have memcpy() -- only after all headers included */

#ifndef USE_MEMCPY
#ifdef VMS
#define USE_MEMCPY
#else
#ifdef NEXT
#define USE_MEMCPY
#else
#ifdef OS2
#define USE_MEMCPY
#else
#ifdef __linux__
#define USE_MEMCPY
#else
#ifdef SOLARIS
#define USE_MEMCPY
#else
#ifdef SUNOS4
#define USE_MEMCPY
#else
#ifdef AIXRS
#define USE_MEMCPY
#else
#ifdef HPUX
#define USE_MEMCPY
#else
#ifdef POSIX
#define USE_MEMCPY
#else
#ifdef SVR4
#define USE_MEMCPY
#else
#ifdef OSF
#define USE_MEMCPY
#else
#ifdef datageneral
#define USE_MEMCPY
#else
#ifdef STRATUS
#define USE_MEMCPY
#endif /* STRATUS */
#endif /* datageneral */
#endif /* OSF */
#endif /* SVR4 */
#endif /* POSIX */
#endif /* HPUX */
#endif /* AIXRS */
#endif /* SUNOS4 */
#endif /* SOLARIS */
#endif /* __linux__ */
#endif /* OS2 */
#endif /* NEXT */
#endif /* VMS */
#endif /* USE_MEMCPY */

#ifndef USE_MEMCPY
#define memcpy(a,b,c) ckmemcpy((a),(b),(c))
#else
#ifdef CK_SCO32V4
/* Because the prototype isn't picked up in the normal header files */
_PROTOTYP( void *memcpy, (void *, const void *, size_t));
#endif /* CK_SCO32V4 */
#endif /* USE_MEMCPY */

/* User authentication for IKS -- So far K95 and UNIX only */

#ifdef NOICP
#ifndef NOLOGIN
#define NOLOGIN
#endif /* NOLOGIN */
#endif /* NOICP */

#ifndef NOLOGIN
#ifdef OS2ORUNIX
#ifndef CK_LOGIN
#define CK_LOGIN
#ifndef NOSHADOW
#ifdef CK_SCOV5
#define CK_SHADOW
#endif /* CK_SCOV5 */
#endif /* NOSHADOW */
#endif /* CK_LOGIN */
#ifdef NT
#define NTCREATETOKEN
#endif /* NT */
#endif /* OS2ORUNIX */
#else /* NOLOGIN */
#ifdef CK_LOGIN
#undef CK_LOGIN
#endif /* CK_LOGIN */
#endif /* NOLOGIN */

#ifdef OS2
#define CKSPINNER
#endif /* OS2 */

#ifdef CK_LOGIN				/* Telnet protocol required */
#ifndef TNCODE				/* for login to IKSD. */
#define TNCODE
#endif /* TNCODE */
#endif /* CK_LOGIN */

#ifdef CK_AUTHENTICATION
#ifdef NOSENDUID
#undef NOSENDUID
#endif /* NOSENDUID */
#endif /* CK_AUTHENTICATION */

#ifdef TNCODE				/* Should TELNET send user ID? */
#ifndef NOSENDUID
#ifndef CKSENDUID
#define CKSENDUID
#endif /* CKSENDUID */
#endif /* NOSENDUID */
#endif /* TNCODE */

/* UNIX platforms that don't have getusershell() */

#ifdef UNIX
#ifndef NOGETUSERSHELL
#ifdef IRIX
#define NOGETUSERSHELL
#else
#ifdef PTX
#define NOGETUSERSHELL
#else
#ifdef AIXRS
#define NOGETUSERSHELL
#else
#ifdef SINIX
#define NOGETUSERSHELL
#else
#ifdef UNIXWARE
#define NOGETUSERSHELL
#else
#ifdef COHERENT
#define NOGETUSERSHELL
#endif /* COHERENT */
#endif /* UNIXWARE */
#endif /* SINIX */
#endif /* AIXRS */
#endif /* PTX */
#endif /* IRIX */
#endif /* NOGETUSERSHELL */
#endif /* UNIX */

#ifdef CK_LOGIN
#ifdef NT
#ifndef NOSYSLOG
#ifndef CKSYSLOG
#define CKSYSLOG
#endif /* CKSYSLOG */
#endif /* NOSYSLOG */
#endif /* NT */
#ifdef UNIX
#ifndef NOSYSLOG
#ifndef CKSYSLOG
#define CKSYSLOG
#endif /* CKSYSLOG */
#endif /* NOSYSLOG */
#ifndef NOWTMP
#ifndef CKWTMP
#define CKWTMP
#endif /* CKWTMP */
#endif /* NOWTMP */
#ifndef NOGETUSERSHELL
#ifndef GETUSERSHELL
#define GETUSERSHELL
#endif /* GETUSERSHELL */
#endif /* NOGETUSERSHELL */
#endif /* UNIX */
_PROTOTYP( int ckxlogin, (CHAR *, CHAR *, CHAR *, int));
_PROTOTYP( int ckxlogout, (VOID));
#endif /* CK_LOGIN */

#ifndef NOZLOCALTIME			/* zlocaltime() available. */
#ifdef OS2ORUNIX
#define ZLOCALTIME
_PROTOTYP( char * zlocaltime, (char *) );
#endif /* OS2ORUNIX */
#endif /* NOZLOCALTIME */

#ifdef CKSYSLOG				/* Syslogging levels */
#define SYSLG_NO 0			/* No logging */
#define SYSLG_LI 1			/* Login/out */
#define SYSLG_DI 2			/* Dialing out */
#define SYSLG_AC 3			/* Making any kind of connection */
#define SYSLG_PR 4                      /* Protocol Operations */
#define SYSLG_FC 5			/* File creation */
#define SYSLG_FA 6			/* File reading */
#define SYSLG_CM 7			/* Top-level commands */
#define SYSLG_CX 8			/* All commands */
#define SYSLG_DB 9			/* Debug */
#define SYSLGMAX 9			/* Highest level */
#define SYSLG_DF SYSLG_FA		/* Default level */
/* Logging function */
_PROTOTYP(VOID cksyslog,(int, int, char *, char *, char *));
#endif /* CKSYSLOG */
#ifndef CKCMAI
extern int ckxlogging, ckxsyslog, ikdbopen;
#endif /* CKCMAI */

#ifndef CK_KEYTAB
#define CK_KEYTAB
/* Keyword Table Template */

/* Note: formerly defined in ckucmd.h but now more widely used */

struct keytab {				/* Keyword table */
    char *kwd;				/* Pointer to keyword string */
    int kwval;				/* Associated value */
    int flgs;				/* Flags (as defined above) */
};
#endif /* CK_KEYTAB */

#ifdef NETPTY
_PROTOTYP( int do_pty, (char *));
_PROTOTYP( VOID end_pty, (void));
#endif /* NETPTY */

#ifdef CKROOT
_PROTOTYP( int zsetroot, (char *) );
_PROTOTYP( char * zgetroot, (void) );
_PROTOTYP( int zinroot, (char *) );
#endif /* CKROOT */

/* Local Echo Buffer prototypes */
_PROTOTYP( VOID le_init, (void) );
_PROTOTYP( VOID le_clean, (void));
_PROTOTYP( int le_inbuf, (void));
_PROTOTYP( int le_putstr, (CHAR *));
_PROTOTYP( int le_puts, (CHAR *, int));
_PROTOTYP( int le_putchar, (CHAR));
_PROTOTYP( int le_getchar, (CHAR *));

/* #ifndef NOHTTP */
#ifndef NOCMDATE2TM
#ifndef CMDATE2TM
#ifdef OS2ORUNIX
#define CMDATE2TM
#endif /* OS2ORUNIX */
#ifdef VMS
#define CMDATE2TM
#endif /* VMS */
#endif /* CMDATE2TM */
#endif /* NOCMDATE2TM */

#ifdef CMDATE2TM
_PROTOTYP( struct tm * cmdate2tm, (char *,int));
#endif /* CMDATE2TM */
/* #endif */ /* NOHTTP */

#ifndef NOSETTIME			/* This would be set in CFLAGS */
#ifdef SVR4ORPOSIX			/* Defined in IEEE 1003.1-1996 */
#ifndef UTIMEH				/* and in SVID for SVR4 */
#define UTIMEH
#endif /* UTIMEH */
#else  /* SVR4ORPOSIX */
#ifdef OSF				/* Verified by Lucas Hart */
#ifndef UTIMEH
#define UTIMEH
#endif /* UTIMEH */
#else  /* OSF */
#ifdef SUNOS41				/* Verified by Lucas Hart */
#ifndef UTIMEH
#define UTIMEH
#endif /* UTIMEH */
#else  /* SUNOS41 */
#ifdef OS2
#ifndef SYSUTIMEH
#define SYSUTIMEH
#endif /* SYSUTIMEH */
#else /* OS2 */
#ifdef VMS
#ifndef UTIMEH
#define UTIMEH
#endif /* UTIMEH */
#endif /* VMS */
#endif /* OS2 */
#endif /* SUNOS41 */
#endif /* OSF */
#endif /* SVR4ORPOSIX */
#endif /* NOSETTIME */

#ifdef NEWFTP
_PROTOTYP( int ftpisconnected, (void));
_PROTOTYP( int ftpisloggedin, (void));
_PROTOTYP( int ftpissecure, (void));
#endif /* NEWFTP */

_PROTOTYP( int readpass, (char *, char *, int));
_PROTOTYP( int readtext, (char *, char *, int));

#ifdef OS2
_PROTOTYP(int ck_auth_loaddll, (VOID));
_PROTOTYP(int ck_auth_unloaddll, (VOID));
#endif /* OS2 */

#ifdef NT
_PROTOTYP(DWORD ckGetLongPathname,(LPCSTR lpFileName, 
                                   LPSTR lpBuffer, DWORD cchBuffer));
#endif /* NT */

#include "ckclib.h"

/* End of ckcdeb.h */
#endif /* CKCDEB_H */
