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