|
|
1.1 ! root 1: /* @(#)defs.h 1.7 */ ! 2: /* ! 3: * UNIX shell ! 4: */ ! 5: ! 6: ! 7: /* error exits from various parts of shell */ ! 8: #define ERROR 1 ! 9: #define SYNBAD 2 ! 10: #define SIGFAIL 2000 ! 11: #define SIGFLG 0200 ! 12: ! 13: /* command tree */ ! 14: #define FPRS 0x0100 ! 15: #define FINT 0x0200 ! 16: #define FAMP 0x0400 ! 17: #define FPIN 0x0800 ! 18: #define FPOU 0x1000 ! 19: #define FPCL 0x2000 ! 20: #define FCMD 0x4000 ! 21: #define COMMSK 0x00F0 ! 22: #define CNTMSK 0x000F ! 23: ! 24: #define TCOM 0x0000 ! 25: #define TPAR 0x0010 ! 26: #define TFIL 0x0020 ! 27: #define TLST 0x0030 ! 28: #define TIF 0x0040 ! 29: #define TWH 0x0050 ! 30: #define TUN 0x0060 ! 31: #define TSW 0x0070 ! 32: #define TAND 0x0080 ! 33: #define TORF 0x0090 ! 34: #define TFORK 0x00A0 ! 35: #define TFOR 0x00B0 ! 36: #define TFND 0x00C0 ! 37: ! 38: /* execute table */ ! 39: #define SYSSET 1 ! 40: #define SYSCD 2 ! 41: #define SYSEXEC 3 ! 42: #define SYSNEWGRP 4 ! 43: #define SYSTRAP 5 ! 44: #define SYSEXIT 6 ! 45: #define SYSSHFT 7 ! 46: #define SYSWAIT 8 ! 47: #define SYSCONT 9 ! 48: #define SYSBREAK 10 ! 49: #define SYSEVAL 11 ! 50: #define SYSDOT 12 ! 51: #define SYSTIMES 14 ! 52: #define SYSXPORT 15 ! 53: #define SYSNULL 16 ! 54: #define SYSREAD 17 ! 55: ! 56: #define SYSUMASK 20 ! 57: ! 58: #define SYSECHO 22 ! 59: #define SYSPWD 24 ! 60: #define SYSRETURN 25 ! 61: #define SYSUNS 26 ! 62: #define SYSMEM 27 ! 63: #define SYSWHATIS 28 ! 64: #define SYSBLTIN 29 ! 65: ! 66: /* used for input and output of shell */ ! 67: #define INIO 19 ! 68: ! 69: /*io nodes*/ ! 70: #define USERIO 10 ! 71: #define IOUFD 15 ! 72: #define IODOC 16 ! 73: #define IOPUT 32 ! 74: #define IOAPP 64 ! 75: #define IOMOV 128 ! 76: #define IORDW 256 ! 77: #define INPIPE 0 ! 78: #define OTPIPE 1 ! 79: ! 80: /* arg list terminator */ ! 81: #define ENDARGS 0 ! 82: ! 83: #include "mac.h" ! 84: #include "mode.h" ! 85: #include "name.h" ! 86: #include <signal.h> ! 87: ! 88: ! 89: /* error catching */ ! 90: extern int errno; ! 91: ! 92: /* result type declarations */ ! 93: ! 94: #define alloc malloc ! 95: ! 96: extern char *alloc(); ! 97: extern char *make(); ! 98: extern char *movstr(); ! 99: extern char *movstrn(); ! 100: extern char *quotedstring(); ! 101: extern char *strf(); ! 102: extern struct trenod *cmd(); ! 103: extern struct trenod *makefork(); ! 104: extern struct namnod *lookup(); ! 105: extern struct namnod *findnam(); ! 106: extern struct dolnod *useargs(); ! 107: extern float expr(); ! 108: extern char *catpath(); ! 109: extern char *getpath(); ! 110: extern char *nextpath(); ! 111: extern char **scan(); ! 112: extern char *mactrim(); ! 113: extern char *macro(); ! 114: extern char *execs(); ! 115: extern char *copyto(); ! 116: extern int exname(); ! 117: extern char *staknam(); ! 118: extern int printnam(); ! 119: extern int printro(); ! 120: extern int printexp(); ! 121: extern char **setenv(); ! 122: extern long time(); ! 123: ! 124: #define attrib(n,f) (n->namflg |= f) ! 125: #define round(a,b) (((int)(((char *)(a)+b)-1))&~((b)-1)) ! 126: #define closepipe(x) (close(x[INPIPE]), close(x[OTPIPE])) ! 127: #define eq(a,b) (cf(a,b)==0) ! 128: #define max(a,b) ((a)>(b)?(a):(b)) ! 129: #define assert(x) ; ! 130: ! 131: /* temp files and io */ ! 132: extern int output; ! 133: extern int ioset; ! 134: extern struct ionod *iotemp; /* files to be deleted sometime */ ! 135: extern struct ionod *fiotemp; /* function files to be deleted sometime */ ! 136: extern struct ionod *iopend; /* documents waiting to be read at NL */ ! 137: extern struct fdsave fdmap[]; ! 138: ! 139: ! 140: /* substitution */ ! 141: extern int dolc; ! 142: extern char **dolv; ! 143: extern struct dolnod *argfor; ! 144: extern struct argnod *gchain; ! 145: ! 146: /* stak stuff */ ! 147: #include "stak.h" ! 148: ! 149: /* string constants */ ! 150: extern char atline[]; ! 151: extern char readmsg[]; ! 152: extern char colon[]; ! 153: extern char minus[]; ! 154: extern char nullstr[]; ! 155: extern char sptbnl[]; ! 156: extern char unexpected[]; ! 157: extern char endoffile[]; ! 158: extern char synmsg[]; ! 159: ! 160: /* name tree and words */ ! 161: extern struct sysnod reserved[]; ! 162: extern int no_reserved; ! 163: extern struct sysnod commands[]; ! 164: extern int no_commands; ! 165: ! 166: extern int wdval; ! 167: extern int wdnum; ! 168: extern int fndef; ! 169: extern struct argnod *wdarg; ! 170: extern int wdset; ! 171: extern BOOL reserv; ! 172: ! 173: /* prompting */ ! 174: extern char stdprompt[]; ! 175: extern char supprompt[]; ! 176: extern char profile[]; ! 177: ! 178: /* built in names */ ! 179: extern struct namnod fngnod; ! 180: extern struct namnod cdpnod; ! 181: extern struct namnod ifsnod; ! 182: extern struct namnod histnod; ! 183: extern struct namnod homenod; ! 184: extern struct namnod mailnod; ! 185: extern struct namnod pathnod; ! 186: extern struct namnod ps1nod; ! 187: extern struct namnod ps2nod; ! 188: extern struct namnod acctnod; ! 189: ! 190: /* special names */ ! 191: extern char flagadr[]; ! 192: extern char *pcsadr; ! 193: extern char *pidadr; ! 194: extern char *cmdadr; ! 195: ! 196: extern char defpath[]; ! 197: ! 198: /* names always present */ ! 199: extern char mailname[]; ! 200: extern char homename[]; ! 201: extern char pathname[]; ! 202: extern char cdpname[]; ! 203: extern char ifsname[]; ! 204: extern char histname[]; ! 205: extern char ps1name[]; ! 206: extern char ps2name[]; ! 207: extern char acctname[]; ! 208: ! 209: /* transput */ ! 210: extern char tmpout[]; ! 211: extern char *tmpnam; ! 212: extern int serial; ! 213: ! 214: #define TMPNAM 7 ! 215: ! 216: extern struct fileblk *standin; ! 217: ! 218: #define input (standin->fdes) ! 219: #define eof (standin->feof) ! 220: ! 221: extern int peekc; ! 222: extern int peekn; ! 223: extern int histfd; ! 224: extern char *comdiv; ! 225: extern char devnull[]; ! 226: ! 227: /* flags */ ! 228: #define noexec 01 ! 229: #define sysflg 01 ! 230: #define intflg 02 ! 231: #define prompt 04 ! 232: #define setflg 010 ! 233: #define errflg 020 ! 234: #define ttyflg 040 ! 235: #define forked 0100 ! 236: #define oneflg 0200 ! 237: #define protflg 0400 ! 238: #define waiting 01000 ! 239: #define stdflg 02000 ! 240: #define STDFLG 's' ! 241: #define execpr 04000 ! 242: #define readpr 010000 ! 243: #define keyflg 020000 ! 244: #define nofngflg 0200000 ! 245: #define exportflg 0400000 ! 246: ! 247: extern long flags; ! 248: extern int rwait; /* flags read waiting */ ! 249: ! 250: /* error exits from various parts of shell */ ! 251: #include <setjmp.h> ! 252: extern jmp_buf subshell; ! 253: extern jmp_buf errshell; ! 254: ! 255: /* fault handling */ ! 256: #include "brkincr.h" ! 257: ! 258: extern unsigned brkincr; ! 259: #define MINTRAP 0 ! 260: #define MAXTRAP 32 ! 261: ! 262: #define TRAPSET 2 ! 263: #define SIGSET 4 ! 264: #define SIGMOD 8 ! 265: #define SIGCAUGHT 16 ! 266: ! 267: extern int fault(); ! 268: extern BOOL trapnote; ! 269: extern char *trapcom[]; ! 270: extern BOOL trapflg[]; ! 271: ! 272: /* name tree and words */ ! 273: extern char **environ; ! 274: extern char numbuf[]; ! 275: extern char export[]; ! 276: extern char duperr[]; ! 277: ! 278: /* execflgs */ ! 279: extern int exitval; ! 280: extern int retval; ! 281: extern BOOL execbrk; ! 282: extern int loopcnt; ! 283: extern int breakcnt; ! 284: extern int funcnt; ! 285: ! 286: /* messages */ ! 287: extern char mailmsg[]; ! 288: extern char coredump[]; ! 289: extern char badopt[]; ! 290: extern char badparam[]; ! 291: extern char unset[]; ! 292: extern char badsub[]; ! 293: extern char nospace[]; ! 294: extern char nostack[]; ! 295: extern char notfound[]; ! 296: extern char notbltin[]; ! 297: extern char badtrap[]; ! 298: extern char baddir[]; ! 299: extern char badshift[]; ! 300: extern char execpmsg[]; ! 301: extern char notid[]; ! 302: extern char badcreate[]; ! 303: extern char nofork[]; ! 304: extern char noswap[]; ! 305: extern char piperr[]; ! 306: extern char badopen[]; ! 307: extern char badnum[]; ! 308: extern char arglist[]; ! 309: extern char txtbsy[]; ! 310: extern char toobig[]; ! 311: extern char badexec[]; ! 312: extern char badfile[]; ! 313: extern char badreturn[]; ! 314: extern char badexport[]; ! 315: extern char badunset[]; ! 316: extern char nohome[]; ! 317: extern char badperm[]; ! 318: extern char badfname[]; ! 319: ! 320: /* 'builtin' error messages */ ! 321: ! 322: extern char btest[]; ! 323: extern char badop[]; ! 324: ! 325: /* fork constant */ ! 326: ! 327: #define FORKLIM 32 ! 328: ! 329: extern address end[]; ! 330: ! 331: #include "ctype.h" ! 332: ! 333: extern int wasintr; /* used to tell if break or delete is hit ! 334: * while executing a wait ! 335: */ ! 336: extern int eflag; ! 337: ! 338: ! 339: /* ! 340: * Find out if it is time to go away. ! 341: * `trapnote' is set to SIGSET when fault is seen and ! 342: * no trap has been set. ! 343: */ ! 344: ! 345: #define sigchk() if (trapnote & SIGSET) \ ! 346: exitsh(exitval ? exitval : SIGFAIL) ! 347: ! 348: #define exitset() retval = exitval
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.