common.h (1973B)
1 #include "sys.h" 2 3 /* format of REMOTE FROM lines */ 4 extern char *REMFROMRE; 5 extern int REMSENDERMATCH; 6 extern int REMDATEMATCH; 7 extern int REMSYSMATCH; 8 9 /* format of mailbox FROM lines */ 10 #define IS_HEADER(p) ((p)[0]=='F'&&(p)[1]=='r'&&(p)[2]=='o'&&(p)[3]=='m'&&(p)[4]==' ') 11 #define IS_TRAILER(p) ((p)[0]=='m'&&(p)[1]=='o'&&(p)[2]=='r'&&(p)[3]=='F'&&(p)[4]=='\n') 12 extern char *FROMRE; 13 extern int SENDERMATCH; 14 extern int DATEMATCH; 15 16 enum 17 { 18 Elemlen= 28, 19 Errlen= 128, 20 Pathlen= 256, 21 22 RetryCode = 2 23 }; 24 25 /* 26 * routines in mail.c 27 */ 28 extern int print_header(Biobuf*, char*, char*); 29 extern int print_remote_header(Biobuf*, char*, char*, char*); 30 extern int parse_header(char*, String*, String*); 31 32 /* 33 * routines in aux.c 34 */ 35 extern String *abspath(char*, char*, String*); 36 extern String *mboxpath(char*, char*, String*, int); 37 extern char *basename(char*); 38 extern int delivery_status(String*); 39 extern void append_match(Resub*, String*, int); 40 extern int shellchars(char*); 41 extern String* escapespecial(String*); 42 extern String* unescapespecial(String*); 43 extern int returnable(char*); 44 45 /* in copymessage */ 46 extern int appendfiletombox(int, int); 47 extern int appendfiletofile(int, int); 48 49 /* mailbox types */ 50 #define MF_NORMAL 0 51 #define MF_PIPE 1 52 #define MF_FORWARD 2 53 #define MF_NOMBOX 3 54 #define MF_NOTMBOX 4 55 56 /* a pipe between parent and child*/ 57 typedef struct { 58 Biobuf bb; 59 Biobuf *fp; /* parent process end*/ 60 int fd; /* child process end*/ 61 } stream; 62 63 /* a child process*/ 64 typedef struct process{ 65 stream *std[3]; /* standard fd's*/ 66 int pid; /* process identifier*/ 67 int status; /* exit status*/ 68 Waitmsg *waitmsg; 69 } process; 70 71 extern stream *instream(void); 72 extern stream *outstream(void); 73 extern void stream_free(stream*); 74 extern process *noshell_proc_start(char**, stream*, stream*, stream*, int, char*); 75 extern process *proc_start(char*, stream*, stream*, stream*, int, char*); 76 extern int proc_wait(process*); 77 extern int proc_free(process*); 78 extern int proc_kill(process*);