|
|
1.1 root 1: static char *sccsid = "@(#)sh.init.c 4.3 6/11/83";
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: #ifdef NEWGRP
36: extern int donewgrp();
37: #endif
38: extern int donice();
39: extern int donotify();
40: extern int donohup();
41: extern int doonintr();
42: extern int dopopd();
43: extern int dopushd();
44: extern int dorepeat();
45: extern int doset();
46: extern int dosetenv();
47: extern int dosource();
48: extern int dostop();
49: extern int dosuspend();
50: extern int doswbrk();
51: extern int doswitch();
52: extern int dotime();
53: extern int dounlimit();
54: extern int doumask();
55: extern int dowait();
56: extern int dowhile();
57: extern int dozip();
58: extern int execash();
59: extern int goodbye();
60: #ifdef VFORK
61: extern int hashstat();
62: #endif
63: extern int shift();
64: extern int showall();
65: extern int unalias();
66: extern int dounhash();
67: extern int unset();
68: extern int dounsetenv();
69:
70: #define INF 1000
71:
72: struct biltins {
73: char *bname;
74: int (*bfunct)();
75: short minargs, maxargs;
76: } bfunc[] = {
77: "@", dolet, 0, INF,
78: "alias", doalias, 0, INF,
79: #ifdef debug
80: "alloc", showall, 0, 1,
81: #endif
82: "bg", dobg, 0, INF,
83: "break", dobreak, 0, 0,
84: "breaksw", doswbrk, 0, 0,
85: #ifdef IIASA
86: "bye", goodbye, 0, 0,
87: #endif
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: #ifdef IIASA
105: "gd", dopushd, 0, 1,
106: #endif
107: "glob", doglob, 0, INF,
108: "goto", dogoto, 1, 1,
109: #ifdef VFORK
110: "hashstat", hashstat, 0, 0,
111: #endif
112: "history", dohist, 0, 2,
113: "if", doif, 1, INF,
114: "jobs", dojobs, 0, 1,
115: "kill", dokill, 1, INF,
116: "limit", dolimit, 0, 3,
117: "login", dologin, 0, 1,
118: "logout", dologout, 0, 0,
119: #ifdef NEWGRP
120: "newgrp", donewgrp, 1, 1,
121: #endif
122: "nice", donice, 0, INF,
123: "nohup", donohup, 0, INF,
124: "notify", donotify, 0, INF,
125: "onintr", doonintr, 0, 2,
126: "popd", dopopd, 0, 1,
127: "pushd", dopushd, 0, 1,
128: #ifdef IIASA
129: "rd", dopopd, 0, 1,
130: #endif
131: "rehash", dohash, 0, 0,
132: "repeat", dorepeat, 2, INF,
133: "set", doset, 0, INF,
134: "setenv", dosetenv, 2, 2,
135: "shift", shift, 0, 1,
136: "source", dosource, 1, 2,
137: "stop", dostop, 1, INF,
138: "suspend", dosuspend, 0, 0,
139: "switch", doswitch, 1, INF,
140: "time", dotime, 0, INF,
141: "umask", doumask, 0, 1,
142: "unalias", unalias, 1, INF,
143: "unhash", dounhash, 0, 0,
144: "unlimit", dounlimit, 0, INF,
145: "unset", unset, 1, INF,
146: "unsetenv", dounsetenv, 1, INF,
147: "wait", dowait, 0, 0,
148: "while", dowhile, 1, INF,
149: 0, 0, 0, 0,
150: };
151:
152: #define ZBREAK 0
153: #define ZBRKSW 1
154: #define ZCASE 2
155: #define ZDEFAULT 3
156: #define ZELSE 4
157: #define ZEND 5
158: #define ZENDIF 6
159: #define ZENDSW 7
160: #define ZEXIT 8
161: #define ZFOREACH 9
162: #define ZGOTO 10
163: #define ZIF 11
164: #define ZLABEL 12
165: #define ZLET 13
166: #define ZSET 14
167: #define ZSWITCH 15
168: #define ZTEST 16
169: #define ZTHEN 17
170: #define ZWHILE 18
171:
172: struct srch {
173: char *s_name;
174: short s_value;
175: } srchn[] = {
176: "@", ZLET,
177: "break", ZBREAK,
178: "breaksw", ZBRKSW,
179: "case", ZCASE,
180: "default", ZDEFAULT,
181: "else", ZELSE,
182: "end", ZEND,
183: "endif", ZENDIF,
184: "endsw", ZENDSW,
185: "exit", ZEXIT,
186: "foreach", ZFOREACH,
187: "goto", ZGOTO,
188: "if", ZIF,
189: "label", ZLABEL,
190: "set", ZSET,
191: "switch", ZSWITCH,
192: "while", ZWHILE,
193: 0, 0,
194: };
195:
196: struct mesg {
197: char *iname;
198: char *pname;
199: } mesg[] = {
200: 0, 0,
201: "HUP", "Hangup",
202: "INT", "Interrupt",
203: "QUIT", "Quit",
204: "ILL", "Illegal instruction",
205: "TRAP", "Trace/BPT trap",
206: "IOT", "IOT trap",
207: "EMT", "EMT trap",
208: "FPE", "Floating exception",
209: "KILL", "Killed",
210: "BUS", "Bus error",
211: "SEGV", "Segmentation fault",
212: "SYS", "Bad system call",
213: "PIPE", "Broken pipe",
214: "ALRM", "Alarm clock",
215: "TERM", "Terminated",
216: 0, "Signal 16",
217: "STOP", "Stopped (signal)",
218: "TSTP", "Stopped",
219: "CONT", "Continued",
220: "CHLD", "Child exited",
221: "TTIN", "Stopped (tty input)",
222: "TTOU", "Stopped (tty output)",
223: "TINT", "Tty input interrupt",
224: "XCPU", "Cputime limit exceeded",
225: "XFSZ", "Filesize limit exceeded",
226: 0, "Signal 26",
227: 0, "Signal 27",
228: 0, "Signal 28",
229: 0, "Signal 29",
230: 0, "Signal 30",
231: 0, "Signal 31",
232: 0, "Signal 32"
233: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.