Annotation of 41BSD/cmd/sh/defs.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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