Merge from vendor branch AWK:
[dragonfly.git] / contrib / tcsh / sh.decls.h
1 /* $Header: /src/pub/tcsh/sh.decls.h,v 3.38 2002/05/16 13:51:25 christos Exp $ */
2 /*
3  * sh.decls.h    External declarations from sh*.c
4  */
5 /*-
6  * Copyright (c) 1980, 1991 The Regents of the University of California.
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  * 3. 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 #ifndef _h_sh_decls
34 #define _h_sh_decls
35
36 /*
37  * sh.c
38  */
39 extern  int               gethdir       __P((Char *));
40 extern  void              dosource      __P((Char **, struct command *));
41 extern  void              exitstat      __P((void));
42 extern  void              goodbye       __P((Char **, struct command *));
43 extern  void              importpath    __P((Char *));
44 extern  void              initdesc      __P((void));
45 extern  sigret_t          pintr         __P((int));
46 extern  void              pintr1        __P((bool));
47 extern  void              process       __P((bool));
48 extern  void              untty         __P((void));
49 #ifdef PROF
50 extern  void              done          __P((int));
51 #else
52 extern  void              xexit         __P((int));
53 #endif
54
55 /*
56  * sh.dir.c
57  */
58 extern  void              dinit         __P((Char *));
59 extern  void              dodirs        __P((Char **, struct command *));
60 extern  Char             *dcanon        __P((Char *, Char *));
61 extern  void              dtildepr      __P((Char *));
62 extern  void              dtilde        __P((void));
63 extern  void              dochngd       __P((Char **, struct command *));
64 extern  Char             *dnormalize    __P((Char *, int));
65 extern  void              dopushd       __P((Char **, struct command *));
66 extern  void              dopopd        __P((Char **, struct command *));
67 extern  void              dfree         __P((struct directory *));
68 extern  void              dsetstack     __P((void));
69 extern  int               getstakd      __P((Char *, int));
70 extern  void              recdirs       __P((Char *, int));
71 extern  void              loaddirs      __P((Char *));
72
73 /*
74  * sh.dol.c
75  */
76 extern  void              Dfix          __P((struct command *));
77 extern  Char             *Dfix1         __P((Char *));
78 extern  void              heredoc       __P((Char *));
79
80 /*
81  * sh.err.c
82  */
83 extern  void              errinit       __P((void));
84 extern  void              seterror      __P((unsigned int, ...));
85 extern  void              stderror      __P((unsigned int, ...));
86
87 /*
88  * sh.exec.c
89  */
90 extern  void              doexec        __P((struct command *, bool));
91 extern  void              dohash        __P((Char **, struct command *));
92 extern  void              dounhash      __P((Char **, struct command *));
93 extern  void              execash       __P((Char **, struct command *));
94 extern  void              hashstat      __P((Char **, struct command *));
95 extern  void              xechoit       __P((Char **));
96 extern  int               executable    __P((Char *, Char *, bool));
97 extern  int               tellmewhat    __P((struct wordent *, Char *));
98 extern  void              dowhere       __P((Char **, struct command *));
99 extern  int               find_cmd      __P((Char *, int));
100
101 /*
102  * sh.exp.c
103  */
104 extern  Char     *filetest       __P((Char *, Char ***, bool));
105 extern  int               expr          __P((Char ***));
106 extern  int               exp0          __P((Char ***, bool));
107
108 /*
109  * sh.file.c
110  */
111 #if defined(FILEC) && defined(TIOCSTI)
112 extern  int               tenex         __P((Char *, int));
113 #endif
114
115 /*
116  * sh.func.c
117  */
118 extern  void              tsetenv       __P((Char *, Char *));
119 extern  void              Unsetenv      __P((Char *));
120 extern  void              doalias       __P((Char **, struct command *));
121 extern  void              dobreak       __P((Char **, struct command *));
122 extern  void              docontin      __P((Char **, struct command *));
123 extern  void              doecho        __P((Char **, struct command *));
124 extern  void              doelse        __P((Char **, struct command *));
125 extern  void              doend         __P((Char **, struct command *));
126 extern  void              doeval        __P((Char **, struct command *));
127 extern  void              doexit        __P((Char **, struct command *));
128 extern  void              doforeach     __P((Char **, struct command *));
129 extern  void              doglob        __P((Char **, struct command *));
130 extern  void              dogoto        __P((Char **, struct command *));
131 extern  void              doif          __P((Char **, struct command *));
132 extern  void              dolimit       __P((Char **, struct command *));
133 extern  void              dologin       __P((Char **, struct command *));
134 extern  void              dologout      __P((Char **, struct command *));
135 #ifdef NEWGRP
136 extern  void              donewgrp      __P((Char **, struct command *));
137 #endif
138 extern  void              donohup       __P((Char **, struct command *));
139 extern  void              dohup         __P((Char **, struct command *));
140 extern  void              doonintr      __P((Char **, struct command *));
141 extern  void              doprintenv    __P((Char **, struct command *));
142 extern  void              dorepeat      __P((Char **, struct command *));
143 extern  void              dofiletest    __P((Char **, struct command *));
144 extern  void              dosetenv      __P((Char **, struct command *));
145 extern  void              dosuspend     __P((Char **, struct command *));
146 extern  void              doswbrk       __P((Char **, struct command *));
147 extern  void              doswitch      __P((Char **, struct command *));
148 extern  void              doumask       __P((Char **, struct command *));
149 extern  void              dounlimit     __P((Char **, struct command *));
150 extern  void              dounsetenv    __P((Char **, struct command *));
151 extern  void              dowhile       __P((Char **, struct command *));
152 extern  void              dozip         __P((Char **, struct command *));
153 extern  void              func          __P((struct command *, 
154                                              struct biltins *));
155 extern  void              gotolab       __P((Char *));
156 extern struct biltins    *isbfunc       __P((struct command *));
157 extern  void              prvars        __P((void));
158 extern  int               srchx         __P((Char *));
159 extern  void              unalias       __P((Char **, struct command *));
160 extern  void              wfree         __P((void));
161 extern  void              dobuiltins    __P((Char **, struct command *));
162 extern  void              reexecute     __P((struct command *));
163
164 /*
165  * sh.glob.c
166  */
167 extern  Char             *globequal     __P((Char *, Char *));
168 extern  Char            **dobackp       __P((Char *, bool));
169 extern  void              Gcat          __P((Char *, Char *));
170 extern  Char             *globone       __P((Char *, int));
171 extern  int               Gmatch        __P((Char *, Char *));
172 extern  int               Gnmatch       __P((Char *, Char *, Char **));
173 extern  void              ginit         __P((void));
174 extern  Char            **globall       __P((Char **));
175 extern  void              rscan         __P((Char **, void (*)(int)));
176 extern  void              tglob         __P((Char **));
177 extern  void              trim          __P((Char **));
178 #if defined(FILEC) && defined(TIOCSTI)
179 extern  int               sortscmp      __P((Char **, Char **));
180 #endif
181 extern  void              nlsinit       __P((void));
182
183 /*
184  * sh.hist.c
185  */
186 extern  void              dohist        __P((Char **, struct command *));
187 extern  struct Hist      *enthist       __P((int, struct wordent *, bool, bool));
188 extern  void              savehist      __P((struct wordent *, bool));
189 extern  void              fmthist       __P((int, ptr_t, char *, size_t));
190 extern  void              rechist       __P((Char *, int));
191 extern  void              loadhist      __P((Char *, bool));
192
193 /*
194  * sh.init.c
195  */
196 extern  void              mesginit      __P((void));
197
198 /*
199  * sh.lex.c
200  */
201 extern  void              addla         __P((Char *));
202 extern  void              bseek         __P((struct Ain *));
203 extern  void              btell         __P((struct Ain *));
204 extern  void              btoeof        __P((void));
205 extern  void              copylex       __P((struct wordent *, 
206                                              struct wordent *));
207 extern  Char             *domod         __P((Char *, int));
208 extern  void              freelex       __P((struct wordent *));
209 extern  int               lex           __P((struct wordent *));
210 extern  void              prlex         __P((struct wordent *));
211 extern  int               readc         __P((bool));
212 extern  void              settell       __P((void));
213 extern  void              unreadc       __P((int));
214
215
216 /*
217  * sh.misc.c
218  */
219 extern  int               any           __P((char *, int));
220 extern  Char            **blkcpy        __P((Char **, Char **));
221 extern  void              blkfree       __P((Char **));
222 extern  int               blklen        __P((Char **));
223 extern  void              blkpr         __P((Char **));
224 extern  void              blkexpand     __P((Char **, Char *));
225 extern  Char            **blkspl        __P((Char **, Char **));
226 extern  void              closem        __P((void));
227 #ifndef CLOSE_ON_EXEC
228 extern  void              closech       __P((void));
229 #endif /* !CLOSE_ON_EXEC */
230 extern  Char            **copyblk       __P((Char **));
231 extern  int               dcopy         __P((int, int));
232 extern  int               dmove         __P((int, int));
233 extern  void              donefds       __P((void));
234 extern  Char              lastchr       __P((Char *));
235 extern  void              lshift        __P((Char **, int));
236 extern  int               number        __P((Char *));
237 extern  int               prefix        __P((Char *, Char *));
238 extern  Char            **saveblk       __P((Char **));
239 extern  void              setzero       __P((char *, int));
240 extern  Char             *strip         __P((Char *));
241 extern  Char             *quote         __P((Char *));
242 extern  Char             *quote_meta    __P((Char *, const Char *));
243 extern  char             *strsave       __P((const char *));
244 extern  void              udvar         __P((Char *));
245 #ifndef POSIX
246 extern  char             *strstr        __P((const char *, const char *));
247 #endif /* !POSIX */
248 #ifndef SHORT_STRINGS
249 extern  char             *strspl        __P((char *, char *));
250 extern  char             *strend        __P((char *));
251 #endif /* SHORT_STRINGS */
252
253 /*
254  * sh.parse.c
255  */
256 extern  void              alias         __P((struct wordent *));
257 extern  void              freesyn       __P((struct command *));
258 extern struct command    *syntax        __P((struct wordent *, 
259                                              struct wordent *, int));
260
261 /*
262  * sh.print.c
263  */
264 extern  void              drainoline    __P((void));
265 extern  void              flush         __P((void));
266 #ifdef BSDTIMES
267 extern  void              pcsecs        __P((long));
268 #else /* !BSDTIMES */
269 # ifdef POSIX
270 extern  void              pcsecs        __P((clock_t));
271 # else /* !POSIX */
272 extern  void              pcsecs        __P((time_t));
273 # endif /* !POSIX */
274 #endif /* BSDTIMES */
275 #ifdef BSDLIMIT
276 extern  void              psecs         __P((long));
277 #endif /* BSDLIMIT */
278 extern  int               putpure       __P((int));
279 extern  int               putraw        __P((int));
280 extern  void              xputchar      __P((int));
281
282
283 /*
284  * sh.proc.c
285  */
286 extern  void              dobg          __P((Char **, struct command *));
287 extern  void              dobg1         __P((Char **, struct command *));
288 extern  void              dofg          __P((Char **, struct command *));
289 extern  void              dofg1         __P((Char **, struct command *));
290 extern  void              dojobs        __P((Char **, struct command *));
291 extern  void              dokill        __P((Char **, struct command *));
292 extern  void              donotify      __P((Char **, struct command *));
293 extern  void              dostop        __P((Char **, struct command *));
294 extern  void              dowait        __P((Char **, struct command *));
295 extern  void              palloc        __P((int, struct command *));
296 extern  void              panystop      __P((bool));
297 extern  sigret_t          pchild        __P((int));
298 extern  void              pendjob       __P((void));
299 extern  int               pfork         __P((struct command *, int));
300 extern  void              pgetty        __P((int, int));
301 extern  void              pjwait        __P((struct process *));
302 extern  void              pnote         __P((void));
303 extern  void              prestjob      __P((void));
304 extern  void              psavejob      __P((void));
305 extern  int               pstart        __P((struct process *, int));
306 extern  void              pwait         __P((void));
307 extern  struct process   *pfind         __P((Char *));
308
309 /*
310  * sh.sem.c
311  */
312 extern  void              execute       __P((struct command *, int, int *, 
313                                              int *, bool));
314 extern  void              mypipe        __P((int *));
315
316 /*
317  * sh.set.c
318  */
319 extern  struct varent    *adrof1        __P((Char *, struct varent *));
320 extern  void              doset         __P((Char **, struct command *));
321 extern  void              dolet         __P((Char **, struct command *));
322 extern  Char             *putn          __P((int));
323 extern  int               getn          __P((Char *));
324 extern  Char             *value1        __P((Char *, struct varent *));
325 extern  void              set           __P((Char *, Char *, int));
326 extern  void              set1          __P((Char *, Char **, struct varent *,
327                                              int));
328 extern  void              setq          __P((Char *, Char **, struct varent *,
329                                              int));
330 extern  void              unset         __P((Char **, struct command *));
331 extern  void              unset1        __P((Char *[], struct varent *));
332 extern  void              unsetv        __P((Char *));
333 extern  void              setNS         __P((Char *));
334 extern  void              shift         __P((Char **, struct command *));
335 extern  void              plist         __P((struct varent *, int));
336 extern  Char             *unparse       __P((struct command *));
337 #if defined(DSPMBYTE)
338 extern  void              update_dspmbyte_vars  __P((void));
339 extern  void              autoset_dspmbyte      __P((Char *));
340 #endif
341
342 /*
343  * sh.time.c
344  */
345 extern  void              donice        __P((Char **, struct command *));
346 extern  void              dotime        __P((Char **, struct command *));
347 #ifdef BSDTIMES
348 extern  void              prusage       __P((struct sysrusage *,
349                                              struct sysrusage *, 
350                                              timeval_t *, timeval_t *));
351 extern  void              ruadd         __P((struct sysrusage *,
352                                              struct sysrusage *));
353 #else /* BSDTIMES */
354 # ifdef _SEQUENT_
355 extern  void              prusage       __P((struct process_stats *,
356                                              struct process_stats *, 
357                                              timeval_t *, timeval_t *));
358 extern  void              ruadd         __P((struct process_stats *,
359                                              struct process_stats *));
360 # else /* !_SEQUENT_ */
361 #  ifdef POSIX
362 extern  void              prusage       __P((struct tms *, struct tms *, 
363                                              clock_t, clock_t));
364 #  else /* !POSIX */
365 extern  void              prusage       __P((struct tms *, struct tms *, 
366                                              time_t, time_t));
367 #  endif /* !POSIX */
368 # endif /* !_SEQUENT_ */
369 #endif /* BSDTIMES */
370 extern  void              settimes      __P((void));
371 #if defined(BSDTIMES) || defined(_SEQUENT_)
372 extern  void              tvsub         __P((struct timeval *, 
373                                              struct timeval *, 
374                                              struct timeval *));
375 #endif /* BSDTIMES || _SEQUENT_ */
376
377 #endif /* _h_sh_decls */