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
|
/* 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 -- 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))
/*
* 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
*/
#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
|