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