|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)defs.h 5.2 (Berkeley) 1/12/88
7: */
8:
9: /*
10: * Public definitions, common to all.
11: */
12:
13: #include <stdio.h>
14:
15: #ifdef sgi
16: # define double long float
17: # define atof _latof
18: # define IRIS
19: # define mc68000
20: #endif
21:
22: #define new(type) ((type) malloc(sizeof(struct type)))
23: #define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type)))
24: #define dispose(ptr) { free((char *) ptr); ptr = 0; }
25:
26: #define public
27: #define private static
28:
29: #define ord(enumcon) ((unsigned int) enumcon)
30: #define nil 0
31: #define and &&
32: #define or ||
33: #define not !
34: #define div /
35: #define mod %
36: #define max(a, b) ((a) > (b) ? (a) : (b))
37: #define min(a, b) ((a) < (b) ? (a) : (b))
38:
39: #define assert(b) { \
40: if (not(b)) { \
41: panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
42: } \
43: }
44:
45: #define badcaseval(v) { \
46: panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
47: }
48:
49: #define checkref(p) { \
50: if (p == nil) { \
51: panic("reference through nil pointer at line %d in file %s", \
52: __LINE__, __FILE__); \
53: } \
54: }
55:
56: typedef int Integer;
57: typedef int integer;
58: typedef char Char;
59: typedef double Real;
60: typedef double real;
61: typedef enum { false, true } Boolean;
62: typedef Boolean boolean;
63: typedef char *String;
64:
65: #define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s)
66: #define streq(s1, s2) (strcmp(s1, s2) == 0)
67:
68: typedef FILE *File;
69: typedef int Fileid;
70: typedef String Filename;
71:
72: #define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
73: #define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
74:
75: #undef FILE
76:
77: extern long atol();
78: extern double atof();
79: extern char *malloc();
80: extern String strcpy(), index(), rindex();
81: extern int strlen();
82:
83: extern String cmdname;
84: extern String errfilename;
85: extern short errlineno;
86: extern int debug_flag[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.