include fixes
[unix-history] / usr / src / bin / csh / init.c
CommitLineData
6ca601c1 1static char *sccsid = "@(#)init.c 4.3 %G%";
90503b97
BJ
2
3#include "sh.local.h"
4
5/*
6 * C shell
7 */
8
9extern int doalias();
10extern int dobg();
11extern int dobreak();
12extern int dochngd();
13extern int docontin();
14extern int dodirs();
15extern int doecho();
16extern int doelse();
17extern int doend();
18extern int doendif();
19extern int doendsw();
20extern int doeval();
21extern int doexit();
22extern int dofg();
23extern int doforeach();
24extern int doglob();
25extern int dogoto();
26extern int dohash();
27extern int dohist();
28extern int doif();
29extern int dojobs();
30extern int dokill();
31extern int dolet();
32extern int dolimit();
33extern int dologin();
34extern int dologout();
6ca601c1 35#ifdef NEWGRP
90503b97 36extern int donewgrp();
6ca601c1 37#endif
90503b97
BJ
38extern int donice();
39extern int donotify();
40extern int donohup();
41extern int doonintr();
42extern int dopopd();
43extern int dopushd();
44extern int dorepeat();
45extern int doset();
46extern int dosetenv();
47extern int dosource();
48extern int dostop();
49extern int dosuspend();
50extern int doswbrk();
51extern int doswitch();
52extern int dotime();
53extern int dounlimit();
54extern int doumask();
55extern int dowait();
56extern int dowhile();
57extern int dozip();
58extern int execash();
59extern int goodbye();
60#ifdef VFORK
61extern int hashstat();
62#endif
63extern int shift();
64extern int showall();
65extern int unalias();
66extern int dounhash();
67extern int unset();
68extern int dounsetenv();
69
70#define INF 1000
71
72struct 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,
6ca601c1 119#ifdef NEWGRP
90503b97 120 "newgrp", donewgrp, 1, 1,
6ca601c1 121#endif
90503b97
BJ
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,
3d48fab8 136 "source", dosource, 1, 2,
90503b97
BJ
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
172struct 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
196struct 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};