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