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