Merge branch 'vendor/TCSH'
[dragonfly.git] / contrib / tcsh-6 / sh.decls.h
blob85525155636e41b8742ab26c6debacf69e1fb078
1 /* $Header: /p/tcsh/cvsroot/tcsh/sh.decls.h,v 3.55 2009/02/25 22:54:54 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.
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.
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.
33 #ifndef _h_sh_decls
34 #define _h_sh_decls
37 * sh.c
39 extern Char *gethdir (const Char *);
40 extern void dosource (Char **, struct command *);
41 extern void exitstat (void);
42 extern void goodbye (Char **, struct command *);
43 extern void importpath (Char *);
44 extern void initdesc (void);
45 extern void pintr (void);
46 extern void pintr1 (int);
47 extern void phup (void);
48 extern void process (int);
49 extern void untty (void);
50 #ifdef PROF
51 extern void done (int);
52 #else
53 extern void xexit (int);
54 #endif
55 extern int grabpgrp (int, pid_t);
58 * sh.dir.c
60 extern void dinit (Char *);
61 extern void dodirs (Char **, struct command *);
62 extern Char *dcanon (Char *, Char *);
63 extern void dtildepr (Char *);
64 extern void dtilde (void);
65 extern void dochngd (Char **, struct command *);
66 extern Char *dnormalize (const Char *, int);
67 extern void dopushd (Char **, struct command *);
68 extern void dopopd (Char **, struct command *);
69 extern void dfree (struct directory *);
70 extern void dsetstack (void);
71 extern const Char *getstakd (int);
72 extern void recdirs (Char *, int);
73 extern void loaddirs (Char *);
76 * sh.dol.c
78 extern void Dfix (struct command *);
79 extern Char *Dfix1 (Char *);
80 extern void heredoc (Char *);
83 * sh.err.c
85 extern void reset (void);
86 extern void cleanup_push_internal(void *, void (*fn) (void *)
87 #ifdef CLEANUP_DEBUG
88 , const char *, size_t
89 #define cleanup_push(v, f) cleanup_push_internal(v, f, __FILE__, __LINE__)
90 #else
91 #define cleanup_push(v, f) cleanup_push_internal(v, f)
92 #endif
94 extern void cleanup_ignore(void *);
95 extern void cleanup_until (void *);
96 extern void cleanup_until_mark(void);
97 extern size_t cleanup_push_mark(void);
98 extern void cleanup_pop_mark(size_t);
99 extern void open_cleanup(void *);
100 extern void opendir_cleanup(void *);
101 extern void sigint_cleanup(void *);
102 extern void sigprocmask_cleanup(void *);
103 extern void xfree_indirect(void *);
104 extern void errinit (void);
105 extern void seterror (unsigned int, ...);
106 extern void stderror (unsigned int, ...);
109 * sh.exec.c
111 extern void doexec (struct command *, int);
112 extern void dohash (Char **, struct command *);
113 extern void dounhash (Char **, struct command *);
114 extern void execash (Char **, struct command *);
115 extern void hashstat (Char **, struct command *);
116 extern void xechoit (Char **);
117 extern int executable (const Char *, const Char *, int);
118 extern int tellmewhat (struct wordent *, Char **);
119 extern void dowhere (Char **, struct command *);
120 extern int find_cmd (Char *, int);
123 * sh.exp.c
125 extern Char *filetest (Char *, Char ***, int);
126 extern int expr (Char ***);
127 extern int exp0 (Char ***, int);
130 * sh.file.c
132 #if defined(FILEC) && defined(TIOCSTI)
133 extern size_t tenex (Char *, size_t);
134 #endif
137 * sh.func.c
139 extern void tsetenv (const Char *, const Char *);
140 extern void Unsetenv (Char *);
141 extern void doalias (Char **, struct command *);
142 extern void dobreak (Char **, struct command *);
143 extern void docontin (Char **, struct command *);
144 extern void doecho (Char **, struct command *);
145 extern void doelse (Char **, struct command *);
146 extern void doend (Char **, struct command *);
147 extern void doeval (Char **, struct command *);
148 extern void doexit (Char **, struct command *);
149 extern void doforeach (Char **, struct command *);
150 extern void doglob (Char **, struct command *);
151 extern void dogoto (Char **, struct command *);
152 extern void doif (Char **, struct command *);
153 extern void dolimit (Char **, struct command *);
154 extern void dologin (Char **, struct command *);
155 extern void dologout (Char **, struct command *);
156 #ifdef NEWGRP
157 extern void donewgrp (Char **, struct command *);
158 #endif
159 extern void donohup (Char **, struct command *);
160 extern void dohup (Char **, struct command *);
161 extern void doonintr (Char **, struct command *);
162 extern void doprintenv (Char **, struct command *);
163 extern void dorepeat (Char **, struct command *);
164 extern void dofiletest (Char **, struct command *);
165 extern void dosetenv (Char **, struct command *);
166 extern void dosuspend (Char **, struct command *);
167 extern void doswbrk (Char **, struct command *);
168 extern void doswitch (Char **, struct command *);
169 extern void doumask (Char **, struct command *);
170 extern void dounlimit (Char **, struct command *);
171 extern void dounsetenv (Char **, struct command *);
172 extern void dowhile (Char **, struct command *);
173 extern void dozip (Char **, struct command *);
174 extern void func (struct command *,
175 const struct biltins *);
176 extern void gotolab (Char *);
177 extern const struct biltins *isbfunc (struct command *);
178 extern void prvars (void);
179 extern int srchx (Char *);
180 extern void unalias (Char **, struct command *);
181 extern void wfree (void);
182 extern void dobuiltins (Char **, struct command *);
183 extern void reexecute (struct command *);
186 * sh.glob.c
188 extern Char *globequal (Char *);
189 extern Char **dobackp (Char *, int);
190 extern Char *globone (Char *, int);
191 extern int Gmatch (const Char *, const Char *);
192 extern int Gnmatch (const Char *, const Char *,
193 const Char **);
194 extern Char **globall (Char **, int);
195 extern Char **glob_all_or_error(Char **);
196 extern void rscan (Char **, void (*)(Char));
197 extern int tglob (Char **);
198 extern void trim (Char **);
200 #if !defined(WINNT_NATIVE) && defined(NLS_CATALOGS)
201 extern char *xcatgets (nl_catd, int, int, const char *);
202 #if defined(HAVE_ICONV) && defined(HAVE_NL_LANGINFO)
203 extern char *iconv_catgets (nl_catd, int, int, const char *);
204 #endif
205 #endif
206 extern void nlsinit (void);
207 extern void nlsclose (void);
208 extern int t_pmatch (const Char *, const Char *,
209 const Char **, int);
212 * sh.hist.c
214 extern void dohist (Char **, struct command *);
215 extern struct Hist *enthist (int, struct wordent *, int, int);
216 extern void savehist (struct wordent *, int);
217 extern char *fmthist (int, ptr_t);
218 extern void rechist (Char *, int);
219 extern void loadhist (Char *, int);
222 * sh.init.c
224 extern void mesginit (void);
227 * sh.lex.c
229 extern void addla (Char *);
230 extern void bseek (struct Ain *);
231 extern void btell (struct Ain *);
232 extern void btoeof (void);
233 extern void copylex (struct wordent *, struct wordent *);
234 extern Char *domod (Char *, Char);
235 extern void freelex (struct wordent *);
236 extern int lex (struct wordent *);
237 extern void lex_cleanup (void *);
238 extern void prlex (struct wordent *);
239 extern eChar readc (int);
240 extern void settell (void);
241 extern void unreadc (Char);
245 * sh.misc.c
247 extern int any (const char *, Char);
248 extern Char **blkcpy (Char **, Char **);
249 extern void blkfree (Char **);
250 extern void blk_cleanup (void *);
251 extern void blk_indirect_cleanup(void *);
252 extern int blklen (Char **);
253 extern void blkpr (Char *const *);
254 extern Char *blkexpand (Char *const *);
255 extern Char **blkspl (Char **, Char **);
256 extern void closem (void);
257 #ifndef CLOSE_ON_EXEC
258 extern void closech (void);
259 #endif /* !CLOSE_ON_EXEC */
260 extern Char **copyblk (Char **);
261 extern int dcopy (int, int);
262 extern int dmove (int, int);
263 extern void donefds (void);
264 extern Char lastchr (Char *);
265 extern void lshift (Char **, int);
266 extern int number (Char *);
267 extern int prefix (const Char *, const Char *);
268 extern Char **saveblk (Char **);
269 extern void setzero (void *, size_t);
270 extern Char *strip (Char *);
271 extern Char *quote (Char *);
272 extern const Char *quote_meta (struct Strbuf *, const Char *);
273 extern char *strnsave (const char *, size_t);
274 extern char *strsave (const char *);
275 extern void udvar (Char *);
276 #ifndef POSIX
277 extern char *strstr (const char *, const char *);
278 #endif /* !POSIX */
279 extern char *strspl (const char *, const char *);
280 extern char *strend (const char *);
281 extern char *areadlink (const char *);
282 extern void xclose (int);
283 extern void xclosedir (DIR *);
284 extern int xcreat (const char *, mode_t);
285 extern struct group *xgetgrgid (gid_t);
286 extern struct passwd *xgetpwnam (const char *);
287 extern struct passwd *xgetpwuid (uid_t);
288 extern int xopen (const char *, int, ...);
289 extern ssize_t xread (int, void *, size_t);
290 extern int xtcsetattr (int, int, const struct termios *);
291 extern ssize_t xwrite (int, const void *, size_t);
294 * sh.parse.c
296 extern void alias (struct wordent *);
297 extern void freesyn (struct command *);
298 extern struct command *syntax (const struct wordent *,
299 const struct wordent *, int);
300 extern void syntax_cleanup(void *);
303 * sh.print.c
305 extern void drainoline (void);
306 extern void flush (void);
307 #ifdef BSDTIMES
308 extern void pcsecs (unsigned long);
309 #else /* !BSDTIMES */
310 # ifdef POSIX
311 extern void pcsecs (clock_t);
312 # else /* !POSIX */
313 extern void pcsecs (time_t);
314 # endif /* !POSIX */
315 #endif /* BSDTIMES */
316 #ifdef BSDLIMIT
317 extern void psecs (unsigned long);
318 #endif /* BSDLIMIT */
319 extern int putpure (int);
320 extern int putraw (int);
321 extern void xputchar (int);
322 #ifdef WIDE_STRINGS
323 extern void putwraw (Char);
324 extern void xputwchar (Char);
325 #else
326 # define putwraw(C) putraw(C)
327 # define xputwchar(C) xputchar(C)
328 #endif
329 extern void output_raw_restore(void *);
333 * sh.proc.c
335 extern void dobg (Char **, struct command *);
336 extern void dobg1 (Char **, struct command *);
337 extern void dofg (Char **, struct command *);
338 extern void dofg1 (Char **, struct command *);
339 extern void dojobs (Char **, struct command *);
340 extern void dokill (Char **, struct command *);
341 extern void donotify (Char **, struct command *);
342 extern void dostop (Char **, struct command *);
343 extern void dowait (Char **, struct command *);
344 extern void palloc (pid_t, struct command *);
345 extern void panystop (int);
346 extern void pchild (void);
347 extern void pendjob (void);
348 extern pid_t pfork (struct command *, int);
349 extern void pgetty (int, pid_t);
350 extern void pjwait (struct process *);
351 extern void pnote (void);
352 extern void psavejob (void);
353 extern void psavejob_cleanup(void *);
354 extern int pstart (struct process *, int);
355 extern void pwait (void);
356 extern struct process *pfind (Char *);
359 * sh.sem.c
361 extern void execute (struct command *, volatile int, int *,
362 int *, int);
363 extern void mypipe (int *);
366 * sh.set.c
368 extern struct varent *adrof1 (const Char *, struct varent *);
369 extern void doset (Char **, struct command *);
370 extern void dolet (Char **, struct command *);
371 extern Char *putn (int);
372 extern int getn (Char *);
373 extern Char *value1 (Char *, struct varent *);
374 extern void setcopy (const Char *, const Char *, int);
375 extern void setv (const Char *, Char *, int);
376 extern void set1 (const Char *, Char **,
377 struct varent *, int);
378 extern void setq (const Char *, Char **,
379 struct varent *, int);
380 extern void unset (Char **, struct command *);
381 extern void unset1 (Char *[], struct varent *);
382 extern void unsetv (Char *);
383 extern void setNS (Char *);
384 extern void shift (Char **, struct command *);
385 extern void plist (struct varent *, int);
386 extern Char *unparse (struct command *);
387 #if defined(DSPMBYTE)
388 extern void update_dspmbyte_vars (void);
389 extern void autoset_dspmbyte (const Char *);
390 #endif
391 extern void exportpath (Char **);
394 * sh.time.c
396 extern void donice (Char **, struct command *);
397 extern void dotime (Char **, struct command *);
398 #ifdef BSDTIMES
399 extern void prusage (struct sysrusage *,
400 struct sysrusage *,
401 timeval_t *, timeval_t *);
402 extern void ruadd (struct sysrusage *,
403 struct sysrusage *);
404 #else /* BSDTIMES */
405 # ifdef _SEQUENT_
406 extern void prusage (struct process_stats *,
407 struct process_stats *,
408 timeval_t *, timeval_t *);
409 extern void ruadd (struct process_stats *,
410 struct process_stats *);
411 # else /* !_SEQUENT_ */
412 # ifdef POSIX
413 extern void prusage (struct tms *, struct tms *,
414 clock_t, clock_t);
415 # else /* !POSIX */
416 extern void prusage (struct tms *, struct tms *,
417 time_t, time_t);
418 # endif /* !POSIX */
419 # endif /* !_SEQUENT_ */
420 #endif /* BSDTIMES */
421 extern void settimes (void);
422 #if defined(BSDTIMES) || defined(_SEQUENT_)
423 extern void tvsub (struct timeval *,
424 struct timeval *,
425 struct timeval *);
426 #endif /* BSDTIMES || _SEQUENT_ */
429 * tw.parse.c
431 extern void copyn (Char *, const Char *, size_t);
432 extern void catn (Char *, const Char *, int);
434 #endif /* _h_sh_decls */