URI: 
       tcommon.h - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tcommon.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*);