aboutsummaryrefslogtreecommitdiffstats
path: root/mail_cmds/mail/extern.h
blob: 239a8cd89447619d5f566f05fe28fc272dee8a0a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
/*-
 * Copyright (c) 1992, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)extern.h	8.2 (Berkeley) 4/20/95 
 *
 * $FreeBSD: src/usr.bin/mail/extern.h,v 1.9 2004/02/29 20:44:44 mikeh Exp $
 */

#ifndef EXTERN_H
#define EXTERN_H

struct name *cat(struct name *, struct name *);
struct name *delname(struct name *, char []);
struct name *elide(struct name *);
struct name *extract(char [], int);
struct name *gexpand(struct name *, struct grouphead *, int, int);
struct name *nalloc(char [], int);
struct name *outof(struct name *, FILE *, struct header *);
struct name *put(struct name *, struct name *);
struct name *tailof(struct name *);
struct name *usermap(struct name *);
FILE	*Fdopen(int, const char *);
FILE	*Fopen(const char *, const char *);
FILE	*Popen(char *, const char *);
FILE	*collect(struct header *, int);
char	*copyin(char *, char **);
char	*detract(struct name *, int);
char	*expand(char *);
char	*getauthor(char *);
char	*getdeadletter(void);
char	*getname(int);
char	*hfield(const char *, struct message *);
FILE	*infix(struct header *, FILE *);
char	*ishfield(char [], char *, const char *);
char	*name1(struct message *, int);
char	*nameof(struct message *, int);
char	*nextword(char *, char *);
char	*readtty(const char *, char []);
char 	*reedit(char *);
FILE	*run_editor(FILE *, off_t, int, int);
char	*salloc(int);
char	*savestr(char *);
FILE	*setinput(struct message *);
char	*skin(char *);
char	*skip_comment(char *);
char	*snarf(char [], int *, int);
char	*username(void);
char	*value(const char *);
char	*vcopy(const char *);
char	*yankword(char *, char []);
char	*yanklogin(char *, char []);
int	 Fclose(FILE *);
int	 More(int *);
int	 Pclose(FILE *);
int	 Respond(int *);
int	 Type(int *);
int	 doRespond(int []);
int	 dorespond(int *);
void	 alter(char *);
int	 alternates(char **);
void	 announce(void);
int	 append(struct message *, FILE *);
int	 argcount(char **);
void	 assign(const char *, const char *);
int	 bangexp(char *, size_t);
void	 brokpipe(int);
int	 charcount(char *, int);
int	 check(int, int);
void	 clob1(int);
int	 clobber(char **);
void	 close_all_files(void);
int	 cmatch(char *, char *);
void	 collhup(int);
void	 collint(int);
void	 collstop(int);
void	 commands(void);
int	 copycmd(char []);
int	 Capcopycmd(char []);
int	 core(void);
int	 count(struct name *);
int	 delete(int []);
int	 delm(int []);
int	 deltype(int []);
void	 demail(void);
int	 diction(const void *, const void *);
int	 dosh(char *);
int	 echo(char **);
int	 edit1(int *, int);
int	 editor(int *);
void	 edstop(void);
int	 elsecmd(void);
int	 endifcmd(void);
int	 evalcol(int);
int	 execute(char [], int);
int	 exwrite(char [], FILE *, int);
void	 fail(const char *, const char *);
int	 file(char **);
struct grouphead *
	 findgroup(char []);
void	 findmail(char *, char *, int);
int	 first(int, int);
void	 fixhead(struct header *, struct name *);
void	 fmt(const char *, struct name *, FILE *, int);
int	 folders(void);
int	 followup(int *);
int	 Capfollowup(int *);
int	 forward(char [], FILE *, char *, int);
void	 free_child(int);
int	 from(int *);
off_t	 fsize(FILE *);
int	 getfold(char *, int);
int	 gethfield(FILE *, char [], int, char **);
int	 getmsglist(char *, int *, int);
int	 getrawlist(char [], char **, int);
int	 getuserid(char []);
int	 grabh(struct header *, int);
int	 group(char **);
void	 hangup(int);
int	 hash(const char *);
void	 hdrstop(int);
int	 headers(int *);
int	 help(void);
void	 holdsigs(void);
int	 ifcmd(char **);
int	 igcomp(const void *, const void *);
int	 igfield(char *[]);
int	 ignore1(char *[], struct ignoretab *, const char *);
int	 igshow(struct ignoretab *, const char *);
int	 inc(void *);
int	 incfile(void);
void	 intr(int);
int	 isdate(char []);
int	 isdir(char []);
int	 isfileaddr(char *);
int	 ishead(char []);
int	 isign(const char *, struct ignoretab []);
int	 isprefix(const char *, const char *);
void	 istrncpy(char *, const char *, size_t);
__const struct cmd *
	 lex(char []);
void	 load(char *);
struct var *
	 lookup(const char *);
int	 mail(struct name *,
	    struct name *, struct name *, struct name *, char *, char *);
void	 mail1(struct header *, int);
int	 mailpipe(char []);
void	 makemessage(FILE *, int);
void	 mark(int);
int	 markall(char [], int);
int	 matchsender(char *, int);
int	 matchfield(char *, int);
int	 mboxit(int []);
int	 member(char *, struct ignoretab *);
void	 mesedit(FILE *, int);
void	 mespipe(FILE *, char []);
int	 messize(int *);
int	 metamess(int, int);
int	 more(int *);
int	 newfileinfo(int);
int	 next(int *);
int	 null(int);
void	 parse(char [], struct headline *, char []);
int	 pcmdlist(void);
int	 pdot(void);
void	 prepare_child(sigset_t *, int, int);
int	 preserve(int *);
void	 prettyprint(struct name *);
void	 printgroup(char []);
void	 printhead(int);
int	 puthead(struct header *, FILE *, int);
int	 putline(FILE *, char *, int);
int	 pversion(int);
void	 quit(void);
int	 quitcmd(void);
int	 readline(FILE *, char *, int);
void	 register_file(FILE *, int, int);
void	 regret(int);
void	 relsesigs(void);
int	 respond(int *);
int	 retfield(char *[]);
int	 rexit(int);
int	 rm(char *);
int	 run_command(char *, sigset_t *, int, int, char *, char *, char *);
int	 save(char []);
int	 Capsave(char []);
int	 save1(char [], int, const char *, struct ignoretab *);
void	 savedeadletter(FILE *);
int	 saveigfield(char *[]);
int	 savemail(char [], FILE *);
int	 saveretfield(char *[]);
int	 scan(char **);
void	 scaninit(void);
int	 schdir(char **);
int	 screensize(void);
int	 scroll(char []);
int	 sendmessage(struct message *, FILE *, struct ignoretab *, char *);
int	 sendmail(char *);
int	 set(char **);
int	 setfile(char *);
void	 setmsize(int);
void	 setptr(FILE *, off_t);
void	 setscreensize(void);
int	 shell(char *);
void	 sigchild(int);
void	 sort(char **);
int	 source(char **);
void	 spreserve(void);
void	 sreset(void);
int	 start_command(char *, sigset_t *, int, int, char *, char *, char *);
void	 statusput(struct message *, FILE *, char *);
void	 stop(int);
int	 stouch(int []);
int	 swrite(char []);
void	 tinit(void);
int	 top(int *);
void	 touch(struct message *);
void	 ttyint(int);
void	 ttystop(int);
int	 type(int *);
int	 type1(int *, int, int);
int	 undelete_messages(int *);
void	 unmark(int);
char	**unpack(struct name *);
int	 unread(int []);
void	 unregister_file(FILE *);
int	 unset(char **);
int	 unstack(void);
void	 v_free(char *);
int	 visual(int *);
int	 wait_child(int);
int	 wait_command(int);
int	 writeback(FILE *);

extern char *__progname;
extern char *tmpdir;

#endif /* EXTERN_H */