1 /*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software 14 * must display the following acknowledgement: 15 * This product includes software developed by the University of 16 * California, Berkeley and its contributors. 17 * 4. 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 * from: @(#)extern.h 8.1 (Berkeley) 5/31/93 34 * $Id: extern.h,v 1.5 1994/09/21 00:10:51 mycroft Exp $ 35 */ 36 37 #include <sys/cdefs.h> 38 39 /* 40 * csh.c 41 */ 42 int gethdir __P((Char *)); 43 void dosource __P((Char **, struct command *)); 44 void exitstat __P((void)); 45 void goodbye __P((void)); 46 void importpath __P((Char *)); 47 void initdesc __P((void)); 48 void pintr __P((int)); 49 void pintr1 __P((bool)); 50 void printprompt __P((void)); 51 void process __P((bool)); 52 void rechist __P((void)); 53 void untty __P((void)); 54 int vis_fputc __P((int, FILE *)); 55 56 #ifdef PROF 57 void done __P((int)); 58 #else 59 void xexit __P((int)); 60 #endif 61 62 /* 63 * dir.c 64 */ 65 void dinit __P((Char *)); 66 void dodirs __P((Char **, struct command *)); 67 Char *dcanon __P((Char *, Char *)); 68 void dtildepr __P((Char *, Char *)); 69 void dtilde __P((void)); 70 void dochngd __P((Char **, struct command *)); 71 Char *dnormalize __P((Char *)); 72 void dopushd __P((Char **, struct command *)); 73 void dopopd __P((Char **, struct command *)); 74 struct directory; 75 void dfree __P((struct directory *)); 76 77 /* 78 * dol.c 79 */ 80 void Dfix __P((struct command *)); 81 Char *Dfix1 __P((Char *)); 82 void heredoc __P((Char *)); 83 84 /* 85 * err.c 86 */ 87 void seterror __P((int, ...)); 88 void stderror __P((int, ...)); 89 90 /* 91 * exec.c 92 */ 93 void doexec __P((Char **, struct command *)); 94 void dohash __P((Char **, struct command *)); 95 void dounhash __P((Char **, struct command *)); 96 void dowhich __P((Char **, struct command *)); 97 void execash __P((Char **, struct command *)); 98 void hashstat __P((Char **, struct command *)); 99 void xechoit __P((Char **)); 100 101 /* 102 * exp.c 103 */ 104 int expr __P((Char ***)); 105 int exp0 __P((Char ***, bool)); 106 107 /* 108 * file.c 109 */ 110 #ifdef FILEC 111 int tenex __P((Char *, int)); 112 #endif 113 114 /* 115 * func.c 116 */ 117 void Setenv __P((Char *, Char *)); 118 void doalias __P((Char **, struct command *)); 119 void dobreak __P((Char **, struct command *)); 120 void docontin __P((Char **, struct command *)); 121 void doecho __P((Char **, struct command *)); 122 void doelse __P((Char **, struct command *)); 123 void doend __P((Char **, struct command *)); 124 void doeval __P((Char **, struct command *)); 125 void doexit __P((Char **, struct command *)); 126 void doforeach __P((Char **, struct command *)); 127 void doglob __P((Char **, struct command *)); 128 void dogoto __P((Char **, struct command *)); 129 void doif __P((Char **, struct command *)); 130 void dolimit __P((Char **, struct command *)); 131 void dologin __P((Char **, struct command *)); 132 void dologout __P((Char **, struct command *)); 133 void donohup __P((Char **, struct command *)); 134 void doonintr __P((Char **, struct command *)); 135 void doprintf __P((Char **, struct command *)); 136 void dorepeat __P((Char **, struct command *)); 137 void dosetenv __P((Char **, struct command *)); 138 void dosuspend __P((Char **, struct command *)); 139 void doswbrk __P((Char **, struct command *)); 140 void doswitch __P((Char **, struct command *)); 141 void doumask __P((Char **, struct command *)); 142 void dounlimit __P((Char **, struct command *)); 143 void dounsetenv __P((Char **, struct command *)); 144 void dowhile __P((Char **, struct command *)); 145 void dozip __P((Char **, struct command *)); 146 void func __P((struct command *, struct biltins *)); 147 struct biltins * 148 isbfunc __P((struct command *)); 149 void prvars __P((void)); 150 void gotolab __P((Char *)); 151 int srchx __P((Char *)); 152 void unalias __P((Char **, struct command *)); 153 void wfree __P((void)); 154 155 /* 156 * glob.c 157 */ 158 Char **dobackp __P((Char *, bool)); 159 void Gcat __P((Char *, Char *)); 160 Char *globone __P((Char *, int)); 161 int Gmatch __P((Char *, Char *)); 162 void ginit __P((void)); 163 Char **globall __P((Char **)); 164 void rscan __P((Char **, void (*)())); 165 void tglob __P((Char **)); 166 void trim __P((Char **)); 167 #ifdef FILEC 168 int sortscmp __P((const ptr_t, const ptr_t)); 169 #endif /* FILEC */ 170 171 /* 172 * hist.c 173 */ 174 void dohist __P((Char **, struct command *)); 175 struct Hist * 176 enthist __P((int, struct wordent *, bool)); 177 void savehist __P((struct wordent *)); 178 179 /* 180 * lex.c 181 */ 182 void addla __P((Char *)); 183 void bseek __P((struct Ain *)); 184 void btell __P((struct Ain *)); 185 void btoeof __P((void)); 186 void copylex __P((struct wordent *, struct wordent *)); 187 Char *domod __P((Char *, int)); 188 void freelex __P((struct wordent *)); 189 int lex __P((struct wordent *)); 190 void prlex __P((FILE *, struct wordent *)); 191 int readc __P((bool)); 192 void settell __P((void)); 193 void unreadc __P((int)); 194 195 /* 196 * misc.c 197 */ 198 int any __P((char *, int)); 199 Char **blkcat __P((Char **, Char **)); 200 Char **blkcpy __P((Char **, Char **)); 201 Char **blkend __P((Char **)); 202 void blkfree __P((Char **)); 203 int blklen __P((Char **)); 204 void blkpr __P((FILE *, Char **)); 205 Char **blkspl __P((Char **, Char **)); 206 void closem __P((void)); 207 Char **copyblk __P((Char **)); 208 int dcopy __P((int, int)); 209 int dmove __P((int, int)); 210 void donefds __P((void)); 211 Char lastchr __P((Char *)); 212 void lshift __P((Char **, int)); 213 int number __P((Char *)); 214 int prefix __P((Char *, Char *)); 215 Char **saveblk __P((Char **)); 216 void setzero __P((char *, int)); 217 Char *strip __P((Char *)); 218 char *strsave __P((char *)); 219 char *strspl __P((char *, char *)); 220 void udvar __P((Char *)); 221 222 #ifndef SHORT_STRINGS 223 # ifdef NOTUSED 224 char *strstr __P((const char *, const char *)); 225 # endif /* NOTUSED */ 226 char *strend __P((char *)); 227 #endif 228 229 /* 230 * parse.c 231 */ 232 void alias __P((struct wordent *)); 233 void freesyn __P((struct command *)); 234 struct command * 235 syntax __P((struct wordent *, struct wordent *, int)); 236 237 238 /* 239 * proc.c 240 */ 241 void dobg __P((Char **, struct command *)); 242 void dobg1 __P((Char **, struct command *)); 243 void dofg __P((Char **, struct command *)); 244 void dofg1 __P((Char **, struct command *)); 245 void dojobs __P((Char **, struct command *)); 246 void dokill __P((Char **, struct command *)); 247 void donotify __P((Char **, struct command *)); 248 void dostop __P((Char **, struct command *)); 249 void dowait __P((Char **, struct command *)); 250 void palloc __P((int, struct command *)); 251 void panystop __P((bool)); 252 void pchild __P((int)); 253 void pendjob __P((void)); 254 struct process * 255 pfind __P((Char *)); 256 int pfork __P((struct command *, int)); 257 void pgetty __P((int, int)); 258 void pjwait __P((struct process *)); 259 void pnote __P((void)); 260 void prestjob __P((void)); 261 void psavejob __P((void)); 262 void pstart __P((struct process *, int)); 263 void pwait __P((void)); 264 265 /* 266 * sem.c 267 */ 268 void execute __P((struct command *, int, int *, int *)); 269 void mypipe __P((int *)); 270 271 /* 272 * set.c 273 */ 274 struct varent 275 *adrof1 __P((Char *, struct varent *)); 276 void doset __P((Char **, struct command *)); 277 void dolet __P((Char **, struct command *)); 278 Char *putn __P((int)); 279 int getn __P((Char *)); 280 Char *value1 __P((Char *, struct varent *)); 281 void set __P((Char *, Char *)); 282 void set1 __P((Char *, Char **, struct varent *)); 283 void setq __P((Char *, Char **, struct varent *)); 284 void unset __P((Char **, struct command *)); 285 void unset1 __P((Char *[], struct varent *)); 286 void unsetv __P((Char *)); 287 void setNS __P((Char *)); 288 void shift __P((Char **, struct command *)); 289 void plist __P((struct varent *)); 290 291 /* 292 * time.c 293 */ 294 void donice __P((Char **, struct command *)); 295 void dotime __P((Char **, struct command *)); 296 void prusage __P((struct rusage *, struct rusage *, 297 struct timeval *, struct timeval *)); 298 void ruadd __P((struct rusage *, struct rusage *)); 299 void settimes __P((void)); 300 void tvadd __P((struct timeval *, struct timeval *)); 301 void tvsub __P((struct timeval *, struct timeval *, struct timeval *)); 302 void pcsecs __P((long)); 303 void psecs __P((long)); 304 305 /* 306 * alloc.c 307 */ 308 void Free __P((ptr_t)); 309 ptr_t Malloc __P((size_t)); 310 ptr_t Realloc __P((ptr_t, size_t)); 311 ptr_t Calloc __P((size_t, size_t)); 312 void showall __P((Char **, struct command *)); 313 314 /* 315 * str.c: 316 */ 317 #ifdef SHORT_STRINGS 318 Char *s_strchr __P((Char *, int)); 319 Char *s_strrchr __P((Char *, int)); 320 Char *s_strcat __P((Char *, Char *)); 321 #ifdef NOTUSED 322 Char *s_strncat __P((Char *, Char *, size_t)); 323 #endif 324 Char *s_strcpy __P((Char *, Char *)); 325 Char *s_strncpy __P((Char *, Char *, size_t)); 326 Char *s_strspl __P((Char *, Char *)); 327 size_t s_strlen __P((Char *)); 328 int s_strcmp __P((Char *, Char *)); 329 int s_strncmp __P((Char *, Char *, size_t)); 330 Char *s_strsave __P((Char *)); 331 Char *s_strend __P((Char *)); 332 Char *s_strstr __P((Char *, Char *)); 333 Char *str2short __P((char *)); 334 Char **blk2short __P((char **)); 335 char *short2str __P((Char *)); 336 char **short2blk __P((Char **)); 337 #endif 338 char *short2qstr __P((Char *)); 339 char *vis_str __P((Char *)); 340