correct comment
[unix-history] / usr / src / old / dbx / defs.h
CommitLineData
441444e2 1/* defs.h 1.3 84/08/12 */
e1f4dbca 2
cbb6f020
SL
3/*
4 * Public definitions, common to all.
5 */
6
7#include <stdio.h>
8
9#define new(type) ((type) malloc(sizeof(struct type)))
10#define newarr(type, n) ((type *) malloc((unsigned) (n) * sizeof(type)))
11#define dispose(ptr) { free((char *) ptr); ptr = 0; }
12
13#define public
14#define private static
15
16#define ord(enumcon) ((unsigned int) enumcon)
17#define nil 0
18#define and &&
19#define or ||
20#define not !
21#define div /
22#define mod %
23#define max(a, b) ((a) > (b) ? (a) : (b))
24#define min(a, b) ((a) < (b) ? (a) : (b))
25
26#define assert(b) { \
27 if (not(b)) { \
28 panic("assertion failed at line %d in file %s", __LINE__, __FILE__); \
29 } \
30}
31
32#define badcaseval(v) { \
33 panic("unexpected value %d at line %d in file %s", v, __LINE__, __FILE__); \
34}
35
36#define checkref(p) { \
37 if (p == nil) { \
38 panic("reference through nil pointer at line %d in file %s", \
39 __LINE__, __FILE__); \
40 } \
41}
42
43typedef int Integer;
2fd0f574 44typedef int integer;
cbb6f020
SL
45typedef char Char;
46typedef double Real;
2fd0f574 47typedef double real;
cbb6f020 48typedef enum { false, true } Boolean;
2fd0f574 49typedef Boolean boolean;
cbb6f020
SL
50typedef char *String;
51
52#define strdup(s) strcpy(malloc((unsigned) strlen(s) + 1), s)
53#define streq(s1, s2) (strcmp(s1, s2) == 0)
441444e2 54#define strneq(s1, s2, n) (strncmp(s1, s2, n) == 0)
cbb6f020
SL
55
56typedef FILE *File;
57typedef int Fileid;
58typedef String Filename;
59
60#define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
61#define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
62
63#undef FILE
64
65extern long atol();
66extern double atof();
67extern char *malloc();
68extern String strcpy(), index(), rindex();
69extern int strlen();
70
71extern String cmdname;
72extern String errfilename;
73extern short errlineno;
74extern int debug_flag[];