diff options
Diffstat (limited to 'src/h-define.h')
-rw-r--r-- | src/h-define.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/src/h-define.h b/src/h-define.h new file mode 100644 index 00000000..777a5b8d --- /dev/null +++ b/src/h-define.h @@ -0,0 +1,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 + |