spam.h (1130B)
1 2 enum{ 3 Dump = 0, /* Actions must be in order of descending importance */ 4 HoldHeader, 5 Hold, 6 SaveLine, 7 Lineoff, /* Lineoff must be the last action code */ 8 Nactions, 9 10 Nhash = 128, 11 12 regexp = 1, /* types: literal string or regular expression */ 13 string = 2, 14 15 MaxHtml = 256, 16 Hdrsize = 4096, 17 Bodysize = 8192, 18 Maxread = 64*1024 19 }; 20 21 typedef struct spat Spat; 22 typedef struct pattern Pattern; 23 typedef struct patterns Patterns; 24 struct spat 25 { 26 char* string; 27 int len; 28 int c1; 29 Spat* next; 30 Spat* alt; 31 }; 32 33 struct pattern{ 34 struct pattern *next; 35 int action; 36 int type; 37 Spat* alt; 38 union{ 39 Reprog* pat; 40 Spat* spat[Nhash]; 41 }; 42 }; 43 44 struct patterns { 45 char *action; 46 Pattern *strings; 47 Pattern *regexps; 48 }; 49 50 extern int debug; 51 extern Patterns patterns[]; 52 extern char header[]; 53 extern char cmd[]; 54 55 extern void conv64(char*, char*, char*, int); 56 extern int convert(char*, char*, char*, int, int); 57 extern void* Malloc(long n); 58 extern int matchpat(Pattern*, char*, Resub*); 59 extern char* readmsg(Biobuf*, int*, int*); 60 extern void parsepats(Biobuf*); 61 extern void* Realloc(void*, ulong); 62 extern void xprint(int, char*, Resub*);