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