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