Annotation of 43BSD/bin/sh/defs.h, revision 1.1.1.1

1.1       root        1: /*     defs.h  4.4     85/03/19        */
                      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           setupenv();
                    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: #define                batchflg        040000
                    220: INT            flags;
                    221: 
                    222: /* error exits from various parts of shell */
                    223: #include       <setjmp.h>
                    224: jmp_buf                subshell;
                    225: jmp_buf                errshell;
                    226: jmp_buf                INTbuf;
                    227: 
                    228: /* fault handling */
                    229: #include       "brkincr.h"
                    230: POS            brkincr;
                    231: 
                    232: #define MINTRAP        0
                    233: #define MAXTRAP        32
                    234: 
                    235: #define INTR   2
                    236: #define QUIT   3
                    237: #define MEMF   11
                    238: #define ALARM  14
                    239: #define KILL   15
                    240: #define TRAPSET        2
                    241: #define SIGSET 4
                    242: #define SIGMOD 8
                    243: 
                    244: VOID           fault();
                    245: BOOL           trapnote;
                    246: STRING         trapcom[];
                    247: BOOL           trapflg[];
                    248: BOOL           trapjmp[];
                    249: 
                    250: /* name tree and words */
                    251: STRING         *environ;
                    252: CHAR           numbuf[];
                    253: MSG            export;
                    254: MSG            readonly;
                    255: 
                    256: /* execflgs */
                    257: INT            exitval;
                    258: BOOL           execbrk;
                    259: INT            loopcnt;
                    260: INT            breakcnt;
                    261: 
                    262: /* messages */
                    263: MSG            mailmsg;
                    264: MSG            coredump;
                    265: MSG            badopt;
                    266: MSG            badparam;
                    267: MSG            badsub;
                    268: MSG            nospace;
                    269: MSG            notfound;
                    270: MSG            badtrap;
                    271: MSG            baddir;
                    272: MSG            badshift;
                    273: MSG            illegal;
                    274: MSG            restricted;
                    275: MSG            execpmsg;
                    276: MSG            notid;
                    277: MSG            wtfailed;
                    278: MSG            badcreate;
                    279: MSG            piperr;
                    280: MSG            badopen;
                    281: MSG            badnum;
                    282: MSG            arglist;
                    283: MSG            txtbsy;
                    284: MSG            toobig;
                    285: MSG            badexec;
                    286: MSG            notfound;
                    287: MSG            badfile;
                    288: 
                    289: address        end[];
                    290: 
                    291: #include       "ctype.h"
                    292: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.