|
|
1.1 ! root 1: /* defs 4.2 85/10/28 */ ! 2: #include <stdio.h> ! 3: #include <sys/param.h> ! 4: #include <ctype.h> ! 5: #ifdef VERSION8 ! 6: # include <ndir.h> ! 7: #else ! 8: # include <sys/dir.h> ! 9: #endif ! 10: ! 11: ! 12: #define SHELLCOM "/bin/sh" ! 13: ! 14: typedef char flag; /* represent a few bit flag */ ! 15: typedef long int TIMETYPE; ! 16: ! 17: #ifdef unix ! 18: /* to install metering, add a statement like */ ! 19: #define METERFILE "/usr/sif/make/Meter" ! 20: /* to turn metering on, set external variable meteron to 1 */ ! 21: #endif ! 22: ! 23: /* define FSTATIC to be static on systems with C compilers ! 24: supporting file-static; otherwise define it to be null ! 25: */ ! 26: #define FSTATIC static ! 27: ! 28: #define NO 0 ! 29: #define YES 1 ! 30: ! 31: #define equal(a,b) (! strcmp(a,b)) ! 32: #define HASHSIZE 1021 ! 33: #define NLEFTS 512 ! 34: #define NCHARS 500 ! 35: #define NINTS 250 ! 36: #define INMAX 5000 ! 37: #define OUTMAX 5000 ! 38: #define QBUFMAX 5000 ! 39: #define MAXDIR 10 ! 40: #define MAXPROC 100 ! 41: #define MAXINCLUDE 17 ! 42: #define PROCLIMIT 3 ! 43: ! 44: #define ALLDEPS 1 ! 45: #define SOMEDEPS 2 ! 46: ! 47: #define META 01 ! 48: #define TERMINAL 02 ! 49: extern char funny[128]; ! 50: ! 51: ! 52: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x)) ! 53: #define CHNULL (char *) NULL ! 54: ! 55: extern int sigivalue; ! 56: extern int sigqvalue; ! 57: extern int dbgflag; ! 58: extern int prtrflag; ! 59: extern int silflag; ! 60: extern int noexflag; ! 61: extern int keepgoing; ! 62: extern int noruleflag; ! 63: extern int touchflag; ! 64: extern int questflag; ! 65: extern int oldflag; ! 66: extern int ndocoms; ! 67: extern int ignerr; ! 68: extern int okdel; ! 69: extern int forceshell; ! 70: extern int inarglist; ! 71: extern char **envpp; /* points to slot in environment vector */ ! 72: extern char *prompt; ! 73: extern int nopdir; ! 74: ! 75: typedef struct nameblock *nameblkp; ! 76: typedef struct depblock *depblkp; ! 77: typedef struct lineblock *lineblkp; ! 78: typedef struct chain *chainp; ! 79: ! 80: struct nameblock ! 81: { ! 82: nameblkp nxtnameblock; ! 83: char *namep; ! 84: lineblkp linep; ! 85: flag done; ! 86: flag septype; ! 87: flag isarch; ! 88: flag isdir; ! 89: TIMETYPE modtime; ! 90: }; ! 91: ! 92: extern nameblkp mainname; ! 93: extern nameblkp firstname; ! 94: extern nameblkp *hashtab; ! 95: extern int nhashed; ! 96: extern int hashsize; ! 97: extern int hashthresh; ! 98: ! 99: struct lineblock ! 100: { ! 101: lineblkp nxtlineblock; ! 102: struct depblock *depp; ! 103: struct shblock *shp; ! 104: }; ! 105: extern lineblkp sufflist; ! 106: ! 107: struct depblock ! 108: { ! 109: depblkp nxtdepblock; ! 110: nameblkp depname; ! 111: char nowait; ! 112: } ; ! 113: ! 114: struct shblock ! 115: { ! 116: struct shblock *nxtshblock; ! 117: char *shbp; ! 118: }; ! 119: ! 120: struct varblock ! 121: { ! 122: struct varblock *nxtvarblock; ! 123: char *varname; ! 124: char *varval; ! 125: char **export; ! 126: flag noreset; ! 127: flag used; ! 128: }; ! 129: extern struct varblock *firstvar; ! 130: ! 131: struct pattern ! 132: { ! 133: struct pattern *nxtpattern; ! 134: char *patval; ! 135: }; ! 136: extern struct pattern *firstpat; ! 137: ! 138: struct dirhd ! 139: { ! 140: struct dirhd *nxtdirhd; ! 141: TIMETYPE dirtime; ! 142: int dirok; ! 143: DIR * dirfc; ! 144: char *dirn; ! 145: }; ! 146: extern struct dirhd *firstod; ! 147: ! 148: ! 149: struct chain ! 150: { ! 151: chainp nextp; ! 152: char *datap; ! 153: }; ! 154: ! 155: struct wild ! 156: { ! 157: struct wild *next; ! 158: lineblkp linep; ! 159: char *left; ! 160: char *right; ! 161: int llen; ! 162: int rlen; ! 163: int totlen; ! 164: }; ! 165: ! 166: typedef struct wild *wildp; ! 167: extern wildp firstwild; ! 168: extern wildp lastwild; ! 169: ! 170: ! 171: /* date for processes */ ! 172: extern int proclimit; /* maximum spawned processes allowed alive at one time */ ! 173: extern int proclive; /* number of spawned processes awaited */ ! 174: extern int nproc; /* next slot in process stack to use */ ! 175: extern struct process ! 176: { ! 177: int pid; ! 178: flag nohalt; ! 179: flag nowait; ! 180: flag done; ! 181: } procstack[ ]; ! 182: ! 183: ! 184: char *copys(), *concat(), *subst(); ! 185: int *ckalloc(); ! 186: nameblkp srchname(), makename(); ! 187: TIMETYPE exists();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.