|
|
1.1 ! root 1: /* defs.h 4.2 83/06/10 */ ! 2: ! 3: # ! 4: /* ! 5: * UNIX shell ! 6: */ ! 7: ! 8: /* error exits from various parts of shell */ ! 9: #define ERROR 1 ! 10: #define SYNBAD 2 ! 11: #define SIGFAIL 3 ! 12: #define SIGFLG 0200 ! 13: ! 14: /* command tree */ ! 15: #define FPRS 020 ! 16: #define FINT 040 ! 17: #define FAMP 0100 ! 18: #define FPIN 0400 ! 19: #define FPOU 01000 ! 20: #define FPCL 02000 ! 21: #define FCMD 04000 ! 22: #define COMMSK 017 ! 23: ! 24: #define TCOM 0 ! 25: #define TPAR 1 ! 26: #define TFIL 2 ! 27: #define TLST 3 ! 28: #define TIF 4 ! 29: #define TWH 5 ! 30: #define TUN 6 ! 31: #define TSW 7 ! 32: #define TAND 8 ! 33: #define TORF 9 ! 34: #define TFORK 10 ! 35: #define TFOR 11 ! 36: ! 37: /* execute table */ ! 38: #define SYSSET 1 ! 39: #define SYSCD 2 ! 40: #define SYSEXEC 3 ! 41: #define SYSLOGIN 4 ! 42: #define SYSTRAP 5 ! 43: #define SYSEXIT 6 ! 44: #define SYSSHFT 7 ! 45: #define SYSWAIT 8 ! 46: #define SYSCONT 9 ! 47: #define SYSBREAK 10 ! 48: #define SYSEVAL 11 ! 49: #define SYSDOT 12 ! 50: #define SYSRDONLY 13 ! 51: #define SYSTIMES 14 ! 52: #define SYSXPORT 15 ! 53: #define SYSNULL 16 ! 54: #define SYSREAD 17 ! 55: #define SYSTST 18 ! 56: #define SYSUMASK 19 ! 57: ! 58: /* used for input and output of shell */ ! 59: #define INIO 10 ! 60: #define OTIO 11 ! 61: ! 62: /*io nodes*/ ! 63: #define USERIO 10 ! 64: #define IOUFD 15 ! 65: #define IODOC 16 ! 66: #define IOPUT 32 ! 67: #define IOAPP 64 ! 68: #define IOMOV 128 ! 69: #define IORDW 256 ! 70: #define INPIPE 0 ! 71: #define OTPIPE 1 ! 72: ! 73: /* arg list terminator */ ! 74: #define ENDARGS 0 ! 75: ! 76: #include "mac.h" ! 77: #include "mode.h" ! 78: #include "name.h" ! 79: ! 80: ! 81: /* result type declarations */ ! 82: #define alloc malloc ! 83: ADDRESS alloc(); ! 84: VOID addblok(); ! 85: STRING make(); ! 86: STRING movstr(); ! 87: TREPTR cmd(); ! 88: TREPTR makefork(); ! 89: NAMPTR lookup(); ! 90: VOID setname(); ! 91: VOID setargs(); ! 92: DOLPTR useargs(); ! 93: REAL expr(); ! 94: STRING catpath(); ! 95: STRING getpath(); ! 96: STRING *scan(); ! 97: STRING mactrim(); ! 98: STRING macro(); ! 99: STRING execs(); ! 100: VOID await(); ! 101: VOID post(); ! 102: STRING copyto(); ! 103: VOID exname(); ! 104: STRING staknam(); ! 105: VOID printnam(); ! 106: VOID printflg(); ! 107: VOID prs(); ! 108: VOID prc(); ! 109: VOID getenv(); ! 110: STRING *setenv(); ! 111: ! 112: #define attrib(n,f) (n->namflg |= f) ! 113: #define round(a,b) (((int)((ADR(a)+b)-1))&~((b)-1)) ! 114: #define closepipe(x) (close(x[INPIPE]), close(x[OTPIPE])) ! 115: #define eq(a,b) (cf(a,b)==0) ! 116: #define max(a,b) ((a)>(b)?(a):(b)) ! 117: #define assert(x) ; ! 118: ! 119: /* temp files and io */ ! 120: UFD output; ! 121: INT ioset; ! 122: IOPTR iotemp; /* files to be deleted sometime */ ! 123: IOPTR iopend; /* documents waiting to be read at NL */ ! 124: ! 125: /* substitution */ ! 126: INT dolc; ! 127: STRING *dolv; ! 128: DOLPTR argfor; ! 129: ARGPTR gchain; ! 130: ! 131: /* stack */ ! 132: #define BLK(x) ((BLKPTR)(x)) ! 133: #define BYT(x) ((BYTPTR)(x)) ! 134: #define STK(x) ((STKPTR)(x)) ! 135: #define ADR(x) ((char*)(x)) ! 136: ! 137: /* stak stuff */ ! 138: #include "stak.h" ! 139: ! 140: /* string constants */ ! 141: MSG atline; ! 142: MSG readmsg; ! 143: MSG colon; ! 144: MSG minus; ! 145: MSG nullstr; ! 146: MSG sptbnl; ! 147: MSG unexpected; ! 148: MSG endoffile; ! 149: MSG synmsg; ! 150: ! 151: /* name tree and words */ ! 152: SYSTAB reserved; ! 153: INT wdval; ! 154: INT wdnum; ! 155: ARGPTR wdarg; ! 156: INT wdset; ! 157: BOOL reserv; ! 158: ! 159: /* prompting */ ! 160: MSG stdprompt; ! 161: MSG supprompt; ! 162: MSG profile; ! 163: ! 164: /* built in names */ ! 165: NAMNOD fngnod; ! 166: NAMNOD ifsnod; ! 167: NAMNOD homenod; ! 168: NAMNOD mailnod; ! 169: NAMNOD pathnod; ! 170: NAMNOD ps1nod; ! 171: NAMNOD ps2nod; ! 172: ! 173: /* special names */ ! 174: MSG flagadr; ! 175: STRING cmdadr; ! 176: STRING exitadr; ! 177: STRING dolladr; ! 178: STRING pcsadr; ! 179: STRING pidadr; ! 180: ! 181: MSG defpath; ! 182: ! 183: /* names always present */ ! 184: MSG mailname; ! 185: MSG homename; ! 186: MSG pathname; ! 187: MSG fngname; ! 188: MSG ifsname; ! 189: MSG ps1name; ! 190: MSG ps2name; ! 191: ! 192: /* transput */ ! 193: CHAR tmpout[]; ! 194: STRING tmpnam; ! 195: INT serial; ! 196: #define TMPNAM 7 ! 197: FILE standin; ! 198: #define input (standin->fdes) ! 199: #define eof (standin->feof) ! 200: INT peekc; ! 201: STRING comdiv; ! 202: MSG devnull; ! 203: ! 204: /* flags */ ! 205: #define noexec 01 ! 206: #define intflg 02 ! 207: #define prompt 04 ! 208: #define setflg 010 ! 209: #define errflg 020 ! 210: #define ttyflg 040 ! 211: #define forked 0100 ! 212: #define oneflg 0200 ! 213: #define rshflg 0400 ! 214: #define waiting 01000 ! 215: #define stdflg 02000 ! 216: #define execpr 04000 ! 217: #define readpr 010000 ! 218: #define keyflg 020000 ! 219: INT flags; ! 220: ! 221: /* error exits from various parts of shell */ ! 222: #include <setjmp.h> ! 223: jmp_buf subshell; ! 224: jmp_buf errshell; ! 225: jmp_buf INTbuf; ! 226: ! 227: /* fault handling */ ! 228: #include "brkincr.h" ! 229: POS brkincr; ! 230: ! 231: #define MINTRAP 0 ! 232: #define MAXTRAP 17 ! 233: ! 234: #define INTR 2 ! 235: #define QUIT 3 ! 236: #define MEMF 11 ! 237: #define ALARM 14 ! 238: #define KILL 15 ! 239: #define TRAPSET 2 ! 240: #define SIGSET 4 ! 241: #define SIGMOD 8 ! 242: ! 243: VOID fault(); ! 244: BOOL trapnote; ! 245: STRING trapcom[]; ! 246: BOOL trapflg[]; ! 247: BOOL trapjmp[]; ! 248: ! 249: /* name tree and words */ ! 250: STRING *environ; ! 251: CHAR numbuf[]; ! 252: MSG export; ! 253: MSG readonly; ! 254: ! 255: /* execflgs */ ! 256: INT exitval; ! 257: BOOL execbrk; ! 258: INT loopcnt; ! 259: INT breakcnt; ! 260: ! 261: /* messages */ ! 262: MSG mailmsg; ! 263: MSG coredump; ! 264: MSG badopt; ! 265: MSG badparam; ! 266: MSG badsub; ! 267: MSG nospace; ! 268: MSG notfound; ! 269: MSG badtrap; ! 270: MSG baddir; ! 271: MSG badshift; ! 272: MSG illegal; ! 273: MSG restricted; ! 274: MSG execpmsg; ! 275: MSG notid; ! 276: MSG wtfailed; ! 277: MSG badcreate; ! 278: MSG piperr; ! 279: MSG badopen; ! 280: MSG badnum; ! 281: MSG arglist; ! 282: MSG txtbsy; ! 283: MSG toobig; ! 284: MSG badexec; ! 285: MSG notfound; ! 286: MSG badfile; ! 287: ! 288: address end[]; ! 289: ! 290: #include "ctype.h" ! 291:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.