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