1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/* File: h-define.h */
#ifndef INCLUDED_H_DEFINE_H
#define INCLUDED_H_DEFINE_H
/*
* Define some simple constants
*/
/*
* Hack -- Define NULL
*/
#ifndef NULL
# ifdef __STDC__
# define NULL ((void*)0)
# else
# define NULL ((char*)0)
# endif /* __STDC__ */
#endif /* NULL */
/*
* Hack -- assist "main-acn.c" XXX XXX XXX
*/
#ifdef ACORN
# define O_RDONLY 0
# define O_WRONLY 1
# define O_RDWR 2
#endif
/*
* Hack -- force definitions -- see fd_seek()
*/
#ifndef SEEK_SET
# define SEEK_SET 0
#endif
#ifndef SEEK_CUR
# define SEEK_CUR 1
#endif
#ifndef SEEK_END
# define SEEK_END 2
#endif
/*
* Hack -- force definitions -- see fd_lock() XXX XXX XXX
*/
#ifndef F_UNLCK
# define F_UNLCK 0
#endif
#ifndef F_RDLCK
# define F_RDLCK 1
#endif
#ifndef F_WRLCK
# define F_WRLCK 2
#endif
/*
* The constants "TRUE" and "FALSE"
*/
#undef TRUE
#define TRUE 1
#undef FALSE
#define FALSE 0
/**** Simple "Macros" ****/
/*
* Force a character to lowercase/uppercase
*/
#define FORCELOWER(A) ((isupper((A))) ? tolower((A)) : (A))
#define FORCEUPPER(A) ((islower((A))) ? toupper((A)) : (A))
/*
* Non-typed minimum value macro
*/
#undef MIN
#define MIN(a,b) (((a) > (b)) ? (b) : (a))
/*
* Non-typed maximum value macro
*/
#undef MAX
#define MAX(a,b) (((a) < (b)) ? (b) : (a))
/*
* Non-typed absolute value macro
*/
#undef ABS
#define ABS(a) (((a) < 0) ? (-(a)) : (a))
/*
* Non-typed sign extractor macro
*/
#undef SGN
#define SGN(a) (((a) < 0) ? (-1) : ((a) != 0))
/*
* Hack -- allow use of "ASCII" and "EBCDIC" for "indexes", "digits",
* and "Control-Characters".
*
* Note that all "index" values must be "lowercase letters", while
* all "digits" must be "digits". Control characters can be made
* from any legal characters. XXX XXX XXX
*/
#ifdef VM
# define A2I(X) alphatoindex(X)
# define I2A(X) indextoalpha(X)
# define D2I(X) ((X) - '0')
# define I2D(X) ((X) + '0')
# define KTRL(X) ((X) & 0x1F)
# define ESCAPE '\033'
#else
# define A2I(X) ((X) - 'a')
# define I2A(X) ((X) + 'a')
# define D2I(X) ((X) - '0')
# define I2D(X) ((X) + '0')
# define KTRL(X) ((X) & 0x1F)
# define ESCAPE '\033'
#endif
#endif
|