extern.h revision 1.6 1 /* $NetBSD: extern.h,v 1.6 1995/03/21 09:02:53 cgd Exp $ */
2
3 /*-
4 * Copyright (c) 1991, 1993
5 * The Regents of the University of California. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 * must display the following acknowledgement:
17 * This product includes software developed by the University of
18 * California, Berkeley and its contributors.
19 * 4. Neither the name of the University nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * @(#)extern.h 8.1 (Berkeley) 5/31/93
36 */
37
38 #include <sys/cdefs.h>
39
40 /*
41 * csh.c
42 */
43 int gethdir __P((Char *));
44 void dosource __P((Char **, struct command *));
45 void exitstat __P((void));
46 void goodbye __P((void));
47 void importpath __P((Char *));
48 void initdesc __P((void));
49 void pintr __P((int));
50 void pintr1 __P((bool));
51 void printprompt __P((void));
52 void process __P((bool));
53 void rechist __P((void));
54 void untty __P((void));
55 int vis_fputc __P((int, FILE *));
56
57 #ifdef PROF
58 void done __P((int));
59 #else
60 void xexit __P((int));
61 #endif
62
63 /*
64 * dir.c
65 */
66 void dinit __P((Char *));
67 void dodirs __P((Char **, struct command *));
68 Char *dcanon __P((Char *, Char *));
69 void dtildepr __P((Char *, Char *));
70 void dtilde __P((void));
71 void dochngd __P((Char **, struct command *));
72 Char *dnormalize __P((Char *));
73 void dopushd __P((Char **, struct command *));
74 void dopopd __P((Char **, struct command *));
75 struct directory;
76 void dfree __P((struct directory *));
77
78 /*
79 * dol.c
80 */
81 void Dfix __P((struct command *));
82 Char *Dfix1 __P((Char *));
83 void heredoc __P((Char *));
84
85 /*
86 * err.c
87 */
88 void seterror __P((int, ...));
89 void stderror __P((int, ...));
90
91 /*
92 * exec.c
93 */
94 void doexec __P((Char **, struct command *));
95 void dohash __P((Char **, struct command *));
96 void dounhash __P((Char **, struct command *));
97 void dowhich __P((Char **, struct command *));
98 void execash __P((Char **, struct command *));
99 void hashstat __P((Char **, struct command *));
100 void xechoit __P((Char **));
101
102 /*
103 * exp.c
104 */
105 int expr __P((Char ***));
106 int exp0 __P((Char ***, bool));
107
108 /*
109 * file.c
110 */
111 #ifdef FILEC
112 int tenex __P((Char *, int));
113 #endif
114
115 /*
116 * func.c
117 */
118 void Setenv __P((Char *, Char *));
119 void doalias __P((Char **, struct command *));
120 void dobreak __P((Char **, struct command *));
121 void docontin __P((Char **, struct command *));
122 void doecho __P((Char **, struct command *));
123 void doelse __P((Char **, struct command *));
124 void doend __P((Char **, struct command *));
125 void doeval __P((Char **, struct command *));
126 void doexit __P((Char **, struct command *));
127 void doforeach __P((Char **, struct command *));
128 void doglob __P((Char **, struct command *));
129 void dogoto __P((Char **, struct command *));
130 void doif __P((Char **, struct command *));
131 void dolimit __P((Char **, struct command *));
132 void dologin __P((Char **, struct command *));
133 void dologout __P((Char **, struct command *));
134 void donohup __P((Char **, struct command *));
135 void doonintr __P((Char **, struct command *));
136 void doprintf __P((Char **, struct command *));
137 void dorepeat __P((Char **, struct command *));
138 void dosetenv __P((Char **, struct command *));
139 void dosuspend __P((Char **, struct command *));
140 void doswbrk __P((Char **, struct command *));
141 void doswitch __P((Char **, struct command *));
142 void doumask __P((Char **, struct command *));
143 void dounlimit __P((Char **, struct command *));
144 void dounsetenv __P((Char **, struct command *));
145 void dowhile __P((Char **, struct command *));
146 void dozip __P((Char **, struct command *));
147 void func __P((struct command *, struct biltins *));
148 struct biltins *
149 isbfunc __P((struct command *));
150 void prvars __P((void));
151 void gotolab __P((Char *));
152 int srchx __P((Char *));
153 void unalias __P((Char **, struct command *));
154 void wfree __P((void));
155
156 /*
157 * glob.c
158 */
159 Char **dobackp __P((Char *, bool));
160 void Gcat __P((Char *, Char *));
161 Char *globone __P((Char *, int));
162 int Gmatch __P((Char *, Char *));
163 void ginit __P((void));
164 Char **globall __P((Char **));
165 void rscan __P((Char **, void (*)()));
166 void tglob __P((Char **));
167 void trim __P((Char **));
168 #ifdef FILEC
169 int sortscmp __P((const ptr_t, const ptr_t));
170 #endif /* FILEC */
171
172 /*
173 * hist.c
174 */
175 void dohist __P((Char **, struct command *));
176 struct Hist *
177 enthist __P((int, struct wordent *, bool));
178 void savehist __P((struct wordent *));
179
180 /*
181 * lex.c
182 */
183 void addla __P((Char *));
184 void bseek __P((struct Ain *));
185 void btell __P((struct Ain *));
186 void btoeof __P((void));
187 void copylex __P((struct wordent *, struct wordent *));
188 Char *domod __P((Char *, int));
189 void freelex __P((struct wordent *));
190 int lex __P((struct wordent *));
191 void prlex __P((FILE *, struct wordent *));
192 int readc __P((bool));
193 void settell __P((void));
194 void unreadc __P((int));
195
196 /*
197 * misc.c
198 */
199 int any __P((char *, int));
200 Char **blkcat __P((Char **, Char **));
201 Char **blkcpy __P((Char **, Char **));
202 Char **blkend __P((Char **));
203 void blkfree __P((Char **));
204 int blklen __P((Char **));
205 void blkpr __P((FILE *, Char **));
206 Char **blkspl __P((Char **, Char **));
207 void closem __P((void));
208 Char **copyblk __P((Char **));
209 int dcopy __P((int, int));
210 int dmove __P((int, int));
211 void donefds __P((void));
212 Char lastchr __P((Char *));
213 void lshift __P((Char **, int));
214 int number __P((Char *));
215 int prefix __P((Char *, Char *));
216 Char **saveblk __P((Char **));
217 void setzero __P((char *, int));
218 Char *strip __P((Char *));
219 char *strsave __P((char *));
220 char *strspl __P((char *, char *));
221 void udvar __P((Char *));
222
223 #ifndef SHORT_STRINGS
224 # ifdef NOTUSED
225 char *strstr __P((const char *, const char *));
226 # endif /* NOTUSED */
227 char *strend __P((char *));
228 #endif
229
230 /*
231 * parse.c
232 */
233 void alias __P((struct wordent *));
234 void freesyn __P((struct command *));
235 struct command *
236 syntax __P((struct wordent *, struct wordent *, int));
237
238
239 /*
240 * proc.c
241 */
242 void dobg __P((Char **, struct command *));
243 void dobg1 __P((Char **, struct command *));
244 void dofg __P((Char **, struct command *));
245 void dofg1 __P((Char **, struct command *));
246 void dojobs __P((Char **, struct command *));
247 void dokill __P((Char **, struct command *));
248 void donotify __P((Char **, struct command *));
249 void dostop __P((Char **, struct command *));
250 void dowait __P((Char **, struct command *));
251 void palloc __P((int, struct command *));
252 void panystop __P((bool));
253 void pchild __P((int));
254 void pendjob __P((void));
255 struct process *
256 pfind __P((Char *));
257 int pfork __P((struct command *, int));
258 void pgetty __P((int, int));
259 void pjwait __P((struct process *));
260 void pnote __P((void));
261 void prestjob __P((void));
262 void psavejob __P((void));
263 void pstart __P((struct process *, int));
264 void pwait __P((void));
265
266 /*
267 * sem.c
268 */
269 void execute __P((struct command *, int, int *, int *));
270 void mypipe __P((int *));
271
272 /*
273 * set.c
274 */
275 struct varent
276 *adrof1 __P((Char *, struct varent *));
277 void doset __P((Char **, struct command *));
278 void dolet __P((Char **, struct command *));
279 Char *putn __P((int));
280 int getn __P((Char *));
281 Char *value1 __P((Char *, struct varent *));
282 void set __P((Char *, Char *));
283 void set1 __P((Char *, Char **, struct varent *));
284 void setq __P((Char *, Char **, struct varent *));
285 void unset __P((Char **, struct command *));
286 void unset1 __P((Char *[], struct varent *));
287 void unsetv __P((Char *));
288 void setNS __P((Char *));
289 void shift __P((Char **, struct command *));
290 void plist __P((struct varent *));
291
292 /*
293 * time.c
294 */
295 void donice __P((Char **, struct command *));
296 void dotime __P((Char **, struct command *));
297 void prusage __P((struct rusage *, struct rusage *,
298 struct timeval *, struct timeval *));
299 void ruadd __P((struct rusage *, struct rusage *));
300 void settimes __P((void));
301 void tvadd __P((struct timeval *, struct timeval *));
302 void tvsub __P((struct timeval *, struct timeval *, struct timeval *));
303 void pcsecs __P((long));
304 void psecs __P((long));
305
306 /*
307 * alloc.c
308 */
309 void Free __P((ptr_t));
310 ptr_t Malloc __P((size_t));
311 ptr_t Realloc __P((ptr_t, size_t));
312 ptr_t Calloc __P((size_t, size_t));
313 void showall __P((Char **, struct command *));
314
315 /*
316 * str.c:
317 */
318 #ifdef SHORT_STRINGS
319 Char *s_strchr __P((Char *, int));
320 Char *s_strrchr __P((Char *, int));
321 Char *s_strcat __P((Char *, Char *));
322 #ifdef NOTUSED
323 Char *s_strncat __P((Char *, Char *, size_t));
324 #endif
325 Char *s_strcpy __P((Char *, Char *));
326 Char *s_strncpy __P((Char *, Char *, size_t));
327 Char *s_strspl __P((Char *, Char *));
328 size_t s_strlen __P((Char *));
329 int s_strcmp __P((Char *, Char *));
330 int s_strncmp __P((Char *, Char *, size_t));
331 Char *s_strsave __P((Char *));
332 Char *s_strend __P((Char *));
333 Char *s_strstr __P((Char *, Char *));
334 Char *str2short __P((char *));
335 Char **blk2short __P((char **));
336 char *short2str __P((Char *));
337 char **short2blk __P((Char **));
338 #endif
339 char *short2qstr __P((Char *));
340 char *vis_str __P((Char *));
341