xref: /openbsd-src/usr.bin/mail/extern.h (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
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