diff options
author | rsc <devnull@localhost> | 2005-10-29 16:26:32 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-10-29 16:26:32 +0000 |
commit | d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34 (patch) | |
tree | a4d6f28106cca984926b9dd5ecddd6053b654617 /src/cmd/upas/common/common.h | |
parent | 9f1fdc128738b2ed76258ac22a8574c681f3df3a (diff) | |
download | plan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.tar.gz plan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.tar.bz2 plan9port-d1f529f46f957c78a3db73b42c2fcd2d3c9f8a34.zip |
Thanks to John Cummings.
Diffstat (limited to 'src/cmd/upas/common/common.h')
-rw-r--r-- | src/cmd/upas/common/common.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/cmd/upas/common/common.h b/src/cmd/upas/common/common.h new file mode 100644 index 00000000..d1e93841 --- /dev/null +++ b/src/cmd/upas/common/common.h @@ -0,0 +1,79 @@ +#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) |