sourcepawn/compiler/sclinux.h
author David Anderson <dvander@alliedmods.net>
Thu Mar 15 20:44:23 2007 +0000 (2007-03-15)
changeset 619 6934bf39171e
parent 353 492a8d0d5f59
child 2471 194be299b700
permissions -rw-r--r--
random touchups that might not be so great
dvander@353
     1
/*
dvander@353
     2
 * Things needed to compile under linux.
dvander@353
     3
 *
dvander@353
     4
 * Should be reworked totally to use GNU's 'configure'
dvander@353
     5
 */
dvander@353
     6
#ifndef SCLINUX_H
dvander@353
     7
#define SCLINUX_H
dvander@353
     8
dvander@353
     9
/* getchar() is not a 'cool' replacement for MSDOS getch: Linux/unix depends on the features activated or not about the
dvander@353
    10
 * controlling terminal's tty. This means that ioctl(2) calls must be performed, for instance to have the controlling 
dvander@353
    11
 * terminal tty's in 'raw' mode, if we want to be able to fetch a single character. This also means that everything must 
dvander@353
    12
 * be put back correctly when the function ends. See GETCH.C for an implementation.
dvander@353
    13
 *
dvander@353
    14
 * For interactive use of SRUN/SDBG if would be much better to use GNU's readline package: the user would be able to 
dvander@353
    15
 * have a complete emacs/vi like line editing system.
dvander@353
    16
 */
dvander@353
    17
#include "getch.h"
dvander@353
    18
dvander@353
    19
#define	stricmp(a,b)    strcasecmp(a,b)
dvander@353
    20
#define	strnicmp(a,b,c) strncasecmp(a,b,c)
dvander@353
    21
dvander@353
    22
/*
dvander@353
    23
 * WinWorld wants '\'. Unices do not.
dvander@353
    24
 */
dvander@353
    25
#define	DIRECTORY_SEP_CHAR      '/'
dvander@353
    26
#define	DIRECTORY_SEP_STR       "/"
dvander@353
    27
dvander@353
    28
/*
dvander@353
    29
 * SC assumes that a computer is Little Endian unless told otherwise. It uses
dvander@353
    30
 * (and defines) the macros BYTE_ORDER and BIG_ENDIAN.
dvander@353
    31
 * For Linux, we must overrule these settings with those defined in glibc.
dvander@353
    32
 */
dvander@353
    33
#if !defined __BYTE_ORDER
dvander@353
    34
# include <stdlib.h>
dvander@353
    35
#endif
dvander@353
    36
dvander@353
    37
#if defined __OpenBSD__ || defined __FreeBSD__
dvander@353
    38
# define __BYTE_ORDER    BYTE_ORDER
dvander@353
    39
# define __LITTLE_ENDIAN LITTLE_ENDIAN
dvander@353
    40
# define __BIG_ENDIAN    BIG_ENDIAN
dvander@353
    41
#endif
dvander@353
    42
dvander@353
    43
#if !defined __BYTE_ORDER
dvander@353
    44
# error	"Can't figure computer byte order (__BYTE_ORDER macro not found)"
dvander@353
    45
#endif
dvander@353
    46
dvander@353
    47
#endif /* SCLINUX_H */