Annotation of 42BSD/ucb/dbx/defs.h, revision 1.1.1.1

1.1       root        1: /*     defs.h  1.1     83/08/13        */
                      2: 
                      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: 
                     43: typedef int Integer;
                     44: typedef char Char;
                     45: typedef double Real;
                     46: typedef enum { false, true } Boolean;
                     47: typedef char *String;
                     48: 
                     49: #define strdup(s)       strcpy(malloc((unsigned) strlen(s) + 1), s)
                     50: #define streq(s1, s2)   (strcmp(s1, s2) == 0)
                     51: 
                     52: typedef FILE *File;
                     53: typedef int Fileid;
                     54: typedef String Filename;
                     55: 
                     56: #define get(f, var) fread((char *) &(var), sizeof(var), 1, f)
                     57: #define put(f, var) fwrite((char *) &(var), sizeof(var), 1, f)
                     58: 
                     59: #undef FILE
                     60: 
                     61: extern long atol();
                     62: extern double atof();
                     63: extern char *malloc();
                     64: extern String strcpy(), index(), rindex();
                     65: extern int strlen();
                     66: 
                     67: extern String cmdname;
                     68: extern String errfilename;
                     69: extern short errlineno;
                     70: extern int debug_flag[];

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.