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