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