+#define MATCHFLG_WORD_SPLIT (1<<7) /* split rules on whitespace */
+#define MATCHFLG_NO_INHERIT (1<<8) /* don't inherit these rules */
+#define MATCHFLG_NO_PREFIXES (1<<9) /* parse no prefixes from patterns */
+#define MATCHFLG_MERGE_FILE (1<<10)/* specifies a file to merge */
+#define MATCHFLG_PERDIR_MERGE (1<<11)/* merge-file is searched per-dir */
+#define MATCHFLG_EXCLUDE_SELF (1<<12)/* merge-file name should be excluded */
+#define MATCHFLG_FINISH_SETUP (1<<13)/* per-dir merge file needs setup */
+#define MATCHFLG_NEGATE (1<<14)/* rule matches when pattern does not */
+#define MATCHFLG_CVS_IGNORE (1<<15)/* rule was -C or :C */
+#define MATCHFLG_SENDER_SIDE (1<<16)/* rule applies to the sending side */
+#define MATCHFLG_RECEIVER_SIDE (1<<17)/* rule applies to the receiving side */
+
+#define MATCHFLGS_FROM_CONTAINER (MATCHFLG_ABS_PATH | MATCHFLG_INCLUDE \
+ | MATCHFLG_DIRECTORY | MATCHFLG_SENDER_SIDE \
+ | MATCHFLG_NEGATE | MATCHFLG_RECEIVER_SIDE)
+
+struct filter_struct {
+ struct filter_struct *next;