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