Annotation of 40BSD/cmd/csh/sh.init.c, revision 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.