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