xref: /freebsd/contrib/tcsh/sh.decls.h (revision 7bd6fde3)
1 /* $Header: /src/pub/tcsh/sh.decls.h,v 3.46 2005/03/03 17:04:01 kim 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	RETSIGTYPE	  pintr		__P((int));
46 extern	void		  pintr1	__P((int));
47 extern	void		  process	__P((int));
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 *, int));
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 *, int));
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 ***, int));
105 extern	int	 	  expr		__P((Char ***));
106 extern	int		  exp0		__P((Char ***, int));
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((const Char *, const 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 *, int));
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 (*)(Char)));
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 
182 #ifndef WINNT_NATIVE
183 #ifdef NLS_CATALOGS
184 #ifdef HAVE_ICONV
185 extern	char		 *iconv_catgets	__P((nl_catd, int, int, const char *));
186 #endif
187 #endif
188 #endif
189 extern	void		  nlsinit	__P((void));
190 extern	void	          nlsclose	__P((void));
191 extern  int	  	  t_pmatch	__P((Char *, Char *, Char **, int));
192 
193 /*
194  * sh.hist.c
195  */
196 extern	void	 	  dohist	__P((Char **, struct command *));
197 extern  struct Hist 	 *enthist	__P((int, struct wordent *, int, int));
198 extern	void	 	  savehist	__P((struct wordent *, int));
199 extern	void		  fmthist	__P((int, ptr_t, char *, size_t));
200 extern	void		  rechist	__P((Char *, int));
201 extern	void		  loadhist	__P((Char *, int));
202 
203 /*
204  * sh.init.c
205  */
206 extern	void		  mesginit	__P((void));
207 
208 /*
209  * sh.lex.c
210  */
211 extern	void		  addla		__P((Char *));
212 extern	void		  bseek		__P((struct Ain *));
213 extern	void		  btell		__P((struct Ain *));
214 extern	void		  btoeof	__P((void));
215 extern	void		  copylex	__P((struct wordent *,
216 					     struct wordent *));
217 extern	Char		 *domod		__P((Char *, Char));
218 extern	void		  freelex	__P((struct wordent *));
219 extern	int		  lex		__P((struct wordent *));
220 extern	void		  prlex		__P((struct wordent *));
221 extern	eChar		  readc		__P((int));
222 extern	void		  settell	__P((void));
223 extern	void		  unreadc	__P((Char));
224 
225 
226 /*
227  * sh.misc.c
228  */
229 extern	int		  any		__P((const char *, Char));
230 extern	Char		**blkcpy	__P((Char **, Char **));
231 extern	void		  blkfree	__P((Char **));
232 extern	int		  blklen	__P((Char **));
233 extern	void		  blkpr		__P((Char **));
234 extern	void		  blkexpand	__P((Char **, Char *));
235 extern	Char		**blkspl	__P((Char **, Char **));
236 extern	void		  closem	__P((void));
237 #ifndef CLOSE_ON_EXEC
238 extern  void 		  closech	__P((void));
239 #endif /* !CLOSE_ON_EXEC */
240 extern	Char		**copyblk	__P((Char **));
241 extern	int		  dcopy		__P((int, int));
242 extern	int		  dmove		__P((int, int));
243 extern	void		  donefds	__P((void));
244 extern	Char		  lastchr	__P((Char *));
245 extern	void		  lshift	__P((Char **, int));
246 extern	int		  number	__P((Char *));
247 extern	int		  prefix	__P((const Char *, const Char *));
248 extern	Char		**saveblk	__P((Char **));
249 extern	void		  setzero	__P((char *, int));
250 extern	Char		 *strip		__P((Char *));
251 extern	Char		 *quote		__P((Char *));
252 extern	Char		 *quote_meta	__P((Char *, const Char *));
253 extern	char		 *strsave	__P((const char *));
254 extern	void		  udvar		__P((Char *));
255 #ifndef POSIX
256 extern  char   	  	 *strstr	__P((const char *, const char *));
257 #endif /* !POSIX */
258 #ifndef SHORT_STRINGS
259 extern	char		 *strspl	__P((const char *, const char *));
260 extern	char		 *strend	__P((char *));
261 #endif /* SHORT_STRINGS */
262 
263 /*
264  * sh.parse.c
265  */
266 extern	void		  alias		__P((struct wordent *));
267 extern	void		  freesyn	__P((struct command *));
268 extern struct command 	 *syntax	__P((struct wordent *,
269 					     struct wordent *, int));
270 
271 /*
272  * sh.print.c
273  */
274 extern	void		  drainoline	__P((void));
275 extern	void		  flush		__P((void));
276 #ifdef BSDTIMES
277 extern	void		  pcsecs	__P((unsigned long));
278 #else /* !BSDTIMES */
279 # ifdef POSIX
280 extern	void		  pcsecs	__P((clock_t));
281 # else /* !POSIX */
282 extern	void		  pcsecs	__P((time_t));
283 # endif /* !POSIX */
284 #endif /* BSDTIMES */
285 #ifdef BSDLIMIT
286 extern	void		  psecs		__P((unsigned long));
287 #endif /* BSDLIMIT */
288 extern	int		  putpure	__P((int));
289 extern	int		  putraw	__P((int));
290 extern	void		  xputchar	__P((int));
291 #ifdef WIDE_STRINGS
292 extern	void		  putwraw	__P((Char));
293 extern	void		  xputwchar	__P((Char));
294 #else
295 # define putwraw(C) putraw(C)
296 # define xputwchar(C) xputchar(C)
297 #endif
298 
299 
300 /*
301  * sh.proc.c
302  */
303 extern	void		  dobg		__P((Char **, struct command *));
304 extern	void		  dobg1		__P((Char **, struct command *));
305 extern	void		  dofg		__P((Char **, struct command *));
306 extern	void		  dofg1		__P((Char **, struct command *));
307 extern	void		  dojobs	__P((Char **, struct command *));
308 extern	void		  dokill	__P((Char **, struct command *));
309 extern	void		  donotify	__P((Char **, struct command *));
310 extern	void		  dostop	__P((Char **, struct command *));
311 extern	void		  dowait	__P((Char **, struct command *));
312 extern	void		  palloc	__P((int, struct command *));
313 extern	void		  panystop	__P((int));
314 extern	RETSIGTYPE	  pchild	__P((int));
315 extern	void		  pendjob	__P((void));
316 extern	int		  pfork		__P((struct command *, int));
317 extern	void		  pgetty	__P((int, int));
318 extern	void		  pjwait	__P((struct process *));
319 extern	void		  pnote		__P((void));
320 extern	void		  prestjob	__P((void));
321 extern	void		  psavejob	__P((void));
322 extern	int		  pstart	__P((struct process *, int));
323 extern	void		  pwait		__P((void));
324 extern  struct process   *pfind		__P((Char *));
325 
326 /*
327  * sh.sem.c
328  */
329 extern	void		  execute	__P((struct command *, int, int *,
330 					     int *, int));
331 extern	void		  mypipe	__P((int *));
332 
333 /*
334  * sh.set.c
335  */
336 extern	struct varent 	 *adrof1	__P((Char *, struct varent *));
337 extern	void		  doset		__P((Char **, struct command *));
338 extern	void		  dolet		__P((Char **, struct command *));
339 extern	Char		 *putn		__P((int));
340 extern	int		  getn		__P((Char *));
341 extern	Char		 *value1	__P((Char *, struct varent *));
342 extern	void		  set		__P((Char *, Char *, int));
343 extern	void		  set1		__P((Char *, Char **, struct varent *,
344 					     int));
345 extern	void		  setq		__P((Char *, Char **, struct varent *,
346 					     int));
347 extern	void		  unset		__P((Char **, struct command *));
348 extern	void		  unset1	__P((Char *[], struct varent *));
349 extern	void		  unsetv	__P((Char *));
350 extern	void		  setNS		__P((Char *));
351 extern	void		  shift		__P((Char **, struct command *));
352 extern	void		  plist		__P((struct varent *, int));
353 extern	Char		 *unparse	__P((struct command *));
354 #if defined(DSPMBYTE)
355 extern	void 		  update_dspmbyte_vars	__P((void));
356 extern	void		  autoset_dspmbyte	__P((Char *));
357 #endif
358 
359 /*
360  * sh.time.c
361  */
362 extern	void		  donice	__P((Char **, struct command *));
363 extern	void		  dotime	__P((Char **, struct command *));
364 #ifdef BSDTIMES
365 extern	void		  prusage	__P((struct sysrusage *,
366 					     struct sysrusage *,
367 					     timeval_t *, timeval_t *));
368 extern	void		  ruadd		__P((struct sysrusage *,
369 					     struct sysrusage *));
370 #else /* BSDTIMES */
371 # ifdef _SEQUENT_
372 extern	void		  prusage	__P((struct process_stats *,
373 					     struct process_stats *,
374 					     timeval_t *, timeval_t *));
375 extern	void		  ruadd		__P((struct process_stats *,
376 					     struct process_stats *));
377 # else /* !_SEQUENT_ */
378 #  ifdef POSIX
379 extern	void		  prusage	__P((struct tms *, struct tms *,
380 					     clock_t, clock_t));
381 #  else	/* !POSIX */
382 extern	void		  prusage	__P((struct tms *, struct tms *,
383 					     time_t, time_t));
384 #  endif /* !POSIX */
385 # endif	/* !_SEQUENT_ */
386 #endif /* BSDTIMES */
387 extern	void		  settimes	__P((void));
388 #if defined(BSDTIMES) || defined(_SEQUENT_)
389 extern	void		  tvsub		__P((struct timeval *,
390 					     struct timeval *,
391 					     struct timeval *));
392 #endif /* BSDTIMES || _SEQUENT_ */
393 
394 #endif /* _h_sh_decls */
395