62 lines
1.1 KiB
C
62 lines
1.1 KiB
C
|
|
enum{
|
|
Dump = 0, /* Actions must be in order of descending importance */
|
|
HoldHeader,
|
|
Hold,
|
|
SaveLine,
|
|
Lineoff, /* Lineoff must be the last action code */
|
|
Nactions,
|
|
|
|
Nhash = 128,
|
|
|
|
regexp = 1, /* types: literal string or regular expression */
|
|
string = 2,
|
|
|
|
MaxHtml = 256,
|
|
Hdrsize = 4096,
|
|
Bodysize = 8192,
|
|
Maxread = 64*1024,
|
|
};
|
|
|
|
typedef struct spat Spat;
|
|
typedef struct pattern Pattern;
|
|
typedef struct patterns Patterns;
|
|
struct spat
|
|
{
|
|
char* string;
|
|
int len;
|
|
int c1;
|
|
Spat* next;
|
|
Spat* alt;
|
|
};
|
|
|
|
struct pattern{
|
|
struct pattern *next;
|
|
int action;
|
|
int type;
|
|
Spat* alt;
|
|
union{
|
|
Reprog* pat;
|
|
Spat* spat[Nhash];
|
|
};
|
|
};
|
|
|
|
struct patterns {
|
|
char *action;
|
|
Pattern *strings;
|
|
Pattern *regexps;
|
|
};
|
|
|
|
extern int debug;
|
|
extern Patterns patterns[];
|
|
extern char header[];
|
|
extern char cmd[];
|
|
|
|
extern void conv64(char*, char*, char*, int);
|
|
extern int convert(char*, char*, char*, int, int);
|
|
extern void* Malloc(long n);
|
|
extern int matchpat(Pattern*, char*, Resub*);
|
|
extern char* readmsg(Biobuf*, int*, int*);
|
|
extern void parsepats(Biobuf*);
|
|
extern void* Realloc(void*, ulong);
|
|
extern void xprint(int, char*, Resub*);
|