|
|
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: #ifdef BSD4_2 ! 95: #define shalloc malloc ! 96: #define shfree free ! 97: #endif ! 98: ! 99: extern char *shalloc(); ! 100: extern char *make(); ! 101: extern char *movstr(); ! 102: extern char *movstrn(); ! 103: extern char *quotedstring(); ! 104: extern char *strf(); ! 105: extern struct trenod *cmd(); ! 106: extern struct trenod *makefork(); ! 107: extern struct namnod *lookup(); ! 108: extern struct namnod *findnam(); ! 109: extern struct dolnod *useargs(); ! 110: extern float expr(); ! 111: extern char *catpath(); ! 112: extern char *getpath(); ! 113: extern char *nextpath(); ! 114: extern char **scan(); ! 115: extern char *mactrim(); ! 116: extern char *macro(); ! 117: extern char *execs(); ! 118: extern int exname(); ! 119: extern char *staknam(); ! 120: extern int printnam(); ! 121: extern int printro(); ! 122: extern int printexp(); ! 123: extern char **setenv(); ! 124: extern long time(); ! 125: extern void prs_2buff(); ! 126: extern void prc_buff(); ! 127: extern void prs_buff(); ! 128: extern void prn_buff(); ! 129: extern void prs_cntl(); ! 130: extern void flushb(); ! 131: extern long lseek(); ! 132: ! 133: #define attrib(n,f) (n->namflg |= f) ! 134: #define round(a,b) (((int)(((char *)(a)+b)-1))&~((b)-1)) ! 135: #ifdef CRAY ! 136: #define sround(a,b) ((char *)((int)(a+(b-1))&077777777)) ! 137: #else ! 138: #define sround round ! 139: #endif ! 140: #define closepipe(x) (close(x[INPIPE]), close(x[OTPIPE])) ! 141: #define eq(a,b) (cf(a,b)==0) ! 142: #define max(a,b) ((a)>(b)?(a):(b)) ! 143: #define assert(x) ; ! 144: ! 145: /* temp files and io */ ! 146: extern int output; ! 147: extern int ioset; ! 148: extern struct ionod *iotemp; /* files to be deleted sometime */ ! 149: extern struct ionod *fiotemp; /* function files to be deleted sometime */ ! 150: extern struct ionod *iopend; /* documents waiting to be read at NL */ ! 151: extern struct fdsave fdmap[]; ! 152: ! 153: ! 154: /* substitution */ ! 155: extern int dolc; ! 156: extern char **dolv; ! 157: extern struct dolnod *argfor; ! 158: extern struct argnod *gchain; ! 159: ! 160: /* stak stuff */ ! 161: #include "stak.h" ! 162: ! 163: /* string constants */ ! 164: extern char atline[]; ! 165: extern char readmsg[]; ! 166: extern char colon[]; ! 167: extern char minus[]; ! 168: extern char nullstr[]; ! 169: extern char sptbnl[]; ! 170: extern char unexpected[]; ! 171: extern char endoffile[]; ! 172: extern char synmsg[]; ! 173: ! 174: /* name tree and words */ ! 175: extern struct sysnod reserved[]; ! 176: extern int no_reserved; ! 177: extern struct sysnod commands[]; ! 178: extern int no_commands; ! 179: ! 180: extern int wdval; ! 181: extern int wdnum; ! 182: extern int fndef; ! 183: extern struct argnod *wdarg; ! 184: extern int wdset; ! 185: extern BOOL reserv; ! 186: ! 187: /* prompting */ ! 188: extern char stdprompt[]; ! 189: extern char supprompt[]; ! 190: extern char profile[]; ! 191: ! 192: /* built in names */ ! 193: extern struct namnod fngnod; ! 194: extern struct namnod cdpnod; ! 195: extern struct namnod ifsnod; ! 196: extern struct namnod histnod; ! 197: extern struct namnod homenod; ! 198: extern struct namnod mailnod; ! 199: extern struct namnod pathnod; ! 200: extern struct namnod ps1nod; ! 201: extern struct namnod ps2nod; ! 202: extern struct namnod acctnod; ! 203: ! 204: /* special names */ ! 205: extern char flagadr[]; ! 206: extern char *pcsadr; ! 207: extern char *pidadr; ! 208: extern char *cmdadr; ! 209: ! 210: extern char defpath[]; ! 211: ! 212: /* names always present */ ! 213: extern char mailname[]; ! 214: extern char homename[]; ! 215: extern char pathname[]; ! 216: extern char cdpname[]; ! 217: extern char ifsname[]; ! 218: extern char histname[]; ! 219: extern char ps1name[]; ! 220: extern char ps2name[]; ! 221: extern char acctname[]; ! 222: ! 223: /* transput */ ! 224: extern char tmpout[]; ! 225: extern char *tmpname; ! 226: extern int serial; ! 227: ! 228: #define TMPNAM 7 ! 229: ! 230: extern struct fileblk *standin; ! 231: ! 232: #define input (standin->fdes) ! 233: #define eof (standin->feof) ! 234: ! 235: extern int peekc; ! 236: extern int peekn; ! 237: extern int histfd; ! 238: extern char *comdiv; ! 239: extern char devnull[]; ! 240: ! 241: /* flags */ ! 242: #define noexec 01 ! 243: #define sysflg 01 ! 244: #define intflg 02 ! 245: #define prompt 04 ! 246: #define setflg 010 ! 247: #define errflg 020 ! 248: #define ttyflg 040 ! 249: #define forked 0100 ! 250: #define oneflg 0200 ! 251: #define protflg 0400 ! 252: #define waiting 01000 ! 253: #define stdflg 02000 ! 254: #define STDFLG 's' ! 255: #define execpr 04000 ! 256: #define readpr 010000 ! 257: #define keyflg 020000 ! 258: #define nofngflg 0200000 ! 259: #define exportflg 0400000 ! 260: ! 261: extern long flags; ! 262: extern int rwait; /* flags read waiting */ ! 263: ! 264: /* error exits from various parts of shell */ ! 265: #include <setjmp.h> ! 266: extern jmp_buf subshell; ! 267: extern jmp_buf errshell; ! 268: ! 269: /* fault handling */ ! 270: #include "brkincr.h" ! 271: ! 272: extern unsigned brkincr; ! 273: #define MINTRAP 0 ! 274: #define MAXTRAP 32 ! 275: ! 276: #define TRAPSET 2 ! 277: #define SIGSET 4 ! 278: #define SIGMOD 8 ! 279: #define SIGCAUGHT 16 ! 280: ! 281: extern int fault(); ! 282: extern BOOL trapnote; ! 283: extern char *trapcom[]; ! 284: extern BOOL trapflg[]; ! 285: ! 286: /* name tree and words */ ! 287: extern char **environ; ! 288: extern char numbuf[]; ! 289: extern char export[]; ! 290: extern char duperr[]; ! 291: ! 292: /* execflgs */ ! 293: extern int exitval; ! 294: extern int retval; ! 295: extern BOOL execbrk; ! 296: extern int loopcnt; ! 297: extern int breakcnt; ! 298: extern int funcnt; ! 299: ! 300: /* messages */ ! 301: extern char mailmsg[]; ! 302: extern char coredump[]; ! 303: extern char badopt[]; ! 304: extern char badparam[]; ! 305: extern char unset[]; ! 306: extern char badsub[]; ! 307: extern char nospace[]; ! 308: extern char nostack[]; ! 309: extern char notfound[]; ! 310: extern char notbltin[]; ! 311: extern char badtrap[]; ! 312: extern char baddir[]; ! 313: extern char badshift[]; ! 314: extern char execpmsg[]; ! 315: extern char notid[]; ! 316: extern char badcreate[]; ! 317: extern char nofork[]; ! 318: extern char noswap[]; ! 319: extern char piperr[]; ! 320: extern char badopen[]; ! 321: extern char badnum[]; ! 322: extern char arglist[]; ! 323: extern char txtbsy[]; ! 324: extern char toobig[]; ! 325: extern char badexec[]; ! 326: extern char badfile[]; ! 327: extern char badreturn[]; ! 328: extern char badexport[]; ! 329: extern char badunset[]; ! 330: extern char nohome[]; ! 331: extern char badperm[]; ! 332: extern char badfname[]; ! 333: ! 334: /* 'builtin' error messages */ ! 335: ! 336: extern char btest[]; ! 337: extern char badop[]; ! 338: ! 339: /* fork constant */ ! 340: ! 341: #define FORKLIM 32 ! 342: ! 343: extern address end[]; ! 344: ! 345: #include "sctype.h" ! 346: ! 347: extern int wasintr; /* used to tell if break or delete is hit ! 348: * while executing a wait ! 349: */ ! 350: extern int eflag; ! 351: ! 352: ! 353: /* ! 354: * Find out if it is time to go away. ! 355: * `trapnote' is set to SIGSET when fault is seen and ! 356: * no trap has been set. ! 357: */ ! 358: ! 359: #define sigchk() if (trapnote & SIGSET) \ ! 360: exitsh(exitval ? exitval : SIGFAIL) ! 361: ! 362: #define exitset() retval = exitval
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.