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