Annotation of 3BSD/cmd/csh/sh.init.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1979 Regents of the University of California */
                      2: #include "sh.local.h"
                      3: /*
                      4:  * C shell
                      5:  */
                      6: 
                      7: extern int await();
                      8: extern int chngd();
                      9: extern int doalias();
                     10: extern int dobreak();
                     11: extern int docontin();
                     12: extern int doecho();
                     13: extern int doelse();
                     14: extern int doend();
                     15: extern int doendif();
                     16: extern int doendsw();
                     17: extern int doexit();
                     18: extern int doforeach();
                     19: extern int doglob();
                     20: extern int dogoto();
                     21: extern int dohash();
                     22: extern int hashstat();
                     23: extern int dohist();
                     24: extern int doif();
                     25: extern int dolet();
                     26: extern int dologin();
                     27: extern int dologout();
                     28: extern int donewgrp();
                     29: extern int donice();
                     30: extern int donohup();
                     31: extern int doonintr();
                     32: extern int dorepeat();
                     33: extern int doset();
                     34: extern int dosetenv();
                     35: extern int dosource();
                     36: extern int doswbrk();
                     37: extern int doswitch();
                     38: extern int dotime();
                     39: #ifndef V6
                     40: extern int doumask();
                     41: #endif
                     42: extern int dowhile();
                     43: extern int dozip();
                     44: extern int execash();
                     45: extern int goodbye();
                     46: extern int shift();
                     47: extern int showall();
                     48: extern int unalias();
                     49: extern int dounhash();
                     50: extern int unset();
                     51: 
                     52: #define INF    1000
                     53: 
                     54: struct biltins {
                     55:        char    *bname;
                     56:        int     (*bfunct)();
                     57:        short   minargs, maxargs;
                     58: } bfunc[] = {
                     59:        "@",            dolet,          0,      INF,
                     60:        "alias",        doalias,        0,      INF,
                     61: #ifdef debug
                     62:        "alloc",        showall,        0,      1,
                     63: #endif
                     64:        "break",        dobreak,        0,      0,
                     65:        "breaksw",      doswbrk,        0,      0,
                     66:        "case",         dozip,          0,      1,
                     67:        "cd",           chngd,          0,      1,
                     68:        "chdir",        chngd,          0,      1,
                     69:        "continue",     docontin,       0,      0,
                     70:        "default",      dozip,          0,      0,
                     71:        "echo",         doecho,         0,      INF,
                     72:        "else",         doelse,         0,      INF,
                     73:        "end",          doend,          0,      0,
                     74:        "endif",        dozip,          0,      0,
                     75:        "endsw",        dozip,          0,      0,
                     76:        "exec",         execash,        1,      INF,
                     77:        "exit",         doexit,         0,      INF,
                     78:        "foreach",      doforeach,      3,      INF,
                     79:        "glob",         doglob,         0,      INF,
                     80:        "goto",         dogoto,         1,      1,
                     81:        "hashstat",     hashstat,       0,      0,
                     82:        "history",      dohist,         0,      0,
                     83:        "if",           doif,           1,      INF,
                     84:        "login",        dologin,        0,      1,
                     85:        "logout",       dologout,       0,      0,
                     86:        "newgrp",       donewgrp,       1,      1,
                     87:        "nice",         donice,         0,      INF,
                     88:        "nohup",        donohup,        0,      INF,
                     89:        "onintr",       doonintr,       0,      2,
                     90:        "rehash",       dohash,         0,      0,
                     91:        "repeat",       dorepeat,       2,      INF,
                     92:        "set",          doset,          0,      INF,
                     93: #ifndef V6
                     94:        "setenv",       dosetenv,       2,      2,
                     95: #endif
                     96:        "shift",        shift,          0,      1,
                     97:        "source",       dosource,       1,      1,
                     98:        "switch",       doswitch,       1,      INF,
                     99:        "time",         dotime,         0,      INF,
                    100: #ifndef V6
                    101:        "umask",        doumask,        0,      1,
                    102: #endif
                    103:        "unalias",      unalias,        1,      INF,
                    104:        "unhash",       dounhash,               0,      0,
                    105:        "unset",        unset,          1,      INF,
                    106:        "wait",         await,          0,      0,
                    107:        "while",        dowhile,        1,      INF,
                    108:        0,              0,              0,      0,
                    109: };
                    110: 
                    111: #define        ZBREAK          0
                    112: #define        ZBRKSW          1
                    113: #define        ZCASE           2
                    114: #define        ZDEFAULT        3
                    115: #define        ZELSE           4
                    116: #define        ZEND            5
                    117: #define        ZENDIF          6
                    118: #define        ZENDSW          7
                    119: #define        ZEXIT           8
                    120: #define        ZFOREACH        9
                    121: #define        ZGOTO           10
                    122: #define        ZIF             11
                    123: #define        ZLABEL          12
                    124: #define        ZLET            13
                    125: #define        ZSET            14
                    126: #define        ZSWITCH         15
                    127: #define        ZTEST           16
                    128: #define        ZTHEN           17
                    129: #define        ZWHILE          18
                    130: 
                    131: struct srch {
                    132:        char    *s_name;
                    133:        short   s_value;
                    134: } srchn[] = {
                    135:        "@",            ZLET,
                    136:        "break",        ZBREAK,
                    137:        "breaksw",      ZBRKSW,
                    138:        "case",         ZCASE,
                    139:        "default",      ZDEFAULT,
                    140:        "else",         ZELSE,
                    141:        "end",          ZEND,
                    142:        "endif",        ZENDIF,
                    143:        "endsw",        ZENDSW,
                    144:        "exit",         ZEXIT,
                    145:        "foreach",      ZFOREACH,
                    146:        "goto",         ZGOTO,
                    147:        "if",           ZIF,
                    148:        "label",        ZLABEL,
                    149:        "set",          ZSET,
                    150:        "switch",       ZSWITCH,
                    151:        "while",        ZWHILE,
                    152:        0,              0,
                    153: };
                    154: 
                    155: char   *mesg[] = {
                    156:        0,
                    157:        "Hangup",
                    158:        0,
                    159:        "Quit",
                    160:        "Illegal instruction",
                    161:        "Trace/BPT trap",
                    162:        "IOT trap",
                    163:        "EMT trap",
                    164:        "Floating exception",
                    165:        "Killed",
                    166:        "Bus error",
                    167:        "Segmentation violation",
                    168:        "Bad system call",
                    169:        0,
                    170:        "Alarm clock",
                    171:        "Terminated",
                    172: };

unix.superglobalmegacorp.com

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