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

1.1       root        1: static char *sccsid = "@(#)sh.init.c 4.1 10/9/80";
                      2: 
                      3: #include "sh.local.h"
                      4: 
                      5: /*
                      6:  * C shell
                      7:  */
                      8: 
                      9: extern int doalias();
                     10: extern int dobg();
                     11: extern int dobreak();
                     12: extern int dochngd();
                     13: extern int docontin();
                     14: extern int dodirs();
                     15: extern int doecho();
                     16: extern int doelse();
                     17: extern int doend();
                     18: extern int doendif();
                     19: extern int doendsw();
                     20: extern int doeval();
                     21: extern int doexit();
                     22: extern int dofg();
                     23: extern int doforeach();
                     24: extern int doglob();
                     25: extern int dogoto();
                     26: extern int dohash();
                     27: extern int dohist();
                     28: extern int doif();
                     29: extern int dojobs();
                     30: extern int dokill();
                     31: extern int dolet();
                     32: extern int dolimit();
                     33: extern int dologin();
                     34: extern int dologout();
                     35: extern int donewgrp();
                     36: extern int donice();
                     37: extern int donotify();
                     38: extern int donohup();
                     39: extern int doonintr();
                     40: extern int dopopd();
                     41: extern int dopushd();
                     42: extern int dorepeat();
                     43: extern int doset();
                     44: extern int dosetenv();
                     45: extern int dosource();
                     46: extern int dostop();
                     47: extern int dosuspend();
                     48: extern int doswbrk();
                     49: extern int doswitch();
                     50: extern int dotime();
                     51: extern int dounlimit();
                     52: extern int doumask();
                     53: extern int dowait();
                     54: extern int dowhile();
                     55: extern int dozip();
                     56: extern int execash();
                     57: extern int goodbye();
                     58: #ifdef VFORK
                     59: extern int hashstat();
                     60: #endif
                     61: extern int shift();
                     62: extern int showall();
                     63: extern int unalias();
                     64: extern int dounhash();
                     65: extern int unset();
                     66: extern int dounsetenv();
                     67: 
                     68: #define        INF     1000
                     69: 
                     70: struct biltins {
                     71:        char    *bname;
                     72:        int     (*bfunct)();
                     73:        short   minargs, maxargs;
                     74: } bfunc[] = {
                     75:        "@",            dolet,          0,      INF,
                     76:        "alias",        doalias,        0,      INF,
                     77: #ifdef debug
                     78:        "alloc",        showall,        0,      1,
                     79: #endif
                     80:        "bg",           dobg,           0,      INF,
                     81:        "break",        dobreak,        0,      0,
                     82:        "breaksw",      doswbrk,        0,      0,
                     83: #ifdef IIASA
                     84:        "bye",          goodbye,        0,      0,
                     85: #endif
                     86:        "case",         dozip,          0,      1,
                     87:        "cd",           dochngd,        0,      1,
                     88:        "chdir",        dochngd,        0,      1,
                     89:        "continue",     docontin,       0,      0,
                     90:        "default",      dozip,          0,      0,
                     91:        "dirs",         dodirs,         0,      1,
                     92:        "echo",         doecho,         0,      INF,
                     93:        "else",         doelse,         0,      INF,
                     94:        "end",          doend,          0,      0,
                     95:        "endif",        dozip,          0,      0,
                     96:        "endsw",        dozip,          0,      0,
                     97:        "eval",         doeval,         0,      INF,
                     98:        "exec",         execash,        1,      INF,
                     99:        "exit",         doexit,         0,      INF,
                    100:        "fg",           dofg,           0,      INF,
                    101:        "foreach",      doforeach,      3,      INF,
                    102: #ifdef IIASA
                    103:        "gd",           dopushd,        0,      1,
                    104: #endif
                    105:        "glob",         doglob,         0,      INF,
                    106:        "goto",         dogoto,         1,      1,
                    107: #ifdef VFORK
                    108:        "hashstat",     hashstat,       0,      0,
                    109: #endif
                    110:        "history",      dohist,         0,      2,
                    111:        "if",           doif,           1,      INF,
                    112:        "jobs",         dojobs,         0,      1,
                    113:        "kill",         dokill,         1,      INF,
                    114:        "limit",        dolimit,        0,      3,
                    115:        "login",        dologin,        0,      1,
                    116:        "logout",       dologout,       0,      0,
                    117:        "newgrp",       donewgrp,       1,      1,
                    118:        "nice",         donice,         0,      INF,
                    119:        "nohup",        donohup,        0,      INF,
                    120:        "notify",       donotify,       0,      INF,
                    121:        "onintr",       doonintr,       0,      2,
                    122:        "popd",         dopopd,         0,      1,
                    123:        "pushd",        dopushd,        0,      1,
                    124: #ifdef IIASA
                    125:        "rd",           dopopd,         0,      1,
                    126: #endif
                    127:        "rehash",       dohash,         0,      0,
                    128:        "repeat",       dorepeat,       2,      INF,
                    129:        "set",          doset,          0,      INF,
                    130:        "setenv",       dosetenv,       2,      2,
                    131:        "shift",        shift,          0,      1,
                    132:        "source",       dosource,       1,      1,
                    133:        "stop",         dostop,         1,      INF,
                    134:        "suspend",      dosuspend,      0,      0,
                    135:        "switch",       doswitch,       1,      INF,
                    136:        "time",         dotime,         0,      INF,
                    137:        "umask",        doumask,        0,      1,
                    138:        "unalias",      unalias,        1,      INF,
                    139:        "unhash",       dounhash,       0,      0,
                    140:        "unlimit",      dounlimit,      0,      INF,
                    141:        "unset",        unset,          1,      INF,
                    142:        "unsetenv",     dounsetenv,     1,      INF,
                    143:        "wait",         dowait,         0,      0,
                    144:        "while",        dowhile,        1,      INF,
                    145:        0,              0,              0,      0,
                    146: };
                    147: 
                    148: #define        ZBREAK          0
                    149: #define        ZBRKSW          1
                    150: #define        ZCASE           2
                    151: #define        ZDEFAULT        3
                    152: #define        ZELSE           4
                    153: #define        ZEND            5
                    154: #define        ZENDIF          6
                    155: #define        ZENDSW          7
                    156: #define        ZEXIT           8
                    157: #define        ZFOREACH        9
                    158: #define        ZGOTO           10
                    159: #define        ZIF             11
                    160: #define        ZLABEL          12
                    161: #define        ZLET            13
                    162: #define        ZSET            14
                    163: #define        ZSWITCH         15
                    164: #define        ZTEST           16
                    165: #define        ZTHEN           17
                    166: #define        ZWHILE          18
                    167: 
                    168: struct srch {
                    169:        char    *s_name;
                    170:        short   s_value;
                    171: } srchn[] = {
                    172:        "@",            ZLET,
                    173:        "break",        ZBREAK,
                    174:        "breaksw",      ZBRKSW,
                    175:        "case",         ZCASE,
                    176:        "default",      ZDEFAULT,
                    177:        "else",         ZELSE,
                    178:        "end",          ZEND,
                    179:        "endif",        ZENDIF,
                    180:        "endsw",        ZENDSW,
                    181:        "exit",         ZEXIT,
                    182:        "foreach",      ZFOREACH,
                    183:        "goto",         ZGOTO,
                    184:        "if",           ZIF,
                    185:        "label",        ZLABEL,
                    186:        "set",          ZSET,
                    187:        "switch",       ZSWITCH,
                    188:        "while",        ZWHILE,
                    189:        0,              0,
                    190: };
                    191: 
                    192: struct mesg {
                    193:        char    *iname;
                    194:        char    *pname;
                    195: } mesg[] = {
                    196:        0,      0,
                    197:        "HUP",  "Hangup",
                    198:        "INT",  "Interrupt",    
                    199:        "QUIT", "Quit",
                    200:        "ILL",  "Illegal instruction",
                    201:        "TRAP", "Trace/BPT trap",
                    202:        "IOT",  "IOT trap",
                    203:        "EMT",  "EMT trap",
                    204:        "FPE",  "Floating exception",
                    205:        "KILL", "Killed",
                    206:        "BUS",  "Bus error",
                    207:        "SEGV", "Segmentation fault",
                    208:        "SYS",  "Bad system call",
                    209:        "PIPE", "Broken pipe",
                    210:        "ALRM", "Alarm clock",
                    211:        "TERM", "Terminated",
                    212:        0,      "Signal 16",
                    213:        "STOP", "Stopped (signal)",
                    214:        "TSTP", "Stopped",
                    215:        "CONT", "Continued",
                    216:        "CHLD", "Child exited",
                    217:        "TTIN", "Stopped (tty input)",
                    218:        "TTOU", "Stopped (tty output)",
                    219:        "TINT", "Tty input interrupt",
                    220:        "XCPU", "Cputime limit exceeded",
                    221:        "XFSZ", "Filesize limit exceeded",
                    222:        0,      "Signal 26",
                    223:        0,      "Signal 27",
                    224:        0,      "Signal 28",
                    225:        0,      "Signal 29",
                    226:        0,      "Signal 30",
                    227:        0,      "Signal 31",
                    228:        0,      "Signal 32"
                    229: };

unix.superglobalmegacorp.com

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