summaryrefslogtreecommitdiff
path: root/src/h-define.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/h-define.h')
-rw-r--r--src/h-define.h133
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
+