## root/include/stdhead.h

/* [<][>][^][v][top][bottom][index][help] */

## INCLUDED FROM

    /* Main header.
       Rick Smereka, Copyright (C) 1992-2002.

       This program is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation; either version 2 of the License, or
       (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

       You should have received a copy of the GNU General Public License
       along with this program; if not, get a copy via the Internet at
       http://gnu.org/copyleft/gpl.html or write to the Free Software
       Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA 02111-1307 USA

       You can contact the author via email at rsmereka@future-lab.com

       Original DOS version Jan/92, Rick Smereka

       Ported to 32bit Windows under CodeWarrior V4.
       Dec/98, Rick Smereka

       Ported to HP-UX under GNU C 2.8.1.
       Jan/99, Rick Smereka

       Ported to Red Hat Linux 5.2, Jul/99, Rick Smereka

       Added include of 'bios.h' for DOS platform, Oct/99,
       Rick Smereka

       Added define 'HAS_STRICMP' to control definition and
       compilation of the functions 'stricmp' and 'strnicmp'
       Apr/2000, Rick Smereka

       Added include of 'string' in the case of a C++ compiler and
       changed include of 'iostream.h' to 'iostream'. Aug/2000,
       Rick Smereka

       Add include of 'dirent.h' for POSIX directory processing along
       with 'sys/stat.h' for the POSIX 'stat' function. Feb/2001,
       Rick Smereka

       Removed definitions of the QNX OS. If compiling for QNX,
       define 'OS_UNIX' along with an appropriate
       'SUB_PLATFORM_STRING'. The 'IPC_' defines now control
       compilation for sockets ('IPC_TCP') or QNX message
       passing ('IPC_QNX'). Sep/2001, Rick Smereka

       Ported to Debian Linux. Nov/2002, Rick Smereka */

    #ifndef STDHEAD_HXX
    #define STDHEAD_HXX
    #include <stdio.h>     /* standard I/O */

    #ifdef __cplusplus
    #include <iostream>    /* C++ stream I/O */
    #include <iomanip>     /* other C++ stream stuff */
    #include <new>         /* C++ defs for 'new' and 'set_new_handler' */
    #include <string>      /* C++ string class */
    #endif

    #include <stdlib.h>    /* miscellanous definitions */
    #include <stdarg.h>    /* header for variable function arguments */
    #include <string.h>    /* standard string manipulation */
    #include <ctype.h>     /* stardard character identification */
    #include <fcntl.h>     /* ditto */
    #include <time.h>      /* time functions */
    #include <limits.h>    /* datatype limits */
    #include <errno.h>     /* 'errno' processing */
    #include <dirent.h>    /* POSIX directory processing */
    #include <sys/stat.h>  /* 'stat' function defines */

    /* Various defines */

    #define LNULL (0L)        /* long null constant */
    /* #define EOF (-1) */    /* standard end of file */
    #define TAB 9             /* tab character */
    #define FA_NORMAL 0x00    /* normal file attribute */
    #define EOLL 13           /* ASCII 'end of line' */
    #define EOS '\0'          /* end of string marker */
    #define EOL 10            /* end of line marker in batch file */
    #define ALL "*.*"         /* directory global search */
    #define TRUE 1            /* logic flags */
    #define FALSE 0           /* ditto */
    #define ESC 27            /* ASCII ESC */
    #define BACKSP 8          /* ASCII backspace */

    /* platform specific defines */

    /* one line from the following group of
       supported OS's should be uncommented
       based on the OS that the program will
       run under */

    /* #define OS_DOS 1 */
    /* #define OS_WIN32 1 */
    /* #define OS_UNIX 1 */
    /* #define OS_MAC 1 */

    /* path separator and switch
       character based on platform */

    #ifdef OS_DOS
    #define PATH_SEP '\\'
    #define SWITCH_CHAR '/'
    #define PLATFORM_STRING "DOS"
    #endif

    #ifdef OS_WIN32
    #define PATH_SEP '\\'
    #define SWITCH_CHAR '/'
    #define PLATFORM_STRING "32bit Windows"
    #endif

    #ifdef OS_UNIX
    #define PATH_SEP '/'
    #define SWITCH_CHAR '-'
    #define PLATFORM_STRING "Unix"

    /* since there are many flavors of Unix,
       I have added a sub-platform string
       that can be quite specific, just uncomment
       one of the following or add your own
       once the port is solid */

    /* #define SUB_PLATFORM_STRING "HP-UX" */
    /* #define SUB_PLATFORM_STRING "AIX" */
    /* #define SUB_PLATFORM_STRING "Solaris" */
    /* #define SUB_PLATFORM_STRING "Linux" */
    /* #define SUB_PLATFORM_STRING "QNX" */

    /* Undefine one of Unix OS's below or create one.
       These are used for Unix OS specific code (which
       should not be very often) */

    /* #define OS_UNIX_REDHAT_LINUX 1 */
    /* #define OS_UNIX_HPUX 1 */
    /* #define OS_UNIX_SOLARIS 1 */
    /* #define OS_UNIX_AIX 1 */
    /* #define OS_UNIX_IRIX */
    #endif

    #ifdef OS_MAC
    #define PATH_SEP ':'
    #define SWITCH_CHAR '-'
    #define PLATFORM_STRING "Mac"
    #endif

    /* one line from the following group of
       supported interprocess communication
       methods (IPC) should be uncommented
       based on the IPC that the program will
       run under */

    /* #define IPC_TCP 1 */
    /* #define IPC_QNX 1 */

    /* include files specific to non-Unix systems */

    #ifndef OS_UNIX
    #include <process.h>   /* child process control */
    #include <conio.h>     /* console I/O */
    #endif

    /* include files specific to Unix systems */

    #ifdef OS_UNIX
    #include <unistd.h>

    /* QNX message passing specific files */

    #ifdef OS_QNX_4X
    #include <sys/name.h>  /* process name server */
    #include <sys/vc.h>    /* virtual circuits */
    #include <sys/kernel.h> /* send/receive/reply */
    #endif
    #endif

    /* include files specific to DOS */

    #ifdef OS_DOS
    #include <io.h>
    #include <dos.h>
    #include <dir.h>
    #include <bios.h>
    #endif

    /* if your compiler has 'stricmp' and 'strnicmp'
       functions built into its library (these are
       not standard ANSI), activate the next define */

    /* #define HAS_STRICMP 1 */

    /* Custom enhanced library include files */

    #include "enhlib.h"    /* enhanced library functions */

    /* global multiuser switch used for any compiler
       that cannot be supplied with a compiler define
       directive like CodeWarrior */

    /* #define MULTIUSER 1 */
    #endif

/* [<][>][^][v][top][bottom][index][help] */