12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include "sys.h"
- /* format of REMOTE FROM lines */
- extern char *REMFROMRE;
- extern int REMSENDERMATCH;
- extern int REMDATEMATCH;
- extern int REMSYSMATCH;
- /* format of mailbox FROM lines */
- #define IS_HEADER(p) ((p)[0]=='F'&&(p)[1]=='r'&&(p)[2]=='o'&&(p)[3]=='m'&&(p)[4]==' ')
- #define IS_TRAILER(p) ((p)[0]=='m'&&(p)[1]=='o'&&(p)[2]=='r'&&(p)[3]=='F'&&(p)[4]=='\n')
- extern char *FROMRE;
- extern int SENDERMATCH;
- extern int DATEMATCH;
- enum
- {
- Elemlen= 28,
- Errlen= 128,
- Pathlen= 256,
- };
- /*
- * routines in mail.c
- */
- extern int print_header(Biobuf*, char*, char*);
- extern int print_remote_header(Biobuf*, char*, char*, char*);
- extern int parse_header(char*, String*, String*);
- /*
- * routines in aux.c
- */
- extern String *abspath(char*, char*, String*);
- extern String *mboxpath(char*, char*, String*, int);
- extern char *basename(char*);
- extern int delivery_status(String*);
- extern void append_match(Resub*, String*, int);
- extern int shellchars(char*);
- extern String* escapespecial(String*);
- extern String* unescapespecial(String*);
- extern int returnable(char*);
- /* in copymessage */
- extern int appendfiletombox(int, int);
- extern int appendfiletofile(int, int);
- /* mailbox types */
- #define MF_NORMAL 0
- #define MF_PIPE 1
- #define MF_FORWARD 2
- #define MF_NOMBOX 3
- #define MF_NOTMBOX 4
- /* a pipe between parent and child*/
- typedef struct {
- Biobuf bb;
- Biobuf *fp; /* parent process end*/
- int fd; /* child process end*/
- } stream;
- /* a child process*/
- typedef struct process{
- stream *std[3]; /* standard fd's*/
- int pid; /* process identifier*/
- int status; /* exit status*/
- Waitmsg *waitmsg;
- } process;
- extern stream *instream(void);
- extern stream *outstream(void);
- extern void stream_free(stream*);
- extern process *noshell_proc_start(char**, stream*, stream*, stream*, int, char*);
- extern process *proc_start(char*, stream*, stream*, stream*, int, char*);
- extern int proc_wait(process*);
- extern int proc_free(process*);
- extern int proc_kill(process*);
- /* tell compiler we're using a value so it won't complain */
- #define USE(x) if(x)
|