explicit void params declarations, add warnings to keep it correct
[mkp224o.git] / filters.h
blob71f01188f2ce55818a7d35c10661cd3896b25810
2 #ifndef INTFILTER
3 # define BINFILTER
4 #endif
6 #ifdef PCRE2FILTER
7 # undef BINFILTER
8 # undef INTFILTER
9 #endif
11 #ifdef INTFILTER
12 # ifdef BINSEARCH
13 # ifndef BESORT
14 # define OMITMASK
15 # endif
16 # endif
17 #endif
19 #ifdef OMITMASK
20 # define EXPANDMASK
21 #endif
23 // whether binfilter struct is needed
24 #ifdef BINFILTER
25 # define NEEDBINFILTER
26 #endif
27 #ifdef INTFILTER
28 # define NEEDBINFILTER
29 #endif
32 #ifdef NEEDBINFILTER
34 # ifndef BINFILTERLEN
35 # define BINFILTERLEN PUBLIC_LEN
36 # endif
38 struct binfilter {
39 u8 f[BINFILTERLEN];
40 size_t len; // real len minus one
41 u8 mask;
42 } ;
44 VEC_STRUCT(bfiltervec,struct binfilter);
46 #ifdef BINFILTER
47 extern struct bfiltervec filters;
48 #endif
50 #endif // NEEDBINFILTER
54 #ifdef INTFILTER
56 struct intfilter {
57 IFT f;
58 # ifndef OMITMASK
59 IFT m;
60 # endif
61 } ;
63 VEC_STRUCT(ifiltervec,struct intfilter);
65 extern struct ifiltervec filters;
67 # ifdef OMITMASK
68 extern IFT ifiltermask;
69 # endif
71 #endif // INTFILTER
75 #ifdef PCRE2FILTER
77 #define PCRE2_CODE_UNIT_WIDTH 8
78 #include <pcre2.h>
80 struct pcre2filter {
81 char *str;
82 pcre2_code *re;
83 } ;
85 VEC_STRUCT(pfiltervec,struct pcre2filter);
87 extern struct pfiltervec filters;
89 #endif // PCRE2FILTER
92 extern int flattened;
94 extern void filters_init(void);
95 extern void filters_add(const char *filter);
96 extern size_t filters_count(void);