Annotation of 43BSDTahoe/bin/csh/sh.init.c, revision 1.1

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

unix.superglobalmegacorp.com

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