Blob


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,
10 Nhash = 128,
12 regexp = 1, /* types: literal string or regular expression */
13 string = 2,
15 MaxHtml = 256,
16 Hdrsize = 4096,
17 Bodysize = 8192,
18 Maxread = 64*1024
19 };
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 };
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 };
44 struct patterns {
45 char *action;
46 Pattern *strings;
47 Pattern *regexps;
48 };
50 extern int debug;
51 extern Patterns patterns[];
52 extern char header[];
53 extern char cmd[];
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*);