1 /* $OpenBSD: extern.h,v 1.16 2001/01/16 05:36:08 millert Exp $ */ 2 /* $NetBSD: extern.h,v 1.7 1997/07/09 05:22:00 mikel Exp $ */ 3 4 /*- 5 * Copyright (c) 1992, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. All advertising materials mentioning features or use of this software 17 * must display the following acknowledgement: 18 * This product includes software developed by the University of 19 * California, Berkeley and its contributors. 20 * 4. Neither the name of the University nor the names of its contributors 21 * may be used to endorse or promote products derived from this software 22 * without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)extern.h 8.2 (Berkeley) 4/20/95 37 * $OpenBSD: extern.h,v 1.16 2001/01/16 05:36:08 millert Exp $ 38 */ 39 40 struct name; 41 struct name *cat __P((struct name *, struct name *)); 42 struct name *delname __P((struct name *, char [])); 43 struct name *elide __P((struct name *)); 44 struct name *extract __P((char [], int)); 45 struct grouphead; 46 struct name *gexpand __P((struct name *, struct grouphead *, int, int)); 47 struct name *nalloc __P((char [], int)); 48 struct header; 49 struct name *outof __P((struct name *, FILE *, struct header *)); 50 struct name *put __P((struct name *, struct name *)); 51 struct name *tailof __P((struct name *)); 52 struct name *usermap __P((struct name *)); 53 FILE *Fdopen __P((int, char *)); 54 FILE *Fopen __P((char *, char *)); 55 FILE *Popen __P((char *, char *)); 56 FILE *collect __P((struct header *, int)); 57 char *copy __P((char *, char *)); 58 char *copyin __P((char *, char **)); 59 char *detract __P((struct name *, int)); 60 char *expand __P((char *)); 61 char *getdeadletter __P((void)); 62 char *getname __P((int)); 63 struct message; 64 char *hfield __P((char [], struct message *)); 65 FILE *infix __P((struct header *, FILE *)); 66 char *ishfield __P((char [], char[], char *)); 67 char *name1 __P((struct message *, int)); 68 char *nameof __P((struct message *, int)); 69 char *nextword __P((char *, char *)); 70 char *readtty __P((char [], char [])); 71 char *reedit __P((char *)); 72 FILE *run_editor __P((FILE *, off_t, int, int)); 73 char *salloc __P((int)); 74 char *savestr __P((char *)); 75 FILE *setinput __P((struct message *)); 76 char *skin __P((char *)); 77 char *skip_comment __P((char *)); 78 char *snarf __P((char [], int *)); 79 char *username __P((void)); 80 char *value __P((char [])); 81 char *vcopy __P((char [])); 82 char *yankword __P((char *, char [])); 83 int Fclose __P((FILE *)); 84 int More __P((void *)); 85 int Pclose __P((FILE *)); 86 int Respond __P((void *)); 87 int Type __P((void *)); 88 int _Respond __P((int [])); 89 int _respond __P((int *)); 90 void alter __P((char *)); 91 int alternates __P((void *)); 92 void announce __P((void)); 93 int anyof __P((char *, char *)); 94 int append __P((struct message *, FILE *)); 95 int argcount __P((char **)); 96 void assign __P((char [], char [])); 97 int bangexp __P((char *, size_t)); 98 int blankline __P((char [])); 99 void brokpipe __P((int)); 100 int charcount __P((char *, int)); 101 int check __P((int, int)); 102 void clearnew __P((void)); 103 void clob1 __P((int)); 104 int clobber __P((void *)); 105 void close_all_files __P((void)); 106 int cmatch __P((char *, char *)); 107 void collhup __P((int)); 108 void collint __P((int)); 109 void collstop __P((int)); 110 void commands __P((void)); 111 int copycmd __P((void *)); 112 int core __P((void *)); 113 int count __P((struct name *)); 114 int delete __P((void *)); 115 int delm __P((int [])); 116 int deltype __P((void *)); 117 void demail __P((void)); 118 int dosh __P((void *)); 119 int dot_lock __P((const char *, int, FILE *, const char *)); 120 void dot_unlock __P((const char *)); 121 int echo __P((void *)); 122 int edit1 __P((int *, int)); 123 int editor __P((void *)); 124 void edstop __P((void)); 125 int elsecmd __P((void *)); 126 int endifcmd __P((void *)); 127 int evalcol __P((int)); 128 int execute __P((char [], int)); 129 int exwrite __P((char [], FILE *, int)); 130 void fail __P((char [], char [])); 131 int file __P((void *)); 132 struct grouphead * 133 findgroup __P((char [])); 134 void findmail __P((char *, char *, int)); 135 int first __P((int, int)); 136 void fixhead __P((struct header *, struct name *)); 137 void fmt __P((char *, struct name *, FILE *, int)); 138 int folders __P((void *)); 139 int forward __P((char [], FILE *, char *, int)); 140 void free_child __P((int)); 141 int from __P((void *)); 142 off_t fsize __P((FILE *)); 143 int getfold __P((char *, int)); 144 int gethfield __P((FILE *, char [], int, char **)); 145 void gethfromtty __P((struct header *, int)); 146 int getmsglist __P((char *, int *, int)); 147 int getrawlist __P((char [], char **, int)); 148 int getuserid __P((char [])); 149 int grabh __P((struct header *, int)); 150 int group __P((void *)); 151 void hangup __P((int)); 152 int hash __P((char *)); 153 void hdrstop __P((int)); 154 int headers __P((void *)); 155 int help __P((void *)); 156 void holdsigs __P((void)); 157 int ifcmd __P((void *)); 158 int igfield __P((void *)); 159 struct ignoretab; 160 int ignore1 __P((char *[], struct ignoretab *, char *)); 161 int igshow __P((struct ignoretab *, char *)); 162 void intr __P((int)); 163 int inc __P((void *)); 164 int incfile __P((void)); 165 int isdate __P((char [])); 166 int isdir __P((char [])); 167 int isfileaddr __P((char *)); 168 int ishead __P((char [])); 169 int isign __P((char *, struct ignoretab [])); 170 int isprefix __P((char *, char *)); 171 void istrncpy __P((char *, char *, size_t)); 172 const struct cmd * 173 lex __P((char [])); 174 void load __P((char *)); 175 struct var * 176 lookup __P((char [])); 177 int mail __P((struct name *, 178 struct name *, struct name *, struct name *, char *)); 179 void mail1 __P((struct header *, int)); 180 void makemessage __P((FILE *, int)); 181 void mark __P((int)); 182 int markall __P((char [], int)); 183 int marknew __P((void *)); 184 int matchsender __P((char *, int)); 185 int matchsubj __P((char *, int)); 186 int mboxit __P((void *)); 187 int member __P((char *, struct ignoretab *)); 188 void mesedit __P((FILE *, int)); 189 void mespipe __P((FILE *, char [])); 190 int messize __P((void *)); 191 int metamess __P((int, int)); 192 int more __P((void *)); 193 int newfileinfo __P((int)); 194 int next __P((void *)); 195 int null __P((void *)); 196 struct headline; 197 void parse __P((char [], struct headline *, char [])); 198 int pcmdlist __P((void *)); 199 int pdot __P((void *)); 200 int pipeit __P((void *, void *)); 201 void prepare_child __P((sigset_t *, int, int)); 202 int preserve __P((void *)); 203 void prettyprint __P((struct name *)); 204 void printgroup __P((char [])); 205 void printhead __P((int)); 206 int puthead __P((struct header *, FILE *, int)); 207 int putline __P((FILE *, char *, int)); 208 int pversion __P((void *)); 209 void quit __P((void)); 210 int quitcmd __P((void *)); 211 int raise __P((int)); 212 int readline __P((FILE *, char *, int)); 213 void register_file __P((FILE *, int, int)); 214 void regret __P((int)); 215 void relsesigs __P((void)); 216 int respond __P((void *)); 217 int retfield __P((void *)); 218 int rexit __P((void *)); 219 int rm __P((char *)); 220 int run_command __P((char *cmd, sigset_t *nset, int infd, int outfd, ...)); 221 int save __P((void *)); 222 int save1 __P((char [], int, char *, struct ignoretab *)); 223 void savedeadletter __P((FILE *)); 224 int saveigfield __P((void *)); 225 int savemail __P((char [], FILE *)); 226 int saveretfield __P((void *)); 227 int scan __P((char **)); 228 void scaninit __P((void)); 229 int schdir __P((void *)); 230 int screensize __P((void)); 231 int scroll __P((void *)); 232 int sendmessage __P((struct message *, FILE *, struct ignoretab *, char *)); 233 int sendmail __P((void *)); 234 int set __P((void *)); 235 int setfile __P((char *)); 236 void setmsize __P((int)); 237 void setptr __P((FILE *, off_t)); 238 void setscreensize __P((void)); 239 int shell __P((void *)); 240 void sigchild __P((int)); 241 void sort __P((char **)); 242 int source __P((void *)); 243 int spool_lock __P((void)); 244 int spool_unlock __P((void)); 245 void spreserve __P((void)); 246 void sreset __P((void)); 247 int start_command __P((char *cmd, sigset_t *nset, int infd, int outfd, ...)); 248 int start_commandv __P((char *, sigset_t *, int, int, _BSD_VA_LIST_)); 249 void statusput __P((struct message *, FILE *, char *)); 250 void stop __P((int)); 251 int stouch __P((void *)); 252 int swrite __P((void *)); 253 void tinit __P((void)); 254 int top __P((void *)); 255 void touch __P((struct message *)); 256 void ttyint __P((int)); 257 void ttystop __P((int)); 258 int type __P((void *)); 259 int type1 __P((int *, char *, int, int)); 260 int undeletecmd __P((void *)); 261 void unmark __P((int)); 262 char **unpack __P((struct name *, struct name *)); 263 int unread __P((void *)); 264 void unregister_file __P((FILE *)); 265 int unset __P((void *)); 266 int unstack __P((void)); 267 void vfree __P((char *)); 268 int visual __P((void *)); 269 int wait_child __P((int)); 270 int wait_command __P((int)); 271 int writeback __P((FILE *)); 272 273 extern char *__progname; 274 extern char *tmpdir; 275 extern const struct cmd *com; /* command we are running */ 276