|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <ctype.h> ! 3: ! 4: #define SHELLCOM "/bin/sh" ! 5: ! 6: typedef long int TIMETYPE; ! 7: ! 8: #ifdef unix ! 9: /* to install metering, add a statement like */ ! 10: #define METERFILE "/usr/sif/make/Meter" ! 11: /* to turn metering on, set external variable meteron to 1 */ ! 12: #endif ! 13: ! 14: /* define FSTATIC to be static on systems with C compilers ! 15: supporting file-static; otherwise define it to be null ! 16: */ ! 17: #define FSTATIC static ! 18: ! 19: #define NO 0 ! 20: #define YES 1 ! 21: ! 22: #define unequal strcmp ! 23: #define HASHSIZE 1021 ! 24: #define NLEFTS 512 ! 25: #define NCHARS 500 ! 26: #define NINTS 250 ! 27: #define INMAX 2500 ! 28: #define OUTMAX 3500 ! 29: #define QBUFMAX 2500 ! 30: #define MAXDIR 10 ! 31: ! 32: #define ALLDEPS 1 ! 33: #define SOMEDEPS 2 ! 34: ! 35: #define META 01 ! 36: #define TERMINAL 02 ! 37: extern char funny[128]; ! 38: ! 39: ! 40: #define ALLOC(x) (struct x *) ckalloc(sizeof(struct x)) ! 41: ! 42: extern int sigivalue; ! 43: extern int sigqvalue; ! 44: extern int waitpid; ! 45: extern int dbgflag; ! 46: extern int prtrflag; ! 47: extern int silflag; ! 48: extern int noexflag; ! 49: extern int keepgoing; ! 50: extern int noruleflag; ! 51: extern int touchflag; ! 52: extern int questflag; ! 53: extern int ndocoms; ! 54: extern int ignerr; ! 55: extern int okdel; ! 56: extern int inarglist; ! 57: extern char *prompt; ! 58: extern int nopdir; ! 59: extern char junkname[ ]; ! 60: ! 61: ! 62: ! 63: struct nameblock ! 64: { ! 65: struct nameblock *nxtnameblock; ! 66: char *namep; ! 67: struct lineblock *linep; ! 68: int done:3; ! 69: int septype:3; ! 70: TIMETYPE modtime; ! 71: }; ! 72: ! 73: extern struct nameblock *mainname ; ! 74: extern struct nameblock *firstname; ! 75: ! 76: struct lineblock ! 77: { ! 78: struct lineblock *nxtlineblock; ! 79: struct depblock *depp; ! 80: struct shblock *shp; ! 81: }; ! 82: extern struct lineblock *sufflist; ! 83: ! 84: struct depblock ! 85: { ! 86: struct depblock *nxtdepblock; ! 87: struct nameblock *depname; ! 88: }; ! 89: ! 90: struct shblock ! 91: { ! 92: struct shblock *nxtshblock; ! 93: char *shbp; ! 94: }; ! 95: ! 96: struct varblock ! 97: { ! 98: struct varblock *nxtvarblock; ! 99: char *varname; ! 100: char *varval; ! 101: int noreset:1; ! 102: int used:1; ! 103: }; ! 104: extern struct varblock *firstvar; ! 105: ! 106: struct pattern ! 107: { ! 108: struct pattern *nxtpattern; ! 109: char *patval; ! 110: }; ! 111: extern struct pattern *firstpat; ! 112: ! 113: struct opendir ! 114: { ! 115: struct opendir *nxtopendir; ! 116: FILE * dirfc; ! 117: char *dirn; ! 118: }; ! 119: extern struct opendir *firstod; ! 120: ! 121: ! 122: struct chain ! 123: { ! 124: struct chain *nextp; ! 125: char *datap; ! 126: }; ! 127: ! 128: char *copys(), *concat(), *subst(); ! 129: int *ckalloc(); ! 130: struct nameblock *srchname(), *makename(); ! 131: TIMETYPE exists();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.