aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/upas/common/common.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-10-29 16:26:32 +0000
committerrsc <devnull@localhost>2005-10-29 16:26:32 +0000
commitd1f529f46f957c78a3db73b42c2fcd2d3c9f8a34 (patch)
treea4d6f28106cca984926b9dd5ecddd6053b654617 /src/cmd/upas/common/common.h
parent9f1fdc128738b2ed76258ac22a8574c681f3df3a (diff)
downloadplan9port-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.h79
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)