|
|
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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.