sh.decls.h revision 131962
1/* $Header: /src/pub/tcsh/sh.decls.h,v 3.39 2004/03/21 16:48:14 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. 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 */ 39extern int gethdir __P((Char *)); 40extern void dosource __P((Char **, struct command *)); 41extern void exitstat __P((void)); 42extern void goodbye __P((Char **, struct command *)); 43extern void importpath __P((Char *)); 44extern void initdesc __P((void)); 45extern sigret_t pintr __P((int)); 46extern void pintr1 __P((bool)); 47extern void process __P((bool)); 48extern void untty __P((void)); 49#ifdef PROF 50extern void done __P((int)); 51#else 52extern void xexit __P((int)); 53#endif 54 55/* 56 * sh.dir.c 57 */ 58extern void dinit __P((Char *)); 59extern void dodirs __P((Char **, struct command *)); 60extern Char *dcanon __P((Char *, Char *)); 61extern void dtildepr __P((Char *)); 62extern void dtilde __P((void)); 63extern void dochngd __P((Char **, struct command *)); 64extern Char *dnormalize __P((Char *, int)); 65extern void dopushd __P((Char **, struct command *)); 66extern void dopopd __P((Char **, struct command *)); 67extern void dfree __P((struct directory *)); 68extern void dsetstack __P((void)); 69extern int getstakd __P((Char *, int)); 70extern void recdirs __P((Char *, int)); 71extern void loaddirs __P((Char *)); 72 73/* 74 * sh.dol.c 75 */ 76extern void Dfix __P((struct command *)); 77extern Char *Dfix1 __P((Char *)); 78extern void heredoc __P((Char *)); 79 80/* 81 * sh.err.c 82 */ 83extern void errinit __P((void)); 84extern void seterror __P((unsigned int, ...)); 85extern void stderror __P((unsigned int, ...)); 86 87/* 88 * sh.exec.c 89 */ 90extern void doexec __P((struct command *, bool)); 91extern void dohash __P((Char **, struct command *)); 92extern void dounhash __P((Char **, struct command *)); 93extern void execash __P((Char **, struct command *)); 94extern void hashstat __P((Char **, struct command *)); 95extern void xechoit __P((Char **)); 96extern int executable __P((Char *, Char *, bool)); 97extern int tellmewhat __P((struct wordent *, Char *)); 98extern void dowhere __P((Char **, struct command *)); 99extern int find_cmd __P((Char *, int)); 100 101/* 102 * sh.exp.c 103 */ 104extern Char *filetest __P((Char *, Char ***, bool)); 105extern int expr __P((Char ***)); 106extern int exp0 __P((Char ***, bool)); 107 108/* 109 * sh.file.c 110 */ 111#if defined(FILEC) && defined(TIOCSTI) 112extern int tenex __P((Char *, int)); 113#endif 114 115/* 116 * sh.func.c 117 */ 118extern void tsetenv __P((Char *, Char *)); 119extern void Unsetenv __P((Char *)); 120extern void doalias __P((Char **, struct command *)); 121extern void dobreak __P((Char **, struct command *)); 122extern void docontin __P((Char **, struct command *)); 123extern void doecho __P((Char **, struct command *)); 124extern void doelse __P((Char **, struct command *)); 125extern void doend __P((Char **, struct command *)); 126extern void doeval __P((Char **, struct command *)); 127extern void doexit __P((Char **, struct command *)); 128extern void doforeach __P((Char **, struct command *)); 129extern void doglob __P((Char **, struct command *)); 130extern void dogoto __P((Char **, struct command *)); 131extern void doif __P((Char **, struct command *)); 132extern void dolimit __P((Char **, struct command *)); 133extern void dologin __P((Char **, struct command *)); 134extern void dologout __P((Char **, struct command *)); 135#ifdef NEWGRP 136extern void donewgrp __P((Char **, struct command *)); 137#endif 138extern void donohup __P((Char **, struct command *)); 139extern void dohup __P((Char **, struct command *)); 140extern void doonintr __P((Char **, struct command *)); 141extern void doprintenv __P((Char **, struct command *)); 142extern void dorepeat __P((Char **, struct command *)); 143extern void dofiletest __P((Char **, struct command *)); 144extern void dosetenv __P((Char **, struct command *)); 145extern void dosuspend __P((Char **, struct command *)); 146extern void doswbrk __P((Char **, struct command *)); 147extern void doswitch __P((Char **, struct command *)); 148extern void doumask __P((Char **, struct command *)); 149extern void dounlimit __P((Char **, struct command *)); 150extern void dounsetenv __P((Char **, struct command *)); 151extern void dowhile __P((Char **, struct command *)); 152extern void dozip __P((Char **, struct command *)); 153extern void func __P((struct command *, 154 struct biltins *)); 155extern void gotolab __P((Char *)); 156extern struct biltins *isbfunc __P((struct command *)); 157extern void prvars __P((void)); 158extern int srchx __P((Char *)); 159extern void unalias __P((Char **, struct command *)); 160extern void wfree __P((void)); 161extern void dobuiltins __P((Char **, struct command *)); 162extern void reexecute __P((struct command *)); 163 164/* 165 * sh.glob.c 166 */ 167extern Char *globequal __P((Char *, Char *)); 168extern Char **dobackp __P((Char *, bool)); 169extern void Gcat __P((Char *, Char *)); 170extern Char *globone __P((Char *, int)); 171extern int Gmatch __P((Char *, Char *)); 172extern int Gnmatch __P((Char *, Char *, Char **)); 173extern void ginit __P((void)); 174extern Char **globall __P((Char **)); 175extern void rscan __P((Char **, void (*)(int))); 176extern void tglob __P((Char **)); 177extern void trim __P((Char **)); 178#if defined(FILEC) && defined(TIOCSTI) 179extern int sortscmp __P((Char **, Char **)); 180#endif 181extern void nlsinit __P((void)); 182extern int t_pmatch __P((Char *, Char *, Char **, int)); 183 184/* 185 * sh.hist.c 186 */ 187extern void dohist __P((Char **, struct command *)); 188extern struct Hist *enthist __P((int, struct wordent *, bool, bool)); 189extern void savehist __P((struct wordent *, bool)); 190extern void fmthist __P((int, ptr_t, char *, size_t)); 191extern void rechist __P((Char *, int)); 192extern void loadhist __P((Char *, bool)); 193 194/* 195 * sh.init.c 196 */ 197extern void mesginit __P((void)); 198 199/* 200 * sh.lex.c 201 */ 202extern void addla __P((Char *)); 203extern void bseek __P((struct Ain *)); 204extern void btell __P((struct Ain *)); 205extern void btoeof __P((void)); 206extern void copylex __P((struct wordent *, 207 struct wordent *)); 208extern Char *domod __P((Char *, int)); 209extern void freelex __P((struct wordent *)); 210extern int lex __P((struct wordent *)); 211extern void prlex __P((struct wordent *)); 212extern int readc __P((bool)); 213extern void settell __P((void)); 214extern void unreadc __P((int)); 215 216 217/* 218 * sh.misc.c 219 */ 220extern int any __P((char *, int)); 221extern Char **blkcpy __P((Char **, Char **)); 222extern void blkfree __P((Char **)); 223extern int blklen __P((Char **)); 224extern void blkpr __P((Char **)); 225extern void blkexpand __P((Char **, Char *)); 226extern Char **blkspl __P((Char **, Char **)); 227extern void closem __P((void)); 228#ifndef CLOSE_ON_EXEC 229extern void closech __P((void)); 230#endif /* !CLOSE_ON_EXEC */ 231extern Char **copyblk __P((Char **)); 232extern int dcopy __P((int, int)); 233extern int dmove __P((int, int)); 234extern void donefds __P((void)); 235extern Char lastchr __P((Char *)); 236extern void lshift __P((Char **, int)); 237extern int number __P((Char *)); 238extern int prefix __P((Char *, Char *)); 239extern Char **saveblk __P((Char **)); 240extern void setzero __P((char *, int)); 241extern Char *strip __P((Char *)); 242extern Char *quote __P((Char *)); 243extern Char *quote_meta __P((Char *, const Char *)); 244extern char *strsave __P((const char *)); 245extern void udvar __P((Char *)); 246#ifndef POSIX 247extern char *strstr __P((const char *, const char *)); 248#endif /* !POSIX */ 249#ifndef SHORT_STRINGS 250extern char *strspl __P((char *, char *)); 251extern char *strend __P((char *)); 252#endif /* SHORT_STRINGS */ 253 254/* 255 * sh.parse.c 256 */ 257extern void alias __P((struct wordent *)); 258extern void freesyn __P((struct command *)); 259extern struct command *syntax __P((struct wordent *, 260 struct wordent *, int)); 261 262/* 263 * sh.print.c 264 */ 265extern void drainoline __P((void)); 266extern void flush __P((void)); 267#ifdef BSDTIMES 268extern void pcsecs __P((long)); 269#else /* !BSDTIMES */ 270# ifdef POSIX 271extern void pcsecs __P((clock_t)); 272# else /* !POSIX */ 273extern void pcsecs __P((time_t)); 274# endif /* !POSIX */ 275#endif /* BSDTIMES */ 276#ifdef BSDLIMIT 277extern void psecs __P((long)); 278#endif /* BSDLIMIT */ 279extern int putpure __P((int)); 280extern int putraw __P((int)); 281extern void xputchar __P((int)); 282 283 284/* 285 * sh.proc.c 286 */ 287extern void dobg __P((Char **, struct command *)); 288extern void dobg1 __P((Char **, struct command *)); 289extern void dofg __P((Char **, struct command *)); 290extern void dofg1 __P((Char **, struct command *)); 291extern void dojobs __P((Char **, struct command *)); 292extern void dokill __P((Char **, struct command *)); 293extern void donotify __P((Char **, struct command *)); 294extern void dostop __P((Char **, struct command *)); 295extern void dowait __P((Char **, struct command *)); 296extern void palloc __P((int, struct command *)); 297extern void panystop __P((bool)); 298extern sigret_t pchild __P((int)); 299extern void pendjob __P((void)); 300extern int pfork __P((struct command *, int)); 301extern void pgetty __P((int, int)); 302extern void pjwait __P((struct process *)); 303extern void pnote __P((void)); 304extern void prestjob __P((void)); 305extern void psavejob __P((void)); 306extern int pstart __P((struct process *, int)); 307extern void pwait __P((void)); 308extern struct process *pfind __P((Char *)); 309 310/* 311 * sh.sem.c 312 */ 313extern void execute __P((struct command *, int, int *, 314 int *, bool)); 315extern void mypipe __P((int *)); 316 317/* 318 * sh.set.c 319 */ 320extern struct varent *adrof1 __P((Char *, struct varent *)); 321extern void doset __P((Char **, struct command *)); 322extern void dolet __P((Char **, struct command *)); 323extern Char *putn __P((int)); 324extern int getn __P((Char *)); 325extern Char *value1 __P((Char *, struct varent *)); 326extern void set __P((Char *, Char *, int)); 327extern void set1 __P((Char *, Char **, struct varent *, 328 int)); 329extern void setq __P((Char *, Char **, struct varent *, 330 int)); 331extern void unset __P((Char **, struct command *)); 332extern void unset1 __P((Char *[], struct varent *)); 333extern void unsetv __P((Char *)); 334extern void setNS __P((Char *)); 335extern void shift __P((Char **, struct command *)); 336extern void plist __P((struct varent *, int)); 337extern Char *unparse __P((struct command *)); 338#if defined(DSPMBYTE) 339extern void update_dspmbyte_vars __P((void)); 340extern void autoset_dspmbyte __P((Char *)); 341#endif 342 343/* 344 * sh.time.c 345 */ 346extern void donice __P((Char **, struct command *)); 347extern void dotime __P((Char **, struct command *)); 348#ifdef BSDTIMES 349extern void prusage __P((struct sysrusage *, 350 struct sysrusage *, 351 timeval_t *, timeval_t *)); 352extern void ruadd __P((struct sysrusage *, 353 struct sysrusage *)); 354#else /* BSDTIMES */ 355# ifdef _SEQUENT_ 356extern void prusage __P((struct process_stats *, 357 struct process_stats *, 358 timeval_t *, timeval_t *)); 359extern void ruadd __P((struct process_stats *, 360 struct process_stats *)); 361# else /* !_SEQUENT_ */ 362# ifdef POSIX 363extern void prusage __P((struct tms *, struct tms *, 364 clock_t, clock_t)); 365# else /* !POSIX */ 366extern void prusage __P((struct tms *, struct tms *, 367 time_t, time_t)); 368# endif /* !POSIX */ 369# endif /* !_SEQUENT_ */ 370#endif /* BSDTIMES */ 371extern void settimes __P((void)); 372#if defined(BSDTIMES) || defined(_SEQUENT_) 373extern void tvsub __P((struct timeval *, 374 struct timeval *, 375 struct timeval *)); 376#endif /* BSDTIMES || _SEQUENT_ */ 377 378#endif /* _h_sh_decls */ 379