Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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*);